Bump to v130.0

- Merged new July 25th changes into Juggler
- Retrofit playwright patches to the latest version
- Removed Nvidia Wayland fix backport
- Updated bootstrap patch from LibreWolf
This commit is contained in:
daijro 2024-09-09 17:43:41 -05:00
parent dd73dfc14c
commit f25c39749d
10 changed files with 165 additions and 430 deletions

View file

@ -602,6 +602,8 @@ class NetworkObserver {
proxyFilter.onProxyFilterResult(defaultProxyInfo); proxyFilter.onProxyFilterResult(defaultProxyInfo);
return; return;
} }
if (this._targetRegistry.shouldBustHTTPAuthCacheForProxy(proxy))
Services.obs.notifyObservers(null, "net:clear-active-logins");
proxyFilter.onProxyFilterResult(protocolProxyService.newProxyInfo( proxyFilter.onProxyFilterResult(protocolProxyService.newProxyInfo(
proxy.type, proxy.type,
proxy.host, proxy.host,

View file

@ -116,6 +116,7 @@ class TargetRegistry {
this._browserToTarget = new Map(); this._browserToTarget = new Map();
this._browserIdToTarget = new Map(); this._browserIdToTarget = new Map();
this._proxiesWithClashingAuthCacheKeys = new Set();
this._browserProxy = null; this._browserProxy = null;
// Cleanup containers from previous runs (if any) // Cleanup containers from previous runs (if any)
@ -234,12 +235,50 @@ class TargetRegistry {
onOpenWindow(win); onOpenWindow(win);
} }
// Firefox uses nsHttpAuthCache to cache authentication to the proxy.
// If we're provided with a single proxy with a multiple different authentications, then
// we should clear the nsHttpAuthCache on every request.
shouldBustHTTPAuthCacheForProxy(proxy) {
return this._proxiesWithClashingAuthCacheKeys.has(proxy);
}
_updateProxiesWithSameAuthCacheAndDifferentCredentials() {
const proxyIdToCredentials = new Map();
const allProxies = [...this._browserContextIdToBrowserContext.values()].map(bc => bc._proxy).filter(Boolean);
if (this._browserProxy)
allProxies.push(this._browserProxy);
const proxyAuthCacheKeyAndProxy = allProxies.map(proxy => [
JSON.stringify({
type: proxy.type,
host: proxy.host,
port: proxy.port,
}),
proxy,
]);
this._proxiesWithClashingAuthCacheKeys.clear();
proxyAuthCacheKeyAndProxy.sort(([cacheKey1], [cacheKey2]) => cacheKey1 < cacheKey2 ? -1 : 1);
for (let i = 0; i < proxyAuthCacheKeyAndProxy.length - 1; ++i) {
const [cacheKey1, proxy1] = proxyAuthCacheKeyAndProxy[i];
const [cacheKey2, proxy2] = proxyAuthCacheKeyAndProxy[i + 1];
if (cacheKey1 !== cacheKey2)
continue;
if (proxy1.username === proxy2.username && proxy1.password === proxy2.password)
continue;
// `proxy1` and `proxy2` have the same caching key, but serve different credentials.
// We have to bust HTTP Auth Cache everytime there's a request that will use either of the proxies.
this._proxiesWithClashingAuthCacheKeys.add(proxy1);
this._proxiesWithClashingAuthCacheKeys.add(proxy2);
}
}
async cancelDownload(options) { async cancelDownload(options) {
this._downloadInterceptor.cancelDownload(options.uuid); this._downloadInterceptor.cancelDownload(options.uuid);
} }
setBrowserProxy(proxy) { setBrowserProxy(proxy) {
this._browserProxy = proxy; this._browserProxy = proxy;
this._updateProxiesWithSameAuthCacheAndDifferentCredentials();
} }
getProxyInfo(channel) { getProxyInfo(channel) {
@ -919,12 +958,14 @@ class BrowserContext {
} }
this._registry._browserContextIdToBrowserContext.delete(this.browserContextId); this._registry._browserContextIdToBrowserContext.delete(this.browserContextId);
this._registry._userContextIdToBrowserContext.delete(this.userContextId); this._registry._userContextIdToBrowserContext.delete(this.userContextId);
this._registry._updateProxiesWithSameAuthCacheAndDifferentCredentials();
} }
setProxy(proxy) { setProxy(proxy) {
// Clear AuthCache. // Clear AuthCache.
Services.obs.notifyObservers(null, "net:clear-active-logins"); Services.obs.notifyObservers(null, "net:clear-active-logins");
this._proxy = proxy; this._proxy = proxy;
this._registry._updateProxiesWithSameAuthCacheAndDifferentCredentials();
} }
setIgnoreHTTPSErrors(ignoreHTTPSErrors) { setIgnoreHTTPSErrors(ignoreHTTPSErrors) {
@ -1210,4 +1251,4 @@ TargetRegistry.Events = {
var EXPORTED_SYMBOLS = ['TargetRegistry', 'PageTarget']; var EXPORTED_SYMBOLS = ['TargetRegistry', 'PageTarget'];
this.TargetRegistry = TargetRegistry; this.TargetRegistry = TargetRegistry;
this.PageTarget = PageTarget; this.PageTarget = PageTarget;

View file

@ -70,7 +70,7 @@ class JugglerFrameChild extends JSWindowActorChild {
const agents = topBrowingContextToAgents.get(this.browsingContext); const agents = topBrowingContextToAgents.get(this.browsingContext);
// The agents are already re-bound to a new actor. // The agents are already re-bound to a new actor.
if (agents.actor !== this) if (agents?.actor !== this)
return; return;
topBrowingContextToAgents.delete(this.browsingContext); topBrowingContextToAgents.delete(this.browsingContext);

View file

@ -129,7 +129,7 @@ class nsScreencastService::Session : public rtc::VideoSinkInterface<webrtc::Vide
capability.height = 960; capability.height = 960;
capability.maxFPS = ScreencastEncoder::fps; capability.maxFPS = ScreencastEncoder::fps;
capability.videoType = webrtc::VideoType::kI420; capability.videoType = webrtc::VideoType::kI420;
int error = mCaptureModule->StartCapture(capability); int error = mCaptureModule->StartCaptureCounted(capability);
if (error) { if (error) {
fprintf(stderr, "StartCapture error %d\n", error); fprintf(stderr, "StartCapture error %d\n", error);
return false; return false;
@ -152,7 +152,7 @@ class nsScreencastService::Session : public rtc::VideoSinkInterface<webrtc::Vide
mCaptureModule->DeRegisterCaptureDataCallback(this); mCaptureModule->DeRegisterCaptureDataCallback(this);
else else
mCaptureModule->DeRegisterRawFrameCallback(this); mCaptureModule->DeRegisterRawFrameCallback(this);
mCaptureModule->StopCapture(); mCaptureModule->StopCaptureCounted();
if (mEncoder) { if (mEncoder) {
mEncoder->finish([this, protect = RefPtr{this}] { mEncoder->finish([this, protect = RefPtr{this}] {
NS_DispatchToMainThread(NS_NewRunnableFunction( NS_DispatchToMainThread(NS_NewRunnableFunction(

View file

@ -1,17 +1,13 @@
diff --git a/python/mozversioncontrol/mozversioncontrol/__init__.py b/python/mozversioncontrol/mozversioncontrol/__init__.py
index f9a9b0d6bd1f..c5c437b3f220 100644
--- a/python/mozversioncontrol/mozversioncontrol/__init__.py --- a/python/mozversioncontrol/mozversioncontrol/__init__.py
+++ b/python/mozversioncontrol/mozversioncontrol/__init__.py +++ b/python/mozversioncontrol/mozversioncontrol/__init__.py
@@ -1019,9 +1019,11 @@ class SrcRepository(Repository): @@ -1144,7 +1144,7 @@ class SrcRepository(Repository):
""" for root, dirs, files in os.walk(self.path):
res = [] base = os.path.relpath(root, self.path)
# move away the .git or .hg folder from path to more easily test in a hg/git repo
- for root, dirs, files in os.walk("."):
+ for root, dirs, files in os.walk(path):
for name in files: for name in files:
- res.append(os.path.join(root, name)) - res.append(os.path.join(base, name))
+ res.append( + res.append(os.path.join(base, name)).replace("\\", "/")
+ os.path.relpath(os.path.join(root, name), path).replace("\\", "/")
+ )
return res return res
def get_tracked_files_finder(self, path): def get_tracked_files_finder(self, path):

View file

@ -1,178 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: stransky <stransky@redhat.com>
Date: Wed, 10 Jul 2024 10:59:52 +0000
Subject: [PATCH] Bug 1898476 [Wayland] Move MozContainerSurfaceLock from
MozContainerWayland to MozContainerSurfaceLock module r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D214883
---
widget/gtk/MozContainerSurfaceLock.cpp | 31 ++++++++++++++++++++++++++
widget/gtk/MozContainerSurfaceLock.h | 28 +++++++++++++++++++++++
widget/gtk/MozContainerWayland.cpp | 17 --------------
widget/gtk/MozContainerWayland.h | 16 ++++++-------
widget/gtk/moz.build | 3 +++
5 files changed, 69 insertions(+), 26 deletions(-)
create mode 100644 widget/gtk/MozContainerSurfaceLock.cpp
create mode 100644 widget/gtk/MozContainerSurfaceLock.h
diff --git a/widget/gtk/MozContainerSurfaceLock.cpp b/widget/gtk/MozContainerSurfaceLock.cpp
new file mode 100644
index 000000000000..22e6baf0bd82
--- /dev/null
+++ b/widget/gtk/MozContainerSurfaceLock.cpp
@@ -0,0 +1,31 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "MozContainerSurfaceLock.h"
+#include "MozContainer.h"
+#include "WidgetUtilsGtk.h"
+
+using namespace mozilla::widget;
+
+MozContainerSurfaceLock::MozContainerSurfaceLock(MozContainer* aContainer) {
+#ifdef MOZ_WAYLAND
+ mContainer = aContainer;
+ if (GdkIsWaylandDisplay()) {
+ // mSurface can be nullptr if we lock hidden MozContainer and
+ // that's correct, MozContainer is still locked.
+ mSurface = moz_container_wayland_surface_lock(aContainer);
+ }
+#endif
+}
+
+MozContainerSurfaceLock::~MozContainerSurfaceLock() {
+#ifdef MOZ_WAYLAND
+ if (GdkIsWaylandDisplay()) {
+ moz_container_wayland_surface_unlock(mContainer, &mSurface);
+ }
+#endif
+}
+
+struct wl_surface* MozContainerSurfaceLock::GetSurface() { return mSurface; }
diff --git a/widget/gtk/MozContainerSurfaceLock.h b/widget/gtk/MozContainerSurfaceLock.h
new file mode 100644
index 000000000000..f96893b3f5b9
--- /dev/null
+++ b/widget/gtk/MozContainerSurfaceLock.h
@@ -0,0 +1,28 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef widget_gtk_MozContainerSurfaceLock_h
+#define widget_gtk_MozContainerSurfaceLock_h
+
+struct wl_surface;
+struct _MozContainer;
+typedef struct _MozContainer MozContainer;
+
+class MozContainerSurfaceLock {
+ public:
+ explicit MozContainerSurfaceLock(MozContainer* aContainer);
+ ~MozContainerSurfaceLock();
+
+ // wl_surface can be nullptr if we lock hidden MozContainer.
+ struct wl_surface* GetSurface();
+
+ private:
+#ifdef MOZ_WAYLAND
+ MozContainer* mContainer = nullptr;
+#endif
+ struct wl_surface* mSurface = nullptr;
+};
+
+#endif // widget_gtk_MozContainerSurfaceLock_h
diff --git a/widget/gtk/MozContainerWayland.cpp b/widget/gtk/MozContainerWayland.cpp
index 84c5e0a6642d..47e7cce6927b 100644
--- a/widget/gtk/MozContainerWayland.cpp
+++ b/widget/gtk/MozContainerWayland.cpp
@@ -87,23 +87,6 @@ static void moz_container_wayland_set_opaque_region_locked(
const MutexAutoLock& aProofOfLock, MozContainer* container,
const LayoutDeviceIntRegion&);
-// Lock mozcontainer and get wayland surface of it. You need to pair with
-// moz_container_wayland_surface_unlock() even
-// if moz_container_wayland_surface_lock() fails and returns nullptr.
-static struct wl_surface* moz_container_wayland_surface_lock(
- MozContainer* container);
-static void moz_container_wayland_surface_unlock(MozContainer* container,
- struct wl_surface** surface);
-
-MozContainerSurfaceLock::MozContainerSurfaceLock(MozContainer* aContainer) {
- mContainer = aContainer;
- mSurface = moz_container_wayland_surface_lock(aContainer);
-}
-MozContainerSurfaceLock::~MozContainerSurfaceLock() {
- moz_container_wayland_surface_unlock(mContainer, &mSurface);
-}
-struct wl_surface* MozContainerSurfaceLock::GetSurface() { return mSurface; }
-
// Invalidate gtk wl_surface to commit changes to wl_subsurface.
// wl_subsurface changes are effective when parent surface is commited.
static void moz_container_wayland_invalidate(MozContainer* container) {
diff --git a/widget/gtk/MozContainerWayland.h b/widget/gtk/MozContainerWayland.h
index 6a33df264279..6b1b07316955 100644
--- a/widget/gtk/MozContainerWayland.h
+++ b/widget/gtk/MozContainerWayland.h
@@ -13,6 +13,7 @@
#include <vector>
#include "mozilla/Mutex.h"
#include "WindowSurface.h"
+#include "MozContainerSurfaceLock.h"
/*
* MozContainer
@@ -61,15 +62,12 @@ struct _MozContainerClass;
typedef struct _MozContainer MozContainer;
typedef struct _MozContainerClass MozContainerClass;
-class MozContainerSurfaceLock {
- MozContainer* mContainer;
- struct wl_surface* mSurface;
-
- public:
- explicit MozContainerSurfaceLock(MozContainer* aContainer);
- ~MozContainerSurfaceLock();
- struct wl_surface* GetSurface();
-};
+// Lock mozcontainer and get wayland surface of it. You need to pair with
+// moz_container_wayland_surface_unlock() even
+// if moz_container_wayland_surface_lock() fails and returns nullptr.
+struct wl_surface* moz_container_wayland_surface_lock(MozContainer* container);
+void moz_container_wayland_surface_unlock(MozContainer* container,
+ struct wl_surface** surface);
void moz_container_wayland_map(GtkWidget*);
gboolean moz_container_wayland_map_event(GtkWidget*, GdkEventAny*);
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
index 1567c006a457..6ced9be06e8f 100644
--- a/widget/gtk/moz.build
+++ b/widget/gtk/moz.build
@@ -33,6 +33,7 @@ if CONFIG["MOZ_ENABLE_V4L2"]:
EXPORTS += [
"MozContainer.h",
+ "MozContainerSurfaceLock.h",
"nsGTKToolkit.h",
"nsGtkUtils.h",
"nsImageToPixbuf.h",
@@ -71,6 +72,7 @@ UNIFIED_SOURCES += [
"IMContextWrapper.cpp",
"InProcessGtkCompositorWidget.cpp",
"MozContainer.cpp",
+ "MozContainerSurfaceLock.cpp",
"MPRISServiceHandler.cpp",
"NativeKeyBindings.cpp",
"NativeMenuGtk.cpp",
@@ -114,6 +116,7 @@ if CONFIG["MOZ_WAYLAND"]:
"WindowSurfaceWaylandMultiBuffer.cpp",
]
EXPORTS.mozilla.widget += [
+ "MozContainerSurfaceLock.h",
"MozContainerWayland.h",
"nsWaylandDisplay.h",
"WaylandBuffer.h",

View file

@ -1,88 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: stransky <stransky@redhat.com>
Date: Wed, 10 Jul 2024 10:59:53 +0000
Subject: [PATCH] Bug 1898476 [Wayland] Provide surface lock by
GtkCompositorWidget r=emilio
Depends on D214883
Differential Revision: https://phabricator.services.mozilla.com/D214884
---
widget/gtk/GtkCompositorWidget.cpp | 4 ++++
widget/gtk/GtkCompositorWidget.h | 4 ++++
widget/gtk/nsWindow.cpp | 7 +++++++
widget/gtk/nsWindow.h | 3 +++
4 files changed, 18 insertions(+)
diff --git a/widget/gtk/GtkCompositorWidget.cpp b/widget/gtk/GtkCompositorWidget.cpp
index 50eb90a0c860..65b9dd3f49e0 100644
--- a/widget/gtk/GtkCompositorWidget.cpp
+++ b/widget/gtk/GtkCompositorWidget.cpp
@@ -211,5 +211,9 @@ bool GtkCompositorWidget::IsPopup() {
}
#endif
+UniquePtr<MozContainerSurfaceLock> GtkCompositorWidget::LockSurface() {
+ return mWidget->LockSurface();
+}
+
} // namespace widget
} // namespace mozilla
diff --git a/widget/gtk/GtkCompositorWidget.h b/widget/gtk/GtkCompositorWidget.h
index d4834247f16d..8d56f35a561c 100644
--- a/widget/gtk/GtkCompositorWidget.h
+++ b/widget/gtk/GtkCompositorWidget.h
@@ -10,6 +10,8 @@
#include "mozilla/DataMutex.h"
#include "mozilla/widget/CompositorWidget.h"
#include "WindowSurfaceProvider.h"
+#include "mozilla/UniquePtr.h"
+#include "MozContainerSurfaceLock.h"
class nsIWidget;
class nsWindow;
@@ -96,6 +98,8 @@ class GtkCompositorWidget : public CompositorWidget,
void NotifyClientSizeChanged(const LayoutDeviceIntSize& aClientSize) override;
GtkCompositorWidget* AsGtkCompositorWidget() override { return this; }
+ UniquePtr<MozContainerSurfaceLock> LockSurface();
+
private:
#if defined(MOZ_WAYLAND)
void ConfigureWaylandBackend();
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
index b78ad4ca286b..40594a0e6f2f 100644
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -10276,3 +10276,10 @@ void nsWindow::SetDragSource(GdkDragContext* aSourceDragContext) {
}
}
}
+
+UniquePtr<MozContainerSurfaceLock> nsWindow::LockSurface() {
+ if (mIsDestroyed) {
+ return nullptr;
+ }
+ return MakeUnique<MozContainerSurfaceLock>(mContainer);
+}
diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
index 36b039cc5e58..ce57689fcc15 100644
--- a/widget/gtk/nsWindow.h
+++ b/widget/gtk/nsWindow.h
@@ -13,6 +13,7 @@
#include "CompositorWidget.h"
#include "MozContainer.h"
+#include "MozContainerSurfaceLock.h"
#include "VsyncSource.h"
#include "mozilla/EventForwards.h"
#include "mozilla/Maybe.h"
@@ -421,6 +422,8 @@ class nsWindow final : public nsBaseWidget {
static nsWindow* GetFocusedWindow();
+ mozilla::UniquePtr<MozContainerSurfaceLock> LockSurface();
+
#ifdef MOZ_WAYLAND
// Use xdg-activation protocol to transfer focus from gFocusWindow to aWindow.
static void TransferFocusToWaylandWindow(nsWindow* aWindow);

View file

@ -1,34 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: stransky <stransky@redhat.com>
Date: Wed, 10 Jul 2024 10:59:53 +0000
Subject: [PATCH] Bug 1898476 [Wayland] Lock Wayland surface before Swap
buffers in RenderCompositorEGL r=emilio
Depends on D214884
Differential Revision: https://phabricator.services.mozilla.com/D214885
---
gfx/webrender_bindings/RenderCompositorEGL.cpp | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/gfx/webrender_bindings/RenderCompositorEGL.cpp b/gfx/webrender_bindings/RenderCompositorEGL.cpp
index ccabfd375f37..ba10c40657d9 100644
--- a/gfx/webrender_bindings/RenderCompositorEGL.cpp
+++ b/gfx/webrender_bindings/RenderCompositorEGL.cpp
@@ -154,6 +154,16 @@ RenderedFrameId RenderCompositorEGL::EndFrame(
}
gl()->SetDamage(bufferInvalid);
}
+
+#ifdef MOZ_WIDGET_GTK
+ // Rendering on Wayland has to be atomic (buffer attach + commit) and
+ // wayland surface is also used by main thread so lock it before
+ // we paint at SwapBuffers().
+ UniquePtr<MozContainerSurfaceLock> lock;
+ if (auto* gtkWidget = mWidget->AsGTK()) {
+ lock = gtkWidget->LockSurface();
+ }
+#endif
gl()->SwapBuffers();
return frameId;
}

View file

@ -1,8 +1,3 @@
# Playwright patches. Modified by daijro.
# Base: https://github.com/microsoft/playwright/blob/acf5ea0904b326c461a9dd0316c36fa30c3bd34b/browser_patches/webkit/patches/bootstrap.diff
# - Removes leaks
# - Updated to Mozilla 1.29.0
cd camoufox-129.0-beta && git diff
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 137963f117..41fa27bc4a 100644 index 137963f117..41fa27bc4a 100644
--- a/accessible/base/NotificationController.h --- a/accessible/base/NotificationController.h
@ -62,10 +57,10 @@ index 8e9bf2b413..5a3b194b54 100644
* 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 b40e0fceb5..2c4e6d5fbf 100644 index 8167d2b81c..3ae798880a 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
@@ -22,6 +22,7 @@ @@ -23,6 +23,7 @@
#include "mozilla/WinHeaderOnlyUtils.h" #include "mozilla/WinHeaderOnlyUtils.h"
#include "nsWindowsHelpers.h" #include "nsWindowsHelpers.h"
@ -73,7 +68,7 @@ index b40e0fceb5..2c4e6d5fbf 100644
#include <windows.h> #include <windows.h>
#include <processthreadsapi.h> #include <processthreadsapi.h>
@@ -421,8 +422,18 @@ Maybe<int> LauncherMain(int& argc, wchar_t* argv[], @@ -422,8 +423,18 @@ 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,7 +167,7 @@ index d49c6fbf1b..7ea3540947 100644
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 db5b5b9907..bcd2321f46 100644 index e1721f31d4..b3bc2d575d 100644
--- a/docshell/base/BrowsingContext.cpp --- a/docshell/base/BrowsingContext.cpp
+++ b/docshell/base/BrowsingContext.cpp +++ b/docshell/base/BrowsingContext.cpp
@@ -106,8 +106,15 @@ struct ParamTraits<mozilla::dom::DisplayMode> @@ -106,8 +106,15 @@ struct ParamTraits<mozilla::dom::DisplayMode>
@ -193,7 +188,7 @@ index db5b5b9907..bcd2321f46 100644
template <> template <>
struct ParamTraits<mozilla::dom::ExplicitActiveStatus> struct ParamTraits<mozilla::dom::ExplicitActiveStatus>
@@ -2807,6 +2814,40 @@ void BrowsingContext::DidSet(FieldIndex<IDX_PrefersColorSchemeOverride>, @@ -2818,6 +2825,40 @@ void BrowsingContext::DidSet(FieldIndex<IDX_PrefersColorSchemeOverride>,
PresContextAffectingFieldChanged(); PresContextAffectingFieldChanged();
} }
@ -302,7 +297,7 @@ index 61135ab0d7..cc8eb043f1 100644
bool CanSet(FieldIndex<IDX_SuspendMediaWhenInactive>, bool, ContentParent*) { bool CanSet(FieldIndex<IDX_SuspendMediaWhenInactive>, bool, ContentParent*) {
diff --git a/docshell/base/CanonicalBrowsingContext.cpp b/docshell/base/CanonicalBrowsingContext.cpp diff --git a/docshell/base/CanonicalBrowsingContext.cpp b/docshell/base/CanonicalBrowsingContext.cpp
index 18b2bde3da..231a101312 100644 index f0d8cb2539..535434ba4b 100644
--- a/docshell/base/CanonicalBrowsingContext.cpp --- a/docshell/base/CanonicalBrowsingContext.cpp
+++ b/docshell/base/CanonicalBrowsingContext.cpp +++ b/docshell/base/CanonicalBrowsingContext.cpp
@@ -1594,6 +1594,12 @@ void CanonicalBrowsingContext::LoadURI(nsIURI* aURI, @@ -1594,6 +1594,12 @@ void CanonicalBrowsingContext::LoadURI(nsIURI* aURI,
@ -319,7 +314,7 @@ index 18b2bde3da..231a101312 100644
} }
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 60cbd5d5b8..f552a69588 100644 index c15a424a05..fa9989e313 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 @@
@ -605,7 +600,7 @@ index 60cbd5d5b8..f552a69588 100644
if (RefPtr<PresShell> presShell = GetPresShell()) { if (RefPtr<PresShell> presShell = GetPresShell()) {
presShell->ActivenessMaybeChanged(); presShell->ActivenessMaybeChanged();
} }
@@ -6681,6 +6906,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, @@ -6688,6 +6913,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType,
return false; // no entry to save into return false; // no entry to save into
} }
@ -616,7 +611,7 @@ index 60cbd5d5b8..f552a69588 100644
MOZ_ASSERT(!mozilla::SessionHistoryInParent(), MOZ_ASSERT(!mozilla::SessionHistoryInParent(),
"mOSHE cannot be non-null with SHIP"); "mOSHE cannot be non-null with SHIP");
nsCOMPtr<nsIDocumentViewer> viewer = mOSHE->GetDocumentViewer(); nsCOMPtr<nsIDocumentViewer> viewer = mOSHE->GetDocumentViewer();
@@ -8413,6 +8642,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { @@ -8420,6 +8649,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) {
true, // aForceNoOpener true, // aForceNoOpener
getter_AddRefs(newBC)); getter_AddRefs(newBC));
MOZ_ASSERT(!newBC); MOZ_ASSERT(!newBC);
@ -629,7 +624,7 @@ index 60cbd5d5b8..f552a69588 100644
return rv; return rv;
} }
@@ -9549,6 +9784,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, @@ -9556,6 +9791,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState,
nsINetworkPredictor::PREDICT_LOAD, attrs, nullptr); nsINetworkPredictor::PREDICT_LOAD, attrs, nullptr);
nsCOMPtr<nsIRequest> req; nsCOMPtr<nsIRequest> req;
@ -646,7 +641,7 @@ index 60cbd5d5b8..f552a69588 100644
rv = DoURILoad(aLoadState, aCacheKey, getter_AddRefs(req)); rv = DoURILoad(aLoadState, aCacheKey, getter_AddRefs(req));
if (NS_SUCCEEDED(rv)) { if (NS_SUCCEEDED(rv)) {
@@ -12747,6 +12992,9 @@ class OnLinkClickEvent : public Runnable { @@ -12754,6 +12999,9 @@ class OnLinkClickEvent : public Runnable {
mHandler->OnLinkClickSync(mContent, mLoadState, mNoOpenerImplied, mHandler->OnLinkClickSync(mContent, mLoadState, mNoOpenerImplied,
mTriggeringPrincipal); mTriggeringPrincipal);
} }
@ -656,7 +651,7 @@ index 60cbd5d5b8..f552a69588 100644
return NS_OK; return NS_OK;
} }
@@ -12836,6 +13084,8 @@ nsresult nsDocShell::OnLinkClick( @@ -12843,6 +13091,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);
@ -777,10 +772,10 @@ index fdc04f16c6..199f8fdb06 100644
* 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 235e2fcfcc..e81abc3e18 100644 index 79f3524037..2b75a1eaff 100644
--- a/dom/base/Document.cpp --- a/dom/base/Document.cpp
+++ b/dom/base/Document.cpp +++ b/dom/base/Document.cpp
@@ -3757,6 +3757,9 @@ void Document::SendToConsole(nsCOMArray<nsISecurityConsoleMessage>& aMessages) { @@ -3783,6 +3783,9 @@ void Document::SendToConsole(nsCOMArray<nsISecurityConsoleMessage>& aMessages) {
} }
void Document::ApplySettingsFromCSP(bool aSpeculative) { void Document::ApplySettingsFromCSP(bool aSpeculative) {
@ -790,7 +785,7 @@ index 235e2fcfcc..e81abc3e18 100644
nsresult rv = NS_OK; nsresult rv = NS_OK;
if (!aSpeculative) { if (!aSpeculative) {
// 1) apply settings from regular CSP // 1) apply settings from regular CSP
@@ -3814,6 +3817,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { @@ -3840,6 +3843,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!");
@ -802,7 +797,7 @@ index 235e2fcfcc..e81abc3e18 100644
// 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;
@@ -4613,6 +4621,10 @@ bool Document::HasFocus(ErrorResult& rv) const { @@ -4641,6 +4649,10 @@ bool Document::HasFocus(ErrorResult& rv) const {
return false; return false;
} }
@ -813,7 +808,7 @@ index 235e2fcfcc..e81abc3e18 100644
if (!fm->IsInActiveWindow(bc)) { if (!fm->IsInActiveWindow(bc)) {
return false; return false;
} }
@@ -19080,6 +19092,66 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { @@ -19139,6 +19151,66 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const {
return PreferenceSheet::PrefsFor(*this).mColorScheme; return PreferenceSheet::PrefsFor(*this).mColorScheme;
} }
@ -881,10 +876,10 @@ index 235e2fcfcc..e81abc3e18 100644
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 0021e45241..2325b7d65b 100644 index 7a8d8f2a71..e030e6b7ad 100644
--- a/dom/base/Document.h --- a/dom/base/Document.h
+++ b/dom/base/Document.h +++ b/dom/base/Document.h
@@ -4053,6 +4053,9 @@ class Document : public nsINode, @@ -4077,6 +4077,9 @@ class Document : public nsINode,
// color-scheme meta tag. // color-scheme meta tag.
ColorScheme DefaultColorScheme() const; ColorScheme DefaultColorScheme() const;
@ -968,10 +963,10 @@ index 6abf6cef23..46ead1f32e 100644
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 7b7deca251..f0064bead9 100644 index 8518005d29..9065f304a3 100644
--- a/dom/base/nsContentUtils.cpp --- a/dom/base/nsContentUtils.cpp
+++ b/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp
@@ -8829,7 +8829,8 @@ nsresult nsContentUtils::SendMouseEvent( @@ -8809,7 +8809,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,
@ -981,7 +976,7 @@ index 7b7deca251..f0064bead9 100644
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;
@@ -8837,6 +8838,7 @@ nsresult nsContentUtils::SendMouseEvent( @@ -8817,6 +8818,7 @@ nsresult nsContentUtils::SendMouseEvent(
EventMessage msg; EventMessage msg;
Maybe<WidgetMouseEvent::ExitFrom> exitFrom; Maybe<WidgetMouseEvent::ExitFrom> exitFrom;
bool contextMenuKey = false; bool contextMenuKey = false;
@ -989,7 +984,7 @@ index 7b7deca251..f0064bead9 100644
if (aType.EqualsLiteral("mousedown")) { if (aType.EqualsLiteral("mousedown")) {
msg = eMouseDown; msg = eMouseDown;
} else if (aType.EqualsLiteral("mouseup")) { } else if (aType.EqualsLiteral("mouseup")) {
@@ -8861,6 +8863,12 @@ nsresult nsContentUtils::SendMouseEvent( @@ -8841,6 +8843,12 @@ nsresult nsContentUtils::SendMouseEvent(
msg = eMouseHitTest; msg = eMouseHitTest;
} else if (aType.EqualsLiteral("MozMouseExploreByTouch")) { } else if (aType.EqualsLiteral("MozMouseExploreByTouch")) {
msg = eMouseExploreByTouch; msg = eMouseExploreByTouch;
@ -1002,7 +997,7 @@ index 7b7deca251..f0064bead9 100644
} else { } else {
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
@@ -8871,6 +8879,8 @@ nsresult nsContentUtils::SendMouseEvent( @@ -8851,6 +8859,8 @@ nsresult nsContentUtils::SendMouseEvent(
Maybe<WidgetPointerEvent> pointerEvent; Maybe<WidgetPointerEvent> pointerEvent;
Maybe<WidgetMouseEvent> mouseEvent; Maybe<WidgetMouseEvent> mouseEvent;
@ -1011,7 +1006,7 @@ index 7b7deca251..f0064bead9 100644
if (IsPointerEventMessage(msg)) { if (IsPointerEventMessage(msg)) {
MOZ_ASSERT(!aIsWidgetEventSynthesized, MOZ_ASSERT(!aIsWidgetEventSynthesized,
"The event shouldn't be dispatched as a synthesized event"); "The event shouldn't be dispatched as a synthesized event");
@@ -8882,6 +8892,11 @@ nsresult nsContentUtils::SendMouseEvent( @@ -8862,6 +8872,11 @@ nsresult nsContentUtils::SendMouseEvent(
pointerEvent.emplace(true, msg, widget, pointerEvent.emplace(true, msg, widget,
contextMenuKey ? WidgetMouseEvent::eContextMenuKey contextMenuKey ? WidgetMouseEvent::eContextMenuKey
: WidgetMouseEvent::eNormal); : WidgetMouseEvent::eNormal);
@ -1023,7 +1018,7 @@ index 7b7deca251..f0064bead9 100644
} else { } else {
mouseEvent.emplace(true, msg, widget, mouseEvent.emplace(true, msg, widget,
aIsWidgetEventSynthesized aIsWidgetEventSynthesized
@@ -8891,7 +8906,9 @@ nsresult nsContentUtils::SendMouseEvent( @@ -8871,7 +8886,9 @@ nsresult nsContentUtils::SendMouseEvent(
: WidgetMouseEvent::eNormal); : WidgetMouseEvent::eNormal);
} }
WidgetMouseEvent& mouseOrPointerEvent = WidgetMouseEvent& mouseOrPointerEvent =
@ -1034,7 +1029,7 @@ index 7b7deca251..f0064bead9 100644
mouseOrPointerEvent.pointerId = aIdentifier; mouseOrPointerEvent.pointerId = aIdentifier;
mouseOrPointerEvent.mModifiers = GetWidgetModifiers(aModifiers); mouseOrPointerEvent.mModifiers = GetWidgetModifiers(aModifiers);
mouseOrPointerEvent.mButton = aButton; mouseOrPointerEvent.mButton = aButton;
@@ -8902,8 +8919,10 @@ nsresult nsContentUtils::SendMouseEvent( @@ -8882,8 +8899,10 @@ nsresult nsContentUtils::SendMouseEvent(
mouseOrPointerEvent.mPressure = aPressure; mouseOrPointerEvent.mPressure = aPressure;
mouseOrPointerEvent.mInputSource = aInputSourceArg; mouseOrPointerEvent.mInputSource = aInputSourceArg;
mouseOrPointerEvent.mClickCount = aClickCount; mouseOrPointerEvent.mClickCount = aClickCount;
@ -1046,10 +1041,10 @@ index 7b7deca251..f0064bead9 100644
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 3837cce20c..81ccfbe139 100644 index b4b2244ddf..2d22cdf8b2 100644
--- a/dom/base/nsContentUtils.h --- a/dom/base/nsContentUtils.h
+++ b/dom/base/nsContentUtils.h +++ b/dom/base/nsContentUtils.h
@@ -3093,7 +3093,8 @@ class nsContentUtils { @@ -3047,7 +3047,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,
@ -1060,10 +1055,10 @@ index 3837cce20c..81ccfbe139 100644
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 e2de2b30c0..f937f561c0 100644 index c77bf80d5e..2f61c71cdb 100644
--- a/dom/base/nsDOMWindowUtils.cpp --- a/dom/base/nsDOMWindowUtils.cpp
+++ b/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp
@@ -684,6 +684,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) { @@ -685,6 +685,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) {
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
@ -1090,7 +1085,7 @@ index e2de2b30c0..f937f561c0 100644
NS_IMETHODIMP NS_IMETHODIMP
nsDOMWindowUtils::SendMouseEvent( nsDOMWindowUtils::SendMouseEvent(
const nsAString& aType, float aX, float aY, int32_t aButton, const nsAString& aType, float aX, float aY, int32_t aButton,
@@ -698,7 +718,7 @@ nsDOMWindowUtils::SendMouseEvent( @@ -699,7 +719,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,
@ -1099,7 +1094,7 @@ index e2de2b30c0..f937f561c0 100644
} }
NS_IMETHODIMP NS_IMETHODIMP
@@ -716,7 +736,7 @@ nsDOMWindowUtils::SendMouseEventToWindow( @@ -717,7 +737,7 @@ nsDOMWindowUtils::SendMouseEventToWindow(
aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, true, aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, true,
nullptr, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true, nullptr, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true,
aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false, aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false,
@ -1108,7 +1103,7 @@ index e2de2b30c0..f937f561c0 100644
} }
NS_IMETHODIMP NS_IMETHODIMP
@@ -725,13 +745,13 @@ nsDOMWindowUtils::SendMouseEventCommon( @@ -726,13 +746,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,
@ -1138,10 +1133,10 @@ index 47ff326b20..b8e084b0c7 100644
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 22c175c93e..3b4a243d1d 100644 index cbd5cb8e45..efde3a8206 100644
--- a/dom/base/nsFocusManager.cpp --- a/dom/base/nsFocusManager.cpp
+++ b/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp
@@ -1684,6 +1684,10 @@ Maybe<uint64_t> nsFocusManager::SetFocusInner(Element* aNewContent, @@ -1697,6 +1697,10 @@ Maybe<uint64_t> nsFocusManager::SetFocusInner(Element* aNewContent,
(GetActiveBrowsingContext() == newRootBrowsingContext); (GetActiveBrowsingContext() == newRootBrowsingContext);
} }
@ -1152,7 +1147,7 @@ index 22c175c93e..3b4a243d1d 100644
// 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)) {
@@ -2315,6 +2319,12 @@ bool nsFocusManager::BlurImpl(BrowsingContext* aBrowsingContextToClear, @@ -2328,6 +2332,12 @@ bool nsFocusManager::BlurImpl(BrowsingContext* aBrowsingContextToClear,
return true; return true;
} }
@ -1165,7 +1160,7 @@ index 22c175c93e..3b4a243d1d 100644
// Keep a ref to presShell since dispatching the DOM event may cause // Keep a ref to presShell since dispatching the DOM event may cause
// the document to be destroyed. // the document to be destroyed.
RefPtr<PresShell> presShell = docShell->GetPresShell(); RefPtr<PresShell> presShell = docShell->GetPresShell();
@@ -2992,7 +3002,9 @@ void nsFocusManager::RaiseWindow(nsPIDOMWindowOuter* aWindow, @@ -3005,7 +3015,9 @@ void nsFocusManager::RaiseWindow(nsPIDOMWindowOuter* aWindow,
} }
} }
@ -1177,10 +1172,10 @@ index 22c175c93e..3b4a243d1d 100644
// 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 e47d497907..360ab27a8f 100644 index f2aa07e2c1..2b1b406c4f 100644
--- a/dom/base/nsGlobalWindowOuter.cpp --- a/dom/base/nsGlobalWindowOuter.cpp
+++ b/dom/base/nsGlobalWindowOuter.cpp +++ b/dom/base/nsGlobalWindowOuter.cpp
@@ -2514,10 +2514,16 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, @@ -2516,10 +2516,16 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument,
}(); }();
if (!isContentAboutBlankInChromeDocshell) { if (!isContentAboutBlankInChromeDocshell) {
@ -1201,7 +1196,7 @@ index e47d497907..360ab27a8f 100644
} }
} }
@@ -2637,6 +2643,19 @@ void nsGlobalWindowOuter::DispatchDOMWindowCreated() { @@ -2639,6 +2645,19 @@ void nsGlobalWindowOuter::DispatchDOMWindowCreated() {
} }
} }
@ -1222,10 +1217,10 @@ index e47d497907..360ab27a8f 100644
void nsGlobalWindowOuter::SetDocShell(nsDocShell* aDocShell) { void nsGlobalWindowOuter::SetDocShell(nsDocShell* aDocShell) {
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 0039d6d91b..7a6c5da166 100644 index e2a2b560b5..81eaca3fb0 100644
--- a/dom/base/nsGlobalWindowOuter.h --- a/dom/base/nsGlobalWindowOuter.h
+++ b/dom/base/nsGlobalWindowOuter.h +++ b/dom/base/nsGlobalWindowOuter.h
@@ -314,6 +314,7 @@ class nsGlobalWindowOuter final : public mozilla::dom::EventTarget, @@ -317,6 +317,7 @@ class nsGlobalWindowOuter final : public mozilla::dom::EventTarget,
// Outer windows only. // Outer windows only.
void DispatchDOMWindowCreated(); void DispatchDOMWindowCreated();
@ -1234,7 +1229,7 @@ index 0039d6d91b..7a6c5da166 100644
// 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 4b54dcd5b4..e75b5f148d 100644 index 091d04dd79..40bb124fd7 100644
--- a/dom/base/nsINode.cpp --- a/dom/base/nsINode.cpp
+++ b/dom/base/nsINode.cpp +++ b/dom/base/nsINode.cpp
@@ -1402,6 +1402,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, @@ -1402,6 +1402,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions,
@ -1300,10 +1295,10 @@ index 4b54dcd5b4..e75b5f148d 100644
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 6f980f472a..3d60daf881 100644 index 3bc7ff8a3d..dcb47740ca 100644
--- a/dom/base/nsINode.h --- a/dom/base/nsINode.h
+++ b/dom/base/nsINode.h +++ b/dom/base/nsINode.h
@@ -2303,6 +2303,10 @@ class nsINode : public mozilla::dom::EventTarget { @@ -2317,6 +2317,10 @@ class nsINode : public mozilla::dom::EventTarget {
nsTArray<RefPtr<DOMQuad>>& aResult, nsTArray<RefPtr<DOMQuad>>& aResult,
ErrorResult& aRv); ErrorResult& aRv);
@ -1315,10 +1310,10 @@ index 6f980f472a..3d60daf881 100644
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 cf8037cd58..583460796f 100644 index 48df3ae2d3..87c8d23735 100644
--- a/dom/base/nsJSUtils.cpp --- a/dom/base/nsJSUtils.cpp
+++ b/dom/base/nsJSUtils.cpp +++ b/dom/base/nsJSUtils.cpp
@@ -177,6 +177,11 @@ bool nsJSUtils::GetScopeChainForElement( @@ -149,6 +149,11 @@ bool nsJSUtils::GetScopeChainForElement(
return true; return true;
} }
@ -1331,10 +1326,10 @@ index cf8037cd58..583460796f 100644
void nsJSUtils::ResetTimeZone() { JS::ResetTimeZone(); } void nsJSUtils::ResetTimeZone() { JS::ResetTimeZone(); }
diff --git a/dom/base/nsJSUtils.h b/dom/base/nsJSUtils.h diff --git a/dom/base/nsJSUtils.h b/dom/base/nsJSUtils.h
index cceb725d39..e906a7fb7c 100644 index 8b4c1492c6..ee66eaa21d 100644
--- a/dom/base/nsJSUtils.h --- a/dom/base/nsJSUtils.h
+++ b/dom/base/nsJSUtils.h +++ b/dom/base/nsJSUtils.h
@@ -79,6 +79,7 @@ class nsJSUtils { @@ -71,6 +71,7 @@ class nsJSUtils {
JSContext* aCx, mozilla::dom::Element* aElement, JSContext* aCx, mozilla::dom::Element* aElement,
JS::MutableHandleVector<JSObject*> aScopeChain); JS::MutableHandleVector<JSObject*> aScopeChain);
@ -1484,18 +1479,18 @@ index 7e1af00d05..e85af9718d 100644
~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 e2a77a1143..a614efef05 100644 index d40c2a230c..e2ddb846d2 100644
--- a/dom/html/HTMLInputElement.cpp --- a/dom/html/HTMLInputElement.cpp
+++ b/dom/html/HTMLInputElement.cpp +++ b/dom/html/HTMLInputElement.cpp
@@ -59,6 +59,7 @@ @@ -62,6 +62,7 @@
#include "mozilla/dom/Document.h"
#include "mozilla/dom/HTMLDataListElement.h"
#include "mozilla/dom/HTMLOptionElement.h" #include "mozilla/dom/HTMLOptionElement.h"
+#include "nsDocShell.h"
#include "nsIFormControlFrame.h"
#include "nsITextControlFrame.h"
#include "nsIFrame.h" #include "nsIFrame.h"
@@ -784,6 +785,13 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) { #include "nsRangeFrame.h"
+#include "nsDocShell.h"
#include "nsError.h"
#include "nsIEditor.h"
#include "nsIPromptCollection.h"
@@ -783,6 +784,13 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) {
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
@ -1510,7 +1505,7 @@ index e2a77a1143..a614efef05 100644
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 ac0251b498..184f4d980c 100644 index 89202fa1ff..61ed40c845 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
@@ -374,6 +374,26 @@ interface nsIDOMWindowUtils : nsISupports { @@ -374,6 +374,26 @@ interface nsIDOMWindowUtils : nsISupports {
@ -1541,7 +1536,7 @@ index ac0251b498..184f4d980c 100644
* touchstart, touchend, touchmove, and touchcancel * touchstart, touchend, touchmove, and touchcancel
* *
diff --git a/dom/ipc/BrowserChild.cpp b/dom/ipc/BrowserChild.cpp diff --git a/dom/ipc/BrowserChild.cpp b/dom/ipc/BrowserChild.cpp
index 204ee71ece..8597f2d0c4 100644 index 0335a887fe..dfbb8dae40 100644
--- a/dom/ipc/BrowserChild.cpp --- a/dom/ipc/BrowserChild.cpp
+++ b/dom/ipc/BrowserChild.cpp +++ b/dom/ipc/BrowserChild.cpp
@@ -1656,6 +1656,21 @@ void BrowserChild::HandleRealMouseButtonEvent(const WidgetMouseEvent& aEvent, @@ -1656,6 +1656,21 @@ void BrowserChild::HandleRealMouseButtonEvent(const WidgetMouseEvent& aEvent,
@ -1822,7 +1817,7 @@ index 3b39538e51..c7bf4f2d53 100644
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 4eafb2247d..e0d0b5bc78 100644 index ff2e907c0d..40ec25b558 100644
--- a/dom/security/nsCSPUtils.cpp --- a/dom/security/nsCSPUtils.cpp
+++ b/dom/security/nsCSPUtils.cpp +++ b/dom/security/nsCSPUtils.cpp
@@ -22,6 +22,7 @@ @@ -22,6 +22,7 @@
@ -1869,10 +1864,10 @@ index 2f71b284ee..2640bd5712 100644
* 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 6085248083..23b72e2d00 100644 index 1ba2051ed3..c0d6f45ce1 100644
--- a/dom/workers/RuntimeService.cpp --- a/dom/workers/RuntimeService.cpp
+++ b/dom/workers/RuntimeService.cpp +++ b/dom/workers/RuntimeService.cpp
@@ -998,7 +998,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) { @@ -1007,7 +1007,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) {
AssertIsOnMainThread(); AssertIsOnMainThread();
nsTArray<nsString> languages; nsTArray<nsString> languages;
@ -1881,7 +1876,7 @@ index 6085248083..23b72e2d00 100644
RuntimeService* runtime = RuntimeService::GetService(); RuntimeService* runtime = RuntimeService::GetService();
if (runtime) { if (runtime) {
@@ -1185,8 +1185,7 @@ bool RuntimeService::RegisterWorker(WorkerPrivate& aWorkerPrivate) { @@ -1194,8 +1194,7 @@ bool RuntimeService::RegisterWorker(WorkerPrivate& aWorkerPrivate) {
} }
// The navigator overridden properties should have already been read. // The navigator overridden properties should have already been read.
@ -1891,7 +1886,7 @@ index 6085248083..23b72e2d00 100644
mNavigatorPropertiesLoaded = true; mNavigatorPropertiesLoaded = true;
} }
@@ -1808,6 +1807,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted( @@ -1817,6 +1816,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted(
} }
} }
@ -1905,7 +1900,7 @@ index 6085248083..23b72e2d00 100644
template <typename Func> template <typename Func>
void RuntimeService::BroadcastAllWorkers(const Func& aFunc) { void RuntimeService::BroadcastAllWorkers(const Func& aFunc) {
AssertIsOnMainThread(); AssertIsOnMainThread();
@@ -2333,6 +2339,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers( @@ -2342,6 +2348,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers(
} }
} }
@ -1947,7 +1942,7 @@ index 58894a8361..c481d40d79 100644
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 089f42307b..63fb760ac8 100644 index 2b48cc2980..d8dc909833 100644
--- a/dom/workers/WorkerPrivate.cpp --- a/dom/workers/WorkerPrivate.cpp
+++ b/dom/workers/WorkerPrivate.cpp +++ b/dom/workers/WorkerPrivate.cpp
@@ -700,6 +700,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { @@ -700,6 +700,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable {
@ -1969,7 +1964,7 @@ index 089f42307b..63fb760ac8 100644
class UpdateLanguagesRunnable final : public WorkerThreadRunnable { class UpdateLanguagesRunnable final : public WorkerThreadRunnable {
nsTArray<nsString> mLanguages; nsTArray<nsString> mLanguages;
@@ -2108,6 +2120,16 @@ void WorkerPrivate::UpdateContextOptions( @@ -2113,6 +2125,16 @@ void WorkerPrivate::UpdateContextOptions(
} }
} }
@ -1986,7 +1981,7 @@ index 089f42307b..63fb760ac8 100644
void WorkerPrivate::UpdateLanguages(const nsTArray<nsString>& aLanguages) { void WorkerPrivate::UpdateLanguages(const nsTArray<nsString>& aLanguages) {
AssertIsOnParentThread(); AssertIsOnParentThread();
@@ -5736,6 +5758,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( @@ -5740,6 +5762,15 @@ void WorkerPrivate::UpdateContextOptionsInternal(
} }
} }
@ -2003,7 +1998,7 @@ index 089f42307b..63fb760ac8 100644
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 dfb96b7b79..a463eec618 100644 index da25a495a8..38f9282943 100644
--- a/dom/workers/WorkerPrivate.h --- a/dom/workers/WorkerPrivate.h
+++ b/dom/workers/WorkerPrivate.h +++ b/dom/workers/WorkerPrivate.h
@@ -432,6 +432,8 @@ class WorkerPrivate final @@ -432,6 +432,8 @@ class WorkerPrivate final
@ -2015,7 +2010,7 @@ index dfb96b7b79..a463eec618 100644
void UpdateLanguagesInternal(const nsTArray<nsString>& aLanguages); void UpdateLanguagesInternal(const nsTArray<nsString>& aLanguages);
void UpdateJSWorkerMemoryParameterInternal(JSContext* aCx, JSGCParamKey key, void UpdateJSWorkerMemoryParameterInternal(JSContext* aCx, JSGCParamKey key,
@@ -1059,6 +1061,8 @@ class WorkerPrivate final @@ -1069,6 +1071,8 @@ class WorkerPrivate final
void UpdateContextOptions(const JS::ContextOptions& aContextOptions); void UpdateContextOptions(const JS::ContextOptions& aContextOptions);
@ -2247,10 +2242,10 @@ index 0ec6ee3eb3..885dba71bc 100644
// No boxes to return // No boxes to return
return; return;
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 f154e05a8c..0af8c24c0f 100644 index 2cc3c5673e..61093cd52f 100644
--- a/layout/base/PresShell.cpp --- a/layout/base/PresShell.cpp
+++ b/layout/base/PresShell.cpp +++ b/layout/base/PresShell.cpp
@@ -11064,7 +11064,9 @@ bool PresShell::ComputeActiveness() const { @@ -11163,7 +11163,9 @@ bool PresShell::ComputeActiveness() const {
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));
@ -2262,7 +2257,7 @@ index f154e05a8c..0af8c24c0f 100644
// 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/base/nsLayoutUtils.cpp b/layout/base/nsLayoutUtils.cpp diff --git a/layout/base/nsLayoutUtils.cpp b/layout/base/nsLayoutUtils.cpp
index 0011b1a1a3..58e7f4a220 100644 index d8995d6d94..b370b56ba9 100644
--- a/layout/base/nsLayoutUtils.cpp --- a/layout/base/nsLayoutUtils.cpp
+++ b/layout/base/nsLayoutUtils.cpp +++ b/layout/base/nsLayoutUtils.cpp
@@ -698,6 +698,7 @@ bool nsLayoutUtils::AllowZoomingForDocument( @@ -698,6 +698,7 @@ bool nsLayoutUtils::AllowZoomingForDocument(
@ -2274,10 +2269,10 @@ index 0011b1a1a3..58e7f4a220 100644
// in RDM. // in RDM.
BrowsingContext* bc = aDocument->GetBrowsingContext(); BrowsingContext* bc = aDocument->GetBrowsingContext();
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 d273793fc8..46b4078c60 100644 index c18d38d8ad..22736c86eb 100644
--- a/layout/style/GeckoBindings.h --- a/layout/style/GeckoBindings.h
+++ b/layout/style/GeckoBindings.h +++ b/layout/style/GeckoBindings.h
@@ -596,6 +596,7 @@ float Gecko_MediaFeatures_GetResolution(const mozilla::dom::Document*); @@ -595,6 +595,7 @@ float Gecko_MediaFeatures_GetResolution(const mozilla::dom::Document*);
bool Gecko_MediaFeatures_PrefersReducedMotion(const mozilla::dom::Document*); bool Gecko_MediaFeatures_PrefersReducedMotion(const mozilla::dom::Document*);
bool Gecko_MediaFeatures_PrefersReducedTransparency( bool Gecko_MediaFeatures_PrefersReducedTransparency(
const mozilla::dom::Document*); const mozilla::dom::Document*);
@ -2336,7 +2331,7 @@ index 21d5a5e1b4..fa435f229d 100644
+ +
} // namespace mozilla::net } // namespace mozilla::net
diff --git a/netwerk/base/LoadInfo.h b/netwerk/base/LoadInfo.h diff --git a/netwerk/base/LoadInfo.h b/netwerk/base/LoadInfo.h
index 52d867196a..140e2cd9f4 100644 index 6ba1d8e11e..0e8f199852 100644
--- a/netwerk/base/LoadInfo.h --- a/netwerk/base/LoadInfo.h
+++ b/netwerk/base/LoadInfo.h +++ b/netwerk/base/LoadInfo.h
@@ -414,6 +414,8 @@ class LoadInfo final : public nsILoadInfo { @@ -414,6 +414,8 @@ class LoadInfo final : public nsILoadInfo {
@ -2346,7 +2341,7 @@ index 52d867196a..140e2cd9f4 100644
+ uint64_t mJugglerLoadIdentifier = 0; + uint64_t mJugglerLoadIdentifier = 0;
+ +
nsILoadInfo::HTTPSUpgradeTelemetryType mHttpsUpgradeTelemetry = nsILoadInfo::HTTPSUpgradeTelemetryType mHttpsUpgradeTelemetry =
nsILoadInfo::NO_UPGRADE; nsILoadInfo::NOT_INITIALIZED;
}; };
diff --git a/netwerk/base/TRRLoadInfo.cpp b/netwerk/base/TRRLoadInfo.cpp diff --git a/netwerk/base/TRRLoadInfo.cpp b/netwerk/base/TRRLoadInfo.cpp
index 9dc2bb0da6..b71cf63934 100644 index 9dc2bb0da6..b71cf63934 100644
@ -2369,7 +2364,7 @@ index 9dc2bb0da6..b71cf63934 100644
} // namespace net } // namespace net
} // namespace mozilla } // namespace mozilla
diff --git a/netwerk/base/nsILoadInfo.idl b/netwerk/base/nsILoadInfo.idl diff --git a/netwerk/base/nsILoadInfo.idl b/netwerk/base/nsILoadInfo.idl
index 12f43b9110..e1ce56501b 100644 index daccd1dc75..48505702ef 100644
--- a/netwerk/base/nsILoadInfo.idl --- a/netwerk/base/nsILoadInfo.idl
+++ b/netwerk/base/nsILoadInfo.idl +++ b/netwerk/base/nsILoadInfo.idl
@@ -1568,6 +1568,8 @@ interface nsILoadInfo : nsISupports @@ -1568,6 +1568,8 @@ interface nsILoadInfo : nsISupports
@ -2379,8 +2374,8 @@ index 12f43b9110..e1ce56501b 100644
+ [infallible] attribute unsigned long long jugglerLoadIdentifier; + [infallible] attribute unsigned long long jugglerLoadIdentifier;
+ +
cenum HTTPSUpgradeTelemetryType : 32 { cenum HTTPSUpgradeTelemetryType : 32 {
NO_UPGRADE = 0, NOT_INITIALIZED = 0,
ALREADY_HTTPS = (1 << 0), NO_UPGRADE = (1 << 0),
diff --git a/netwerk/base/nsINetworkInterceptController.idl b/netwerk/base/nsINetworkInterceptController.idl diff --git a/netwerk/base/nsINetworkInterceptController.idl b/netwerk/base/nsINetworkInterceptController.idl
index 7f91d2df6f..ba6569f4be 100644 index 7f91d2df6f..ba6569f4be 100644
--- a/netwerk/base/nsINetworkInterceptController.idl --- a/netwerk/base/nsINetworkInterceptController.idl
@ -2394,7 +2389,7 @@ index 7f91d2df6f..ba6569f4be 100644
/** /**
* Set the status and reason for the forthcoming synthesized response. * Set the status and reason for the forthcoming synthesized response.
diff --git a/netwerk/ipc/DocumentLoadListener.cpp b/netwerk/ipc/DocumentLoadListener.cpp diff --git a/netwerk/ipc/DocumentLoadListener.cpp b/netwerk/ipc/DocumentLoadListener.cpp
index 10f65a549c..f41d32ce90 100644 index ef946929c9..a2814c5c89 100644
--- a/netwerk/ipc/DocumentLoadListener.cpp --- a/netwerk/ipc/DocumentLoadListener.cpp
+++ b/netwerk/ipc/DocumentLoadListener.cpp +++ b/netwerk/ipc/DocumentLoadListener.cpp
@@ -171,6 +171,7 @@ static auto CreateDocumentLoadInfo(CanonicalBrowsingContext* aBrowsingContext, @@ -171,6 +171,7 @@ static auto CreateDocumentLoadInfo(CanonicalBrowsingContext* aBrowsingContext,
@ -2444,10 +2439,10 @@ index e81a4538fd..d7945f8129 100644
if (mPump && mLoadFlags & LOAD_CALL_CONTENT_SNIFFERS) { if (mPump && mLoadFlags & LOAD_CALL_CONTENT_SNIFFERS) {
mPump->PeekStream(CallTypeSniffers, static_cast<nsIChannel*>(this)); mPump->PeekStream(CallTypeSniffers, static_cast<nsIChannel*>(this));
diff --git a/parser/html/nsHtml5TreeOpExecutor.cpp b/parser/html/nsHtml5TreeOpExecutor.cpp diff --git a/parser/html/nsHtml5TreeOpExecutor.cpp b/parser/html/nsHtml5TreeOpExecutor.cpp
index f25949e6cc..9be4cb3451 100644 index 071ed8da41..063b516001 100644
--- a/parser/html/nsHtml5TreeOpExecutor.cpp --- a/parser/html/nsHtml5TreeOpExecutor.cpp
+++ b/parser/html/nsHtml5TreeOpExecutor.cpp +++ b/parser/html/nsHtml5TreeOpExecutor.cpp
@@ -1389,6 +1389,10 @@ void nsHtml5TreeOpExecutor::UpdateReferrerInfoFromMeta( @@ -1391,6 +1391,10 @@ void nsHtml5TreeOpExecutor::UpdateReferrerInfoFromMeta(
void nsHtml5TreeOpExecutor::AddSpeculationCSP(const nsAString& aCSP) { void nsHtml5TreeOpExecutor::AddSpeculationCSP(const nsAString& aCSP) {
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!"); NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
@ -2459,10 +2454,10 @@ index f25949e6cc..9be4cb3451 100644
nsCOMPtr<nsIContentSecurityPolicy> preloadCsp = mDocument->GetPreloadCsp(); nsCOMPtr<nsIContentSecurityPolicy> preloadCsp = mDocument->GetPreloadCsp();
if (!preloadCsp) { if (!preloadCsp) {
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 fcc2a45e6d..d4c1df007b 100644 index b2e328e7c7..54f24b213b 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
@@ -437,7 +437,12 @@ nsCertOverrideService::HasMatchingOverride( @@ -439,7 +439,12 @@ nsCertOverrideService::HasMatchingOverride(
bool disableAllSecurityCheck = false; bool disableAllSecurityCheck = false;
{ {
MutexAutoLock lock(mMutex); MutexAutoLock lock(mMutex);
@ -2476,7 +2471,7 @@ index fcc2a45e6d..d4c1df007b 100644
} }
if (disableAllSecurityCheck) { if (disableAllSecurityCheck) {
*aIsTemporary = false; *aIsTemporary = false;
@@ -649,14 +654,24 @@ static bool IsDebugger() { @@ -651,14 +656,24 @@ static bool IsDebugger() {
NS_IMETHODIMP NS_IMETHODIMP
nsCertOverrideService:: nsCertOverrideService::
@ -2593,10 +2588,10 @@ index 75555352b8..72855a404e 100644
// ignored for Linux. // ignored for Linux.
const unsigned long CHROME_SUPPRESS_ANIMATION = 1 << 24; const unsigned long CHROME_SUPPRESS_ANIMATION = 1 << 24;
diff --git a/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp b/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp diff --git a/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp b/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp
index 144628a310..69fa66f27d 100644 index 6a40d03244..1468d38355 100644
--- a/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp --- a/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp
+++ b/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp +++ b/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp
@@ -632,7 +632,7 @@ void PopulateLanguages() { @@ -553,7 +553,7 @@ void PopulateLanguages() {
// sufficient to only collect this information as the other properties are // sufficient to only collect this information as the other properties are
// just reformats of Navigator::GetAcceptLanguages. // just reformats of Navigator::GetAcceptLanguages.
nsTArray<nsString> languages; nsTArray<nsString> languages;
@ -2634,10 +2629,10 @@ index 654903fadb..815b3dc24c 100644
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 cdba76dc8a..266fdc6235 100644 index e3f616c4ef..abb7772184 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
@@ -1865,7 +1865,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent( @@ -1881,7 +1881,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent(
// Open a minimal popup. // Open a minimal popup.
*aIsPopupRequested = true; *aIsPopupRequested = true;
@ -2651,10 +2646,10 @@ index cdba76dc8a..266fdc6235 100644
/** /**
diff --git a/toolkit/toolkit.mozbuild b/toolkit/toolkit.mozbuild diff --git a/toolkit/toolkit.mozbuild b/toolkit/toolkit.mozbuild
index 8c2b2bf996..07d237eb17 100644 index f42ed17a4a..5af0877335 100644
--- a/toolkit/toolkit.mozbuild --- a/toolkit/toolkit.mozbuild
+++ b/toolkit/toolkit.mozbuild +++ b/toolkit/toolkit.mozbuild
@@ -155,6 +155,7 @@ if CONFIG["ENABLE_WEBDRIVER"]: @@ -156,6 +156,7 @@ if CONFIG["ENABLE_WEBDRIVER"]:
"/remote", "/remote",
"/testing/firefox-ui", "/testing/firefox-ui",
"/testing/marionette", "/testing/marionette",
@ -2715,7 +2710,7 @@ index fe72a2715d..a5959143ba 100644
// 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 ad769a235b..ff18e7516a 100644 index 139a43a178..2a855c3ae8 100644
--- a/uriloader/exthandler/nsExternalHelperAppService.cpp --- a/uriloader/exthandler/nsExternalHelperAppService.cpp
+++ b/uriloader/exthandler/nsExternalHelperAppService.cpp +++ b/uriloader/exthandler/nsExternalHelperAppService.cpp
@@ -112,6 +112,7 @@ @@ -112,6 +112,7 @@
@ -2726,7 +2721,7 @@ index ad769a235b..ff18e7516a 100644
#include "mozilla/Preferences.h" #include "mozilla/Preferences.h"
#include "mozilla/ipc/URIUtils.h" #include "mozilla/ipc/URIUtils.h"
@@ -831,6 +832,12 @@ NS_IMETHODIMP nsExternalHelperAppService::ApplyDecodingForExtension( @@ -872,6 +873,12 @@ NS_IMETHODIMP nsExternalHelperAppService::ApplyDecodingForExtension(
return NS_OK; return NS_OK;
} }
@ -2739,7 +2734,7 @@ index ad769a235b..ff18e7516a 100644
nsresult nsExternalHelperAppService::GetFileTokenForPath( nsresult nsExternalHelperAppService::GetFileTokenForPath(
const char16_t* aPlatformAppPath, nsIFile** aFile) { const char16_t* aPlatformAppPath, nsIFile** aFile) {
nsDependentString platformAppPath(aPlatformAppPath); nsDependentString platformAppPath(aPlatformAppPath);
@@ -1441,7 +1448,12 @@ nsresult nsExternalAppHandler::SetUpTempFile(nsIChannel* aChannel) { @@ -1494,7 +1501,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);
@ -2752,7 +2747,7 @@ index ad769a235b..ff18e7516a 100644
mSaver = mSaver =
do_CreateInstance(NS_BACKGROUNDFILESAVERSTREAMLISTENER_CONTRACTID, &rv); do_CreateInstance(NS_BACKGROUNDFILESAVERSTREAMLISTENER_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
@@ -1630,7 +1642,36 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) { @@ -1683,7 +1695,36 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
return NS_OK; return NS_OK;
} }
@ -2790,7 +2785,7 @@ index ad769a235b..ff18e7516a 100644
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
nsresult transferError = rv; nsresult transferError = rv;
@@ -1682,6 +1723,9 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) { @@ -1744,6 +1785,9 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
bool alwaysAsk = true; bool alwaysAsk = true;
mMimeInfo->GetAlwaysAskBeforeHandling(&alwaysAsk); mMimeInfo->GetAlwaysAskBeforeHandling(&alwaysAsk);
@ -2800,7 +2795,7 @@ index ad769a235b..ff18e7516a 100644
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
@@ -2198,6 +2242,16 @@ nsExternalAppHandler::OnSaveComplete(nsIBackgroundFileSaver* aSaver, @@ -2260,6 +2304,16 @@ nsExternalAppHandler::OnSaveComplete(nsIBackgroundFileSaver* aSaver,
NotifyTransfer(aStatus); NotifyTransfer(aStatus);
} }
@ -2817,7 +2812,7 @@ index ad769a235b..ff18e7516a 100644
return NS_OK; return NS_OK;
} }
@@ -2679,6 +2733,15 @@ NS_IMETHODIMP nsExternalAppHandler::Cancel(nsresult aReason) { @@ -2743,6 +2797,15 @@ NS_IMETHODIMP nsExternalAppHandler::Cancel(nsresult aReason) {
} }
} }
@ -2834,10 +2829,10 @@ index ad769a235b..ff18e7516a 100644
// 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 1f77e095db..2354abbab7 100644 index e880b90b2d..dbadd74dea 100644
--- a/uriloader/exthandler/nsExternalHelperAppService.h --- a/uriloader/exthandler/nsExternalHelperAppService.h
+++ b/uriloader/exthandler/nsExternalHelperAppService.h +++ b/uriloader/exthandler/nsExternalHelperAppService.h
@@ -257,6 +257,8 @@ class nsExternalHelperAppService : public nsIExternalHelperAppService, @@ -258,6 +258,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);
@ -2846,7 +2841,7 @@ index 1f77e095db..2354abbab7 100644
}; };
/** /**
@@ -462,6 +464,9 @@ class nsExternalAppHandler final : public nsIStreamListener, @@ -463,6 +465,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);
@ -2857,7 +2852,7 @@ index 1f77e095db..2354abbab7 100644
* When we download a helper app, we are going to retarget all load * When we download a helper app, we are going to retarget all load
* notifications into our own docloader and load group instead of * notifications into our own docloader and load group instead of
diff --git a/uriloader/exthandler/nsIExternalHelperAppService.idl b/uriloader/exthandler/nsIExternalHelperAppService.idl diff --git a/uriloader/exthandler/nsIExternalHelperAppService.idl b/uriloader/exthandler/nsIExternalHelperAppService.idl
index 4a399acb72..97ace81c82 100644 index 53ea934dd4..e6cb0bce3b 100644
--- a/uriloader/exthandler/nsIExternalHelperAppService.idl --- a/uriloader/exthandler/nsIExternalHelperAppService.idl
+++ b/uriloader/exthandler/nsIExternalHelperAppService.idl +++ b/uriloader/exthandler/nsIExternalHelperAppService.idl
@@ -6,8 +6,11 @@ @@ -6,8 +6,11 @@
@ -2890,14 +2885,15 @@ index 4a399acb72..97ace81c82 100644
/** /**
* The external helper app service is used for finding and launching * The external helper app service is used for finding and launching
* platform specific external applications for a given mime content type. * platform specific external applications for a given mime content type.
@@ -76,6 +90,7 @@ interface nsIExternalHelperAppService : nsISupports @@ -76,6 +90,8 @@ interface nsIExternalHelperAppService : nsISupports
boolean applyDecodingForExtension(in AUTF8String aExtension, boolean applyDecodingForExtension(in AUTF8String aExtension,
in ACString aEncodingType); in ACString aEncodingType);
+ void setDownloadInterceptor(in nsIDownloadInterceptor interceptor); + void setDownloadInterceptor(in nsIDownloadInterceptor interceptor);
}; +
/**
/** * Returns the current downloads directory, given the current preferences. May
* perform synchronous I/O.
diff --git a/widget/InProcessCompositorWidget.cpp b/widget/InProcessCompositorWidget.cpp diff --git a/widget/InProcessCompositorWidget.cpp b/widget/InProcessCompositorWidget.cpp
index 1c25e9d9a1..22cf67b0f6 100644 index 1c25e9d9a1..22cf67b0f6 100644
--- a/widget/InProcessCompositorWidget.cpp --- a/widget/InProcessCompositorWidget.cpp

View file

@ -1,2 +1,2 @@
version=129.0 version=130.0
release=beta.4 release=beta.4