browser(ff-beta): roll Firefox-Beta to 103.0b5 (#15394)

This commit is contained in:
Andrey Lushnikov 2022-07-05 15:47:35 -07:00 committed by GitHub
parent 530867e8ab
commit 3b269d0ed7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 234 additions and 290 deletions

View file

@ -1,2 +1,2 @@
1333 1334
Changed: dgozman@gmail.com Thu Jun 30 14:19:05 PDT 2022 Changed: lushnikov@chromium.org Wed Jul 6 01:35:56 MSK 2022

View file

@ -1,3 +1,3 @@
REMOTE_URL="https://github.com/mozilla/gecko-dev" REMOTE_URL="https://github.com/mozilla/gecko-dev"
BASE_BRANCH="beta" BASE_BRANCH="beta"
BASE_REVISION="4eec8e1d31fe3650e87754cb2d12bf4336cc901a" BASE_REVISION="30c461e82b48bd2e4f69c9cba7f6a0e86dbf7040"

View file

@ -3,7 +3,7 @@ set -e
set +x set +x
RUST_VERSION="1.59.0" RUST_VERSION="1.59.0"
CBINDGEN_VERSION="0.23.0" CBINDGEN_VERSION="0.24.3"
trap "cd $(pwd -P)" EXIT trap "cd $(pwd -P)" EXIT

View file

@ -31,7 +31,7 @@ async function installFirefoxPreferences(distpath) {
if (os.platform() === 'linux') if (os.platform() === 'linux')
executablePath = path.join(distpath, 'firefox'); executablePath = path.join(distpath, 'firefox');
else if (os.platform() === 'darwin') else if (os.platform() === 'darwin')
executablePath = path.join(distpath, 'Nightly.app', 'Contents', 'MacOS', 'firefox'); executablePath = path.join(distpath, (process.env.FF_DEBUG_BUILD ? 'NightlyDebug.app' : 'Nightly.app'), 'Contents', 'MacOS', 'firefox');
else if (os.platform() === 'win32') else if (os.platform() === 'win32')
executablePath = path.join(distpath, 'firefox.exe'); executablePath = path.join(distpath, 'firefox.exe');

View file

@ -8,6 +8,7 @@ const {EventEmitter} = ChromeUtils.import('resource://gre/modules/EventEmitter.j
const {Helper} = ChromeUtils.import('chrome://juggler/content/Helper.js'); const {Helper} = ChromeUtils.import('chrome://juggler/content/Helper.js');
const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm"); const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
const {NetUtil} = ChromeUtils.import('resource://gre/modules/NetUtil.jsm'); const {NetUtil} = ChromeUtils.import('resource://gre/modules/NetUtil.jsm');
const { ChannelEventSinkFactory } = ChromeUtils.import("chrome://remote/content/cdp/observers/ChannelEventSink.jsm");
const Cc = Components.classes; const Cc = Components.classes;
@ -27,14 +28,6 @@ const StorageStream = CC('@mozilla.org/storagestream;1', 'nsIStorageStream', 'in
// Cap response storage with 100Mb per tracked tab. // Cap response storage with 100Mb per tracked tab.
const MAX_RESPONSE_STORAGE_SIZE = 100 * 1024 * 1024; const MAX_RESPONSE_STORAGE_SIZE = 100 * 1024 * 1024;
/**
* This is a nsIChannelEventSink implementation that monitors channel redirects.
*/
const SINK_CLASS_DESCRIPTION = "Juggler NetworkMonitor Channel Event Sink";
const SINK_CLASS_ID = Components.ID("{c2b4c83e-607a-405a-beab-0ef5dbfb7617}");
const SINK_CONTRACT_ID = "@mozilla.org/network/monitor/channeleventsink;1";
const SINK_CATEGORY_NAME = "net-channel-event-sinks";
const pageNetworkSymbol = Symbol('PageNetwork'); const pageNetworkSymbol = Symbol('PageNetwork');
class PageNetwork { class PageNetwork {
@ -620,21 +613,10 @@ class NetworkObserver {
}; };
protocolProxyService.registerChannelFilter(this._channelProxyFilter, 0 /* position */); protocolProxyService.registerChannelFilter(this._channelProxyFilter, 0 /* position */);
this._channelSink = {
QueryInterface: ChromeUtils.generateQI([Ci.nsIChannelEventSink]),
asyncOnChannelRedirect: (oldChannel, newChannel, flags, callback) => {
this._onRedirect(oldChannel, newChannel, flags);
callback.onRedirectVerifyCallback(Cr.NS_OK);
},
};
this._channelSinkFactory = {
QueryInterface: ChromeUtils.generateQI([Ci.nsIFactory]),
createInstance: (aOuter, aIID) => this._channelSink.QueryInterface(aIID),
};
// Register self as ChannelEventSink to track redirects. // Register self as ChannelEventSink to track redirects.
const registrar = Cm.QueryInterface(Ci.nsIComponentRegistrar); ChannelEventSinkFactory.getService().registerCollector({
registrar.registerFactory(SINK_CLASS_ID, SINK_CLASS_DESCRIPTION, SINK_CONTRACT_ID, this._channelSinkFactory); _onChannelRedirect: this._onRedirect.bind(this),
Services.catMan.addCategoryEntry(SINK_CATEGORY_NAME, SINK_CONTRACT_ID, SINK_CONTRACT_ID, false, true); });
this._eventListeners = [ this._eventListeners = [
helper.addObserver(this._onRequest.bind(this), 'http-on-modify-request'), helper.addObserver(this._onRequest.bind(this), 'http-on-modify-request'),
@ -716,9 +698,7 @@ class NetworkObserver {
dispose() { dispose() {
this._activityDistributor.removeObserver(this); this._activityDistributor.removeObserver(this);
const registrar = Cm.QueryInterface(Ci.nsIComponentRegistrar); ChannelEventSinkFactory.unregister();
registrar.unregisterFactory(SINK_CLASS_ID, this._channelSinkFactory);
Services.catMan.deleteCategoryEntry(SINK_CATEGORY_NAME, SINK_CONTRACT_ID, false);
helper.removeListeners(this._eventListeners); helper.removeListeners(this._eventListeners);
} }
} }

View file

@ -101,7 +101,6 @@ class PageAgent {
helper.addObserver(this._filePickerShown.bind(this), 'juggler-file-picker-shown'), helper.addObserver(this._filePickerShown.bind(this), 'juggler-file-picker-shown'),
helper.addEventListener(this._messageManager, 'DOMContentLoaded', this._onDOMContentLoaded.bind(this)), helper.addEventListener(this._messageManager, 'DOMContentLoaded', this._onDOMContentLoaded.bind(this)),
helper.addObserver(this._onDocumentOpenLoad.bind(this), 'juggler-document-open-loaded'), helper.addObserver(this._onDocumentOpenLoad.bind(this), 'juggler-document-open-loaded'),
helper.addEventListener(this._messageManager, 'error', this._onError.bind(this)),
helper.on(this._frameTree, 'load', this._onLoad.bind(this)), helper.on(this._frameTree, 'load', this._onLoad.bind(this)),
helper.on(this._frameTree, 'frameattached', this._onFrameAttached.bind(this)), helper.on(this._frameTree, 'frameattached', this._onFrameAttached.bind(this)),
helper.on(this._frameTree, 'framedetached', this._onFrameDetached.bind(this)), helper.on(this._frameTree, 'framedetached', this._onFrameDetached.bind(this)),
@ -129,6 +128,7 @@ class PageAgent {
}); });
}), }),
this._runtime.events.onConsoleMessage(msg => this._browserPage.emit('runtimeConsole', msg)), this._runtime.events.onConsoleMessage(msg => this._browserPage.emit('runtimeConsole', msg)),
this._runtime.events.onRuntimeError(this._onRuntimeError.bind(this)),
this._runtime.events.onExecutionContextCreated(this._onExecutionContextCreated.bind(this)), this._runtime.events.onExecutionContextCreated(this._onExecutionContextCreated.bind(this)),
this._runtime.events.onExecutionContextDestroyed(this._onExecutionContextDestroyed.bind(this)), this._runtime.events.onExecutionContextDestroyed(this._onExecutionContextDestroyed.bind(this)),
this._runtime.events.onBindingCalled(this._onBindingCalled.bind(this)), this._runtime.events.onBindingCalled(this._onBindingCalled.bind(this)),
@ -139,7 +139,6 @@ class PageAgent {
describeNode: this._describeNode.bind(this), describeNode: this._describeNode.bind(this),
dispatchKeyEvent: this._dispatchKeyEvent.bind(this), dispatchKeyEvent: this._dispatchKeyEvent.bind(this),
dispatchMouseEvent: this._dispatchMouseEvent.bind(this), dispatchMouseEvent: this._dispatchMouseEvent.bind(this),
dispatchWheelEvent: this._dispatchWheelEvent.bind(this),
dispatchTouchEvent: this._dispatchTouchEvent.bind(this), dispatchTouchEvent: this._dispatchTouchEvent.bind(this),
dispatchTapEvent: this._dispatchTapEvent.bind(this), dispatchTapEvent: this._dispatchTapEvent.bind(this),
getContentQuads: this._getContentQuads.bind(this), getContentQuads: this._getContentQuads.bind(this),
@ -274,15 +273,11 @@ class PageAgent {
}); });
} }
_onError(errorEvent) { _onRuntimeError({ executionContext, message, stack }) {
const docShell = errorEvent.target.ownerGlobal.docShell;
const frame = this._frameTree.frameForDocShell(docShell);
if (!frame)
return;
this._browserPage.emit('pageUncaughtError', { this._browserPage.emit('pageUncaughtError', {
frameId: frame.id(), frameId: executionContext.auxData().frameId,
message: errorEvent.message, message: message.toString(),
stack: errorEvent.error && typeof errorEvent.error.stack === 'string' ? errorEvent.error.stack : '', stack: stack.toString(),
}); });
} }
@ -760,26 +755,6 @@ class PageAgent {
} }
} }
async _dispatchWheelEvent({x, y, button, deltaX, deltaY, deltaZ, modifiers }) {
const deltaMode = 0; // WheelEvent.DOM_DELTA_PIXEL
const lineOrPageDeltaX = deltaX > 0 ? Math.floor(deltaX) : Math.ceil(deltaX);
const lineOrPageDeltaY = deltaY > 0 ? Math.floor(deltaY) : Math.ceil(deltaY);
const frame = this._frameTree.mainFrame();
frame.domWindow().windowUtils.sendWheelEvent(
x,
y,
deltaX,
deltaY,
deltaZ,
deltaMode,
modifiers,
lineOrPageDeltaX,
lineOrPageDeltaY,
0 /* options */);
}
async _insertText({text}) { async _insertText({text}) {
const frame = this._frameTree.mainFrame(); const frame = this._frameTree.mainFrame();
frame.textInputProcessor().commitCompositionWith(text); frame.textInputProcessor().commitCompositionWith(text);

View file

@ -65,12 +65,13 @@ class Runtime {
} else { } else {
const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm"); const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
this._registerConsoleServiceListener(Services); this._registerConsoleServiceListener(Services);
this._registerConsoleObserver(Services); this._registerConsoleAPIListener(Services);
} }
// We can't use event listener here to be compatible with Worker Global Context. // We can't use event listener here to be compatible with Worker Global Context.
// Use plain callbacks instead. // Use plain callbacks instead.
this.events = { this.events = {
onConsoleMessage: createEvent(), onConsoleMessage: createEvent(),
onRuntimeError: createEvent(),
onErrorFromWorker: createEvent(), onErrorFromWorker: createEvent(),
onExecutionContextCreated: createEvent(), onExecutionContextCreated: createEvent(),
onExecutionContextDestroyed: createEvent(), onExecutionContextDestroyed: createEvent(),
@ -129,7 +130,7 @@ class Runtime {
observe: message => { observe: message => {
if (!(message instanceof Ci.nsIScriptError) || !message.outerWindowID || if (!(message instanceof Ci.nsIScriptError) || !message.outerWindowID ||
!message.category || disallowedMessageCategories.has(message.category) || message.hasException) { !message.category || disallowedMessageCategories.has(message.category)) {
return; return;
} }
const errorWindow = Services.wm.getOuterWindowWithId(message.outerWindowID); const errorWindow = Services.wm.getOuterWindowWithId(message.outerWindowID);
@ -138,34 +139,46 @@ class Runtime {
return; return;
} }
const executionContext = this._windowToExecutionContext.get(errorWindow); const executionContext = this._windowToExecutionContext.get(errorWindow);
if (!executionContext) if (!executionContext) {
return; return;
}
const typeNames = { const typeNames = {
[Ci.nsIConsoleMessage.debug]: 'debug', [Ci.nsIConsoleMessage.debug]: 'debug',
[Ci.nsIConsoleMessage.info]: 'info', [Ci.nsIConsoleMessage.info]: 'info',
[Ci.nsIConsoleMessage.warn]: 'warn', [Ci.nsIConsoleMessage.warn]: 'warn',
[Ci.nsIConsoleMessage.error]: 'error', [Ci.nsIConsoleMessage.error]: 'error',
}; };
emitEvent(this.events.onConsoleMessage, { if (!message.hasException) {
args: [{ emitEvent(this.events.onConsoleMessage, {
value: message.message, args: [{
}], value: message.message,
type: typeNames[message.logLevel], }],
executionContextId: executionContext.id(), type: typeNames[message.logLevel],
location: { executionContextId: executionContext.id(),
lineNumber: message.lineNumber, location: {
columnNumber: message.columnNumber, lineNumber: message.lineNumber,
url: message.sourceName, columnNumber: message.columnNumber,
}, url: message.sourceName,
}); },
});
} else {
emitEvent(this.events.onRuntimeError, {
executionContext,
message: message.errorMessage,
stack: message.stack.toString(),
});
}
}, },
}; };
Services.console.registerListener(consoleServiceListener); Services.console.registerListener(consoleServiceListener);
this._eventListeners.push(() => Services.console.unregisterListener(consoleServiceListener)); this._eventListeners.push(() => Services.console.unregisterListener(consoleServiceListener));
} }
_registerConsoleObserver(Services) { _registerConsoleAPIListener(Services) {
const consoleObserver = ({wrappedJSObject}, topic, data) => { const Ci = Components.interfaces;
const Cc = Components.classes;
const ConsoleAPIStorage = Cc["@mozilla.org/consoleAPI-storage;1"].getService(Ci.nsIConsoleAPIStorage);
const onMessage = ({ wrappedJSObject }) => {
const executionContext = Array.from(this._executionContexts.values()).find(context => { const executionContext = Array.from(this._executionContexts.values()).find(context => {
// There is no easy way to determine isolated world context and we normally don't write // There is no easy way to determine isolated world context and we normally don't write
// objects to console from utility worlds so we always return main world context here. // objects to console from utility worlds so we always return main world context here.
@ -177,9 +190,12 @@ class Runtime {
if (!executionContext) if (!executionContext)
return; return;
this._onConsoleMessage(executionContext, wrappedJSObject); this._onConsoleMessage(executionContext, wrappedJSObject);
}; }
Services.obs.addObserver(consoleObserver, "console-api-log-event"); ConsoleAPIStorage.addLogEventListener(
this._eventListeners.push(() => Services.obs.removeObserver(consoleObserver, "console-api-log-event")); onMessage,
Cc["@mozilla.org/systemprincipal;1"].createInstance(Ci.nsIPrincipal)
);
this._eventListeners.push(() => ConsoleAPIStorage.removeLogEventListener(onMessage));
} }
_registerWorkerConsoleHandler() { _registerWorkerConsoleHandler() {

View file

@ -44,18 +44,6 @@ class BrowserHandler {
for (const target of this._targetRegistry.targets()) for (const target of this._targetRegistry.targets())
this._onTargetCreated(target); this._onTargetCreated(target);
// Wait to complete initialization of addon manager and search
// service before returning from this method. Failing to do so will result
// in a broken shutdown sequence and multiple errors in browser STDERR log.
//
// NOTE: we have to put this here as well as in the `Browser.close` handler
// since browser shutdown can be initiated when the last tab is closed, e.g.
// with persistent context.
await Promise.all([
waitForAddonManager(),
waitForSearchService(),
]);
} }
async ['Browser.createBrowserContext']({removeOnDetach}) { async ['Browser.createBrowserContext']({removeOnDetach}) {
@ -146,12 +134,6 @@ class BrowserHandler {
waitForWindowClosed(browserWindow), waitForWindowClosed(browserWindow),
]); ]);
} }
// Try to fully initialize browser before closing.
// See comment in `Browser.enable`.
await Promise.all([
waitForAddonManager(),
waitForSearchService(),
]);
this._onclose(); this._onclose();
Services.startup.quit(Ci.nsIAppStartup.eForceQuit); Services.startup.quit(Ci.nsIAppStartup.eForceQuit);
} }
@ -283,26 +265,6 @@ class BrowserHandler {
} }
} }
async function waitForSearchService() {
const searchService = Components.classes["@mozilla.org/browser/search-service;1"].getService(Components.interfaces.nsISearchService);
await searchService.init();
}
async function waitForAddonManager() {
if (AddonManager.isReady)
return;
await new Promise(resolve => {
let listener = {
onStartup() {
AddonManager.removeManagerListener(listener);
resolve();
},
onShutdown() { },
};
AddonManager.addManagerListener(listener);
});
}
async function waitForWindowClosed(browserWindow) { async function waitForWindowClosed(browserWindow) {
if (browserWindow.closed) if (browserWindow.closed)
return; return;

View file

@ -354,8 +354,26 @@ class PageHandler {
return await this._contentPage.send('dispatchMouseEvent', options); return await this._contentPage.send('dispatchMouseEvent', options);
} }
async ['Page.dispatchWheelEvent'](options) { async ['Page.dispatchWheelEvent']({x, y, button, deltaX, deltaY, deltaZ, modifiers }) {
return await this._contentPage.send('dispatchWheelEvent', options); const boundingBox = this._pageTarget._linkedBrowser.getBoundingClientRect();
x += boundingBox.left;
y += boundingBox.top;
const deltaMode = 0; // WheelEvent.DOM_DELTA_PIXEL
const lineOrPageDeltaX = deltaX > 0 ? Math.floor(deltaX) : Math.ceil(deltaX);
const lineOrPageDeltaY = deltaY > 0 ? Math.floor(deltaY) : Math.ceil(deltaY);
const win = this._pageTarget._window;
win.windowUtils.sendWheelEvent(
x,
y,
deltaX,
deltaY,
deltaZ,
deltaMode,
modifiers,
lineOrPageDeltaX,
lineOrPageDeltaY,
0 /* options */);
} }
async ['Page.insertText'](options) { async ['Page.insertText'](options) {

View file

@ -69,7 +69,7 @@ int32_t HeadlessWindowCapturer::StopCaptureIfAllClientsClose() {
} }
} }
int32_t HeadlessWindowCapturer::StartCapture(const VideoCaptureCapability& capability) { int32_t HeadlessWindowCapturer::StartCapture(const webrtc::VideoCaptureCapability& capability) {
mWindow->SetSnapshotListener([this] (RefPtr<gfx::DataSourceSurface>&& dataSurface){ mWindow->SetSnapshotListener([this] (RefPtr<gfx::DataSourceSurface>&& dataSurface){
if (!NS_IsInCompositorThread()) { if (!NS_IsInCompositorThread()) {
fprintf(stderr, "SnapshotListener is called not on the Compositor thread!\n"); fprintf(stderr, "SnapshotListener is called not on the Compositor thread!\n");

View file

@ -55,7 +55,7 @@ rtc::scoped_refptr<webrtc::VideoCaptureModuleEx> CreateWindowCapturer(nsIWidget*
windowId.AppendPrintf("%" PRIuPTR, rawWindowId); windowId.AppendPrintf("%" PRIuPTR, rawWindowId);
bool captureCursor = false; bool captureCursor = false;
static int moduleId = 0; static int moduleId = 0;
return webrtc::DesktopCaptureImpl::Create(++moduleId, windowId.get(), webrtc::CaptureDeviceType::Window, captureCursor); return webrtc::DesktopCaptureImpl::Create(++moduleId, windowId.get(), CaptureDeviceType::Window, captureCursor);
} }
nsresult generateUid(nsString& uid) { nsresult generateUid(nsString& uid) {

View file

@ -1,8 +1,8 @@
diff --git a/accessible/base/NotificationController.h b/accessible/base/NotificationController.h diff --git a/accessible/base/NotificationController.h b/accessible/base/NotificationController.h
index b2e16c00e6e67d640974cd4f1aa7a819d4d32063..e80b42794f1fc425e25e6ea8b7a284000080708f 100644 index afb6230bb613ecde4a5e3271478a682d0396dc3b..a3a7d9786f9d18bad6afc292264b9dbc62c14cf2 100644
--- a/accessible/base/NotificationController.h --- a/accessible/base/NotificationController.h
+++ b/accessible/base/NotificationController.h +++ b/accessible/base/NotificationController.h
@@ -275,6 +275,8 @@ class NotificationController final : public EventQueue, @@ -276,6 +276,8 @@ class NotificationController final : public EventQueue,
} }
#endif #endif
@ -26,10 +26,10 @@ index a91df31c96afda66f478a5a38eaa4352039c2a0b..ee777c1746284027fb3aa2f1686f8082
+ readonly attribute boolean isUpdatePendingForJugglerAccessibility; + readonly attribute boolean isUpdatePendingForJugglerAccessibility;
}; };
diff --git a/accessible/xpcom/xpcAccessibleDocument.cpp b/accessible/xpcom/xpcAccessibleDocument.cpp diff --git a/accessible/xpcom/xpcAccessibleDocument.cpp b/accessible/xpcom/xpcAccessibleDocument.cpp
index ec83b699e1449b2610b43b35694ee18d80cee2ff..66854bda7d8c20627949289b9f2e2e161a00fea8 100644 index 1ddd5c8372c2742a8dc4e7a8156c084aaf2442fc..7e3aa30c20d8b2fcae5c12d293ca7772ecd28657 100644
--- a/accessible/xpcom/xpcAccessibleDocument.cpp --- a/accessible/xpcom/xpcAccessibleDocument.cpp
+++ b/accessible/xpcom/xpcAccessibleDocument.cpp +++ b/accessible/xpcom/xpcAccessibleDocument.cpp
@@ -142,6 +142,15 @@ xpcAccessibleDocument::GetVirtualCursor(nsIAccessiblePivot** aVirtualCursor) { @@ -143,6 +143,15 @@ xpcAccessibleDocument::GetVirtualCursor(nsIAccessiblePivot** aVirtualCursor) {
return NS_OK; return NS_OK;
} }
@ -59,7 +59,7 @@ index 416a1c5497c97ed80cc0f37d72545e36f7e36b4c..b81983cf7153378260a21f6af225e349
* Return XPCOM wrapper for the internal accessible. * Return XPCOM wrapper for the internal accessible.
*/ */
diff --git a/browser/app/winlauncher/LauncherProcessWin.cpp b/browser/app/winlauncher/LauncherProcessWin.cpp diff --git a/browser/app/winlauncher/LauncherProcessWin.cpp b/browser/app/winlauncher/LauncherProcessWin.cpp
index 4460774865769609b66c0710f7c83f4d5c02b6fa..2ca95607b9b093218d48f83adc95c514cebe661b 100644 index 4c5a84e9f824ca68dfcc429df5550136c647992a..c39d73a3b8be8bb8476618e93ef263e3640ba1ab 100644
--- a/browser/app/winlauncher/LauncherProcessWin.cpp --- a/browser/app/winlauncher/LauncherProcessWin.cpp
+++ b/browser/app/winlauncher/LauncherProcessWin.cpp +++ b/browser/app/winlauncher/LauncherProcessWin.cpp
@@ -23,6 +23,7 @@ @@ -23,6 +23,7 @@
@ -70,7 +70,7 @@ index 4460774865769609b66c0710f7c83f4d5c02b6fa..2ca95607b9b093218d48f83adc95c514
#include <windows.h> #include <windows.h>
#include <processthreadsapi.h> #include <processthreadsapi.h>
@@ -359,8 +360,19 @@ Maybe<int> LauncherMain(int& argc, wchar_t* argv[], @@ -421,8 +422,19 @@ Maybe<int> LauncherMain(int& argc, wchar_t* argv[],
HANDLE stdHandles[] = {::GetStdHandle(STD_INPUT_HANDLE), HANDLE stdHandles[] = {::GetStdHandle(STD_INPUT_HANDLE),
::GetStdHandle(STD_OUTPUT_HANDLE), ::GetStdHandle(STD_OUTPUT_HANDLE),
::GetStdHandle(STD_ERROR_HANDLE)}; ::GetStdHandle(STD_ERROR_HANDLE)};
@ -172,10 +172,10 @@ index 040c7b124dec6bb254563bbe74fe50012cb077a3..b4e6b8132786af70e8ad0dce88b67c28
const transportProvider = { const transportProvider = {
setListener(upgradeListener) { setListener(upgradeListener) {
diff --git a/docshell/base/BrowsingContext.cpp b/docshell/base/BrowsingContext.cpp diff --git a/docshell/base/BrowsingContext.cpp b/docshell/base/BrowsingContext.cpp
index d5006b4b576870bb7e6ca06bd0696b786c0f9236..96157b8e9a40b28ad05ae57e2f4457fe8d440567 100644 index 2eb25e3e50f8865a1788e1043187eb78f5efc72f..a3435e5f28cc4932b530ae9890f0d8591f22c717 100644
--- a/docshell/base/BrowsingContext.cpp --- a/docshell/base/BrowsingContext.cpp
+++ b/docshell/base/BrowsingContext.cpp +++ b/docshell/base/BrowsingContext.cpp
@@ -110,6 +110,20 @@ struct ParamTraits<mozilla::dom::PrefersColorSchemeOverride> @@ -111,6 +111,20 @@ struct ParamTraits<mozilla::dom::PrefersColorSchemeOverride>
mozilla::dom::PrefersColorSchemeOverride::None, mozilla::dom::PrefersColorSchemeOverride::None,
mozilla::dom::PrefersColorSchemeOverride::EndGuard_> {}; mozilla::dom::PrefersColorSchemeOverride::EndGuard_> {};
@ -196,7 +196,7 @@ index d5006b4b576870bb7e6ca06bd0696b786c0f9236..96157b8e9a40b28ad05ae57e2f4457fe
template <> template <>
struct ParamTraits<mozilla::dom::ExplicitActiveStatus> struct ParamTraits<mozilla::dom::ExplicitActiveStatus>
: public ContiguousEnumSerializer< : public ContiguousEnumSerializer<
@@ -2775,6 +2789,40 @@ void BrowsingContext::DidSet(FieldIndex<IDX_PrefersColorSchemeOverride>, @@ -2780,6 +2794,40 @@ void BrowsingContext::DidSet(FieldIndex<IDX_PrefersColorSchemeOverride>,
PresContextAffectingFieldChanged(); PresContextAffectingFieldChanged();
} }
@ -305,7 +305,7 @@ index e0b091feba6ce38e57681c62c386d3b70234de1f..4fae381a8bded7ae004ccb25187b3ace
bool CanSet(FieldIndex<IDX_SuspendMediaWhenInactive>, bool, ContentParent*) { bool CanSet(FieldIndex<IDX_SuspendMediaWhenInactive>, bool, ContentParent*) {
diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp
index 6f554d87958ea61b1adadeba09fc99031dda8e10..2eff5cc5721bf99166420eb2b35a43769782b0fa 100644 index c42f9450ce1a8e1b1b77ac3c5e5dd186f2b03d9f..dfb824b4b5ae54126beba8231111e93f0de2000d 100644
--- a/docshell/base/nsDocShell.cpp --- a/docshell/base/nsDocShell.cpp
+++ b/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp
@@ -15,6 +15,12 @@ @@ -15,6 +15,12 @@
@ -367,7 +367,7 @@ index 6f554d87958ea61b1adadeba09fc99031dda8e10..2eff5cc5721bf99166420eb2b35a4376
mAllowAuth(mItemType == typeContent), mAllowAuth(mItemType == typeContent),
mAllowKeywordFixup(false), mAllowKeywordFixup(false),
mDisableMetaRefreshWhenInactive(false), mDisableMetaRefreshWhenInactive(false),
@@ -3286,6 +3303,221 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) { @@ -3266,6 +3283,221 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) {
return NS_OK; return NS_OK;
} }
@ -589,7 +589,7 @@ index 6f554d87958ea61b1adadeba09fc99031dda8e10..2eff5cc5721bf99166420eb2b35a4376
NS_IMETHODIMP NS_IMETHODIMP
nsDocShell::GetIsNavigating(bool* aOut) { nsDocShell::GetIsNavigating(bool* aOut) {
*aOut = mIsNavigating; *aOut = mIsNavigating;
@@ -4918,7 +5150,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { @@ -4896,7 +5128,7 @@ nsDocShell::GetVisibility(bool* aVisibility) {
} }
void nsDocShell::ActivenessMaybeChanged() { void nsDocShell::ActivenessMaybeChanged() {
@ -598,7 +598,7 @@ index 6f554d87958ea61b1adadeba09fc99031dda8e10..2eff5cc5721bf99166420eb2b35a4376
if (RefPtr<PresShell> presShell = GetPresShell()) { if (RefPtr<PresShell> presShell = GetPresShell()) {
presShell->ActivenessMaybeChanged(); presShell->ActivenessMaybeChanged();
} }
@@ -8652,6 +8884,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { @@ -8633,6 +8865,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) {
true, // aForceNoOpener true, // aForceNoOpener
getter_AddRefs(newBC)); getter_AddRefs(newBC));
MOZ_ASSERT(!newBC); MOZ_ASSERT(!newBC);
@ -611,7 +611,7 @@ index 6f554d87958ea61b1adadeba09fc99031dda8e10..2eff5cc5721bf99166420eb2b35a4376
return rv; return rv;
} }
@@ -12802,6 +13040,9 @@ class OnLinkClickEvent : public Runnable { @@ -12781,6 +13019,9 @@ class OnLinkClickEvent : public Runnable {
mHandler->OnLinkClickSync(mContent, mLoadState, mNoOpenerImplied, mHandler->OnLinkClickSync(mContent, mLoadState, mNoOpenerImplied,
mTriggeringPrincipal); mTriggeringPrincipal);
} }
@ -621,7 +621,7 @@ index 6f554d87958ea61b1adadeba09fc99031dda8e10..2eff5cc5721bf99166420eb2b35a4376
return NS_OK; return NS_OK;
} }
@@ -12881,6 +13122,8 @@ nsresult nsDocShell::OnLinkClick( @@ -12860,6 +13101,8 @@ nsresult nsDocShell::OnLinkClick(
nsCOMPtr<nsIRunnable> ev = nsCOMPtr<nsIRunnable> ev =
new OnLinkClickEvent(this, aContent, loadState, noOpenerImplied, new OnLinkClickEvent(this, aContent, loadState, noOpenerImplied,
aIsTrusted, aTriggeringPrincipal); aIsTrusted, aTriggeringPrincipal);
@ -631,7 +631,7 @@ index 6f554d87958ea61b1adadeba09fc99031dda8e10..2eff5cc5721bf99166420eb2b35a4376
} }
diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h
index 7326eb6d5c927c0509333447edf111657597ab90..bc9dcabb82832fd1a3a8f2dd8811481a9c5ad84c 100644 index 79b2af0c0f58e00965473edb55a4e184dd225b1b..4a991cba9d77207a631b5f076c37e7f9281e9a4a 100644
--- a/docshell/base/nsDocShell.h --- a/docshell/base/nsDocShell.h
+++ b/docshell/base/nsDocShell.h +++ b/docshell/base/nsDocShell.h
@@ -16,6 +16,7 @@ @@ -16,6 +16,7 @@
@ -650,7 +650,7 @@ index 7326eb6d5c927c0509333447edf111657597ab90..bc9dcabb82832fd1a3a8f2dd8811481a
class nsGlobalWindowOuter; class nsGlobalWindowOuter;
class FramingChecker; class FramingChecker;
@@ -411,6 +413,15 @@ class nsDocShell final : public nsDocLoader, @@ -408,6 +410,15 @@ class nsDocShell final : public nsDocLoader,
void SetWillChangeProcess() { mWillChangeProcess = true; } void SetWillChangeProcess() { mWillChangeProcess = true; }
bool WillChangeProcess() { return mWillChangeProcess; } bool WillChangeProcess() { return mWillChangeProcess; }
@ -666,7 +666,7 @@ index 7326eb6d5c927c0509333447edf111657597ab90..bc9dcabb82832fd1a3a8f2dd8811481a
// Create a content viewer within this nsDocShell for the given // Create a content viewer within this nsDocShell for the given
// `WindowGlobalChild` actor. // `WindowGlobalChild` actor.
nsresult CreateContentViewerForActor( nsresult CreateContentViewerForActor(
@@ -1026,6 +1037,8 @@ class nsDocShell final : public nsDocLoader, @@ -1023,6 +1034,8 @@ class nsDocShell final : public nsDocLoader,
bool CSSErrorReportingEnabled() const { return mCSSErrorReportingEnabled; } bool CSSErrorReportingEnabled() const { return mCSSErrorReportingEnabled; }
@ -675,7 +675,7 @@ index 7326eb6d5c927c0509333447edf111657597ab90..bc9dcabb82832fd1a3a8f2dd8811481a
// Handles retrieval of subframe session history for nsDocShell::LoadURI. If a // Handles retrieval of subframe session history for nsDocShell::LoadURI. If a
// load is requested in a subframe of the current DocShell, the subframe // load is requested in a subframe of the current DocShell, the subframe
// loadType may need to reflect the loadType of the parent document, or in // loadType may need to reflect the loadType of the parent document, or in
@@ -1311,6 +1324,16 @@ class nsDocShell final : public nsDocLoader, @@ -1308,6 +1321,16 @@ class nsDocShell final : public nsDocLoader,
bool mAllowDNSPrefetch : 1; bool mAllowDNSPrefetch : 1;
bool mAllowWindowControl : 1; bool mAllowWindowControl : 1;
bool mCSSErrorReportingEnabled : 1; bool mCSSErrorReportingEnabled : 1;
@ -747,10 +747,10 @@ index 6b85ddd842a6d2e29f86047017b78b2007b99867..e0b56c4f85544580b9a631619fb06799
* This attempts to save any applicable layout history state (like * This attempts to save any applicable layout history state (like
* scroll position) in the nsISHEntry. This is normally done * scroll position) in the nsISHEntry. This is normally done
diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp
index 3f454bb509cf6b251f2e47974976fa40f9b04020..826369ef5dca9d88d66b48d2ba40caf03217dfd6 100644 index feaee86ca5fd78d7df8d08a737ba9b8da173feac..86f31fb2d1e6b6e667e066eaff80763855cef08e 100644
--- a/dom/base/Document.cpp --- a/dom/base/Document.cpp
+++ b/dom/base/Document.cpp +++ b/dom/base/Document.cpp
@@ -3648,6 +3648,9 @@ void Document::SendToConsole(nsCOMArray<nsISecurityConsoleMessage>& aMessages) { @@ -3645,6 +3645,9 @@ void Document::SendToConsole(nsCOMArray<nsISecurityConsoleMessage>& aMessages) {
} }
void Document::ApplySettingsFromCSP(bool aSpeculative) { void Document::ApplySettingsFromCSP(bool aSpeculative) {
@ -760,7 +760,7 @@ index 3f454bb509cf6b251f2e47974976fa40f9b04020..826369ef5dca9d88d66b48d2ba40caf0
nsresult rv = NS_OK; nsresult rv = NS_OK;
if (!aSpeculative) { if (!aSpeculative) {
// 1) apply settings from regular CSP // 1) apply settings from regular CSP
@@ -3705,6 +3708,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { @@ -3702,6 +3705,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) {
MOZ_ASSERT(!mScriptGlobalObject, MOZ_ASSERT(!mScriptGlobalObject,
"CSP must be initialized before mScriptGlobalObject is set!"); "CSP must be initialized before mScriptGlobalObject is set!");
@ -772,7 +772,7 @@ index 3f454bb509cf6b251f2e47974976fa40f9b04020..826369ef5dca9d88d66b48d2ba40caf0
// If this is a data document - no need to set CSP. // If this is a data document - no need to set CSP.
if (mLoadedAsData) { if (mLoadedAsData) {
return NS_OK; return NS_OK;
@@ -4516,6 +4524,10 @@ bool Document::HasFocus(ErrorResult& rv) const { @@ -4508,6 +4516,10 @@ bool Document::HasFocus(ErrorResult& rv) const {
return false; return false;
} }
@ -783,7 +783,7 @@ index 3f454bb509cf6b251f2e47974976fa40f9b04020..826369ef5dca9d88d66b48d2ba40caf0
if (!fm->IsInActiveWindow(bc)) { if (!fm->IsInActiveWindow(bc)) {
return false; return false;
} }
@@ -17879,6 +17891,71 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { @@ -17654,6 +17666,71 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const {
return LookAndFeel::PreferredColorSchemeForContent(); return LookAndFeel::PreferredColorSchemeForContent();
} }
@ -856,10 +856,10 @@ index 3f454bb509cf6b251f2e47974976fa40f9b04020..826369ef5dca9d88d66b48d2ba40caf0
if (!sLoadingForegroundTopLevelContentDocument) { if (!sLoadingForegroundTopLevelContentDocument) {
return false; return false;
diff --git a/dom/base/Document.h b/dom/base/Document.h diff --git a/dom/base/Document.h b/dom/base/Document.h
index a9d9c2f2d0a1359fec5c4edfffd8f8fab3607525..ad6e19137bbd341414ffee670e3070d692985536 100644 index 7a4ddc544948509dfe6b7998f31fb9bdf2de841e..40d92e63470091fe3497291aa631464f0ee92b71 100644
--- a/dom/base/Document.h --- a/dom/base/Document.h
+++ b/dom/base/Document.h +++ b/dom/base/Document.h
@@ -4020,6 +4020,9 @@ class Document : public nsINode, @@ -4001,6 +4001,9 @@ class Document : public nsINode,
// color-scheme meta tag. // color-scheme meta tag.
ColorScheme DefaultColorScheme() const; ColorScheme DefaultColorScheme() const;
@ -870,10 +870,10 @@ index a9d9c2f2d0a1359fec5c4edfffd8f8fab3607525..ad6e19137bbd341414ffee670e3070d6
static bool AutomaticStorageAccessPermissionCanBeGranted( static bool AutomaticStorageAccessPermissionCanBeGranted(
diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp
index 6f5812f17a980be7c9823708853018868cbcd18f..fa9a88eedb2b6a19dffbadd9dbdf3a2f48d60ca1 100644 index 85f28cce26f37b5df95c4a96658b9328f13b5a47..917d89943589ba4d7b065bdacb76aa281508de29 100644
--- a/dom/base/Navigator.cpp --- a/dom/base/Navigator.cpp
+++ b/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp
@@ -326,14 +326,18 @@ void Navigator::GetAppName(nsAString& aAppName, CallerType aCallerType) const { @@ -325,14 +325,18 @@ void Navigator::GetAppName(nsAString& aAppName, CallerType aCallerType) const {
* for more detail. * for more detail.
*/ */
/* static */ /* static */
@ -894,7 +894,7 @@ index 6f5812f17a980be7c9823708853018868cbcd18f..fa9a88eedb2b6a19dffbadd9dbdf3a2f
// Split values on commas. // Split values on commas.
for (nsDependentSubstring lang : for (nsDependentSubstring lang :
@@ -385,7 +389,13 @@ void Navigator::GetLanguage(nsAString& aLanguage) { @@ -384,7 +388,13 @@ void Navigator::GetLanguage(nsAString& aLanguage) {
} }
void Navigator::GetLanguages(nsTArray<nsString>& aLanguages) { void Navigator::GetLanguages(nsTArray<nsString>& aLanguages) {
@ -909,7 +909,7 @@ index 6f5812f17a980be7c9823708853018868cbcd18f..fa9a88eedb2b6a19dffbadd9dbdf3a2f
// The returned value is cached by the binding code. The window listens to the // The returned value is cached by the binding code. The window listens to the
// accept languages change and will clear the cache when needed. It has to // accept languages change and will clear the cache when needed. It has to
@@ -564,7 +574,13 @@ bool Navigator::CookieEnabled() { @@ -563,7 +573,13 @@ bool Navigator::CookieEnabled() {
return granted; return granted;
} }
@ -925,7 +925,7 @@ index 6f5812f17a980be7c9823708853018868cbcd18f..fa9a88eedb2b6a19dffbadd9dbdf3a2f
void Navigator::GetBuildID(nsAString& aBuildID, CallerType aCallerType, void Navigator::GetBuildID(nsAString& aBuildID, CallerType aCallerType,
ErrorResult& aRv) const { ErrorResult& aRv) const {
diff --git a/dom/base/Navigator.h b/dom/base/Navigator.h diff --git a/dom/base/Navigator.h b/dom/base/Navigator.h
index 7184795e21afe8b1ac5d36c6f645fc9a027f74d5..0d9c6ae7edd65cd8b7660cff22853ec4859ec608 100644 index 2a16e5e18427944f007c3f33301f2faea92f63e0..69a2037379bc03f941789814d00c7e99e58bdf0e 100644
--- a/dom/base/Navigator.h --- a/dom/base/Navigator.h
+++ b/dom/base/Navigator.h +++ b/dom/base/Navigator.h
@@ -216,7 +216,7 @@ class Navigator final : public nsISupports, public nsWrapperCache { @@ -216,7 +216,7 @@ class Navigator final : public nsISupports, public nsWrapperCache {
@ -938,10 +938,10 @@ index 7184795e21afe8b1ac5d36c6f645fc9a027f74d5..0d9c6ae7edd65cd8b7660cff22853ec4
dom::MediaCapabilities* MediaCapabilities(); dom::MediaCapabilities* MediaCapabilities();
dom::MediaSession* MediaSession(); dom::MediaSession* MediaSession();
diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp
index 6b910d1eea981d62d7bfc6964a97d683686094f8..b00acefd43e19c404abb34c5e32fe6f3f0d08d45 100644 index efc42b7f547d9b8b8a202e2130c409b3bb63e9fb..ebf11bd9ed41c061863836a96ae0cda7e37d2032 100644
--- a/dom/base/nsContentUtils.cpp --- a/dom/base/nsContentUtils.cpp
+++ b/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp
@@ -8226,7 +8226,8 @@ nsresult nsContentUtils::SendMouseEvent( @@ -8369,7 +8369,8 @@ nsresult nsContentUtils::SendMouseEvent(
bool aIgnoreRootScrollFrame, float aPressure, bool aIgnoreRootScrollFrame, float aPressure,
unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow,
PreventDefaultResult* aPreventDefault, bool aIsDOMEventSynthesized, PreventDefaultResult* aPreventDefault, bool aIsDOMEventSynthesized,
@ -951,7 +951,7 @@ index 6b910d1eea981d62d7bfc6964a97d683686094f8..b00acefd43e19c404abb34c5e32fe6f3
nsPoint offset; nsPoint offset;
nsCOMPtr<nsIWidget> widget = GetWidget(aPresShell, &offset); nsCOMPtr<nsIWidget> widget = GetWidget(aPresShell, &offset);
if (!widget) return NS_ERROR_FAILURE; if (!widget) return NS_ERROR_FAILURE;
@@ -8285,6 +8286,7 @@ nsresult nsContentUtils::SendMouseEvent( @@ -8428,6 +8429,7 @@ nsresult nsContentUtils::SendMouseEvent(
event.mTime = PR_IntervalNow(); event.mTime = PR_IntervalNow();
event.mFlags.mIsSynthesizedForTests = aIsDOMEventSynthesized; event.mFlags.mIsSynthesizedForTests = aIsDOMEventSynthesized;
event.mExitFrom = exitFrom; event.mExitFrom = exitFrom;
@ -960,10 +960,10 @@ index 6b910d1eea981d62d7bfc6964a97d683686094f8..b00acefd43e19c404abb34c5e32fe6f3
nsPresContext* presContext = aPresShell->GetPresContext(); nsPresContext* presContext = aPresShell->GetPresContext();
if (!presContext) return NS_ERROR_FAILURE; if (!presContext) return NS_ERROR_FAILURE;
diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h
index 0dbce2bdf40bf23ec748996f1b8f2f543b005b16..cdb2e5d62169d36077e9c9d6c50d8edf8b6ebe56 100644 index 739e8ca23c858ac2bf0356ad8c0eb0da4471d9ea..afb76693d313dc3c97fb54d014ed146a5b1bfb01 100644
--- a/dom/base/nsContentUtils.h --- a/dom/base/nsContentUtils.h
+++ b/dom/base/nsContentUtils.h +++ b/dom/base/nsContentUtils.h
@@ -2928,7 +2928,8 @@ class nsContentUtils { @@ -2943,7 +2943,8 @@ class nsContentUtils {
int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure,
unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow,
mozilla::PreventDefaultResult* aPreventDefault, mozilla::PreventDefaultResult* aPreventDefault,
@ -974,10 +974,10 @@ index 0dbce2bdf40bf23ec748996f1b8f2f543b005b16..cdb2e5d62169d36077e9c9d6c50d8edf
static void FirePageShowEventForFrameLoaderSwap( static void FirePageShowEventForFrameLoaderSwap(
nsIDocShellTreeItem* aItem, nsIDocShellTreeItem* aItem,
diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp
index a078d2973bb539f6dac799ffa438569cef38067c..64af78f470e2343c7ff5332bca77ca5df46e9515 100644 index 24771c8d8fb251cb837f2c5c43a34f2f5e921188..1ccc540f4bf0a71546117479c86a07252ca00f1d 100644
--- a/dom/base/nsDOMWindowUtils.cpp --- a/dom/base/nsDOMWindowUtils.cpp
+++ b/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp
@@ -655,7 +655,7 @@ nsDOMWindowUtils::SendMouseEvent( @@ -683,7 +683,7 @@ nsDOMWindowUtils::SendMouseEvent(
int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame, int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame,
float aPressure, unsigned short aInputSourceArg, float aPressure, unsigned short aInputSourceArg,
bool aIsDOMEventSynthesized, bool aIsWidgetEventSynthesized, bool aIsDOMEventSynthesized, bool aIsWidgetEventSynthesized,
@ -986,7 +986,7 @@ index a078d2973bb539f6dac799ffa438569cef38067c..64af78f470e2343c7ff5332bca77ca5d
bool* aPreventDefault) { bool* aPreventDefault) {
return SendMouseEventCommon( return SendMouseEventCommon(
aType, aX, aY, aButton, aClickCount, aModifiers, aIgnoreRootScrollFrame, aType, aX, aY, aButton, aClickCount, aModifiers, aIgnoreRootScrollFrame,
@@ -663,7 +663,7 @@ nsDOMWindowUtils::SendMouseEvent( @@ -691,7 +691,7 @@ nsDOMWindowUtils::SendMouseEvent(
aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, false, aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, false,
aPreventDefault, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true, aPreventDefault, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true,
aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false, aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false,
@ -995,7 +995,7 @@ index a078d2973bb539f6dac799ffa438569cef38067c..64af78f470e2343c7ff5332bca77ca5d
} }
NS_IMETHODIMP NS_IMETHODIMP
@@ -690,13 +690,13 @@ nsDOMWindowUtils::SendMouseEventCommon( @@ -718,13 +718,13 @@ nsDOMWindowUtils::SendMouseEventCommon(
int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame, int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame,
float aPressure, unsigned short aInputSourceArg, uint32_t aPointerId, float aPressure, unsigned short aInputSourceArg, uint32_t aPointerId,
bool aToWindow, bool* aPreventDefault, bool aIsDOMEventSynthesized, bool aToWindow, bool* aPreventDefault, bool aIsDOMEventSynthesized,
@ -1025,10 +1025,10 @@ index 30e0fafa77857c33e9871259a6ac0cebac965df8..3d8810abcfac1c220529b4e6163b0159
MOZ_CAN_RUN_SCRIPT MOZ_CAN_RUN_SCRIPT
nsresult SendTouchEventCommon( nsresult SendTouchEventCommon(
diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp
index ffeb42544dccb0efb5c94b652aba4d1801d953aa..49681f4adcbac3fcb80d66ab4a08a21d7fb08472 100644 index 6f226bbe93a5ba7621bcdeb910ff62568ae600d1..cca5be36464557439b7d119e97a173420b1bc4e2 100644
--- a/dom/base/nsFocusManager.cpp --- a/dom/base/nsFocusManager.cpp
+++ b/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp
@@ -1613,6 +1613,10 @@ void nsFocusManager::SetFocusInner(Element* aNewContent, int32_t aFlags, @@ -1610,6 +1610,10 @@ void nsFocusManager::SetFocusInner(Element* aNewContent, int32_t aFlags,
(GetActiveBrowsingContext() == newRootBrowsingContext); (GetActiveBrowsingContext() == newRootBrowsingContext);
} }
@ -1039,7 +1039,7 @@ index ffeb42544dccb0efb5c94b652aba4d1801d953aa..49681f4adcbac3fcb80d66ab4a08a21d
// Exit fullscreen if a website focuses another window // Exit fullscreen if a website focuses another window
if (StaticPrefs::full_screen_api_exit_on_windowRaise() && if (StaticPrefs::full_screen_api_exit_on_windowRaise() &&
!isElementInActiveWindow && (aFlags & FLAG_RAISE) && !isElementInActiveWindow && (aFlags & FLAG_RAISE) &&
@@ -2923,7 +2927,9 @@ void nsFocusManager::RaiseWindow(nsPIDOMWindowOuter* aWindow, @@ -2929,7 +2933,9 @@ void nsFocusManager::RaiseWindow(nsPIDOMWindowOuter* aWindow,
} }
} }
@ -1051,7 +1051,7 @@ index ffeb42544dccb0efb5c94b652aba4d1801d953aa..49681f4adcbac3fcb80d66ab4a08a21d
// care of lowering the present active window. This happens in // care of lowering the present active window. This happens in
// a separate runnable to avoid touching multiple windows in // a separate runnable to avoid touching multiple windows in
diff --git a/dom/base/nsGlobalWindowOuter.cpp b/dom/base/nsGlobalWindowOuter.cpp diff --git a/dom/base/nsGlobalWindowOuter.cpp b/dom/base/nsGlobalWindowOuter.cpp
index ceaf5011caab63d01401d67f2b0352678e7bd9d6..8f9e5ab07b0e825fd5d5e459b6b4233ffedc85e5 100644 index 674353189dca391077370b899b69041305c440ca..5069dd0a761e5fd666d3ae4506cd6292fdbc92d3 100644
--- a/dom/base/nsGlobalWindowOuter.cpp --- a/dom/base/nsGlobalWindowOuter.cpp
+++ b/dom/base/nsGlobalWindowOuter.cpp +++ b/dom/base/nsGlobalWindowOuter.cpp
@@ -2478,7 +2478,7 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, @@ -2478,7 +2478,7 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument,
@ -1084,7 +1084,7 @@ index ceaf5011caab63d01401d67f2b0352678e7bd9d6..8f9e5ab07b0e825fd5d5e459b6b4233f
} }
} }
@@ -2624,6 +2630,19 @@ void nsGlobalWindowOuter::DispatchDOMWindowCreated() { @@ -2621,6 +2627,19 @@ void nsGlobalWindowOuter::DispatchDOMWindowCreated() {
} }
} }
@ -1104,7 +1104,7 @@ index ceaf5011caab63d01401d67f2b0352678e7bd9d6..8f9e5ab07b0e825fd5d5e459b6b4233f
void nsGlobalWindowOuter::ClearStatus() { SetStatusOuter(u""_ns); } void nsGlobalWindowOuter::ClearStatus() { SetStatusOuter(u""_ns); }
void nsGlobalWindowOuter::SetDocShell(nsDocShell* aDocShell) { void nsGlobalWindowOuter::SetDocShell(nsDocShell* aDocShell) {
@@ -3792,6 +3811,14 @@ Maybe<CSSIntSize> nsGlobalWindowOuter::GetRDMDeviceSize( @@ -3734,6 +3753,14 @@ Maybe<CSSIntSize> nsGlobalWindowOuter::GetRDMDeviceSize(
} }
} }
} }
@ -1120,10 +1120,10 @@ index ceaf5011caab63d01401d67f2b0352678e7bd9d6..8f9e5ab07b0e825fd5d5e459b6b4233f
} }
diff --git a/dom/base/nsGlobalWindowOuter.h b/dom/base/nsGlobalWindowOuter.h diff --git a/dom/base/nsGlobalWindowOuter.h b/dom/base/nsGlobalWindowOuter.h
index ab3a63025e19a68811ea98b77c728ac70a0a63b8..32d37910dbd3a04c64ccb4f2b2cf1505e50330aa 100644 index 70cea10edfd5445c93900c876dbbcaa07dccf23b..814f29ac5fbd08e4b5b458995aa7ed17d16b5fce 100644
--- a/dom/base/nsGlobalWindowOuter.h --- a/dom/base/nsGlobalWindowOuter.h
+++ b/dom/base/nsGlobalWindowOuter.h +++ b/dom/base/nsGlobalWindowOuter.h
@@ -327,6 +327,7 @@ class nsGlobalWindowOuter final : public mozilla::dom::EventTarget, @@ -330,6 +330,7 @@ class nsGlobalWindowOuter final : public mozilla::dom::EventTarget,
// Outer windows only. // Outer windows only.
void DispatchDOMWindowCreated(); void DispatchDOMWindowCreated();
@ -1132,10 +1132,10 @@ index ab3a63025e19a68811ea98b77c728ac70a0a63b8..32d37910dbd3a04c64ccb4f2b2cf1505
// Outer windows only. // Outer windows only.
virtual void EnsureSizeAndPositionUpToDate() override; virtual void EnsureSizeAndPositionUpToDate() override;
diff --git a/dom/base/nsINode.cpp b/dom/base/nsINode.cpp diff --git a/dom/base/nsINode.cpp b/dom/base/nsINode.cpp
index 22c32682fd1a332cf77b811ae28497932cf7108f..15adc1c0dfda0d80c310db815dc9cf2215464c9c 100644 index 88e24213ce8f052d1bbe00c4fcb385aa70496552..23a463c943e630ad93cc780fb4b7b894ce76f7b9 100644
--- a/dom/base/nsINode.cpp --- a/dom/base/nsINode.cpp
+++ b/dom/base/nsINode.cpp +++ b/dom/base/nsINode.cpp
@@ -1312,6 +1312,49 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, @@ -1324,6 +1324,49 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions,
mozilla::GetBoxQuadsFromWindowOrigin(this, aOptions, aResult, aRv); mozilla::GetBoxQuadsFromWindowOrigin(this, aOptions, aResult, aRv);
} }
@ -1186,10 +1186,10 @@ index 22c32682fd1a332cf77b811ae28497932cf7108f..15adc1c0dfda0d80c310db815dc9cf22
DOMQuad& aQuad, const GeometryNode& aFrom, DOMQuad& aQuad, const GeometryNode& aFrom,
const ConvertCoordinateOptions& aOptions, CallerType aCallerType, const ConvertCoordinateOptions& aOptions, CallerType aCallerType,
diff --git a/dom/base/nsINode.h b/dom/base/nsINode.h diff --git a/dom/base/nsINode.h b/dom/base/nsINode.h
index 3991f8007498f04a07b7a46b82fb41c944330ffa..ac06535828a22c9261641c880be788b29c976b3d 100644 index 56adeeb339ec7dcf63785b46c194c38614e2b000..0421f57f310c397438090cbd3f4b4290cc21151b 100644
--- a/dom/base/nsINode.h --- a/dom/base/nsINode.h
+++ b/dom/base/nsINode.h +++ b/dom/base/nsINode.h
@@ -2123,6 +2123,10 @@ class nsINode : public mozilla::dom::EventTarget { @@ -2131,6 +2131,10 @@ class nsINode : public mozilla::dom::EventTarget {
nsTArray<RefPtr<DOMQuad>>& aResult, nsTArray<RefPtr<DOMQuad>>& aResult,
ErrorResult& aRv); ErrorResult& aRv);
@ -1201,7 +1201,7 @@ index 3991f8007498f04a07b7a46b82fb41c944330ffa..ac06535828a22c9261641c880be788b2
DOMQuad& aQuad, const TextOrElementOrDocument& aFrom, DOMQuad& aQuad, const TextOrElementOrDocument& aFrom,
const ConvertCoordinateOptions& aOptions, CallerType aCallerType, const ConvertCoordinateOptions& aOptions, CallerType aCallerType,
diff --git a/dom/base/nsJSUtils.cpp b/dom/base/nsJSUtils.cpp diff --git a/dom/base/nsJSUtils.cpp b/dom/base/nsJSUtils.cpp
index 399bae250043708540d99c188ae3dfc4587cb5ea..43c315aa22b97b30ebbc72d13296fd89076b231c 100644 index 2b8e5f7f34ee91034ddd53c858937e0f67008645..7bb979dadfa1811593d4cc3fcb306f35b2b34093 100644
--- a/dom/base/nsJSUtils.cpp --- a/dom/base/nsJSUtils.cpp
+++ b/dom/base/nsJSUtils.cpp +++ b/dom/base/nsJSUtils.cpp
@@ -169,6 +169,11 @@ bool nsJSUtils::GetScopeChainForElement( @@ -169,6 +169,11 @@ bool nsJSUtils::GetScopeChainForElement(
@ -1229,7 +1229,7 @@ index 85a21e459305f556933f4dc0fa7441d8f9ed95a9..d7cb86479ba2ed06542307349d6d86df
static bool DumpEnabled(); static bool DumpEnabled();
diff --git a/dom/chrome-webidl/BrowsingContext.webidl b/dom/chrome-webidl/BrowsingContext.webidl diff --git a/dom/chrome-webidl/BrowsingContext.webidl b/dom/chrome-webidl/BrowsingContext.webidl
index c802621cc5f710883ba2da9b44d8a24a78ddbab8..071f3e9faa1f093c06c7b66923a12d7efead65b2 100644 index 414e8367d19057d3249f07f6590fc84534406bf3..5872741f2e22d500cd3b939e66e730aaac5ad717 100644
--- a/dom/chrome-webidl/BrowsingContext.webidl --- a/dom/chrome-webidl/BrowsingContext.webidl
+++ b/dom/chrome-webidl/BrowsingContext.webidl +++ b/dom/chrome-webidl/BrowsingContext.webidl
@@ -52,6 +52,24 @@ enum PrefersColorSchemeOverride { @@ -52,6 +52,24 @@ enum PrefersColorSchemeOverride {
@ -1271,7 +1271,7 @@ index c802621cc5f710883ba2da9b44d8a24a78ddbab8..071f3e9faa1f093c06c7b66923a12d7e
* A unique identifier for the browser element that is hosting this * A unique identifier for the browser element that is hosting this
* BrowsingContext tree. Every BrowsingContext in the element's tree will * BrowsingContext tree. Every BrowsingContext in the element's tree will
diff --git a/dom/geolocation/Geolocation.cpp b/dom/geolocation/Geolocation.cpp diff --git a/dom/geolocation/Geolocation.cpp b/dom/geolocation/Geolocation.cpp
index 5f91e0ba2507a2da269617ffc71d7855942aed43..29d89af640386202b1f2525db098eee4a1bc08e7 100644 index 5b85084f551faa37ed41a3f7c15482b68b653937..b0886dc9fdd5740d24359aed29d45351599950e1 100644
--- a/dom/geolocation/Geolocation.cpp --- a/dom/geolocation/Geolocation.cpp
+++ b/dom/geolocation/Geolocation.cpp +++ b/dom/geolocation/Geolocation.cpp
@@ -23,6 +23,7 @@ @@ -23,6 +23,7 @@
@ -1282,7 +1282,7 @@ index 5f91e0ba2507a2da269617ffc71d7855942aed43..29d89af640386202b1f2525db098eee4
#include "nsGlobalWindow.h" #include "nsGlobalWindow.h"
#include "mozilla/dom/Document.h" #include "mozilla/dom/Document.h"
#include "nsINamed.h" #include "nsINamed.h"
@@ -259,10 +260,8 @@ nsGeolocationRequest::Allow(JS::HandleValue aChoices) { @@ -260,10 +261,8 @@ nsGeolocationRequest::Allow(JS::Handle<JS::Value> aChoices) {
return NS_OK; return NS_OK;
} }
@ -1295,7 +1295,7 @@ index 5f91e0ba2507a2da269617ffc71d7855942aed43..29d89af640386202b1f2525db098eee4
CachedPositionAndAccuracy lastPosition = gs->GetCachedPosition(); CachedPositionAndAccuracy lastPosition = gs->GetCachedPosition();
if (lastPosition.position) { if (lastPosition.position) {
EpochTimeStamp cachedPositionTime_ms; EpochTimeStamp cachedPositionTime_ms;
@@ -435,8 +434,7 @@ void nsGeolocationRequest::Shutdown() { @@ -436,8 +435,7 @@ void nsGeolocationRequest::Shutdown() {
// If there are no other high accuracy requests, the geolocation service will // If there are no other high accuracy requests, the geolocation service will
// notify the provider to switch to the default accuracy. // notify the provider to switch to the default accuracy.
if (mOptions && mOptions->mEnableHighAccuracy) { if (mOptions && mOptions->mEnableHighAccuracy) {
@ -1305,7 +1305,7 @@ index 5f91e0ba2507a2da269617ffc71d7855942aed43..29d89af640386202b1f2525db098eee4
if (gs) { if (gs) {
gs->UpdateAccuracy(); gs->UpdateAccuracy();
} }
@@ -717,8 +715,14 @@ void nsGeolocationService::StopDevice() { @@ -727,8 +725,14 @@ void nsGeolocationService::StopDevice() {
StaticRefPtr<nsGeolocationService> nsGeolocationService::sService; StaticRefPtr<nsGeolocationService> nsGeolocationService::sService;
already_AddRefed<nsGeolocationService> already_AddRefed<nsGeolocationService>
@ -1321,7 +1321,7 @@ index 5f91e0ba2507a2da269617ffc71d7855942aed43..29d89af640386202b1f2525db098eee4
if (nsGeolocationService::sService) { if (nsGeolocationService::sService) {
result = nsGeolocationService::sService; result = nsGeolocationService::sService;
@@ -810,7 +814,9 @@ nsresult Geolocation::Init(nsPIDOMWindowInner* aContentDom) { @@ -820,7 +824,9 @@ nsresult Geolocation::Init(nsPIDOMWindowInner* aContentDom) {
// If no aContentDom was passed into us, we are being used // If no aContentDom was passed into us, we are being used
// by chrome/c++ and have no mOwner, no mPrincipal, and no need // by chrome/c++ and have no mOwner, no mPrincipal, and no need
// to prompt. // to prompt.
@ -1333,7 +1333,7 @@ index 5f91e0ba2507a2da269617ffc71d7855942aed43..29d89af640386202b1f2525db098eee4
mService->AddLocator(this); mService->AddLocator(this);
} }
diff --git a/dom/geolocation/Geolocation.h b/dom/geolocation/Geolocation.h diff --git a/dom/geolocation/Geolocation.h b/dom/geolocation/Geolocation.h
index 893192d7a33ade248dc32a201fbf5ec418793920..d85ffb5b3b19698b1ed6edd4615976167cf8c034 100644 index 5c0d2f96a22c6928d6aee5a226032c0944ae7a54..5a7bb1f6cea1946eea143dca4e2f1e19746a04a4 100644
--- a/dom/geolocation/Geolocation.h --- a/dom/geolocation/Geolocation.h
+++ b/dom/geolocation/Geolocation.h +++ b/dom/geolocation/Geolocation.h
@@ -31,6 +31,7 @@ @@ -31,6 +31,7 @@
@ -1344,19 +1344,7 @@ index 893192d7a33ade248dc32a201fbf5ec418793920..d85ffb5b3b19698b1ed6edd461597616
class nsGeolocationService; class nsGeolocationService;
class nsGeolocationRequest; class nsGeolocationRequest;
@@ -42,6 +43,11 @@ using GeoPositionCallback = @@ -48,13 +49,14 @@ struct CachedPositionAndAccuracy {
CallbackObjectHolder<PositionCallback, nsIDOMGeoPositionCallback>;
using GeoPositionErrorCallback =
CallbackObjectHolder<PositionErrorCallback, nsIDOMGeoPositionErrorCallback>;
+typedef CallbackObjectHolder<PositionCallback, nsIDOMGeoPositionCallback>
+ GeoPositionCallback;
+typedef CallbackObjectHolder<PositionErrorCallback,
+ nsIDOMGeoPositionErrorCallback>
+ GeoPositionErrorCallback;
} // namespace dom
} // namespace mozilla
@@ -50,13 +56,14 @@ struct CachedPositionAndAccuracy {
bool isHighAccuracy; bool isHighAccuracy;
}; };
@ -1372,7 +1360,7 @@ index 893192d7a33ade248dc32a201fbf5ec418793920..d85ffb5b3b19698b1ed6edd461597616
static mozilla::StaticRefPtr<nsGeolocationService> sService; static mozilla::StaticRefPtr<nsGeolocationService> sService;
NS_DECL_THREADSAFE_ISUPPORTS NS_DECL_THREADSAFE_ISUPPORTS
@@ -182,6 +189,8 @@ class Geolocation final : public nsIGeolocationUpdate, public nsWrapperCache { @@ -179,6 +181,8 @@ class Geolocation final : public nsIGeolocationUpdate, public nsWrapperCache {
// null. // null.
static already_AddRefed<Geolocation> NonWindowSingleton(); static already_AddRefed<Geolocation> NonWindowSingleton();
@ -1382,7 +1370,7 @@ index 893192d7a33ade248dc32a201fbf5ec418793920..d85ffb5b3b19698b1ed6edd461597616
~Geolocation(); ~Geolocation();
diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp
index 9fb48fd6d15322bbf324fc63c3c6dec05a2bfb9f..c09d509603cbf4740ba867e4abdd946685d6c626 100644 index c8888eb6cfb0319e83d711d6958f8d03faf409d7..878a72a2aa005fd2ee7ac0290706629b66ddb837 100644
--- a/dom/html/HTMLInputElement.cpp --- a/dom/html/HTMLInputElement.cpp
+++ b/dom/html/HTMLInputElement.cpp +++ b/dom/html/HTMLInputElement.cpp
@@ -53,6 +53,7 @@ @@ -53,6 +53,7 @@
@ -1393,7 +1381,7 @@ index 9fb48fd6d15322bbf324fc63c3c6dec05a2bfb9f..c09d509603cbf4740ba867e4abdd9466
#include "nsIFormControlFrame.h" #include "nsIFormControlFrame.h"
#include "nsITextControlFrame.h" #include "nsITextControlFrame.h"
#include "nsIFrame.h" #include "nsIFrame.h"
@@ -743,6 +744,12 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) { @@ -746,6 +747,12 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) {
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
@ -1407,10 +1395,10 @@ index 9fb48fd6d15322bbf324fc63c3c6dec05a2bfb9f..c09d509603cbf4740ba867e4abdd9466
return NS_OK; return NS_OK;
} }
diff --git a/dom/interfaces/base/nsIDOMWindowUtils.idl b/dom/interfaces/base/nsIDOMWindowUtils.idl diff --git a/dom/interfaces/base/nsIDOMWindowUtils.idl b/dom/interfaces/base/nsIDOMWindowUtils.idl
index 60ccb8838ea6a0b040c2c1fc42e554ef00de8826..942120ecbc6900803ebfeff717be621be519c0cf 100644 index c16b813f29d8a519673129bb7debaaec0430145a..6f82922ac7e889e55beda7d43da3ebe6adeb7ca9 100644
--- a/dom/interfaces/base/nsIDOMWindowUtils.idl --- a/dom/interfaces/base/nsIDOMWindowUtils.idl
+++ b/dom/interfaces/base/nsIDOMWindowUtils.idl +++ b/dom/interfaces/base/nsIDOMWindowUtils.idl
@@ -364,7 +364,8 @@ interface nsIDOMWindowUtils : nsISupports { @@ -375,7 +375,8 @@ interface nsIDOMWindowUtils : nsISupports {
[optional] in boolean aIsDOMEventSynthesized, [optional] in boolean aIsDOMEventSynthesized,
[optional] in boolean aIsWidgetEventSynthesized, [optional] in boolean aIsWidgetEventSynthesized,
[optional] in long aButtons, [optional] in long aButtons,
@ -1421,10 +1409,10 @@ index 60ccb8838ea6a0b040c2c1fc42e554ef00de8826..942120ecbc6900803ebfeff717be621b
/** Synthesize a touch event. The event types supported are: /** Synthesize a touch event. The event types supported are:
* touchstart, touchend, touchmove, and touchcancel * touchstart, touchend, touchmove, and touchcancel
diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.cc b/dom/media/systemservices/video_engine/desktop_capture_impl.cc diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.cc b/dom/media/systemservices/video_engine/desktop_capture_impl.cc
index e744940a8e7517b39a73509da3942c2cac9ee0c1..9ba6fe797ed0707137f9cf32b784544d0db0195c 100644 index 9d4e8fbbfe8d45cc6245c7659423004ad1ceedeb..70150e9271720a562fd646a50d30369965d8521a 100644
--- a/dom/media/systemservices/video_engine/desktop_capture_impl.cc --- a/dom/media/systemservices/video_engine/desktop_capture_impl.cc
+++ b/dom/media/systemservices/video_engine/desktop_capture_impl.cc +++ b/dom/media/systemservices/video_engine/desktop_capture_impl.cc
@@ -122,10 +122,11 @@ int32_t ScreenDeviceInfoImpl::GetOrientation(const char* deviceUniqueIdUTF8, @@ -123,10 +123,11 @@ int32_t ScreenDeviceInfoImpl::GetOrientation(const char* deviceUniqueIdUTF8,
return 0; return 0;
} }
@ -1439,7 +1427,7 @@ index e744940a8e7517b39a73509da3942c2cac9ee0c1..9ba6fe797ed0707137f9cf32b784544d
} }
int32_t WindowDeviceInfoImpl::Init() { int32_t WindowDeviceInfoImpl::Init() {
@@ -357,9 +358,13 @@ int32_t DesktopCaptureImpl::Init() { @@ -358,9 +359,13 @@ int32_t DesktopCaptureImpl::Init() {
DesktopCapturer::SourceId sourceId = atoi(_deviceUniqueId.c_str()); DesktopCapturer::SourceId sourceId = atoi(_deviceUniqueId.c_str());
pWindowCapturer->SelectSource(sourceId); pWindowCapturer->SelectSource(sourceId);
@ -1456,7 +1444,7 @@ index e744940a8e7517b39a73509da3942c2cac9ee0c1..9ba6fe797ed0707137f9cf32b784544d
} else if (_deviceType == CaptureDeviceType::Browser) { } else if (_deviceType == CaptureDeviceType::Browser) {
// XXX We don't capture cursors, so avoid the extra indirection layer. We // XXX We don't capture cursors, so avoid the extra indirection layer. We
// could also pass null for the pMouseCursorMonitor. // could also pass null for the pMouseCursorMonitor.
@@ -376,13 +381,15 @@ int32_t DesktopCaptureImpl::Init() { @@ -377,13 +382,15 @@ int32_t DesktopCaptureImpl::Init() {
} }
DesktopCaptureImpl::DesktopCaptureImpl(const int32_t id, const char* uniqueId, DesktopCaptureImpl::DesktopCaptureImpl(const int32_t id, const char* uniqueId,
@ -1473,7 +1461,7 @@ index e744940a8e7517b39a73509da3942c2cac9ee0c1..9ba6fe797ed0707137f9cf32b784544d
time_event_(EventWrapper::Create()), time_event_(EventWrapper::Create()),
#if defined(_WIN32) #if defined(_WIN32)
capturer_thread_( capturer_thread_(
@@ -427,6 +434,19 @@ void DesktopCaptureImpl::DeRegisterCaptureDataCallback( @@ -428,6 +435,19 @@ void DesktopCaptureImpl::DeRegisterCaptureDataCallback(
} }
} }
@ -1493,7 +1481,7 @@ index e744940a8e7517b39a73509da3942c2cac9ee0c1..9ba6fe797ed0707137f9cf32b784544d
int32_t DesktopCaptureImpl::StopCaptureIfAllClientsClose() { int32_t DesktopCaptureImpl::StopCaptureIfAllClientsClose() {
if (_dataCallBacks.empty()) { if (_dataCallBacks.empty()) {
return StopCapture(); return StopCapture();
@@ -627,6 +647,12 @@ void DesktopCaptureImpl::OnCaptureResult(DesktopCapturer::Result result, @@ -636,6 +656,12 @@ void DesktopCaptureImpl::OnCaptureResult(DesktopCapturer::Result result,
frameInfo.height = frame->size().height(); frameInfo.height = frame->size().height();
frameInfo.videoType = VideoType::kARGB; frameInfo.videoType = VideoType::kARGB;
@ -1507,10 +1495,10 @@ index e744940a8e7517b39a73509da3942c2cac9ee0c1..9ba6fe797ed0707137f9cf32b784544d
frameInfo.width * frameInfo.height * DesktopFrame::kBytesPerPixel; frameInfo.width * frameInfo.height * DesktopFrame::kBytesPerPixel;
IncomingFrame(videoFrame, videoFrameLength, IncomingFrame(videoFrame, videoFrameLength,
diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.h b/dom/media/systemservices/video_engine/desktop_capture_impl.h diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.h b/dom/media/systemservices/video_engine/desktop_capture_impl.h
index a07735e4f046b98d4380ecaa8327620e3819c4d8..29b9b63f1b8dfbcec302a5db49f1032205076795 100644 index b725849dab1d1f898ab988e57a35c27e3eb44700..e2e13b0a0926475fe673fecf5e3c497569d158b3 100644
--- a/dom/media/systemservices/video_engine/desktop_capture_impl.h --- a/dom/media/systemservices/video_engine/desktop_capture_impl.h
+++ b/dom/media/systemservices/video_engine/desktop_capture_impl.h +++ b/dom/media/systemservices/video_engine/desktop_capture_impl.h
@@ -44,6 +44,21 @@ namespace webrtc { @@ -46,6 +46,21 @@ namespace webrtc {
class VideoCaptureEncodeInterface; class VideoCaptureEncodeInterface;
@ -1532,7 +1520,7 @@ index a07735e4f046b98d4380ecaa8327620e3819c4d8..29b9b63f1b8dfbcec302a5db49f10322
// simulate deviceInfo interface for video engine, bridge screen/application and // simulate deviceInfo interface for video engine, bridge screen/application and
// real screen/application device info // real screen/application device info
@@ -156,12 +171,13 @@ class BrowserDeviceInfoImpl : public VideoCaptureModule::DeviceInfo { @@ -158,12 +173,13 @@ class BrowserDeviceInfoImpl : public VideoCaptureModule::DeviceInfo {
// As with video, DesktopCaptureImpl is a proxy for screen sharing // As with video, DesktopCaptureImpl is a proxy for screen sharing
// and follows the video pipeline design // and follows the video pipeline design
class DesktopCaptureImpl : public DesktopCapturer::Callback, class DesktopCaptureImpl : public DesktopCapturer::Callback,
@ -1549,7 +1537,7 @@ index a07735e4f046b98d4380ecaa8327620e3819c4d8..29b9b63f1b8dfbcec302a5db49f10322
static VideoCaptureModule::DeviceInfo* CreateDeviceInfo( static VideoCaptureModule::DeviceInfo* CreateDeviceInfo(
const int32_t id, const CaptureDeviceType type); const int32_t id, const CaptureDeviceType type);
@@ -171,6 +187,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, @@ -173,6 +189,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
void DeRegisterCaptureDataCallback( void DeRegisterCaptureDataCallback(
rtc::VideoSinkInterface<VideoFrame>* dataCallback) override; rtc::VideoSinkInterface<VideoFrame>* dataCallback) override;
int32_t StopCaptureIfAllClientsClose() override; int32_t StopCaptureIfAllClientsClose() override;
@ -1558,7 +1546,7 @@ index a07735e4f046b98d4380ecaa8327620e3819c4d8..29b9b63f1b8dfbcec302a5db49f10322
int32_t SetCaptureRotation(VideoRotation rotation) override; int32_t SetCaptureRotation(VideoRotation rotation) override;
bool SetApplyRotation(bool enable) override; bool SetApplyRotation(bool enable) override;
@@ -191,7 +209,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, @@ -193,7 +211,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
protected: protected:
DesktopCaptureImpl(const int32_t id, const char* uniqueId, DesktopCaptureImpl(const int32_t id, const char* uniqueId,
@ -1567,7 +1555,7 @@ index a07735e4f046b98d4380ecaa8327620e3819c4d8..29b9b63f1b8dfbcec302a5db49f10322
virtual ~DesktopCaptureImpl(); virtual ~DesktopCaptureImpl();
int32_t DeliverCapturedFrame(webrtc::VideoFrame& captureFrame); int32_t DeliverCapturedFrame(webrtc::VideoFrame& captureFrame);
@@ -213,6 +231,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, @@ -215,6 +233,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
rtc::RecursiveCriticalSection _apiCs; rtc::RecursiveCriticalSection _apiCs;
std::set<rtc::VideoSinkInterface<VideoFrame>*> _dataCallBacks; std::set<rtc::VideoSinkInterface<VideoFrame>*> _dataCallBacks;
@ -1575,8 +1563,8 @@ index a07735e4f046b98d4380ecaa8327620e3819c4d8..29b9b63f1b8dfbcec302a5db49f10322
int64_t _incomingFrameTimesNanos int64_t _incomingFrameTimesNanos
[kFrameRateCountHistorySize]; // timestamp for local captured frames [kFrameRateCountHistorySize]; // timestamp for local captured frames
@@ -234,6 +253,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, @@ -237,6 +256,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
void process(); void ProcessIter();
private: private:
+ bool capture_cursor_ = true; + bool capture_cursor_ = true;
@ -1628,7 +1616,7 @@ index 8c8a5810fd56512cf37635da1f43757719f06113..d2bc58fcd3b05f989f948839d574d00d
return aGlobalOrNull; return aGlobalOrNull;
diff --git a/dom/security/nsCSPUtils.cpp b/dom/security/nsCSPUtils.cpp diff --git a/dom/security/nsCSPUtils.cpp b/dom/security/nsCSPUtils.cpp
index 7c270d908b14088cb67e3d21919b7c7af447c190..c7b7123b7639995772aa23ae81f2c7f488ddb966 100644 index b31ca1000cb1d7b8ca1af74b9ac0313aba053875..54abd38a35fc2b4906760c370d9f96d7f2ade0e2 100644
--- a/dom/security/nsCSPUtils.cpp --- a/dom/security/nsCSPUtils.cpp
+++ b/dom/security/nsCSPUtils.cpp +++ b/dom/security/nsCSPUtils.cpp
@@ -127,6 +127,11 @@ void CSP_ApplyMetaCSPToDoc(mozilla::dom::Document& aDoc, @@ -127,6 +127,11 @@ void CSP_ApplyMetaCSPToDoc(mozilla::dom::Document& aDoc,
@ -1658,10 +1646,10 @@ index 2f71b284ee5f7e11f117c447834b48355784448c..d996e0a3cbbb19c1dc320c305c6d7403
* returned quads are further translated relative to the window * returned quads are further translated relative to the window
* origin -- which is not the layout origin. Further translation * origin -- which is not the layout origin. Further translation
diff --git a/dom/workers/RuntimeService.cpp b/dom/workers/RuntimeService.cpp diff --git a/dom/workers/RuntimeService.cpp b/dom/workers/RuntimeService.cpp
index c33dc6bea849ccd161a4e82a44ceb9b0d1dc54f3..12ad9ec8ad0c6c8671a4d3aa3cb75ffb0c96f5db 100644 index 1422ee80d2ac3cf24304f3b2318ad0bc7da7efe7..1940994c96c2c714761d242f374973b08e81d51d 100644
--- a/dom/workers/RuntimeService.cpp --- a/dom/workers/RuntimeService.cpp
+++ b/dom/workers/RuntimeService.cpp +++ b/dom/workers/RuntimeService.cpp
@@ -958,7 +958,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) { @@ -976,7 +976,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) {
AssertIsOnMainThread(); AssertIsOnMainThread();
nsTArray<nsString> languages; nsTArray<nsString> languages;
@ -1670,7 +1658,7 @@ index c33dc6bea849ccd161a4e82a44ceb9b0d1dc54f3..12ad9ec8ad0c6c8671a4d3aa3cb75ffb
RuntimeService* runtime = RuntimeService::GetService(); RuntimeService* runtime = RuntimeService::GetService();
if (runtime) { if (runtime) {
@@ -1160,8 +1160,7 @@ bool RuntimeService::RegisterWorker(WorkerPrivate& aWorkerPrivate) { @@ -1178,8 +1178,7 @@ bool RuntimeService::RegisterWorker(WorkerPrivate& aWorkerPrivate) {
} }
// The navigator overridden properties should have already been read. // The navigator overridden properties should have already been read.
@ -1680,7 +1668,7 @@ index c33dc6bea849ccd161a4e82a44ceb9b0d1dc54f3..12ad9ec8ad0c6c8671a4d3aa3cb75ffb
mNavigatorPropertiesLoaded = true; mNavigatorPropertiesLoaded = true;
} }
@@ -1760,6 +1759,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted( @@ -1783,6 +1782,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted(
} }
} }
@ -1694,7 +1682,7 @@ index c33dc6bea849ccd161a4e82a44ceb9b0d1dc54f3..12ad9ec8ad0c6c8671a4d3aa3cb75ffb
template <typename Func> template <typename Func>
void RuntimeService::BroadcastAllWorkers(const Func& aFunc) { void RuntimeService::BroadcastAllWorkers(const Func& aFunc) {
AssertIsOnMainThread(); AssertIsOnMainThread();
@@ -2175,6 +2181,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers( @@ -2198,6 +2204,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers(
} }
} }
@ -1710,10 +1698,10 @@ index c33dc6bea849ccd161a4e82a44ceb9b0d1dc54f3..12ad9ec8ad0c6c8671a4d3aa3cb75ffb
MOZ_ASSERT(!NS_IsMainThread()); MOZ_ASSERT(!NS_IsMainThread());
MOZ_ASSERT(aCx); MOZ_ASSERT(aCx);
diff --git a/dom/workers/RuntimeService.h b/dom/workers/RuntimeService.h diff --git a/dom/workers/RuntimeService.h b/dom/workers/RuntimeService.h
index ca44a269c65959940865853c5e40120eabb5101a..704ecf69807ccbc4bada4a9bcd0ce6343021a7cd 100644 index ef32cc847e8b86319830bb93879aaf809fe464d4..5db3be0dc87e50ff75177194ca734313b22509d6 100644
--- a/dom/workers/RuntimeService.h --- a/dom/workers/RuntimeService.h
+++ b/dom/workers/RuntimeService.h +++ b/dom/workers/RuntimeService.h
@@ -111,6 +111,8 @@ class RuntimeService final : public nsIObserver { @@ -110,6 +110,8 @@ class RuntimeService final : public nsIObserver {
void PropagateStorageAccessPermissionGranted( void PropagateStorageAccessPermissionGranted(
const nsPIDOMWindowInner& aWindow); const nsPIDOMWindowInner& aWindow);
@ -1723,10 +1711,10 @@ index ca44a269c65959940865853c5e40120eabb5101a..704ecf69807ccbc4bada4a9bcd0ce634
return mNavigatorProperties; return mNavigatorProperties;
} }
diff --git a/dom/workers/WorkerCommon.h b/dom/workers/WorkerCommon.h diff --git a/dom/workers/WorkerCommon.h b/dom/workers/WorkerCommon.h
index 8b1b46d69f2c90d851d292c285a1ba9bdbd4d9b7..dea5259b0a82e5e6d3c431fc78e60d5df80b3eda 100644 index d10dabb5c5ff8e17851edf2bd2efc08e74584d8e..53c4070c5fde43b27fb8fbfdcf4c23d8af57fba3 100644
--- a/dom/workers/WorkerCommon.h --- a/dom/workers/WorkerCommon.h
+++ b/dom/workers/WorkerCommon.h +++ b/dom/workers/WorkerCommon.h
@@ -45,6 +45,8 @@ void ResumeWorkersForWindow(const nsPIDOMWindowInner& aWindow); @@ -44,6 +44,8 @@ void ResumeWorkersForWindow(const nsPIDOMWindowInner& aWindow);
void PropagateStorageAccessPermissionGrantedToWorkers( void PropagateStorageAccessPermissionGrantedToWorkers(
const nsPIDOMWindowInner& aWindow); const nsPIDOMWindowInner& aWindow);
@ -1736,7 +1724,7 @@ index 8b1b46d69f2c90d851d292c285a1ba9bdbd4d9b7..dea5259b0a82e5e6d3c431fc78e60d5d
bool IsWorkerGlobal(JSObject* global); bool IsWorkerGlobal(JSObject* global);
diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp
index 409142d06f9323621cd35b70e3a6d0eea4c00502..457f90743f27a6c9b6c988b477ff63908aa0e27d 100644 index 957103c9baec027ed667ccea45cdde5f44961daf..2eb02b70b59c515d8c758cf576dac2b18c8df80e 100644
--- a/dom/workers/WorkerPrivate.cpp --- a/dom/workers/WorkerPrivate.cpp
+++ b/dom/workers/WorkerPrivate.cpp +++ b/dom/workers/WorkerPrivate.cpp
@@ -695,6 +695,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { @@ -695,6 +695,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable {
@ -1758,7 +1746,7 @@ index 409142d06f9323621cd35b70e3a6d0eea4c00502..457f90743f27a6c9b6c988b477ff6390
class UpdateLanguagesRunnable final : public WorkerRunnable { class UpdateLanguagesRunnable final : public WorkerRunnable {
nsTArray<nsString> mLanguages; nsTArray<nsString> mLanguages;
@@ -1892,6 +1904,16 @@ void WorkerPrivate::UpdateContextOptions( @@ -1925,6 +1937,16 @@ void WorkerPrivate::UpdateContextOptions(
} }
} }
@ -1775,7 +1763,7 @@ index 409142d06f9323621cd35b70e3a6d0eea4c00502..457f90743f27a6c9b6c988b477ff6390
void WorkerPrivate::UpdateLanguages(const nsTArray<nsString>& aLanguages) { void WorkerPrivate::UpdateLanguages(const nsTArray<nsString>& aLanguages) {
AssertIsOnParentThread(); AssertIsOnParentThread();
@@ -5053,6 +5075,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( @@ -5086,6 +5108,15 @@ void WorkerPrivate::UpdateContextOptionsInternal(
} }
} }
@ -1792,7 +1780,7 @@ index 409142d06f9323621cd35b70e3a6d0eea4c00502..457f90743f27a6c9b6c988b477ff6390
const nsTArray<nsString>& aLanguages) { const nsTArray<nsString>& aLanguages) {
WorkerGlobalScope* globalScope = GlobalScope(); WorkerGlobalScope* globalScope = GlobalScope();
diff --git a/dom/workers/WorkerPrivate.h b/dom/workers/WorkerPrivate.h diff --git a/dom/workers/WorkerPrivate.h b/dom/workers/WorkerPrivate.h
index 43a0a10d14b2b52c1318d8678fc9d549381a811d..ed3b79125a412634853bc0ced6f108a21aa40453 100644 index 1f31c4a6a94491cb6c981655e30e1fd42c4dbfc1..dbfdf4fc27f112e7cadbb768a858323f8ee919d1 100644
--- a/dom/workers/WorkerPrivate.h --- a/dom/workers/WorkerPrivate.h
+++ b/dom/workers/WorkerPrivate.h +++ b/dom/workers/WorkerPrivate.h
@@ -330,6 +330,8 @@ class WorkerPrivate final @@ -330,6 +330,8 @@ class WorkerPrivate final
@ -1804,7 +1792,7 @@ index 43a0a10d14b2b52c1318d8678fc9d549381a811d..ed3b79125a412634853bc0ced6f108a2
void UpdateLanguagesInternal(const nsTArray<nsString>& aLanguages); void UpdateLanguagesInternal(const nsTArray<nsString>& aLanguages);
void UpdateJSWorkerMemoryParameterInternal(JSContext* aCx, JSGCParamKey key, void UpdateJSWorkerMemoryParameterInternal(JSContext* aCx, JSGCParamKey key,
@@ -950,6 +952,8 @@ class WorkerPrivate final @@ -966,6 +968,8 @@ class WorkerPrivate final
void UpdateContextOptions(const JS::ContextOptions& aContextOptions); void UpdateContextOptions(const JS::ContextOptions& aContextOptions);
@ -1866,10 +1854,10 @@ index bb69d58dc96ed7f0b37f73e26abdd0bdfeaaf556..8436d439f72287176a2fe6a1a837d3db
inline ClippedTime TimeClip(double time); inline ClippedTime TimeClip(double time);
diff --git a/js/src/debugger/Object.cpp b/js/src/debugger/Object.cpp diff --git a/js/src/debugger/Object.cpp b/js/src/debugger/Object.cpp
index 838eb84e208a6ee101371ea05ce048615bcd1f1f..ee248d0069d2b710d6ec4279d88e4a63ede721f5 100644 index 1c00fed8e0dc84b12c9b1c169d841e27402579a1..ad25cb5f8a0572c9c8622f85551b79dd2ffea819 100644
--- a/js/src/debugger/Object.cpp --- a/js/src/debugger/Object.cpp
+++ b/js/src/debugger/Object.cpp +++ b/js/src/debugger/Object.cpp
@@ -2371,7 +2371,11 @@ Maybe<Completion> DebuggerObject::call(JSContext* cx, @@ -2373,7 +2373,11 @@ Maybe<Completion> DebuggerObject::call(JSContext* cx,
invokeArgs[i].set(args2[i]); invokeArgs[i].set(args2[i]);
} }
@ -1981,10 +1969,10 @@ index 3ce936fe3a4a83f9161eddc9e5289322d6a363e3..6b1c34244d8b2f2102ec423e2d96812f
void internalResyncICUDefaultTimeZone(); void internalResyncICUDefaultTimeZone();
diff --git a/layout/base/PresShell.cpp b/layout/base/PresShell.cpp diff --git a/layout/base/PresShell.cpp b/layout/base/PresShell.cpp
index 63f7f0524b0d87fb8b2950963888a27865a8d089..603d16543a7b0c4d20840ca5b2f12665dc310fa7 100644 index 8cd1cee03620a33e3301373bb0ba3f1f0cfa062b..7100faf245bf35af3da20dba3dc49d4f65fcb8a5 100644
--- a/layout/base/PresShell.cpp --- a/layout/base/PresShell.cpp
+++ b/layout/base/PresShell.cpp +++ b/layout/base/PresShell.cpp
@@ -10886,7 +10886,9 @@ auto PresShell::ComputeActiveness() const -> Activeness { @@ -10901,7 +10901,9 @@ auto PresShell::ComputeActiveness() const -> Activeness {
if (!browserChild->IsVisible()) { if (!browserChild->IsVisible()) {
MOZ_LOG(gLog, LogLevel::Debug, MOZ_LOG(gLog, LogLevel::Debug,
(" > BrowserChild %p is not visible", browserChild)); (" > BrowserChild %p is not visible", browserChild));
@ -1996,10 +1984,10 @@ index 63f7f0524b0d87fb8b2950963888a27865a8d089..603d16543a7b0c4d20840ca5b2f12665
// If the browser is visible but just due to be preserving layers // If the browser is visible but just due to be preserving layers
diff --git a/layout/style/GeckoBindings.h b/layout/style/GeckoBindings.h diff --git a/layout/style/GeckoBindings.h b/layout/style/GeckoBindings.h
index a384a0d00ce970a3e9db8983deaa012b45a76324..954bf59def43fdbb62924f35b45cde5f6c1a9fff 100644 index 8b434ea8977e1c3a4a9238d00477dd012a170596..1980be6beff1b4dc7720eb9518ed2b265cc675e0 100644
--- a/layout/style/GeckoBindings.h --- a/layout/style/GeckoBindings.h
+++ b/layout/style/GeckoBindings.h +++ b/layout/style/GeckoBindings.h
@@ -586,6 +586,7 @@ void Gecko_MediaFeatures_GetDeviceSize(const mozilla::dom::Document*, @@ -567,6 +567,7 @@ void Gecko_MediaFeatures_GetDeviceSize(const mozilla::dom::Document*,
float Gecko_MediaFeatures_GetResolution(const mozilla::dom::Document*); float Gecko_MediaFeatures_GetResolution(const mozilla::dom::Document*);
bool Gecko_MediaFeatures_PrefersReducedMotion(const mozilla::dom::Document*); bool Gecko_MediaFeatures_PrefersReducedMotion(const mozilla::dom::Document*);
@ -2040,10 +2028,10 @@ index f2723e654098ff27542e1eb16a536c11ad0af617..b0b480551ff7d895dfdeb5a980087485
/* Use accelerated SIMD routines. */ /* Use accelerated SIMD routines. */
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
index 9db483dc45ff297064630effceb1d5f46c31905b..29a28d7a19c714ecaf79a77944912ad4a06e4f32 100644 index 03fda287c5203648ac3535e57bcf94f6c78606fb..4f76df0900eada6c1eaae41a7f0cd2cf8480dfa0 100644
--- a/modules/libpref/init/all.js --- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js
@@ -4531,7 +4531,9 @@ pref("devtools.experiment.f12.shortcut_disabled", false); @@ -4341,7 +4341,9 @@ pref("devtools.experiment.f12.shortcut_disabled", false);
// doesn't provide a way to lock the pref // doesn't provide a way to lock the pref
pref("dom.postMessage.sharedArrayBuffer.bypassCOOP_COEP.insecure.enabled", false); pref("dom.postMessage.sharedArrayBuffer.bypassCOOP_COEP.insecure.enabled", false);
#else #else
@ -2114,10 +2102,10 @@ index 4504ade8e6b3be9404e0d72fd30f60939831ed0f..34988ac3ede846d0aaa0d4637439108f
cmd = [strip] + flags + [path] cmd = [strip] + flags + [path]
if subprocess.call(cmd) != 0: if subprocess.call(cmd) != 0:
diff --git a/security/manager/ssl/nsCertOverrideService.cpp b/security/manager/ssl/nsCertOverrideService.cpp diff --git a/security/manager/ssl/nsCertOverrideService.cpp b/security/manager/ssl/nsCertOverrideService.cpp
index 6f5713d20e23ab7e71499528e109e2446216338d..64f09ebaec26961cabedb1e6642f8e61f8fa68b8 100644 index 153722c33b9db6475aa5134ad5b665051ac68658..74324d95f7088c65c3d52ab2a7c40e89901d9512 100644
--- a/security/manager/ssl/nsCertOverrideService.cpp --- a/security/manager/ssl/nsCertOverrideService.cpp
+++ b/security/manager/ssl/nsCertOverrideService.cpp +++ b/security/manager/ssl/nsCertOverrideService.cpp
@@ -570,7 +570,12 @@ nsCertOverrideService::HasMatchingOverride( @@ -572,7 +572,12 @@ nsCertOverrideService::HasMatchingOverride(
bool disableAllSecurityCheck = false; bool disableAllSecurityCheck = false;
{ {
MutexAutoLock lock(mMutex); MutexAutoLock lock(mMutex);
@ -2131,7 +2119,7 @@ index 6f5713d20e23ab7e71499528e109e2446216338d..64f09ebaec26961cabedb1e6642f8e61
} }
if (disableAllSecurityCheck) { if (disableAllSecurityCheck) {
nsCertOverride::OverrideBits all = nsCertOverride::OverrideBits::Untrusted | nsCertOverride::OverrideBits all = nsCertOverride::OverrideBits::Untrusted |
@@ -774,14 +779,24 @@ static bool IsDebugger() { @@ -789,14 +794,24 @@ static bool IsDebugger() {
NS_IMETHODIMP NS_IMETHODIMP
nsCertOverrideService:: nsCertOverrideService::
@ -2160,17 +2148,17 @@ index 6f5713d20e23ab7e71499528e109e2446216338d..64f09ebaec26961cabedb1e6642f8e61
nsCOMPtr<nsINSSComponent> nss(do_GetService(PSM_COMPONENT_CONTRACTID)); nsCOMPtr<nsINSSComponent> nss(do_GetService(PSM_COMPONENT_CONTRACTID));
diff --git a/security/manager/ssl/nsCertOverrideService.h b/security/manager/ssl/nsCertOverrideService.h diff --git a/security/manager/ssl/nsCertOverrideService.h b/security/manager/ssl/nsCertOverrideService.h
index 6f924246ee1c6c3bb118e643d7851c320a380664..ea3af29f08ec1e0aa5093ca375601a027c148fcb 100644 index e601df1b13d9b2c028bffe6348d052960c80951c..0d782585199479db6218f4c72ed7b6133e3122b3 100644
--- a/security/manager/ssl/nsCertOverrideService.h --- a/security/manager/ssl/nsCertOverrideService.h
+++ b/security/manager/ssl/nsCertOverrideService.h +++ b/security/manager/ssl/nsCertOverrideService.h
@@ -133,6 +133,7 @@ class nsCertOverrideService final : public nsICertOverrideService, @@ -134,6 +134,7 @@ class nsCertOverrideService final : public nsICertOverrideService,
~nsCertOverrideService();
mozilla::Mutex mMutex;
bool mDisableAllSecurityCheck GUARDED_BY(mMutex);
+ mozilla::HashSet<uint32_t> mUserContextIdsWithDisabledSecurityChecks GUARDED_BY(mMutex);
nsCOMPtr<nsIFile> mSettingsFile GUARDED_BY(mMutex);
nsTHashtable<nsCertOverrideEntry> mSettingsTable GUARDED_BY(mMutex);
mozilla::Mutex mMutex MOZ_UNANNOTATED;
+ mozilla::HashSet<uint32_t> mUserContextIdsWithDisabledSecurityChecks;
bool mDisableAllSecurityCheck;
nsCOMPtr<nsIFile> mSettingsFile;
nsTHashtable<nsCertOverrideEntry> mSettingsTable;
diff --git a/security/manager/ssl/nsICertOverrideService.idl b/security/manager/ssl/nsICertOverrideService.idl diff --git a/security/manager/ssl/nsICertOverrideService.idl b/security/manager/ssl/nsICertOverrideService.idl
index 3862fe6830874c036592fd217cab7ad5f4cd3e27..3166b37db0e52f7f2972d2bcb7a72ed819805794 100644 index 3862fe6830874c036592fd217cab7ad5f4cd3e27..3166b37db0e52f7f2972d2bcb7a72ed819805794 100644
--- a/security/manager/ssl/nsICertOverrideService.idl --- a/security/manager/ssl/nsICertOverrideService.idl
@ -2187,20 +2175,20 @@ index 3862fe6830874c036592fd217cab7ad5f4cd3e27..3166b37db0e52f7f2972d2bcb7a72ed8
readonly attribute boolean securityCheckDisabled; readonly attribute boolean securityCheckDisabled;
}; };
diff --git a/services/settings/Utils.jsm b/services/settings/Utils.jsm diff --git a/services/settings/Utils.jsm b/services/settings/Utils.jsm
index 2c0b99fc4f26871d61d1a6dff37d344b17a3f9b7..fec985ec13a1a9b8e3f80a6eac02a388b713a213 100644 index 23d6bf1a20bea134358347b43e8fc776a04617f3..12f96aece0b2c843c34815cafb80ff1b6b6528aa 100644
--- a/services/settings/Utils.jsm --- a/services/settings/Utils.jsm
+++ b/services/settings/Utils.jsm +++ b/services/settings/Utils.jsm
@@ -87,7 +87,7 @@ function _isUndefined(value) { @@ -103,7 +103,7 @@ function _isUndefined(value) {
var Utils = { var Utils = {
get SERVER_URL() { get SERVER_URL() {
- return allowServerURLOverride - return lazy.allowServerURLOverride
+ return true || allowServerURLOverride + return true || lazy.allowServerURLOverride
? gServerURL ? lazy.gServerURL
: "https://firefox.settings.services.mozilla.com/v1"; : AppConstants.REMOTE_SETTINGS_SERVER_URL;
}, },
diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs
index 7923576fccceea26f0871662e15e0b64059f98aa..be5fe6fab7afba05c21016ed94b335663e9bba9b 100644 index 8c93dfa24ce7810f004227fc0430338229a0bc3f..09a1f93dd027394345e910e00b765689490ac2a3 100644
--- a/servo/components/style/gecko/media_features.rs --- a/servo/components/style/gecko/media_features.rs
+++ b/servo/components/style/gecko/media_features.rs +++ b/servo/components/style/gecko/media_features.rs
@@ -224,10 +224,15 @@ pub enum ForcedColors { @@ -224,10 +224,15 @@ pub enum ForcedColors {
@ -2237,10 +2225,10 @@ index 4f7337926efbb086a2be97cdbcb3dca39e27c786..f2005cb726ff153d6b1011d6af0479db
// ignored for Linux. // ignored for Linux.
const unsigned long CHROME_SUPPRESS_ANIMATION = 0x01000000; const unsigned long CHROME_SUPPRESS_ANIMATION = 0x01000000;
diff --git a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm diff --git a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm
index 6cf104c07f5140d881eed17783d404075766ed41..1d476170119aa9b9e1007ea25d8039e80bf6785b 100644 index aecb28d95de7cc84a3e2010264a056e178cb11be..79b729d99e5d693d13223401ef72c7020c10fb1a 100644
--- a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm --- a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm
+++ b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm +++ b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm
@@ -115,6 +115,12 @@ EnterprisePoliciesManager.prototype = { @@ -117,6 +117,12 @@ EnterprisePoliciesManager.prototype = {
Services.prefs.clearUserPref(PREF_POLICIES_APPLIED); Services.prefs.clearUserPref(PREF_POLICIES_APPLIED);
} }
@ -2282,10 +2270,10 @@ index 3e9672fdfe9ddab8acd0f8b18772aece92bb3b64..83454a9c27c96d72597445653beaa014
int32_t aMaxSelfProgress, int32_t aMaxSelfProgress,
int32_t aCurTotalProgress, int32_t aCurTotalProgress,
diff --git a/toolkit/components/windowwatcher/nsWindowWatcher.cpp b/toolkit/components/windowwatcher/nsWindowWatcher.cpp diff --git a/toolkit/components/windowwatcher/nsWindowWatcher.cpp b/toolkit/components/windowwatcher/nsWindowWatcher.cpp
index 0f8f1560e734dd82ffdace9edf755d525a0028d9..9f0c24184dc09b31c8f0629a946d9ec0dfeec58f 100644 index 33ffbeb8e969eccd0c40effc693d9191aab15891..386c3e76fdff6b6e60917ebf2ecf7595598ac57f 100644
--- a/toolkit/components/windowwatcher/nsWindowWatcher.cpp --- a/toolkit/components/windowwatcher/nsWindowWatcher.cpp
+++ b/toolkit/components/windowwatcher/nsWindowWatcher.cpp +++ b/toolkit/components/windowwatcher/nsWindowWatcher.cpp
@@ -1813,7 +1813,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent( @@ -1814,7 +1814,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent(
// Open a minimal popup. // Open a minimal popup.
*aIsPopupRequested = true; *aIsPopupRequested = true;
@ -2299,23 +2287,23 @@ index 0f8f1560e734dd82ffdace9edf755d525a0028d9..9f0c24184dc09b31c8f0629a946d9ec0
/** /**
diff --git a/toolkit/mozapps/update/UpdateService.jsm b/toolkit/mozapps/update/UpdateService.jsm diff --git a/toolkit/mozapps/update/UpdateService.jsm b/toolkit/mozapps/update/UpdateService.jsm
index d27d58cdb99a3c87469b0d5a398f592b46d41b24..eae73182410c09077497199fb4c5b35bedddfe2d 100644 index 285568a708854e5afb33268ccf8e7a2f3b4d4dcb..4667eb22474863c44e43e46f524b3362d14dcade 100644
--- a/toolkit/mozapps/update/UpdateService.jsm --- a/toolkit/mozapps/update/UpdateService.jsm
+++ b/toolkit/mozapps/update/UpdateService.jsm +++ b/toolkit/mozapps/update/UpdateService.jsm
@@ -3594,6 +3594,8 @@ UpdateService.prototype = { @@ -3608,6 +3608,8 @@ UpdateService.prototype = {
}, },
get disabledForTesting() { get disabledForTesting() {
+ /* for playwright */ + /* for playwright */
+ return true; + return true;
return ( return (
(Cu.isInAutomation || Marionette.running || RemoteAgent.running) && (Cu.isInAutomation ||
Services.prefs.getBoolPref(PREF_APP_UPDATE_DISABLEDFORTESTING, false) lazy.Marionette.running ||
diff --git a/toolkit/toolkit.mozbuild b/toolkit/toolkit.mozbuild diff --git a/toolkit/toolkit.mozbuild b/toolkit/toolkit.mozbuild
index 79df0d9e61a645f23d1c9544841f6963a94fc43c..60423fb04d43a56160c6409bbef1aa6d93fd93be 100644 index 1241f1b0f94e0965b517898167ca1b52cfb48dc5..39c14eb7c548b81d564bd2a4ed15c70a920e173c 100644
--- a/toolkit/toolkit.mozbuild --- a/toolkit/toolkit.mozbuild
+++ b/toolkit/toolkit.mozbuild +++ b/toolkit/toolkit.mozbuild
@@ -160,6 +160,7 @@ if CONFIG['ENABLE_WEBDRIVER']: @@ -154,6 +154,7 @@ if CONFIG['ENABLE_WEBDRIVER']:
'/remote', '/remote',
'/testing/firefox-ui', '/testing/firefox-ui',
'/testing/marionette', '/testing/marionette',
@ -2379,10 +2367,10 @@ index 9ca3975c99c8bff3829bce1cf49d1235910c3ab8..6606eb02fba53ea8bd401d07460b85b0
// nsDocumentViewer::LoadComplete that doesn't do various things // nsDocumentViewer::LoadComplete that doesn't do various things
// that are not relevant here because this wasn't an actual // that are not relevant here because this wasn't an actual
diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp
index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4be5b76a5 100644 index 3aaf69cd26156e497e46e5b714db1c2de2ba8c38..015533b2cba80b842e5a82a438e350d2dcdcad47 100644
--- a/uriloader/exthandler/nsExternalHelperAppService.cpp --- a/uriloader/exthandler/nsExternalHelperAppService.cpp
+++ b/uriloader/exthandler/nsExternalHelperAppService.cpp +++ b/uriloader/exthandler/nsExternalHelperAppService.cpp
@@ -107,6 +107,7 @@ @@ -110,6 +110,7 @@
#include "mozilla/Components.h" #include "mozilla/Components.h"
#include "mozilla/ClearOnShutdown.h" #include "mozilla/ClearOnShutdown.h"
@ -2390,7 +2378,7 @@ index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4
#include "mozilla/Preferences.h" #include "mozilla/Preferences.h"
#include "mozilla/ipc/URIUtils.h" #include "mozilla/ipc/URIUtils.h"
@@ -995,6 +996,12 @@ NS_IMETHODIMP nsExternalHelperAppService::ApplyDecodingForExtension( @@ -834,6 +835,12 @@ NS_IMETHODIMP nsExternalHelperAppService::ApplyDecodingForExtension(
return NS_OK; return NS_OK;
} }
@ -2403,7 +2391,7 @@ index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4
nsresult nsExternalHelperAppService::GetFileTokenForPath( nsresult nsExternalHelperAppService::GetFileTokenForPath(
const char16_t* aPlatformAppPath, nsIFile** aFile) { const char16_t* aPlatformAppPath, nsIFile** aFile) {
nsDependentString platformAppPath(aPlatformAppPath); nsDependentString platformAppPath(aPlatformAppPath);
@@ -1721,7 +1728,12 @@ nsresult nsExternalAppHandler::SetUpTempFile(nsIChannel* aChannel) { @@ -1443,7 +1450,12 @@ nsresult nsExternalAppHandler::SetUpTempFile(nsIChannel* aChannel) {
// Strip off the ".part" from mTempLeafName // Strip off the ".part" from mTempLeafName
mTempLeafName.Truncate(mTempLeafName.Length() - ArrayLength(".part") + 1); mTempLeafName.Truncate(mTempLeafName.Length() - ArrayLength(".part") + 1);
@ -2416,7 +2404,7 @@ index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4
mSaver = mSaver =
do_CreateInstance(NS_BACKGROUNDFILESAVERSTREAMLISTENER_CONTRACTID, &rv); do_CreateInstance(NS_BACKGROUNDFILESAVERSTREAMLISTENER_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
@@ -1912,7 +1924,36 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) { @@ -1634,7 +1646,36 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
return NS_OK; return NS_OK;
} }
@ -2454,7 +2442,7 @@ index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
nsresult transferError = rv; nsresult transferError = rv;
@@ -1967,6 +2008,9 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) { @@ -1689,6 +1730,9 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
bool alwaysAsk = true; bool alwaysAsk = true;
mMimeInfo->GetAlwaysAskBeforeHandling(&alwaysAsk); mMimeInfo->GetAlwaysAskBeforeHandling(&alwaysAsk);
@ -2464,7 +2452,7 @@ index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4
if (alwaysAsk) { if (alwaysAsk) {
// But we *don't* ask if this mimeInfo didn't come from // But we *don't* ask if this mimeInfo didn't come from
// our user configuration datastore and the user has said // our user configuration datastore and the user has said
@@ -2532,6 +2576,16 @@ nsExternalAppHandler::OnSaveComplete(nsIBackgroundFileSaver* aSaver, @@ -2254,6 +2298,16 @@ nsExternalAppHandler::OnSaveComplete(nsIBackgroundFileSaver* aSaver,
NotifyTransfer(aStatus); NotifyTransfer(aStatus);
} }
@ -2481,7 +2469,7 @@ index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4
return NS_OK; return NS_OK;
} }
@@ -3005,6 +3059,15 @@ NS_IMETHODIMP nsExternalAppHandler::Cancel(nsresult aReason) { @@ -2733,6 +2787,15 @@ NS_IMETHODIMP nsExternalAppHandler::Cancel(nsresult aReason) {
} }
} }
@ -2498,10 +2486,10 @@ index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4
// OnStartRequest) // OnStartRequest)
mDialog = nullptr; mDialog = nullptr;
diff --git a/uriloader/exthandler/nsExternalHelperAppService.h b/uriloader/exthandler/nsExternalHelperAppService.h diff --git a/uriloader/exthandler/nsExternalHelperAppService.h b/uriloader/exthandler/nsExternalHelperAppService.h
index 0d4b2bde66c7d75214587cb7aa4768bcb9b5821c..c47e275ab5d334d01663e3d363b8c2365d5088b9 100644 index f8832bbde4042df9631794ca45886dcb02b60457..6a28695117997f1fd3753a75c94bc0e67e49d215 100644
--- a/uriloader/exthandler/nsExternalHelperAppService.h --- a/uriloader/exthandler/nsExternalHelperAppService.h
+++ b/uriloader/exthandler/nsExternalHelperAppService.h +++ b/uriloader/exthandler/nsExternalHelperAppService.h
@@ -215,6 +215,8 @@ class nsExternalHelperAppService : public nsIExternalHelperAppService, @@ -241,6 +241,8 @@ class nsExternalHelperAppService : public nsIExternalHelperAppService,
mozilla::dom::BrowsingContext* aContentContext, bool aForceSave, mozilla::dom::BrowsingContext* aContentContext, bool aForceSave,
nsIInterfaceRequestor* aWindowContext, nsIInterfaceRequestor* aWindowContext,
nsIStreamListener** aStreamListener); nsIStreamListener** aStreamListener);
@ -2510,7 +2498,7 @@ index 0d4b2bde66c7d75214587cb7aa4768bcb9b5821c..c47e275ab5d334d01663e3d363b8c236
}; };
/** /**
@@ -411,6 +413,9 @@ class nsExternalAppHandler final : public nsIStreamListener, @@ -437,6 +439,9 @@ class nsExternalAppHandler final : public nsIStreamListener,
* Upon successful return, both mTempFile and mSaver will be valid. * Upon successful return, both mTempFile and mSaver will be valid.
*/ */
nsresult SetUpTempFile(nsIChannel* aChannel); nsresult SetUpTempFile(nsIChannel* aChannel);
@ -2800,10 +2788,10 @@ index 7f91de9e67d7ffa02de3eef1d760e5cfd05e7ad6..753b8902026626e8f0a190ea3130ba5e
} // namespace widget } // namespace widget
diff --git a/widget/headless/HeadlessWidget.cpp b/widget/headless/HeadlessWidget.cpp diff --git a/widget/headless/HeadlessWidget.cpp b/widget/headless/HeadlessWidget.cpp
index a79d86ce6f8f6ffda89739bf735f2c3f5abffe21..43684040367d7888263bf65a908f0757ad2fcad8 100644 index c1fbcccc93d9a6876aa82893cdf9c09b72087751..7a8073e3b746aec3a894957e87975189c06782d3 100644
--- a/widget/headless/HeadlessWidget.cpp --- a/widget/headless/HeadlessWidget.cpp
+++ b/widget/headless/HeadlessWidget.cpp +++ b/widget/headless/HeadlessWidget.cpp
@@ -108,6 +108,8 @@ void HeadlessWidget::Destroy() { @@ -109,6 +109,8 @@ void HeadlessWidget::Destroy() {
} }
} }
@ -2812,7 +2800,7 @@ index a79d86ce6f8f6ffda89739bf735f2c3f5abffe21..43684040367d7888263bf65a908f0757
nsBaseWidget::OnDestroy(); nsBaseWidget::OnDestroy();
nsBaseWidget::Destroy(); nsBaseWidget::Destroy();
@@ -559,5 +561,15 @@ nsresult HeadlessWidget::SynthesizeNativeTouchPadPinch( @@ -564,5 +566,15 @@ nsresult HeadlessWidget::SynthesizeNativeTouchPadPinch(
DispatchPinchGestureInput(inputToDispatch); DispatchPinchGestureInput(inputToDispatch);
return NS_OK; return NS_OK;
} }
@ -2829,10 +2817,10 @@ index a79d86ce6f8f6ffda89739bf735f2c3f5abffe21..43684040367d7888263bf65a908f0757
} // namespace widget } // namespace widget
} // namespace mozilla } // namespace mozilla
diff --git a/widget/headless/HeadlessWidget.h b/widget/headless/HeadlessWidget.h diff --git a/widget/headless/HeadlessWidget.h b/widget/headless/HeadlessWidget.h
index a9ba98c048b51eece158b9a04ff2770f4c7afa76..de8d25ffd94ff92dde3ece18e9b6d7df98a995c5 100644 index 2b80eea70e58dd53c34edd9c5fa4415c42bcd632..72ecda7d8ddc7a9f87a954b547f8411e67ef1570 100644
--- a/widget/headless/HeadlessWidget.h --- a/widget/headless/HeadlessWidget.h
+++ b/widget/headless/HeadlessWidget.h +++ b/widget/headless/HeadlessWidget.h
@@ -134,6 +134,9 @@ class HeadlessWidget : public nsBaseWidget { @@ -135,6 +135,9 @@ class HeadlessWidget : public nsBaseWidget {
TouchpadGesturePhase aEventPhase, float aScale, TouchpadGesturePhase aEventPhase, float aScale,
LayoutDeviceIntPoint aPoint, int32_t aModifierFlags) override; LayoutDeviceIntPoint aPoint, int32_t aModifierFlags) override;
@ -2843,7 +2831,7 @@ index a9ba98c048b51eece158b9a04ff2770f4c7afa76..de8d25ffd94ff92dde3ece18e9b6d7df
~HeadlessWidget(); ~HeadlessWidget();
bool mEnabled; bool mEnabled;
diff --git a/widget/windows/nsAppShell.cpp b/widget/windows/nsAppShell.cpp diff --git a/widget/windows/nsAppShell.cpp b/widget/windows/nsAppShell.cpp
index 5b0d22b5c4a8d8bd5cd907c519a7afbd07faa6fb..ef8e98cce9b9f851a2f3b8af2c3ed3c0ce8e83a1 100644 index e2cf83f3d6ee0b120bb22f46aa873d3bd6436cd0..8ea269c8de520d3a9eed42f99f66ad28f5e63fbc 100644
--- a/widget/windows/nsAppShell.cpp --- a/widget/windows/nsAppShell.cpp
+++ b/widget/windows/nsAppShell.cpp +++ b/widget/windows/nsAppShell.cpp
@@ -17,7 +17,9 @@ @@ -17,7 +17,9 @@
@ -2858,7 +2846,7 @@ index 5b0d22b5c4a8d8bd5cd907c519a7afbd07faa6fb..ef8e98cce9b9f851a2f3b8af2c3ed3c0
#include "nsIDOMWakeLockListener.h" #include "nsIDOMWakeLockListener.h"
#include "nsIPowerManagerService.h" #include "nsIPowerManagerService.h"
diff --git a/xpcom/reflect/xptinfo/xptinfo.h b/xpcom/reflect/xptinfo/xptinfo.h diff --git a/xpcom/reflect/xptinfo/xptinfo.h b/xpcom/reflect/xptinfo/xptinfo.h
index efee881c142175c29d15f7ceaaebf852f39e44cd..014bf4b39b99eaf2fba6fb08827e7d2f964bab33 100644 index 2456c2c2b58b27cd595880b547ed20fb687a1835..e967c089b2331c7cd36d34e511543fbc84320b7d 100644
--- a/xpcom/reflect/xptinfo/xptinfo.h --- a/xpcom/reflect/xptinfo/xptinfo.h
+++ b/xpcom/reflect/xptinfo/xptinfo.h +++ b/xpcom/reflect/xptinfo/xptinfo.h
@@ -514,7 +514,7 @@ static_assert(sizeof(nsXPTMethodInfo) == 8, "wrong size"); @@ -514,7 +514,7 @@ static_assert(sizeof(nsXPTMethodInfo) == 8, "wrong size");

View file

@ -54,6 +54,7 @@ pref("ui.use_standins_for_native_colors", true);
pref("permissions.isolateBy.userContext", true); pref("permissions.isolateBy.userContext", true);
pref("dom.push.serverURL", ""); pref("dom.push.serverURL", "");
// This setting breaks settings loading.
pref("services.settings.server", ""); pref("services.settings.server", "");
pref("browser.safebrowsing.provider.mozilla.updateURL", ""); pref("browser.safebrowsing.provider.mozilla.updateURL", "");
pref("browser.library.activity-stream.enabled", false); pref("browser.library.activity-stream.enabled", false);
@ -263,9 +264,6 @@ pref("security.fileuri.strict_origin_policy", false);
// Tests do not wait for the notification button security delay // Tests do not wait for the notification button security delay
pref("security.notification_enable_delay", 0); pref("security.notification_enable_delay", 0);
// Ensure blocklist updates do not hit the network
pref("services.settings.server", "");
// Do not automatically fill sign-in forms with known usernames and // Do not automatically fill sign-in forms with known usernames and
// passwords // passwords
pref("signon.autofillForms", false); pref("signon.autofillForms", false);

View file

@ -53,7 +53,14 @@ const test = baseTest.extend<BrowserTestTestFixtures, BrowserTestWorkerFixtures>
}, { scope: 'worker' } ], }, { scope: 'worker' } ],
defaultSameSiteCookieValue: [async ({ browserName, browserMajorVersion }, run) => { defaultSameSiteCookieValue: [async ({ browserName, browserMajorVersion }, run) => {
await run(browserName === 'chromium' || (browserName === 'firefox' && browserMajorVersion >= 96 && browserMajorVersion < 97) ? 'Lax' : 'None'); if (browserName === 'chromium')
await run('Lax');
else if (browserName === 'webkit')
await run('None');
else if (browserName === 'firefox')
await run(browserMajorVersion === 96 || browserMajorVersion >= 103 ? 'Lax' : 'None');
else
throw new Error('unknown browser - ' + browserName);
}, { scope: 'worker' } ], }, { scope: 'worker' } ],
browserMajorVersion: [async ({ browserVersion }, run) => { browserMajorVersion: [async ({ browserVersion }, run) => {

View file

@ -366,7 +366,7 @@ it('should(not) block third party cookies', async ({ context, page, server, brow
}, server.CROSS_PROCESS_PREFIX + '/grid.html'); }, server.CROSS_PROCESS_PREFIX + '/grid.html');
await page.frames()[1].evaluate(`document.cookie = 'username=John Doe'`); await page.frames()[1].evaluate(`document.cookie = 'username=John Doe'`);
await page.waitForTimeout(2000); await page.waitForTimeout(2000);
const allowsThirdParty = browserName === 'firefox' && browserMajorVersion >= 97; const allowsThirdParty = browserName === 'firefox' && (browserMajorVersion >= 97 && browserMajorVersion < 103);
const cookies = await context.cookies(server.CROSS_PROCESS_PREFIX + '/grid.html'); const cookies = await context.cookies(server.CROSS_PROCESS_PREFIX + '/grid.html');
if (allowsThirdParty) { if (allowsThirdParty) {
expect(cookies).toEqual([ expect(cookies).toEqual([

View file

@ -97,7 +97,7 @@ it('should(not) block third party cookies', async ({ server, launchPersistent, b
return document.cookie; return document.cookie;
}); });
await page.waitForTimeout(2000); await page.waitForTimeout(2000);
const allowsThirdParty = browserName === 'firefox' && browserMajorVersion >= 97; const allowsThirdParty = browserName === 'firefox' && (browserMajorVersion >= 97 && browserMajorVersion < 103);
expect(documentCookie).toBe(allowsThirdParty ? 'username=John Doe' : ''); expect(documentCookie).toBe(allowsThirdParty ? 'username=John Doe' : '');
const cookies = await context.cookies(server.CROSS_PROCESS_PREFIX + '/grid.html'); const cookies = await context.cookies(server.CROSS_PROCESS_PREFIX + '/grid.html');
if (allowsThirdParty) { if (allowsThirdParty) {

View file

@ -104,7 +104,7 @@ it('should(not) block third party cookies', async ({ browserType, server, browse
return document.cookie; return document.cookie;
}); });
await page.waitForTimeout(2000); await page.waitForTimeout(2000);
const allowsThirdParty = browserName === 'firefox' && browserMajorVersion >= 97; const allowsThirdParty = browserName === 'firefox' && (browserMajorVersion >= 97 && browserMajorVersion < 103);
expect(documentCookie).toBe(allowsThirdParty ? 'username=John Doe' : ''); expect(documentCookie).toBe(allowsThirdParty ? 'username=John Doe' : '');
const cookies = await page.context().cookies(server.CROSS_PROCESS_PREFIX + '/grid.html'); const cookies = await page.context().cookies(server.CROSS_PROCESS_PREFIX + '/grid.html');
if (allowsThirdParty) { if (allowsThirdParty) {