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
Changed: dgozman@gmail.com Thu Jun 30 14:19:05 PDT 2022
1334
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"
BASE_BRANCH="beta"
BASE_REVISION="4eec8e1d31fe3650e87754cb2d12bf4336cc901a"
BASE_REVISION="30c461e82b48bd2e4f69c9cba7f6a0e86dbf7040"

View file

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

View file

@ -31,7 +31,7 @@ async function installFirefoxPreferences(distpath) {
if (os.platform() === 'linux')
executablePath = path.join(distpath, 'firefox');
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')
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 {Services} = ChromeUtils.import("resource://gre/modules/Services.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;
@ -27,14 +28,6 @@ const StorageStream = CC('@mozilla.org/storagestream;1', 'nsIStorageStream', 'in
// Cap response storage with 100Mb per tracked tab.
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');
class PageNetwork {
@ -620,21 +613,10 @@ class NetworkObserver {
};
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.
const registrar = Cm.QueryInterface(Ci.nsIComponentRegistrar);
registrar.registerFactory(SINK_CLASS_ID, SINK_CLASS_DESCRIPTION, SINK_CONTRACT_ID, this._channelSinkFactory);
Services.catMan.addCategoryEntry(SINK_CATEGORY_NAME, SINK_CONTRACT_ID, SINK_CONTRACT_ID, false, true);
ChannelEventSinkFactory.getService().registerCollector({
_onChannelRedirect: this._onRedirect.bind(this),
});
this._eventListeners = [
helper.addObserver(this._onRequest.bind(this), 'http-on-modify-request'),
@ -716,9 +698,7 @@ class NetworkObserver {
dispose() {
this._activityDistributor.removeObserver(this);
const registrar = Cm.QueryInterface(Ci.nsIComponentRegistrar);
registrar.unregisterFactory(SINK_CLASS_ID, this._channelSinkFactory);
Services.catMan.deleteCategoryEntry(SINK_CATEGORY_NAME, SINK_CONTRACT_ID, false);
ChannelEventSinkFactory.unregister();
helper.removeListeners(this._eventListeners);
}
}

View file

@ -101,7 +101,6 @@ class PageAgent {
helper.addObserver(this._filePickerShown.bind(this), 'juggler-file-picker-shown'),
helper.addEventListener(this._messageManager, 'DOMContentLoaded', this._onDOMContentLoaded.bind(this)),
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, 'frameattached', this._onFrameAttached.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.onRuntimeError(this._onRuntimeError.bind(this)),
this._runtime.events.onExecutionContextCreated(this._onExecutionContextCreated.bind(this)),
this._runtime.events.onExecutionContextDestroyed(this._onExecutionContextDestroyed.bind(this)),
this._runtime.events.onBindingCalled(this._onBindingCalled.bind(this)),
@ -139,7 +139,6 @@ class PageAgent {
describeNode: this._describeNode.bind(this),
dispatchKeyEvent: this._dispatchKeyEvent.bind(this),
dispatchMouseEvent: this._dispatchMouseEvent.bind(this),
dispatchWheelEvent: this._dispatchWheelEvent.bind(this),
dispatchTouchEvent: this._dispatchTouchEvent.bind(this),
dispatchTapEvent: this._dispatchTapEvent.bind(this),
getContentQuads: this._getContentQuads.bind(this),
@ -274,15 +273,11 @@ class PageAgent {
});
}
_onError(errorEvent) {
const docShell = errorEvent.target.ownerGlobal.docShell;
const frame = this._frameTree.frameForDocShell(docShell);
if (!frame)
return;
_onRuntimeError({ executionContext, message, stack }) {
this._browserPage.emit('pageUncaughtError', {
frameId: frame.id(),
message: errorEvent.message,
stack: errorEvent.error && typeof errorEvent.error.stack === 'string' ? errorEvent.error.stack : '',
frameId: executionContext.auxData().frameId,
message: message.toString(),
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}) {
const frame = this._frameTree.mainFrame();
frame.textInputProcessor().commitCompositionWith(text);

View file

@ -65,12 +65,13 @@ class Runtime {
} else {
const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
this._registerConsoleServiceListener(Services);
this._registerConsoleObserver(Services);
this._registerConsoleAPIListener(Services);
}
// We can't use event listener here to be compatible with Worker Global Context.
// Use plain callbacks instead.
this.events = {
onConsoleMessage: createEvent(),
onRuntimeError: createEvent(),
onErrorFromWorker: createEvent(),
onExecutionContextCreated: createEvent(),
onExecutionContextDestroyed: createEvent(),
@ -129,7 +130,7 @@ class Runtime {
observe: message => {
if (!(message instanceof Ci.nsIScriptError) || !message.outerWindowID ||
!message.category || disallowedMessageCategories.has(message.category) || message.hasException) {
!message.category || disallowedMessageCategories.has(message.category)) {
return;
}
const errorWindow = Services.wm.getOuterWindowWithId(message.outerWindowID);
@ -138,34 +139,46 @@ class Runtime {
return;
}
const executionContext = this._windowToExecutionContext.get(errorWindow);
if (!executionContext)
if (!executionContext) {
return;
}
const typeNames = {
[Ci.nsIConsoleMessage.debug]: 'debug',
[Ci.nsIConsoleMessage.info]: 'info',
[Ci.nsIConsoleMessage.warn]: 'warn',
[Ci.nsIConsoleMessage.error]: 'error',
};
emitEvent(this.events.onConsoleMessage, {
args: [{
value: message.message,
}],
type: typeNames[message.logLevel],
executionContextId: executionContext.id(),
location: {
lineNumber: message.lineNumber,
columnNumber: message.columnNumber,
url: message.sourceName,
},
});
if (!message.hasException) {
emitEvent(this.events.onConsoleMessage, {
args: [{
value: message.message,
}],
type: typeNames[message.logLevel],
executionContextId: executionContext.id(),
location: {
lineNumber: message.lineNumber,
columnNumber: message.columnNumber,
url: message.sourceName,
},
});
} else {
emitEvent(this.events.onRuntimeError, {
executionContext,
message: message.errorMessage,
stack: message.stack.toString(),
});
}
},
};
Services.console.registerListener(consoleServiceListener);
this._eventListeners.push(() => Services.console.unregisterListener(consoleServiceListener));
}
_registerConsoleObserver(Services) {
const consoleObserver = ({wrappedJSObject}, topic, data) => {
_registerConsoleAPIListener(Services) {
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 => {
// 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.
@ -177,9 +190,12 @@ class Runtime {
if (!executionContext)
return;
this._onConsoleMessage(executionContext, wrappedJSObject);
};
Services.obs.addObserver(consoleObserver, "console-api-log-event");
this._eventListeners.push(() => Services.obs.removeObserver(consoleObserver, "console-api-log-event"));
}
ConsoleAPIStorage.addLogEventListener(
onMessage,
Cc["@mozilla.org/systemprincipal;1"].createInstance(Ci.nsIPrincipal)
);
this._eventListeners.push(() => ConsoleAPIStorage.removeLogEventListener(onMessage));
}
_registerWorkerConsoleHandler() {

View file

@ -44,18 +44,6 @@ class BrowserHandler {
for (const target of this._targetRegistry.targets())
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}) {
@ -146,12 +134,6 @@ class BrowserHandler {
waitForWindowClosed(browserWindow),
]);
}
// Try to fully initialize browser before closing.
// See comment in `Browser.enable`.
await Promise.all([
waitForAddonManager(),
waitForSearchService(),
]);
this._onclose();
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) {
if (browserWindow.closed)
return;

View file

@ -354,8 +354,26 @@ class PageHandler {
return await this._contentPage.send('dispatchMouseEvent', options);
}
async ['Page.dispatchWheelEvent'](options) {
return await this._contentPage.send('dispatchWheelEvent', options);
async ['Page.dispatchWheelEvent']({x, y, button, deltaX, deltaY, deltaZ, modifiers }) {
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) {

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){
if (!NS_IsInCompositorThread()) {
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);
bool captureCursor = false;
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) {

View file

@ -1,8 +1,8 @@
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
+++ b/accessible/base/NotificationController.h
@@ -275,6 +275,8 @@ class NotificationController final : public EventQueue,
@@ -276,6 +276,8 @@ class NotificationController final : public EventQueue,
}
#endif
@ -26,10 +26,10 @@ index a91df31c96afda66f478a5a38eaa4352039c2a0b..ee777c1746284027fb3aa2f1686f8082
+ readonly attribute boolean isUpdatePendingForJugglerAccessibility;
};
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
+++ b/accessible/xpcom/xpcAccessibleDocument.cpp
@@ -142,6 +142,15 @@ xpcAccessibleDocument::GetVirtualCursor(nsIAccessiblePivot** aVirtualCursor) {
@@ -143,6 +143,15 @@ xpcAccessibleDocument::GetVirtualCursor(nsIAccessiblePivot** aVirtualCursor) {
return NS_OK;
}
@ -59,7 +59,7 @@ index 416a1c5497c97ed80cc0f37d72545e36f7e36b4c..b81983cf7153378260a21f6af225e349
* Return XPCOM wrapper for the internal accessible.
*/
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
+++ b/browser/app/winlauncher/LauncherProcessWin.cpp
@@ -23,6 +23,7 @@
@ -70,7 +70,7 @@ index 4460774865769609b66c0710f7c83f4d5c02b6fa..2ca95607b9b093218d48f83adc95c514
#include <windows.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),
::GetStdHandle(STD_OUTPUT_HANDLE),
::GetStdHandle(STD_ERROR_HANDLE)};
@ -172,10 +172,10 @@ index 040c7b124dec6bb254563bbe74fe50012cb077a3..b4e6b8132786af70e8ad0dce88b67c28
const transportProvider = {
setListener(upgradeListener) {
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
+++ 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::EndGuard_> {};
@ -196,7 +196,7 @@ index d5006b4b576870bb7e6ca06bd0696b786c0f9236..96157b8e9a40b28ad05ae57e2f4457fe
template <>
struct ParamTraits<mozilla::dom::ExplicitActiveStatus>
: public ContiguousEnumSerializer<
@@ -2775,6 +2789,40 @@ void BrowsingContext::DidSet(FieldIndex<IDX_PrefersColorSchemeOverride>,
@@ -2780,6 +2794,40 @@ void BrowsingContext::DidSet(FieldIndex<IDX_PrefersColorSchemeOverride>,
PresContextAffectingFieldChanged();
}
@ -305,7 +305,7 @@ index e0b091feba6ce38e57681c62c386d3b70234de1f..4fae381a8bded7ae004ccb25187b3ace
bool CanSet(FieldIndex<IDX_SuspendMediaWhenInactive>, bool, ContentParent*) {
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
+++ b/docshell/base/nsDocShell.cpp
@@ -15,6 +15,12 @@
@ -367,7 +367,7 @@ index 6f554d87958ea61b1adadeba09fc99031dda8e10..2eff5cc5721bf99166420eb2b35a4376
mAllowAuth(mItemType == typeContent),
mAllowKeywordFixup(false),
mDisableMetaRefreshWhenInactive(false),
@@ -3286,6 +3303,221 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) {
@@ -3266,6 +3283,221 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) {
return NS_OK;
}
@ -589,7 +589,7 @@ index 6f554d87958ea61b1adadeba09fc99031dda8e10..2eff5cc5721bf99166420eb2b35a4376
NS_IMETHODIMP
nsDocShell::GetIsNavigating(bool* aOut) {
*aOut = mIsNavigating;
@@ -4918,7 +5150,7 @@ nsDocShell::GetVisibility(bool* aVisibility) {
@@ -4896,7 +5128,7 @@ nsDocShell::GetVisibility(bool* aVisibility) {
}
void nsDocShell::ActivenessMaybeChanged() {
@ -598,7 +598,7 @@ index 6f554d87958ea61b1adadeba09fc99031dda8e10..2eff5cc5721bf99166420eb2b35a4376
if (RefPtr<PresShell> presShell = GetPresShell()) {
presShell->ActivenessMaybeChanged();
}
@@ -8652,6 +8884,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) {
@@ -8633,6 +8865,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) {
true, // aForceNoOpener
getter_AddRefs(newBC));
MOZ_ASSERT(!newBC);
@ -611,7 +611,7 @@ index 6f554d87958ea61b1adadeba09fc99031dda8e10..2eff5cc5721bf99166420eb2b35a4376
return rv;
}
@@ -12802,6 +13040,9 @@ class OnLinkClickEvent : public Runnable {
@@ -12781,6 +13019,9 @@ class OnLinkClickEvent : public Runnable {
mHandler->OnLinkClickSync(mContent, mLoadState, mNoOpenerImplied,
mTriggeringPrincipal);
}
@ -621,7 +621,7 @@ index 6f554d87958ea61b1adadeba09fc99031dda8e10..2eff5cc5721bf99166420eb2b35a4376
return NS_OK;
}
@@ -12881,6 +13122,8 @@ nsresult nsDocShell::OnLinkClick(
@@ -12860,6 +13101,8 @@ nsresult nsDocShell::OnLinkClick(
nsCOMPtr<nsIRunnable> ev =
new OnLinkClickEvent(this, aContent, loadState, noOpenerImplied,
aIsTrusted, aTriggeringPrincipal);
@ -631,7 +631,7 @@ index 6f554d87958ea61b1adadeba09fc99031dda8e10..2eff5cc5721bf99166420eb2b35a4376
}
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
+++ b/docshell/base/nsDocShell.h
@@ -16,6 +16,7 @@
@ -650,7 +650,7 @@ index 7326eb6d5c927c0509333447edf111657597ab90..bc9dcabb82832fd1a3a8f2dd8811481a
class nsGlobalWindowOuter;
class FramingChecker;
@@ -411,6 +413,15 @@ class nsDocShell final : public nsDocLoader,
@@ -408,6 +410,15 @@ class nsDocShell final : public nsDocLoader,
void SetWillChangeProcess() { mWillChangeProcess = true; }
bool WillChangeProcess() { return mWillChangeProcess; }
@ -666,7 +666,7 @@ index 7326eb6d5c927c0509333447edf111657597ab90..bc9dcabb82832fd1a3a8f2dd8811481a
// Create a content viewer within this nsDocShell for the given
// `WindowGlobalChild` actor.
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; }
@ -675,7 +675,7 @@ index 7326eb6d5c927c0509333447edf111657597ab90..bc9dcabb82832fd1a3a8f2dd8811481a
// Handles retrieval of subframe session history for nsDocShell::LoadURI. If a
// 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
@@ -1311,6 +1324,16 @@ class nsDocShell final : public nsDocLoader,
@@ -1308,6 +1321,16 @@ class nsDocShell final : public nsDocLoader,
bool mAllowDNSPrefetch : 1;
bool mAllowWindowControl : 1;
bool mCSSErrorReportingEnabled : 1;
@ -747,10 +747,10 @@ index 6b85ddd842a6d2e29f86047017b78b2007b99867..e0b56c4f85544580b9a631619fb06799
* This attempts to save any applicable layout history state (like
* scroll position) in the nsISHEntry. This is normally done
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
+++ 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) {
@ -760,7 +760,7 @@ index 3f454bb509cf6b251f2e47974976fa40f9b04020..826369ef5dca9d88d66b48d2ba40caf0
nsresult rv = NS_OK;
if (!aSpeculative) {
// 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,
"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 (mLoadedAsData) {
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;
}
@ -783,7 +783,7 @@ index 3f454bb509cf6b251f2e47974976fa40f9b04020..826369ef5dca9d88d66b48d2ba40caf0
if (!fm->IsInActiveWindow(bc)) {
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();
}
@ -856,10 +856,10 @@ index 3f454bb509cf6b251f2e47974976fa40f9b04020..826369ef5dca9d88d66b48d2ba40caf0
if (!sLoadingForegroundTopLevelContentDocument) {
return false;
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
+++ 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.
ColorScheme DefaultColorScheme() const;
@ -870,10 +870,10 @@ index a9d9c2f2d0a1359fec5c4edfffd8f8fab3607525..ad6e19137bbd341414ffee670e3070d6
static bool AutomaticStorageAccessPermissionCanBeGranted(
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
+++ 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.
*/
/* static */
@ -894,7 +894,7 @@ index 6f5812f17a980be7c9823708853018868cbcd18f..fa9a88eedb2b6a19dffbadd9dbdf3a2f
// Split values on commas.
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) {
@ -909,7 +909,7 @@ index 6f5812f17a980be7c9823708853018868cbcd18f..fa9a88eedb2b6a19dffbadd9dbdf3a2f
// 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
@@ -564,7 +574,13 @@ bool Navigator::CookieEnabled() {
@@ -563,7 +573,13 @@ bool Navigator::CookieEnabled() {
return granted;
}
@ -925,7 +925,7 @@ index 6f5812f17a980be7c9823708853018868cbcd18f..fa9a88eedb2b6a19dffbadd9dbdf3a2f
void Navigator::GetBuildID(nsAString& aBuildID, CallerType aCallerType,
ErrorResult& aRv) const {
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
+++ b/dom/base/Navigator.h
@@ -216,7 +216,7 @@ class Navigator final : public nsISupports, public nsWrapperCache {
@ -938,10 +938,10 @@ index 7184795e21afe8b1ac5d36c6f645fc9a027f74d5..0d9c6ae7edd65cd8b7660cff22853ec4
dom::MediaCapabilities* MediaCapabilities();
dom::MediaSession* MediaSession();
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
+++ b/dom/base/nsContentUtils.cpp
@@ -8226,7 +8226,8 @@ nsresult nsContentUtils::SendMouseEvent(
@@ -8369,7 +8369,8 @@ nsresult nsContentUtils::SendMouseEvent(
bool aIgnoreRootScrollFrame, float aPressure,
unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow,
PreventDefaultResult* aPreventDefault, bool aIsDOMEventSynthesized,
@ -951,7 +951,7 @@ index 6b910d1eea981d62d7bfc6964a97d683686094f8..b00acefd43e19c404abb34c5e32fe6f3
nsPoint offset;
nsCOMPtr<nsIWidget> widget = GetWidget(aPresShell, &offset);
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.mFlags.mIsSynthesizedForTests = aIsDOMEventSynthesized;
event.mExitFrom = exitFrom;
@ -960,10 +960,10 @@ index 6b910d1eea981d62d7bfc6964a97d683686094f8..b00acefd43e19c404abb34c5e32fe6f3
nsPresContext* presContext = aPresShell->GetPresContext();
if (!presContext) return NS_ERROR_FAILURE;
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
+++ b/dom/base/nsContentUtils.h
@@ -2928,7 +2928,8 @@ class nsContentUtils {
@@ -2943,7 +2943,8 @@ class nsContentUtils {
int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure,
unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow,
mozilla::PreventDefaultResult* aPreventDefault,
@ -974,10 +974,10 @@ index 0dbce2bdf40bf23ec748996f1b8f2f543b005b16..cdb2e5d62169d36077e9c9d6c50d8edf
static void FirePageShowEventForFrameLoaderSwap(
nsIDocShellTreeItem* aItem,
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
+++ 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,
float aPressure, unsigned short aInputSourceArg,
bool aIsDOMEventSynthesized, bool aIsWidgetEventSynthesized,
@ -986,7 +986,7 @@ index a078d2973bb539f6dac799ffa438569cef38067c..64af78f470e2343c7ff5332bca77ca5d
bool* aPreventDefault) {
return SendMouseEventCommon(
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,
aPreventDefault, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true,
aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false,
@ -995,7 +995,7 @@ index a078d2973bb539f6dac799ffa438569cef38067c..64af78f470e2343c7ff5332bca77ca5d
}
NS_IMETHODIMP
@@ -690,13 +690,13 @@ nsDOMWindowUtils::SendMouseEventCommon(
@@ -718,13 +718,13 @@ nsDOMWindowUtils::SendMouseEventCommon(
int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame,
float aPressure, unsigned short aInputSourceArg, uint32_t aPointerId,
bool aToWindow, bool* aPreventDefault, bool aIsDOMEventSynthesized,
@ -1025,10 +1025,10 @@ index 30e0fafa77857c33e9871259a6ac0cebac965df8..3d8810abcfac1c220529b4e6163b0159
MOZ_CAN_RUN_SCRIPT
nsresult SendTouchEventCommon(
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
+++ 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);
}
@ -1039,7 +1039,7 @@ index ffeb42544dccb0efb5c94b652aba4d1801d953aa..49681f4adcbac3fcb80d66ab4a08a21d
// Exit fullscreen if a website focuses another window
if (StaticPrefs::full_screen_api_exit_on_windowRaise() &&
!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
// a separate runnable to avoid touching multiple windows in
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
+++ b/dom/base/nsGlobalWindowOuter.cpp
@@ -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::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
index ab3a63025e19a68811ea98b77c728ac70a0a63b8..32d37910dbd3a04c64ccb4f2b2cf1505e50330aa 100644
index 70cea10edfd5445c93900c876dbbcaa07dccf23b..814f29ac5fbd08e4b5b458995aa7ed17d16b5fce 100644
--- a/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.
void DispatchDOMWindowCreated();
@ -1132,10 +1132,10 @@ index ab3a63025e19a68811ea98b77c728ac70a0a63b8..32d37910dbd3a04c64ccb4f2b2cf1505
// Outer windows only.
virtual void EnsureSizeAndPositionUpToDate() override;
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
+++ 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);
}
@ -1186,10 +1186,10 @@ index 22c32682fd1a332cf77b811ae28497932cf7108f..15adc1c0dfda0d80c310db815dc9cf22
DOMQuad& aQuad, const GeometryNode& aFrom,
const ConvertCoordinateOptions& aOptions, CallerType aCallerType,
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
+++ 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,
ErrorResult& aRv);
@ -1201,7 +1201,7 @@ index 3991f8007498f04a07b7a46b82fb41c944330ffa..ac06535828a22c9261641c880be788b2
DOMQuad& aQuad, const TextOrElementOrDocument& aFrom,
const ConvertCoordinateOptions& aOptions, CallerType aCallerType,
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
+++ b/dom/base/nsJSUtils.cpp
@@ -169,6 +169,11 @@ bool nsJSUtils::GetScopeChainForElement(
@ -1229,7 +1229,7 @@ index 85a21e459305f556933f4dc0fa7441d8f9ed95a9..d7cb86479ba2ed06542307349d6d86df
static bool DumpEnabled();
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
+++ b/dom/chrome-webidl/BrowsingContext.webidl
@@ -52,6 +52,24 @@ enum PrefersColorSchemeOverride {
@ -1271,7 +1271,7 @@ index c802621cc5f710883ba2da9b44d8a24a78ddbab8..071f3e9faa1f093c06c7b66923a12d7e
* A unique identifier for the browser element that is hosting this
* BrowsingContext tree. Every BrowsingContext in the element's tree will
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
+++ b/dom/geolocation/Geolocation.cpp
@@ -23,6 +23,7 @@
@ -1282,7 +1282,7 @@ index 5f91e0ba2507a2da269617ffc71d7855942aed43..29d89af640386202b1f2525db098eee4
#include "nsGlobalWindow.h"
#include "mozilla/dom/Document.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;
}
@ -1295,7 +1295,7 @@ index 5f91e0ba2507a2da269617ffc71d7855942aed43..29d89af640386202b1f2525db098eee4
CachedPositionAndAccuracy lastPosition = gs->GetCachedPosition();
if (lastPosition.position) {
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
// notify the provider to switch to the default accuracy.
if (mOptions && mOptions->mEnableHighAccuracy) {
@ -1305,7 +1305,7 @@ index 5f91e0ba2507a2da269617ffc71d7855942aed43..29d89af640386202b1f2525db098eee4
if (gs) {
gs->UpdateAccuracy();
}
@@ -717,8 +715,14 @@ void nsGeolocationService::StopDevice() {
@@ -727,8 +725,14 @@ void nsGeolocationService::StopDevice() {
StaticRefPtr<nsGeolocationService> nsGeolocationService::sService;
already_AddRefed<nsGeolocationService>
@ -1321,7 +1321,7 @@ index 5f91e0ba2507a2da269617ffc71d7855942aed43..29d89af640386202b1f2525db098eee4
if (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
// by chrome/c++ and have no mOwner, no mPrincipal, and no need
// to prompt.
@ -1333,7 +1333,7 @@ index 5f91e0ba2507a2da269617ffc71d7855942aed43..29d89af640386202b1f2525db098eee4
mService->AddLocator(this);
}
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
+++ b/dom/geolocation/Geolocation.h
@@ -31,6 +31,7 @@
@ -1344,19 +1344,7 @@ index 893192d7a33ade248dc32a201fbf5ec418793920..d85ffb5b3b19698b1ed6edd461597616
class nsGeolocationService;
class nsGeolocationRequest;
@@ -42,6 +43,11 @@ using GeoPositionCallback =
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 {
@@ -48,13 +49,14 @@ struct CachedPositionAndAccuracy {
bool isHighAccuracy;
};
@ -1372,7 +1360,7 @@ index 893192d7a33ade248dc32a201fbf5ec418793920..d85ffb5b3b19698b1ed6edd461597616
static mozilla::StaticRefPtr<nsGeolocationService> sService;
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.
static already_AddRefed<Geolocation> NonWindowSingleton();
@ -1382,7 +1370,7 @@ index 893192d7a33ade248dc32a201fbf5ec418793920..d85ffb5b3b19698b1ed6edd461597616
~Geolocation();
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
+++ b/dom/html/HTMLInputElement.cpp
@@ -53,6 +53,7 @@
@ -1393,7 +1381,7 @@ index 9fb48fd6d15322bbf324fc63c3c6dec05a2bfb9f..c09d509603cbf4740ba867e4abdd9466
#include "nsIFormControlFrame.h"
#include "nsITextControlFrame.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;
}
@ -1407,10 +1395,10 @@ index 9fb48fd6d15322bbf324fc63c3c6dec05a2bfb9f..c09d509603cbf4740ba867e4abdd9466
return NS_OK;
}
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
+++ 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 aIsWidgetEventSynthesized,
[optional] in long aButtons,
@ -1421,10 +1409,10 @@ index 60ccb8838ea6a0b040c2c1fc42e554ef00de8826..942120ecbc6900803ebfeff717be621b
/** Synthesize a touch event. The event types supported are:
* 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
index e744940a8e7517b39a73509da3942c2cac9ee0c1..9ba6fe797ed0707137f9cf32b784544d0db0195c 100644
index 9d4e8fbbfe8d45cc6245c7659423004ad1ceedeb..70150e9271720a562fd646a50d30369965d8521a 100644
--- a/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;
}
@ -1439,7 +1427,7 @@ index e744940a8e7517b39a73509da3942c2cac9ee0c1..9ba6fe797ed0707137f9cf32b784544d
}
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());
pWindowCapturer->SelectSource(sourceId);
@ -1456,7 +1444,7 @@ index e744940a8e7517b39a73509da3942c2cac9ee0c1..9ba6fe797ed0707137f9cf32b784544d
} else if (_deviceType == CaptureDeviceType::Browser) {
// XXX We don't capture cursors, so avoid the extra indirection layer. We
// 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,
@ -1473,7 +1461,7 @@ index e744940a8e7517b39a73509da3942c2cac9ee0c1..9ba6fe797ed0707137f9cf32b784544d
time_event_(EventWrapper::Create()),
#if defined(_WIN32)
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() {
if (_dataCallBacks.empty()) {
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.videoType = VideoType::kARGB;
@ -1507,10 +1495,10 @@ index e744940a8e7517b39a73509da3942c2cac9ee0c1..9ba6fe797ed0707137f9cf32b784544d
frameInfo.width * frameInfo.height * DesktopFrame::kBytesPerPixel;
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
index a07735e4f046b98d4380ecaa8327620e3819c4d8..29b9b63f1b8dfbcec302a5db49f1032205076795 100644
index b725849dab1d1f898ab988e57a35c27e3eb44700..e2e13b0a0926475fe673fecf5e3c497569d158b3 100644
--- a/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;
@ -1532,7 +1520,7 @@ index a07735e4f046b98d4380ecaa8327620e3819c4d8..29b9b63f1b8dfbcec302a5db49f10322
// simulate deviceInfo interface for video engine, bridge screen/application and
// 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
// and follows the video pipeline design
class DesktopCaptureImpl : public DesktopCapturer::Callback,
@ -1549,7 +1537,7 @@ index a07735e4f046b98d4380ecaa8327620e3819c4d8..29b9b63f1b8dfbcec302a5db49f10322
static VideoCaptureModule::DeviceInfo* CreateDeviceInfo(
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(
rtc::VideoSinkInterface<VideoFrame>* dataCallback) override;
int32_t StopCaptureIfAllClientsClose() override;
@ -1558,7 +1546,7 @@ index a07735e4f046b98d4380ecaa8327620e3819c4d8..29b9b63f1b8dfbcec302a5db49f10322
int32_t SetCaptureRotation(VideoRotation rotation) 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:
DesktopCaptureImpl(const int32_t id, const char* uniqueId,
@ -1567,7 +1555,7 @@ index a07735e4f046b98d4380ecaa8327620e3819c4d8..29b9b63f1b8dfbcec302a5db49f10322
virtual ~DesktopCaptureImpl();
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;
std::set<rtc::VideoSinkInterface<VideoFrame>*> _dataCallBacks;
@ -1575,8 +1563,8 @@ index a07735e4f046b98d4380ecaa8327620e3819c4d8..29b9b63f1b8dfbcec302a5db49f10322
int64_t _incomingFrameTimesNanos
[kFrameRateCountHistorySize]; // timestamp for local captured frames
@@ -234,6 +253,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
void process();
@@ -237,6 +256,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback,
void ProcessIter();
private:
+ bool capture_cursor_ = true;
@ -1628,7 +1616,7 @@ index 8c8a5810fd56512cf37635da1f43757719f06113..d2bc58fcd3b05f989f948839d574d00d
return aGlobalOrNull;
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
+++ b/dom/security/nsCSPUtils.cpp
@@ -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
* origin -- which is not the layout origin. Further translation
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
+++ 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();
nsTArray<nsString> languages;
@ -1670,7 +1658,7 @@ index c33dc6bea849ccd161a4e82a44ceb9b0d1dc54f3..12ad9ec8ad0c6c8671a4d3aa3cb75ffb
RuntimeService* runtime = RuntimeService::GetService();
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.
@ -1680,7 +1668,7 @@ index c33dc6bea849ccd161a4e82a44ceb9b0d1dc54f3..12ad9ec8ad0c6c8671a4d3aa3cb75ffb
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>
void RuntimeService::BroadcastAllWorkers(const Func& aFunc) {
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(aCx);
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
+++ 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(
const nsPIDOMWindowInner& aWindow);
@ -1723,10 +1711,10 @@ index ca44a269c65959940865853c5e40120eabb5101a..704ecf69807ccbc4bada4a9bcd0ce634
return mNavigatorProperties;
}
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
+++ 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(
const nsPIDOMWindowInner& aWindow);
@ -1736,7 +1724,7 @@ index 8b1b46d69f2c90d851d292c285a1ba9bdbd4d9b7..dea5259b0a82e5e6d3c431fc78e60d5d
bool IsWorkerGlobal(JSObject* global);
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
+++ b/dom/workers/WorkerPrivate.cpp
@@ -695,6 +695,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable {
@ -1758,7 +1746,7 @@ index 409142d06f9323621cd35b70e3a6d0eea4c00502..457f90743f27a6c9b6c988b477ff6390
class UpdateLanguagesRunnable final : public WorkerRunnable {
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) {
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) {
WorkerGlobalScope* globalScope = GlobalScope();
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
+++ b/dom/workers/WorkerPrivate.h
@@ -330,6 +330,8 @@ class WorkerPrivate final
@ -1804,7 +1792,7 @@ index 43a0a10d14b2b52c1318d8678fc9d549381a811d..ed3b79125a412634853bc0ced6f108a2
void UpdateLanguagesInternal(const nsTArray<nsString>& aLanguages);
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);
@ -1866,10 +1854,10 @@ index bb69d58dc96ed7f0b37f73e26abdd0bdfeaaf556..8436d439f72287176a2fe6a1a837d3db
inline ClippedTime TimeClip(double time);
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
+++ 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]);
}
@ -1981,10 +1969,10 @@ index 3ce936fe3a4a83f9161eddc9e5289322d6a363e3..6b1c34244d8b2f2102ec423e2d96812f
void internalResyncICUDefaultTimeZone();
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
+++ 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()) {
MOZ_LOG(gLog, LogLevel::Debug,
(" > 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
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
+++ 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*);
bool Gecko_MediaFeatures_PrefersReducedMotion(const mozilla::dom::Document*);
@ -2040,10 +2028,10 @@ index f2723e654098ff27542e1eb16a536c11ad0af617..b0b480551ff7d895dfdeb5a980087485
/* Use accelerated SIMD routines. */
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
+++ 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
pref("dom.postMessage.sharedArrayBuffer.bypassCOOP_COEP.insecure.enabled", false);
#else
@ -2114,10 +2102,10 @@ index 4504ade8e6b3be9404e0d72fd30f60939831ed0f..34988ac3ede846d0aaa0d4637439108f
cmd = [strip] + flags + [path]
if subprocess.call(cmd) != 0:
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
+++ b/security/manager/ssl/nsCertOverrideService.cpp
@@ -570,7 +570,12 @@ nsCertOverrideService::HasMatchingOverride(
@@ -572,7 +572,12 @@ nsCertOverrideService::HasMatchingOverride(
bool disableAllSecurityCheck = false;
{
MutexAutoLock lock(mMutex);
@ -2131,7 +2119,7 @@ index 6f5713d20e23ab7e71499528e109e2446216338d..64f09ebaec26961cabedb1e6642f8e61
}
if (disableAllSecurityCheck) {
nsCertOverride::OverrideBits all = nsCertOverride::OverrideBits::Untrusted |
@@ -774,14 +779,24 @@ static bool IsDebugger() {
@@ -789,14 +794,24 @@ static bool IsDebugger() {
NS_IMETHODIMP
nsCertOverrideService::
@ -2160,17 +2148,17 @@ index 6f5713d20e23ab7e71499528e109e2446216338d..64f09ebaec26961cabedb1e6642f8e61
nsCOMPtr<nsINSSComponent> nss(do_GetService(PSM_COMPONENT_CONTRACTID));
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
+++ b/security/manager/ssl/nsCertOverrideService.h
@@ -133,6 +133,7 @@ class nsCertOverrideService final : public nsICertOverrideService,
~nsCertOverrideService();
@@ -134,6 +134,7 @@ class nsCertOverrideService final : public nsICertOverrideService,
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
index 3862fe6830874c036592fd217cab7ad5f4cd3e27..3166b37db0e52f7f2972d2bcb7a72ed819805794 100644
--- a/security/manager/ssl/nsICertOverrideService.idl
@ -2187,20 +2175,20 @@ index 3862fe6830874c036592fd217cab7ad5f4cd3e27..3166b37db0e52f7f2972d2bcb7a72ed8
readonly attribute boolean securityCheckDisabled;
};
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
+++ b/services/settings/Utils.jsm
@@ -87,7 +87,7 @@ function _isUndefined(value) {
@@ -103,7 +103,7 @@ function _isUndefined(value) {
var Utils = {
get SERVER_URL() {
- return allowServerURLOverride
+ return true || allowServerURLOverride
? gServerURL
: "https://firefox.settings.services.mozilla.com/v1";
- return lazy.allowServerURLOverride
+ return true || lazy.allowServerURLOverride
? lazy.gServerURL
: AppConstants.REMOTE_SETTINGS_SERVER_URL;
},
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
+++ b/servo/components/style/gecko/media_features.rs
@@ -224,10 +224,15 @@ pub enum ForcedColors {
@ -2237,10 +2225,10 @@ index 4f7337926efbb086a2be97cdbcb3dca39e27c786..f2005cb726ff153d6b1011d6af0479db
// ignored for Linux.
const unsigned long CHROME_SUPPRESS_ANIMATION = 0x01000000;
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
+++ b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm
@@ -115,6 +115,12 @@ EnterprisePoliciesManager.prototype = {
@@ -117,6 +117,12 @@ EnterprisePoliciesManager.prototype = {
Services.prefs.clearUserPref(PREF_POLICIES_APPLIED);
}
@ -2282,10 +2270,10 @@ index 3e9672fdfe9ddab8acd0f8b18772aece92bb3b64..83454a9c27c96d72597445653beaa014
int32_t aMaxSelfProgress,
int32_t aCurTotalProgress,
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
+++ 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.
*aIsPopupRequested = true;
@ -2299,23 +2287,23 @@ index 0f8f1560e734dd82ffdace9edf755d525a0028d9..9f0c24184dc09b31c8f0629a946d9ec0
/**
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
+++ b/toolkit/mozapps/update/UpdateService.jsm
@@ -3594,6 +3594,8 @@ UpdateService.prototype = {
@@ -3608,6 +3608,8 @@ UpdateService.prototype = {
},
get disabledForTesting() {
+ /* for playwright */
+ return true;
return (
(Cu.isInAutomation || Marionette.running || RemoteAgent.running) &&
Services.prefs.getBoolPref(PREF_APP_UPDATE_DISABLEDFORTESTING, false)
(Cu.isInAutomation ||
lazy.Marionette.running ||
diff --git a/toolkit/toolkit.mozbuild b/toolkit/toolkit.mozbuild
index 79df0d9e61a645f23d1c9544841f6963a94fc43c..60423fb04d43a56160c6409bbef1aa6d93fd93be 100644
index 1241f1b0f94e0965b517898167ca1b52cfb48dc5..39c14eb7c548b81d564bd2a4ed15c70a920e173c 100644
--- a/toolkit/toolkit.mozbuild
+++ b/toolkit/toolkit.mozbuild
@@ -160,6 +160,7 @@ if CONFIG['ENABLE_WEBDRIVER']:
@@ -154,6 +154,7 @@ if CONFIG['ENABLE_WEBDRIVER']:
'/remote',
'/testing/firefox-ui',
'/testing/marionette',
@ -2379,10 +2367,10 @@ index 9ca3975c99c8bff3829bce1cf49d1235910c3ab8..6606eb02fba53ea8bd401d07460b85b0
// nsDocumentViewer::LoadComplete that doesn't do various things
// that are not relevant here because this wasn't an actual
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
+++ b/uriloader/exthandler/nsExternalHelperAppService.cpp
@@ -107,6 +107,7 @@
@@ -110,6 +110,7 @@
#include "mozilla/Components.h"
#include "mozilla/ClearOnShutdown.h"
@ -2390,7 +2378,7 @@ index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4
#include "mozilla/Preferences.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;
}
@ -2403,7 +2391,7 @@ index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4
nsresult nsExternalHelperAppService::GetFileTokenForPath(
const char16_t* aPlatformAppPath, nsIFile** aFile) {
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
mTempLeafName.Truncate(mTempLeafName.Length() - ArrayLength(".part") + 1);
@ -2416,7 +2404,7 @@ index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4
mSaver =
do_CreateInstance(NS_BACKGROUNDFILESAVERSTREAMLISTENER_CONTRACTID, &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;
}
@ -2454,7 +2442,7 @@ index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4
if (NS_FAILED(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;
mMimeInfo->GetAlwaysAskBeforeHandling(&alwaysAsk);
@ -2464,7 +2452,7 @@ index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4
if (alwaysAsk) {
// But we *don't* ask if this mimeInfo didn't come from
// 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);
}
@ -2481,7 +2469,7 @@ index 1ddfd9f652e581a3afc2bdb35bc5ff8b2aec65d7..2bf7e5db98a275e46d94b199b0f61ed4
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)
mDialog = nullptr;
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
+++ 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,
nsIInterfaceRequestor* aWindowContext,
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.
*/
nsresult SetUpTempFile(nsIChannel* aChannel);
@ -2800,10 +2788,10 @@ index 7f91de9e67d7ffa02de3eef1d760e5cfd05e7ad6..753b8902026626e8f0a190ea3130ba5e
} // namespace widget
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
+++ 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::Destroy();
@@ -559,5 +561,15 @@ nsresult HeadlessWidget::SynthesizeNativeTouchPadPinch(
@@ -564,5 +566,15 @@ nsresult HeadlessWidget::SynthesizeNativeTouchPadPinch(
DispatchPinchGestureInput(inputToDispatch);
return NS_OK;
}
@ -2829,10 +2817,10 @@ index a79d86ce6f8f6ffda89739bf735f2c3f5abffe21..43684040367d7888263bf65a908f0757
} // namespace widget
} // namespace mozilla
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
+++ 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,
LayoutDeviceIntPoint aPoint, int32_t aModifierFlags) override;
@ -2843,7 +2831,7 @@ index a9ba98c048b51eece158b9a04ff2770f4c7afa76..de8d25ffd94ff92dde3ece18e9b6d7df
~HeadlessWidget();
bool mEnabled;
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
+++ b/widget/windows/nsAppShell.cpp
@@ -17,7 +17,9 @@
@ -2858,7 +2846,7 @@ index 5b0d22b5c4a8d8bd5cd907c519a7afbd07faa6fb..ef8e98cce9b9f851a2f3b8af2c3ed3c0
#include "nsIDOMWakeLockListener.h"
#include "nsIPowerManagerService.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
+++ b/xpcom/reflect/xptinfo/xptinfo.h
@@ -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("dom.push.serverURL", "");
// This setting breaks settings loading.
pref("services.settings.server", "");
pref("browser.safebrowsing.provider.mozilla.updateURL", "");
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
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
// passwords
pref("signon.autofillForms", false);

View file

@ -53,7 +53,14 @@ const test = baseTest.extend<BrowserTestTestFixtures, BrowserTestWorkerFixtures>
}, { scope: 'worker' } ],
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' } ],
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');
await page.frames()[1].evaluate(`document.cookie = 'username=John Doe'`);
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');
if (allowsThirdParty) {
expect(cookies).toEqual([

View file

@ -97,7 +97,7 @@ it('should(not) block third party cookies', async ({ server, launchPersistent, b
return document.cookie;
});
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' : '');
const cookies = await context.cookies(server.CROSS_PROCESS_PREFIX + '/grid.html');
if (allowsThirdParty) {

View file

@ -104,7 +104,7 @@ it('should(not) block third party cookies', async ({ browserType, server, browse
return document.cookie;
});
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' : '');
const cookies = await page.context().cookies(server.CROSS_PROCESS_PREFIX + '/grid.html');
if (allowsThirdParty) {