diff --git a/patches/playwright/0-playwright.patch.opt b/patches/playwright/0-playwright.patch similarity index 81% rename from patches/playwright/0-playwright.patch.opt rename to patches/playwright/0-playwright.patch index fc594fb8..10df168d 100644 --- a/patches/playwright/0-playwright.patch.opt +++ b/patches/playwright/0-playwright.patch @@ -1,5 +1,5 @@ diff --git a/accessible/interfaces/nsIAccessibleDocument.idl b/accessible/interfaces/nsIAccessibleDocument.idl -index 6c932c14a03e9cbf70723171dc9a1006bd2c017d..6312131c94c6d7e994a4a49dd64b2b4c5777251f 100644 +index 6c932c14a0..6312131c94 100644 --- a/accessible/interfaces/nsIAccessibleDocument.idl +++ b/accessible/interfaces/nsIAccessibleDocument.idl @@ -73,4 +73,9 @@ interface nsIAccessibleDocument : nsISupports @@ -13,7 +13,7 @@ index 6c932c14a03e9cbf70723171dc9a1006bd2c017d..6312131c94c6d7e994a4a49dd64b2b4c + readonly attribute boolean isUpdatePendingForJugglerAccessibility; }; diff --git a/accessible/xpcom/xpcAccessibleDocument.cpp b/accessible/xpcom/xpcAccessibleDocument.cpp -index 3229ee415b93b9a47d7d40605ed7b509744c94ad..c2cc38ded257a02de8922312057892bf9d0cad7b 100644 +index 3229ee415b..c2cc38ded2 100644 --- a/accessible/xpcom/xpcAccessibleDocument.cpp +++ b/accessible/xpcom/xpcAccessibleDocument.cpp @@ -151,6 +151,13 @@ xpcAccessibleDocument::GetBrowsingContext( @@ -31,7 +31,7 @@ index 3229ee415b93b9a47d7d40605ed7b509744c94ad..c2cc38ded257a02de8922312057892bf // xpcAccessibleDocument diff --git a/accessible/xpcom/xpcAccessibleDocument.h b/accessible/xpcom/xpcAccessibleDocument.h -index 9b6effc38fbecb50897a93b49c41d4453b10fb7f..939ff9615bd422eec186d8164e2ac7e643f39beb 100644 +index 9b6effc38f..939ff9615b 100644 --- a/accessible/xpcom/xpcAccessibleDocument.h +++ b/accessible/xpcom/xpcAccessibleDocument.h @@ -48,6 +48,8 @@ class xpcAccessibleDocument : public xpcAccessibleHyperText, @@ -44,10 +44,10 @@ index 9b6effc38fbecb50897a93b49c41d4453b10fb7f..939ff9615bd422eec186d8164e2ac7e6 * Return XPCOM wrapper for the internal accessible. */ diff --git a/browser/app/winlauncher/LauncherProcessWin.cpp b/browser/app/winlauncher/LauncherProcessWin.cpp -index 8167d2b81c918e02ce757f7f448f22e07c29d140..3ae798880acfd8aa965ae08051f2f81855133711 100644 +index 6766615d29..a70473d9f4 100644 --- a/browser/app/winlauncher/LauncherProcessWin.cpp +++ b/browser/app/winlauncher/LauncherProcessWin.cpp -@@ -23,6 +23,7 @@ +@@ -22,6 +22,7 @@ #include "mozilla/WinHeaderOnlyUtils.h" #include "nsWindowsHelpers.h" @@ -55,7 +55,7 @@ index 8167d2b81c918e02ce757f7f448f22e07c29d140..3ae798880acfd8aa965ae08051f2f818 #include #include -@@ -422,8 +423,18 @@ Maybe LauncherMain(int& argc, wchar_t* argv[], +@@ -413,8 +414,18 @@ Maybe LauncherMain(int& argc, wchar_t* argv[]) { HANDLE stdHandles[] = {::GetStdHandle(STD_INPUT_HANDLE), ::GetStdHandle(STD_OUTPUT_HANDLE), ::GetStdHandle(STD_ERROR_HANDLE)}; @@ -76,10 +76,10 @@ index 8167d2b81c918e02ce757f7f448f22e07c29d140..3ae798880acfd8aa965ae08051f2f818 DWORD creationFlags = CREATE_SUSPENDED | CREATE_UNICODE_ENVIRONMENT; diff --git a/browser/installer/allowed-dupes.mn b/browser/installer/allowed-dupes.mn -index 6bbc4016cd6d56e8625e808b5070515a23de7600..2fb56fb1afa5b108a426737cb5e62dc42a199354 100644 +index 0e195e47d9..d7ecbe4648 100644 --- a/browser/installer/allowed-dupes.mn +++ b/browser/installer/allowed-dupes.mn -@@ -59,6 +59,12 @@ browser/chrome/browser/builtin-addons/webcompat/shims/empty-shim.txt +@@ -61,6 +61,12 @@ browser/chrome/browser/builtin-addons/webcompat/shims/empty-shim.txt removed-files #endif @@ -93,10 +93,10 @@ index 6bbc4016cd6d56e8625e808b5070515a23de7600..2fb56fb1afa5b108a426737cb5e62dc4 browser/chrome/browser/content/activity-stream/data/content/tippytop/favicons/allegro-pl.ico browser/defaults/settings/main/search-config-icons/96327a73-c433-5eb4-a16d-b090cadfb80b diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in -index 2b4d35e060dc592bb70a1f2b7ceee68616c8202b..323abfaee37445942f7678037dd5b53792dd5ed4 100644 +index 6bb2e64906..8bf50addfb 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in -@@ -183,6 +183,9 @@ +@@ -195,6 +195,9 @@ @RESPATH@/chrome/remote.manifest #endif @@ -107,7 +107,7 @@ index 2b4d35e060dc592bb70a1f2b7ceee68616c8202b..323abfaee37445942f7678037dd5b537 @RESPATH@/browser/modules/* @RESPATH@/modules/* diff --git a/devtools/server/socket/websocket-server.js b/devtools/server/socket/websocket-server.js -index d49c6fbf1bf83b832795fa674f6b41f223eef812..7ea3540947ff5f61b15f27fbf4b955649f8e9ff9 100644 +index d49c6fbf1b..7ea3540947 100644 --- a/devtools/server/socket/websocket-server.js +++ b/devtools/server/socket/websocket-server.js @@ -134,13 +134,12 @@ function writeHttpResponse(output, response) { @@ -154,10 +154,10 @@ index d49c6fbf1bf83b832795fa674f6b41f223eef812..7ea3540947ff5f61b15f27fbf4b95564 const transportProvider = { setListener(upgradeListener) { diff --git a/docshell/base/BrowsingContext.cpp b/docshell/base/BrowsingContext.cpp -index 97334bee3a111a538779789d3495805cec8b1e9a..67d030f2adecd9acc62665e2a627123148aa927d 100644 +index 81896a2c74..bc192c25c3 100644 --- a/docshell/base/BrowsingContext.cpp +++ b/docshell/base/BrowsingContext.cpp -@@ -110,8 +110,15 @@ struct ParamTraits +@@ -116,8 +116,15 @@ struct ParamTraits template <> struct ParamTraits @@ -175,7 +175,7 @@ index 97334bee3a111a538779789d3495805cec8b1e9a..67d030f2adecd9acc62665e2a6271231 template <> struct ParamTraits -@@ -2950,6 +2957,32 @@ void BrowsingContext::DidSet(FieldIndex, +@@ -3342,6 +3349,32 @@ void BrowsingContext::DidSet(FieldIndex, }); } @@ -208,7 +208,7 @@ index 97334bee3a111a538779789d3495805cec8b1e9a..67d030f2adecd9acc62665e2a6271231 void BrowsingContext::DidSet(FieldIndex, nsString&& aOldValue) { MOZ_ASSERT(IsTop()); -@@ -3290,7 +3323,7 @@ void BrowsingContext::SetGeolocationServiceOverride( +@@ -3689,7 +3722,7 @@ void BrowsingContext::SetGeolocationServiceOverride( if (aGeolocationOverride.WasPassed()) { if (!mGeolocationServiceOverride) { mGeolocationServiceOverride = new nsGeolocationService(); @@ -217,8 +217,8 @@ index 97334bee3a111a538779789d3495805cec8b1e9a..67d030f2adecd9acc62665e2a6271231 } mGeolocationServiceOverride->Update(aGeolocationOverride.Value()); } else if (RefPtr serviceOverride = -@@ -3793,6 +3826,23 @@ void BrowsingContext::DidSet(FieldIndex, - } +@@ -4230,6 +4263,23 @@ void BrowsingContext::DidSet(FieldIndex, bool aOldValue) { + }); } +void BrowsingContext::DidSet(FieldIndex, bool aOldValue) { @@ -242,7 +242,7 @@ index 97334bee3a111a538779789d3495805cec8b1e9a..67d030f2adecd9acc62665e2a6271231 for (auto* context = GetCurrentWindowContext(); context; context = context->GetParentWindowContext()) { diff --git a/docshell/base/BrowsingContext.h b/docshell/base/BrowsingContext.h -index b42c32133c6490755ae4e1c599255418e6443011..afa502833ba55c94dbd30726d37450c460a69e2b 100644 +index 724326453f..2f5717b47c 100644 --- a/docshell/base/BrowsingContext.h +++ b/docshell/base/BrowsingContext.h @@ -209,11 +209,11 @@ struct EmbedderColorSchemes { @@ -252,14 +252,14 @@ index b42c32133c6490755ae4e1c599255418e6443011..afa502833ba55c94dbd30726d37450c4 - FIELD(CurrentOrientationType, mozilla::dom::OrientationType) \ + FIELD(CurrentOrientationType, dom::OrientationType) \ FIELD(OrientationLock, mozilla::hal::ScreenOrientation) \ - FIELD(HasOrientationOverride, bool) \ + FIELD(HasOrientationOverride, bool) \ FIELD(UserAgentOverride, nsString) \ - FIELD(TouchEventsOverrideInternal, mozilla::dom::TouchEventsOverride) \ + FIELD(TouchEventsOverrideInternal, dom::TouchEventsOverride) \ FIELD(EmbedderElementType, Maybe) \ FIELD(MessageManagerGroup, nsString) \ FIELD(MaxTouchPointsOverride, uint8_t) \ -@@ -246,6 +246,9 @@ struct EmbedderColorSchemes { +@@ -254,6 +254,9 @@ struct EmbedderColorSchemes { * embedder element. */ \ FIELD(EmbedderColorSchemes, EmbedderColorSchemes) \ FIELD(DisplayMode, dom::DisplayMode) \ @@ -269,7 +269,7 @@ index b42c32133c6490755ae4e1c599255418e6443011..afa502833ba55c94dbd30726d37450c4 /* The number of entries added to the session history because of this \ * browsing context. */ \ FIELD(HistoryEntryCount, uint32_t) \ -@@ -975,6 +978,14 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { +@@ -1050,6 +1053,14 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { return GetForcedColorsOverride(); } @@ -284,7 +284,7 @@ index b42c32133c6490755ae4e1c599255418e6443011..afa502833ba55c94dbd30726d37450c4 bool IsInBFCache() const; bool AllowJavascript() const { return GetAllowJavascript(); } -@@ -1146,6 +1157,11 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { +@@ -1230,6 +1241,11 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { return IsTop(); } @@ -296,7 +296,7 @@ index b42c32133c6490755ae4e1c599255418e6443011..afa502833ba55c94dbd30726d37450c4 bool CanSet(FieldIndex, dom::ForcedColorsOverride, ContentParent*) { return IsTop(); -@@ -1164,12 +1180,24 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { +@@ -1249,12 +1265,23 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { void DidSet(FieldIndex, dom::ForcedColorsOverride aOldValue); @@ -307,7 +307,7 @@ index b42c32133c6490755ae4e1c599255418e6443011..afa502833ba55c94dbd30726d37450c4 void WalkPresContexts(Callback&&); void PresContextAffectingFieldChanged(); - void DidSet(FieldIndex, nsString&& aOldValue); + void DidSet(FieldIndex, nsCString&& aOldValue); + bool CanSet(FieldIndex, + dom::PrefersReducedMotionOverride, ContentParent*) { @@ -317,13 +317,12 @@ index b42c32133c6490755ae4e1c599255418e6443011..afa502833ba55c94dbd30726d37450c4 + void DidSet(FieldIndex, + dom::PrefersReducedMotionOverride aOldValue); + -+ + void DidSet(FieldIndex, nsString&& aOldValue); + void DidSet(FieldIndex, nsString&& aOldValue); +@@ -1458,6 +1485,8 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { - bool CanSet(FieldIndex, bool, ContentParent*) { -@@ -1360,6 +1388,8 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { - - void DidSet(FieldIndex, bool aOldValue); + void DidSet(FieldIndex, bool aOldValue); + void DidSet(FieldIndex, bool aOldValue); + @@ -331,7 +330,7 @@ index b42c32133c6490755ae4e1c599255418e6443011..afa502833ba55c94dbd30726d37450c4 // process. Deprecated. New code that might use this should generally be moved // to WindowContext or be settable only by the parent process. diff --git a/docshell/base/CanonicalBrowsingContext.cpp b/docshell/base/CanonicalBrowsingContext.cpp -index 4953744c3f627bb68b78606d8ae4bf6ab649398a..17c7cc94dafc76cd72aacddfd633b7df58eeae78 100644 +index 6109e20259..9ccc289e8a 100644 --- a/docshell/base/CanonicalBrowsingContext.cpp +++ b/docshell/base/CanonicalBrowsingContext.cpp @@ -274,6 +274,8 @@ void CanonicalBrowsingContext::ReplacedBy( @@ -340,11 +339,11 @@ index 4953744c3f627bb68b78606d8ae4bf6ab649398a..17c7cc94dafc76cd72aacddfd633b7df txn.SetIPAddressSpace(GetIPAddressSpace()); + txn.SetPrefersReducedMotionOverride(GetPrefersReducedMotionOverride()); + txn.SetForcedColorsOverride(GetForcedColorsOverride()); + txn.SetParentalControlsEnabled(GetParentalControlsEnabled()); - // Propagate some settings on BrowsingContext replacement so they're not lost - // on bfcached navigations. These are important for GeckoView (see bug -@@ -1705,6 +1707,12 @@ void CanonicalBrowsingContext::LoadURI(nsIURI* aURI, - return; + if (!GetLanguageOverride().IsEmpty()) { +@@ -1905,6 +1907,12 @@ void CanonicalBrowsingContext::LoadURI(nsIURI* aURI, + (void)SetIsCaptivePortalTab(true); } + { @@ -357,7 +356,7 @@ index 4953744c3f627bb68b78606d8ae4bf6ab649398a..17c7cc94dafc76cd72aacddfd633b7df } diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp -index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1c18b08ed 100644 +index cee178c29e..8aeaed0336 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -16,6 +16,12 @@ @@ -370,10 +369,10 @@ index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1 + +#include "js/LocaleSensitive.h" + - #include "mozilla/ArrayUtils.h" #include "mozilla/Attributes.h" #include "mozilla/AutoRestore.h" -@@ -67,6 +73,7 @@ + #include "mozilla/BasePrincipal.h" +@@ -63,6 +69,7 @@ #include "mozilla/dom/DocGroup.h" #include "mozilla/dom/Element.h" #include "mozilla/dom/FragmentDirective.h" @@ -381,7 +380,7 @@ index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1 #include "mozilla/dom/HTMLAnchorElement.h" #include "mozilla/dom/HTMLIFrameElement.h" #include "mozilla/dom/Navigation.h" -@@ -98,6 +105,7 @@ +@@ -95,6 +102,7 @@ #include "mozilla/dom/DocumentBinding.h" #include "mozilla/glean/DocshellMetrics.h" #include "mozilla/ipc/ProtocolUtils.h" @@ -389,7 +388,7 @@ index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1 #include "mozilla/net/DocumentChannel.h" #include "mozilla/net/DocumentChannelChild.h" #include "mozilla/net/ParentChannelWrapper.h" -@@ -122,6 +130,7 @@ +@@ -119,6 +127,7 @@ #include "nsIDocumentViewer.h" #include "mozilla/dom/Document.h" #include "nsHTMLDocument.h" @@ -397,7 +396,7 @@ index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1 #include "nsIDocumentLoaderFactory.h" #include "nsIDOMWindow.h" #include "nsIEditingSession.h" -@@ -217,6 +226,7 @@ +@@ -214,6 +223,7 @@ #include "nsGlobalWindowInner.h" #include "nsGlobalWindowOuter.h" #include "nsJSEnvironment.h" @@ -405,7 +404,7 @@ index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1 #include "nsNetCID.h" #include "nsNetUtil.h" #include "nsObjectLoadingContent.h" -@@ -358,6 +368,14 @@ nsDocShell::nsDocShell(BrowsingContext* aBrowsingContext, +@@ -355,6 +365,14 @@ nsDocShell::nsDocShell(BrowsingContext* aBrowsingContext, mAllowDNSPrefetch(true), mAllowWindowControl(true), mCSSErrorReportingEnabled(false), @@ -420,7 +419,7 @@ index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1 mAllowAuth(mItemType == typeContent), mAllowKeywordFixup(false), mDisableMetaRefreshWhenInactive(false), -@@ -3037,6 +3055,232 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) { +@@ -3042,6 +3060,232 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) { return NS_OK; } @@ -653,7 +652,7 @@ index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1 NS_IMETHODIMP nsDocShell::GetIsNavigating(bool* aOut) { *aOut = mIsNavigating; -@@ -4819,7 +5063,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { +@@ -4803,7 +5047,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { } void nsDocShell::ActivenessMaybeChanged() { @@ -662,7 +661,7 @@ index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1 if (RefPtr presShell = GetPresShell()) { presShell->ActivenessMaybeChanged(); } -@@ -6881,6 +7125,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, +@@ -6874,6 +7118,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, return false; // no entry to save into } @@ -673,7 +672,7 @@ index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1 MOZ_ASSERT(!mozilla::SessionHistoryInParent(), "mOSHE cannot be non-null with SHIP"); nsCOMPtr viewer = mOSHE->GetDocumentViewer(); -@@ -8637,6 +8885,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { +@@ -8630,6 +8878,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { true, // aForceNoOpener getter_AddRefs(newBC)); MOZ_ASSERT(!newBC); @@ -686,7 +685,7 @@ index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1 return rv; } -@@ -9934,6 +10188,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, +@@ -10016,6 +10270,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, nsINetworkPredictor::PREDICT_LOAD, attrs, nullptr); nsCOMPtr req; @@ -703,7 +702,7 @@ index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1 rv = DoURILoad(aLoadState, aCacheKey, getter_AddRefs(req)); if (NS_SUCCEEDED(rv)) { -@@ -13323,6 +13587,9 @@ class OnLinkClickEvent : public Runnable { +@@ -13431,6 +13695,9 @@ class OnLinkClickEvent : public Runnable { mHandler->OnLinkClickSync(mContent, mLoadState, mNoOpenerImplied, mTriggeringPrincipal); } @@ -713,7 +712,7 @@ index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1 return NS_OK; } -@@ -13439,6 +13706,8 @@ nsresult nsDocShell::OnLinkClick( +@@ -13548,6 +13815,8 @@ nsresult nsDocShell::OnLinkClick( nsCOMPtr ev = new OnLinkClickEvent( this, aContent, loadState, noOpenerImplied, aTriggeringPrincipal); @@ -723,7 +722,7 @@ index bf702818cf4116ec1cd911b6e7b5f7ddafa3e508..d846e5f6f900d2d69228331b80031bd1 } diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h -index 3050f0a5a10c7f49f56cf325cd8bfe5e6508b5be..a4f4895f69a2eaa55f3eeae77bd6a3fb29931ad4 100644 +index 4cc4ebb096..ec270518b3 100644 --- a/docshell/base/nsDocShell.h +++ b/docshell/base/nsDocShell.h @@ -16,6 +16,7 @@ @@ -734,7 +733,7 @@ index 3050f0a5a10c7f49f56cf325cd8bfe5e6508b5be..a4f4895f69a2eaa55f3eeae77bd6a3fb #include "mozilla/dom/WindowProxyHolder.h" #include "nsCOMPtr.h" #include "nsCharsetSource.h" -@@ -80,6 +81,7 @@ class nsCommandManager; +@@ -82,6 +83,7 @@ class nsCommandManager; class nsDocShellEditorData; class nsDOMNavigationTiming; class nsDSURIContentListener; @@ -742,7 +741,7 @@ index 3050f0a5a10c7f49f56cf325cd8bfe5e6508b5be..a4f4895f69a2eaa55f3eeae77bd6a3fb class nsGlobalWindowOuter; class FramingChecker; -@@ -410,6 +412,15 @@ class nsDocShell final : public nsDocLoader, +@@ -414,6 +416,15 @@ class nsDocShell final : public nsDocLoader, void SetWillChangeProcess() { mWillChangeProcess = true; } bool WillChangeProcess() { return mWillChangeProcess; } @@ -758,7 +757,7 @@ index 3050f0a5a10c7f49f56cf325cd8bfe5e6508b5be..a4f4895f69a2eaa55f3eeae77bd6a3fb // Create a content viewer within this nsDocShell for the given // `WindowGlobalChild` actor. nsresult CreateDocumentViewerForActor( -@@ -1036,6 +1047,8 @@ class nsDocShell final : public nsDocLoader, +@@ -1058,6 +1069,8 @@ class nsDocShell final : public nsDocLoader, bool CSSErrorReportingEnabled() const { return mCSSErrorReportingEnabled; } @@ -767,7 +766,7 @@ index 3050f0a5a10c7f49f56cf325cd8bfe5e6508b5be..a4f4895f69a2eaa55f3eeae77bd6a3fb // 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 -@@ -1355,6 +1368,17 @@ class nsDocShell final : public nsDocLoader, +@@ -1389,6 +1402,17 @@ class nsDocShell final : public nsDocLoader, bool mAllowDNSPrefetch : 1; bool mAllowWindowControl : 1; bool mCSSErrorReportingEnabled : 1; @@ -786,7 +785,7 @@ index 3050f0a5a10c7f49f56cf325cd8bfe5e6508b5be..a4f4895f69a2eaa55f3eeae77bd6a3fb bool mAllowKeywordFixup : 1; bool mDisableMetaRefreshWhenInactive : 1; diff --git a/docshell/base/nsIDocShell.idl b/docshell/base/nsIDocShell.idl -index 763c7adb5ab9e3e56d6f1608899f6622997f272a..4f77795b5ce1f8fff79581987e017165dbdcbc1e 100644 +index 888d99bae8..7e03f9c504 100644 --- a/docshell/base/nsIDocShell.idl +++ b/docshell/base/nsIDocShell.idl @@ -44,6 +44,7 @@ interface nsIURI; @@ -844,10 +843,10 @@ index 763c7adb5ab9e3e56d6f1608899f6622997f272a..4f77795b5ce1f8fff79581987e017165 * 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 40da41ae4ac7d8d61c664e25bec8a74091d8b3e0..50ee1170e6d5b261334c7baccc63ed492b86ec38 100644 +index 5a890d76ef..c4f24f7170 100644 --- a/dom/base/Document.cpp +++ b/dom/base/Document.cpp -@@ -3799,6 +3799,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { +@@ -3937,6 +3937,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { } void Document::ApplySettingsFromCSP(bool aSpeculative) { @@ -857,7 +856,7 @@ index 40da41ae4ac7d8d61c664e25bec8a74091d8b3e0..50ee1170e6d5b261334c7baccc63ed49 nsresult rv = NS_OK; if (!aSpeculative) { nsIContentSecurityPolicy* csp = PolicyContainer::GetCSP(mPolicyContainer); -@@ -3887,6 +3890,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { +@@ -4025,6 +4028,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { MOZ_ASSERT(mPolicyContainer, "Policy container must be initialized before CSP!"); @@ -869,7 +868,7 @@ index 40da41ae4ac7d8d61c664e25bec8a74091d8b3e0..50ee1170e6d5b261334c7baccc63ed49 // If this is a data document - no need to set CSP. if (mLoadedAsData) { return NS_OK; -@@ -4753,6 +4761,10 @@ bool Document::HasFocus(ErrorResult& rv) const { +@@ -4897,6 +4905,10 @@ bool Document::HasFocus(ErrorResult& rv) const { return false; } @@ -880,7 +879,7 @@ index 40da41ae4ac7d8d61c664e25bec8a74091d8b3e0..50ee1170e6d5b261334c7baccc63ed49 if (!fm->IsInActiveWindow(bc)) { return false; } -@@ -20326,6 +20338,35 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { +@@ -20483,6 +20495,35 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { return PreferenceSheet::PrefsFor(*this).mColorScheme; } @@ -917,10 +916,10 @@ index 40da41ae4ac7d8d61c664e25bec8a74091d8b3e0..50ee1170e6d5b261334c7baccc63ed49 if (!sLoadingForegroundTopLevelContentDocument) { return false; diff --git a/dom/base/Document.h b/dom/base/Document.h -index 20f726a52f9f3591502597e20eeb8c07fe35feb2..c46f58ac88d536850169e6c51b9cfcb871d36e70 100644 +index 5e25b19fb9..e7bfd1e29d 100644 --- a/dom/base/Document.h +++ b/dom/base/Document.h -@@ -4252,6 +4252,8 @@ class Document : public nsINode, +@@ -4317,6 +4317,8 @@ class Document : public nsINode, // color-scheme meta tag. ColorScheme DefaultColorScheme() const; @@ -930,46 +929,47 @@ index 20f726a52f9f3591502597e20eeb8c07fe35feb2..c46f58ac88d536850169e6c51b9cfcb8 static bool AutomaticStorageAccessPermissionCanBeGranted( diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp -index 11a57adbb57b0adccf7ae491e7d7757f838bd9dc..e478244cedc2089fb99b3153d7493b7d36d72ea9 100644 +index 51d8331345..9880047350 100644 --- a/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp -@@ -347,14 +347,18 @@ void Navigator::GetAppName(nsAString& aAppName) const { +@@ -338,16 +338,15 @@ void Navigator::GetAppName(nsAString& aAppName) const { * for more detail. */ /* static */ --void Navigator::GetAcceptLanguages(nsTArray& aLanguages) { +-void Navigator::GetAcceptLanguages(nsTArray& aLanguages, +- const nsCString* aLanguageOverride) { +void Navigator::GetAcceptLanguages(const nsString* aLanguageOverride, nsTArray& aLanguages) { MOZ_ASSERT(NS_IsMainThread()); aLanguages.Clear(); // E.g. "de-de, en-us,en". - nsAutoString acceptLang; -- Preferences::GetLocalizedString("intl.accept_languages", acceptLang); -+ if (aLanguageOverride && aLanguageOverride->Length()) -+ acceptLang = *aLanguageOverride; -+ else -+ Preferences::GetLocalizedString("intl.accept_languages", acceptLang); -+ + nsAutoCString acceptLang; +- if (aLanguageOverride) { +- acceptLang.Assign(aLanguageOverride->get()); ++ if (aLanguageOverride && aLanguageOverride->Length()) { ++ acceptLang = NS_ConvertUTF16toUTF8(*aLanguageOverride); + } else { + intl::LocaleService::GetInstance()->GetAcceptLanguages(acceptLang); + } +@@ -407,13 +406,14 @@ void Navigator::GetLanguages(nsTArray& aLanguages) { + const nsCString& languageOverride = bc->Top()->GetLanguageOverride(); - // Split values on commas. - for (nsDependentSubstring lang : -@@ -406,7 +410,13 @@ void Navigator::GetLanguage(nsAString& aLanguage) { - } + if (!languageOverride.IsEmpty()) { +- GetAcceptLanguages(aLanguages, &languageOverride); ++ nsString languageOverrideWide = NS_ConvertUTF8toUTF16(languageOverride); ++ GetAcceptLanguages(&languageOverrideWide, aLanguages); - void Navigator::GetLanguages(nsTArray& aLanguages) { -- GetAcceptLanguages(aLanguages); -+ if (mWindow && mWindow->GetDocShell()) { -+ nsString languageOverride; -+ mWindow->GetDocShell()->GetLanguageOverride(languageOverride); -+ GetAcceptLanguages(&languageOverride, aLanguages); -+ } else { -+ GetAcceptLanguages(nullptr, aLanguages); -+ } + return; + } + } + +- GetAcceptLanguages(aLanguages, nullptr); ++ GetAcceptLanguages(nullptr, aLanguages); // 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 -@@ -2315,7 +2325,8 @@ bool Navigator::Webdriver() { +@@ -2336,7 +2336,8 @@ bool Navigator::Webdriver() { } #endif @@ -980,38 +980,24 @@ index 11a57adbb57b0adccf7ae491e7d7757f838bd9dc..e478244cedc2089fb99b3153d7493b7d AutoplayPolicy Navigator::GetAutoplayPolicy(AutoplayPolicyMediaType aType) { diff --git a/dom/base/Navigator.h b/dom/base/Navigator.h -index 893947475fbb8688becb1c1495385e4048d4927d..dfb50acf689223fdab7ef6f42afbbd53341e1b0b 100644 +index ebbf1b34c3..2d972742c3 100644 --- a/dom/base/Navigator.h +++ b/dom/base/Navigator.h -@@ -220,7 +220,7 @@ class Navigator final : public nsISupports, public nsWrapperCache { +@@ -225,8 +225,7 @@ class Navigator final : public nsISupports, public nsWrapperCache { StorageManager* Storage(); -- static void GetAcceptLanguages(nsTArray& aLanguages); +- static void GetAcceptLanguages(nsTArray& aLanguages, +- const nsCString* aLanguageOverride); + static void GetAcceptLanguages(const nsString* aLanguageOverride, nsTArray& aLanguages); dom::MediaCapabilities* MediaCapabilities(); dom::MediaSession* MediaSession(); diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp -index 7703ab18c104848eab9377769641d3b60e9bcf8e..3028fc5a7e6c54a7f4455f135e889d038eed378d 100644 +index 60e805446a..211f565f6e 100644 --- a/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp -@@ -9528,11 +9528,13 @@ nsresult nsContentUtils::SendMouseEvent( - int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame, - float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier, - bool aToWindow, bool* aPreventDefault, bool aIsDOMEventSynthesized, -- bool aIsWidgetEventSynthesized) { -+ bool aIsWidgetEventSynthesized, -+ bool convertToPointer, uint32_t aJugglerEventId) { - MOZ_ASSERT(aWidget); - EventMessage msg; - Maybe exitFrom; - bool contextMenuKey = false; -+ bool isPWDragEventMessage = false; - if (aType.EqualsLiteral("mousedown")) { - msg = eMouseDown; - } else if (aType.EqualsLiteral("mouseup")) { -@@ -9558,6 +9560,12 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -9555,13 +9555,26 @@ Result nsContentUtils::SynthesizeMouseEvent( msg = eMouseHitTest; } else if (aType.EqualsLiteral("MozMouseExploreByTouch")) { msg = eMouseExploreByTouch; @@ -1022,9 +1008,8 @@ index 7703ab18c104848eab9377769641d3b60e9bcf8e..3028fc5a7e6c54a7f4455f135e889d03 + msg = eDrop; + isPWDragEventMessage = true; } else { - return NS_ERROR_FAILURE; + return Err(NS_ERROR_FAILURE); } -@@ -9568,7 +9576,14 @@ nsresult nsContentUtils::SendMouseEvent( Maybe pointerEvent; Maybe mouseEvent; @@ -1033,55 +1018,35 @@ index 7703ab18c104848eab9377769641d3b60e9bcf8e..3028fc5a7e6c54a7f4455f135e889d03 + + if (isPWDragEventMessage) { + pwDragEvent.emplace(true, msg, aWidget); -+ pwDragEvent->mReason = aIsWidgetEventSynthesized ++ pwDragEvent->mReason = aOptions.mIsWidgetEventSynthesized + ? WidgetMouseEvent::eSynthesized + : WidgetMouseEvent::eReal; + } else if (IsPointerEventMessage(msg)) { - MOZ_ASSERT(!aIsWidgetEventSynthesized, - "The event shouldn't be dispatched as a synthesized event"); - if (MOZ_UNLIKELY(aIsWidgetEventSynthesized)) { -@@ -9587,8 +9602,11 @@ nsresult nsContentUtils::SendMouseEvent( - contextMenuKey ? WidgetMouseEvent::eContextMenuKey - : WidgetMouseEvent::eNormal); - } -+ + if (MOZ_UNLIKELY(aOptions.mIsWidgetEventSynthesized)) { + MOZ_ASSERT_UNREACHABLE( + "The event shouldn't be dispatched as a synthesized event"); +@@ -9589,6 +9602,7 @@ Result nsContentUtils::SynthesizeMouseEvent( + mozilla::widget::AutoSynthesizedEventCallbackNotifier notifier(callback); + WidgetMouseEvent& mouseOrPointerEvent = + pwDragEvent.isSome() ? pwDragEvent.ref() : pointerEvent.isSome() ? pointerEvent.ref() : mouseEvent.ref(); -+ - mouseOrPointerEvent.pointerId = aIdentifier; - mouseOrPointerEvent.mModifiers = GetWidgetModifiers(aModifiers); - mouseOrPointerEvent.mButton = aButton; -@@ -9601,6 +9619,8 @@ nsresult nsContentUtils::SendMouseEvent( - mouseOrPointerEvent.mClickCount = aClickCount; - mouseOrPointerEvent.mFlags.mIsSynthesizedForTests = aIsDOMEventSynthesized; + mouseOrPointerEvent.pointerId = aMouseEventData.mIdentifier; + mouseOrPointerEvent.mModifiers = +@@ -9609,6 +9623,8 @@ Result nsContentUtils::SynthesizeMouseEvent( + mouseOrPointerEvent.mFlags.mIsSynthesizedForTests = + aOptions.mIsDOMEventSynthesized; mouseOrPointerEvent.mExitFrom = exitFrom; -+ mouseOrPointerEvent.mJugglerEventId = aJugglerEventId; -+ mouseOrPointerEvent.convertToPointer = convertToPointer; ++ mouseOrPointerEvent.mJugglerEventId = aMouseEventData.mJugglerEventId; ++ mouseOrPointerEvent.convertToPointer = aOptions.mConvertToPointer; + mouseOrPointerEvent.mCallbackId = notifier.SaveCallback(); nsPresContext* presContext = aPresShell->GetPresContext(); - if (!presContext) return NS_ERROR_FAILURE; -diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h -index a1b96bce18e1904f4068057defa26142ebe8874b..f2fc14da57cf08139723980dedc33f2d3a9a431b 100644 ---- a/dom/base/nsContentUtils.h -+++ b/dom/base/nsContentUtils.h -@@ -3080,8 +3080,9 @@ class nsContentUtils { - int32_t aButton, int32_t aButtons, int32_t aClickCount, - int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, - unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, -- bool* aPreventDefault, bool aIsDOMEventSynthesized, -- bool aIsWidgetEventSynthesized); -+ bool* aPreventDefault, -+ bool aIsDOMEventSynthesized, bool aIsWidgetEventSynthesized, -+ bool convertToPointer = true, uint32_t aJugglerEventId = 0); - - static void FirePageShowEventForFrameLoaderSwap( - nsIDocShellTreeItem* aItem, diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp -index c6c5833cd29ef041da348d4398513bab7ef2f9aa..424cc396bfc211bc7debb3df203cfa26da7a4c55 100644 +index d27975b2a3..290e5a13e9 100644 --- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp -@@ -707,6 +707,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) { +@@ -710,6 +710,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) { return NS_ERROR_FAILURE; } @@ -1106,62 +1071,13 @@ index c6c5833cd29ef041da348d4398513bab7ef2f9aa..424cc396bfc211bc7debb3df203cfa26 +} + NS_IMETHODIMP - nsDOMWindowUtils::SendMouseEvent( - const nsAString& aType, float aX, float aY, int32_t aButton, -@@ -721,7 +741,7 @@ nsDOMWindowUtils::SendMouseEvent( - aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, false, - aPreventDefault, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true, - aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false, -- aOptionalArgCount >= 6 ? aButtons : MOUSE_BUTTONS_NOT_SPECIFIED); -+ aOptionalArgCount >= 6 ? aButtons : MOUSE_BUTTONS_NOT_SPECIFIED, true, 0); - } - - NS_IMETHODIMP -@@ -739,7 +759,7 @@ nsDOMWindowUtils::SendMouseEventToWindow( - aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, true, - nullptr, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true, - aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false, -- aOptionalArgCount >= 6 ? aButtons : MOUSE_BUTTONS_NOT_SPECIFIED); -+ aOptionalArgCount >= 6 ? aButtons : MOUSE_BUTTONS_NOT_SPECIFIED, 0); - } - - NS_IMETHODIMP -@@ -748,7 +768,7 @@ nsDOMWindowUtils::SendMouseEventCommon( - int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame, - float aPressure, unsigned short aInputSourceArg, uint32_t aPointerId, - bool aToWindow, bool* aPreventDefault, bool aIsDOMEventSynthesized, -- bool aIsWidgetEventSynthesized, int32_t aButtons) { -+ bool aIsWidgetEventSynthesized, int32_t aButtons, bool aConvertToPointer, uint32_t aJugglerEventId) { - RefPtr presShell = GetPresShell(); - if (!presShell) { - return NS_ERROR_FAILURE; -@@ -765,7 +785,7 @@ nsDOMWindowUtils::SendMouseEventCommon( - presShell, widget, aType, refPoint, aButton, aButtons, aClickCount, - aModifiers, aIgnoreRootScrollFrame, aPressure, aInputSourceArg, - aPointerId, aToWindow, aPreventDefault, aIsDOMEventSynthesized, -- aIsWidgetEventSynthesized); -+ aIsWidgetEventSynthesized, aConvertToPointer, aJugglerEventId); - } - - NS_IMETHODIMP -diff --git a/dom/base/nsDOMWindowUtils.h b/dom/base/nsDOMWindowUtils.h -index 4553ad5e7696055e861be5f840f8ce2bc54a5b29..1afc16325fcb63a3e510bdc387c8386eccf5d48b 100644 ---- a/dom/base/nsDOMWindowUtils.h -+++ b/dom/base/nsDOMWindowUtils.h -@@ -94,7 +94,7 @@ class nsDOMWindowUtils final : public nsIDOMWindowUtils, - int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame, - float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier, - bool aToWindow, bool* aPreventDefault, bool aIsDOMEventSynthesized, -- bool aIsWidgetEventSynthesized, int32_t aButtons); -+ bool aIsWidgetEventSynthesized, int32_t aButtons, bool aConvertToPointer = true, uint32_t aJugglerEventId = 0); - - MOZ_CAN_RUN_SCRIPT - nsresult SendTouchEventCommon( + nsDOMWindowUtils::IsCORSSafelistedRequestHeader(const nsACString& aName, + const nsACString& aValue, diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp -index 62c4bfb96dbb6e64aeadd9e45c296905b7956811..83f1e7303e2ebabfc73921d9bd27a255304a2ea4 100644 +index fa2125fa66..6bb0c72796 100644 --- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp -@@ -1717,6 +1717,10 @@ Maybe nsFocusManager::SetFocusInner(Element* aNewContent, +@@ -1840,6 +1840,10 @@ Maybe nsFocusManager::SetFocusInner(Element* aNewContent, (GetActiveBrowsingContext() == newRootBrowsingContext); } @@ -1172,7 +1088,7 @@ index 62c4bfb96dbb6e64aeadd9e45c296905b7956811..83f1e7303e2ebabfc73921d9bd27a255 // Exit fullscreen if a website focuses another window if (StaticPrefs::full_screen_api_exit_on_windowRaise() && !isElementInActiveWindow && (aFlags & FLAG_RAISE)) { -@@ -2303,6 +2307,7 @@ bool nsFocusManager::BlurImpl(BrowsingContext* aBrowsingContextToClear, +@@ -2427,6 +2431,7 @@ bool nsFocusManager::BlurImpl(BrowsingContext* aBrowsingContextToClear, bool aIsLeavingDocument, bool aAdjustWidget, bool aRemainActive, Element* aElementToFocus, uint64_t aActionId) { @@ -1180,7 +1096,7 @@ index 62c4bfb96dbb6e64aeadd9e45c296905b7956811..83f1e7303e2ebabfc73921d9bd27a255 LOGFOCUS(("<>", aActionId)); // hold a reference to the focused content, which may be null -@@ -2346,6 +2351,11 @@ bool nsFocusManager::BlurImpl(BrowsingContext* aBrowsingContextToClear, +@@ -2470,6 +2475,11 @@ bool nsFocusManager::BlurImpl(BrowsingContext* aBrowsingContextToClear, return true; } @@ -1192,7 +1108,7 @@ index 62c4bfb96dbb6e64aeadd9e45c296905b7956811..83f1e7303e2ebabfc73921d9bd27a255 // Keep a ref to presShell since dispatching the DOM event may cause // the document to be destroyed. RefPtr presShell = docShell->GetPresShell(); -@@ -3046,7 +3056,9 @@ void nsFocusManager::RaiseWindow(nsPIDOMWindowOuter* aWindow, +@@ -3169,7 +3179,9 @@ void nsFocusManager::RaiseWindow(nsPIDOMWindowOuter* aWindow, } } @@ -1204,10 +1120,10 @@ index 62c4bfb96dbb6e64aeadd9e45c296905b7956811..83f1e7303e2ebabfc73921d9bd27a255 // 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 5e2844f6e65da71ca9e1dadb1a88a74ab45f485c..a8f033e17ffbc28261072d561c89914d4bd2e325 100644 +index ae3b72b612..8f6e62f41a 100644 --- a/dom/base/nsGlobalWindowOuter.cpp +++ b/dom/base/nsGlobalWindowOuter.cpp -@@ -2511,10 +2511,16 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, +@@ -2515,10 +2515,16 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, }(); if (!isContentAboutBlankInChromeDocshell) { @@ -1228,7 +1144,7 @@ index 5e2844f6e65da71ca9e1dadb1a88a74ab45f485c..a8f033e17ffbc28261072d561c89914d } } -@@ -2634,6 +2640,19 @@ void nsGlobalWindowOuter::DispatchDOMWindowCreated() { +@@ -2638,6 +2644,19 @@ void nsGlobalWindowOuter::DispatchDOMWindowCreated() { } } @@ -1249,10 +1165,10 @@ index 5e2844f6e65da71ca9e1dadb1a88a74ab45f485c..a8f033e17ffbc28261072d561c89914d void nsGlobalWindowOuter::SetDocShell(nsDocShell* aDocShell) { diff --git a/dom/base/nsGlobalWindowOuter.h b/dom/base/nsGlobalWindowOuter.h -index 1fbb506b07714f9ab2a2c9aff3683aa7fec4b156..42878f8f0c6365c7e2958a3b35fce0e7db9abfff 100644 +index b6226ff10f..87fae2cff5 100644 --- a/dom/base/nsGlobalWindowOuter.h +++ b/dom/base/nsGlobalWindowOuter.h -@@ -318,6 +318,7 @@ class nsGlobalWindowOuter final : public mozilla::dom::EventTarget, +@@ -315,6 +315,7 @@ class nsGlobalWindowOuter final : public mozilla::dom::EventTarget, // Outer windows only. void DispatchDOMWindowCreated(); @@ -1261,10 +1177,10 @@ index 1fbb506b07714f9ab2a2c9aff3683aa7fec4b156..42878f8f0c6365c7e2958a3b35fce0e7 // Outer windows only. virtual void EnsureSizeAndPositionUpToDate() override; diff --git a/dom/base/nsINode.cpp b/dom/base/nsINode.cpp -index 7b8da8b4a5e8de02d0d2e1befc8407da88fbf890..533f3bf77e1ef78dd231ac899e3d8032938ea812 100644 +index 9bed2cad8b..64355630dd 100644 --- a/dom/base/nsINode.cpp +++ b/dom/base/nsINode.cpp -@@ -1500,6 +1500,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, +@@ -1507,6 +1507,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, mozilla::GetBoxQuadsFromWindowOrigin(this, aOptions, aResult, aRv); } @@ -1327,10 +1243,10 @@ index 7b8da8b4a5e8de02d0d2e1befc8407da88fbf890..533f3bf77e1ef78dd231ac899e3d8032 DOMQuad& aQuad, const GeometryNode& aFrom, const ConvertCoordinateOptions& aOptions, CallerType aCallerType, diff --git a/dom/base/nsINode.h b/dom/base/nsINode.h -index c3d84856e1bc92caf0437be312ccdbf7a2726ba5..d81c8e7152ca79b0fbb1ebee0f6f3aa40d0f34e2 100644 +index 1611ea9eb2..6511777068 100644 --- a/dom/base/nsINode.h +++ b/dom/base/nsINode.h -@@ -2421,6 +2421,10 @@ class nsINode : public mozilla::dom::EventTarget { +@@ -2499,6 +2499,10 @@ class nsINode : public mozilla::dom::EventTarget { nsTArray>& aResult, ErrorResult& aRv); @@ -1342,7 +1258,7 @@ index c3d84856e1bc92caf0437be312ccdbf7a2726ba5..d81c8e7152ca79b0fbb1ebee0f6f3aa4 DOMQuad& aQuad, const TextOrElementOrDocument& aFrom, const ConvertCoordinateOptions& aOptions, CallerType aCallerType, diff --git a/dom/base/nsJSUtils.cpp b/dom/base/nsJSUtils.cpp -index aed59277e27a5a90f4244dd4513f9b4feb5858c3..26750fa09bead1ffabb22482468dea5999899f18 100644 +index 25b261cb57..9f1bc7626e 100644 --- a/dom/base/nsJSUtils.cpp +++ b/dom/base/nsJSUtils.cpp @@ -151,6 +151,11 @@ bool nsJSUtils::GetEnvironmentChainForElement(JSContext* aCx, Element* aElement, @@ -1358,10 +1274,10 @@ index aed59277e27a5a90f4244dd4513f9b4feb5858c3..26750fa09bead1ffabb22482468dea59 void nsJSUtils::ResetTimeZone() { JS::ResetTimeZone(); } diff --git a/dom/base/nsJSUtils.h b/dom/base/nsJSUtils.h -index f32e21752d5013bf143eb45391ab9218debab08e..83763d2354dade2f8d2b7930ba18ae91c55133ad 100644 +index b6ea43886d..f0abb08931 100644 --- a/dom/base/nsJSUtils.h +++ b/dom/base/nsJSUtils.h -@@ -75,6 +75,7 @@ class nsJSUtils { +@@ -74,6 +74,7 @@ class nsJSUtils { mozilla::dom::Element* aElement, JS::EnvironmentChain& aEnvChain); @@ -1370,7 +1286,7 @@ index f32e21752d5013bf143eb45391ab9218debab08e..83763d2354dade2f8d2b7930ba18ae91 static bool DumpEnabled(); diff --git a/dom/chrome-webidl/BrowsingContext.webidl b/dom/chrome-webidl/BrowsingContext.webidl -index 6d150cc3ad77f694af5aa943c60eac37ba0733c0..9e68e18601cfb3e9e9c03b4bf0057c1a3d50a9d5 100644 +index 9730cea647..79da6984a4 100644 --- a/dom/chrome-webidl/BrowsingContext.webidl +++ b/dom/chrome-webidl/BrowsingContext.webidl @@ -62,6 +62,26 @@ enum ForcedColorsOverride { @@ -1400,7 +1316,7 @@ index 6d150cc3ad77f694af5aa943c60eac37ba0733c0..9e68e18601cfb3e9e9c03b4bf0057c1a /** * Allowed overrides of platform/pref default behaviour for touch events. */ -@@ -228,6 +248,12 @@ interface BrowsingContext { +@@ -235,6 +255,12 @@ interface BrowsingContext { // Forced-colors simulation, for DevTools [SetterThrows] attribute ForcedColorsOverride forcedColorsOverride; @@ -1414,10 +1330,10 @@ index 6d150cc3ad77f694af5aa943c60eac37ba0733c0..9e68e18601cfb3e9e9c03b4bf0057c1a * 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/fetch/Fetch.cpp b/dom/fetch/Fetch.cpp -index 52cf33bfc863d5ef1d3ac889ddfba3023600d60a..ccb521f367b8ccc8c40d8bad78aa621ab1b074c0 100644 +index 84965f7b23..31e5c1343e 100644 --- a/dom/fetch/Fetch.cpp +++ b/dom/fetch/Fetch.cpp -@@ -704,6 +704,12 @@ already_AddRefed FetchRequest(nsIGlobalObject* aGlobal, +@@ -699,6 +699,12 @@ already_AddRefed FetchRequest(nsIGlobalObject* aGlobal, ipcArgs.hasCSPEventListener() = false; ipcArgs.isWorkerRequest() = false; @@ -1429,12 +1345,12 @@ index 52cf33bfc863d5ef1d3ac889ddfba3023600d60a..ccb521f367b8ccc8c40d8bad78aa621a + actor->DoFetchOp(ipcArgs); - mozilla::glean::networking::fetch_keepalive_request_count.Get("main"_ns) + return p.forget(); diff --git a/dom/fetch/FetchService.cpp b/dom/fetch/FetchService.cpp -index 1734429e8eeb155b742211ca58afcbeb73a8bf7c..15635a2e5c266f8085093a0d17288abe8ed54d9e 100644 +index 421a3ce2be..095d003d33 100644 --- a/dom/fetch/FetchService.cpp +++ b/dom/fetch/FetchService.cpp -@@ -268,6 +268,14 @@ RefPtr FetchService::FetchInstance::Fetch() { +@@ -267,6 +267,14 @@ RefPtr FetchService::FetchInstance::Fetch() { net::ClassificationFlags({0, 0}) // TrackingFlags ); @@ -1450,10 +1366,10 @@ index 1734429e8eeb155b742211ca58afcbeb73a8bf7c..15635a2e5c266f8085093a0d17288abe auto& args = mArgs.as(); mFetchDriver->SetWorkerScript(args.mWorkerScript); diff --git a/dom/geolocation/Geolocation.cpp b/dom/geolocation/Geolocation.cpp -index 70ce9ce97c6d0ccba8b4129c55079cf9122e5b17..1c503c68c2c0949cfdaa18a76a263a81807952e1 100644 +index 33832d190f..f0d776bb3d 100644 --- a/dom/geolocation/Geolocation.cpp +++ b/dom/geolocation/Geolocation.cpp -@@ -394,7 +394,10 @@ nsGeolocationRequest::Allow(JS::Handle aChoices) { +@@ -393,7 +393,10 @@ nsGeolocationRequest::Allow(JS::Handle aChoices) { return NS_OK; } @@ -1465,7 +1381,7 @@ index 70ce9ce97c6d0ccba8b4129c55079cf9122e5b17..1c503c68c2c0949cfdaa18a76a263a81 // Asynchronously present the system dialog or open system preferences // (RequestGeolocationPermissionFromUser will know which to do), and wait // for the permission to change or the request to be canceled. If the -@@ -426,8 +429,6 @@ nsGeolocationRequest::Allow(JS::Handle aChoices) { +@@ -425,8 +428,6 @@ nsGeolocationRequest::Allow(JS::Handle aChoices) { return NS_OK; } @@ -1474,7 +1390,7 @@ index 70ce9ce97c6d0ccba8b4129c55079cf9122e5b17..1c503c68c2c0949cfdaa18a76a263a81 bool canUseCache = false; CachedPositionAndAccuracy lastPosition = gs->GetCachedPosition(); if (lastPosition.position) { -@@ -710,11 +711,16 @@ NS_INTERFACE_MAP_END +@@ -709,11 +710,16 @@ NS_INTERFACE_MAP_END NS_IMPL_ADDREF(nsGeolocationService) NS_IMPL_RELEASE(nsGeolocationService) @@ -1492,7 +1408,7 @@ index 70ce9ce97c6d0ccba8b4129c55079cf9122e5b17..1c503c68c2c0949cfdaa18a76a263a81 if (XRE_IsContentProcess()) { return NS_OK; } -@@ -793,6 +799,10 @@ nsresult nsGeolocationService::Init() { +@@ -792,6 +798,10 @@ nsresult nsGeolocationService::Init() { return NS_OK; } @@ -1503,7 +1419,7 @@ index 70ce9ce97c6d0ccba8b4129c55079cf9122e5b17..1c503c68c2c0949cfdaa18a76a263a81 nsGeolocationService::~nsGeolocationService() = default; NS_IMETHODIMP -@@ -936,6 +946,10 @@ bool nsGeolocationService::HighAccuracyRequested() { +@@ -935,6 +945,10 @@ bool nsGeolocationService::HighAccuracyRequested() { } void nsGeolocationService::UpdateAccuracy(bool aForceHigh) { @@ -1515,10 +1431,10 @@ index 70ce9ce97c6d0ccba8b4129c55079cf9122e5b17..1c503c68c2c0949cfdaa18a76a263a81 if (XRE_IsContentProcess()) { diff --git a/dom/geolocation/Geolocation.h b/dom/geolocation/Geolocation.h -index 57814242d551774e81403b7fdc20c795deadb625..c48c1b19a8d5499784ffb7b50d5e88e40c7b2a05 100644 +index d46e2e88b1..e69d62ffb4 100644 --- a/dom/geolocation/Geolocation.h +++ b/dom/geolocation/Geolocation.h -@@ -67,7 +67,7 @@ class nsGeolocationService final : public nsIGeolocationUpdate, +@@ -64,7 +64,7 @@ class nsGeolocationService final : public nsIGeolocationUpdate, nsGeolocationService() = default; @@ -1527,7 +1443,7 @@ index 57814242d551774e81403b7fdc20c795deadb625..c48c1b19a8d5499784ffb7b50d5e88e4 // Management of the Geolocation objects void AddLocator(mozilla::dom::Geolocation* aLocator); -@@ -92,6 +92,8 @@ class nsGeolocationService final : public nsIGeolocationUpdate, +@@ -89,6 +89,8 @@ class nsGeolocationService final : public nsIGeolocationUpdate, void UpdateAccuracy(bool aForceHigh = false); bool HighAccuracyRequested(); @@ -1536,7 +1452,7 @@ index 57814242d551774e81403b7fdc20c795deadb625..c48c1b19a8d5499784ffb7b50d5e88e4 private: ~nsGeolocationService(); -@@ -118,6 +120,8 @@ class nsGeolocationService final : public nsIGeolocationUpdate, +@@ -115,6 +117,8 @@ class nsGeolocationService final : public nsIGeolocationUpdate, // Nothing() if not being started, or a boolean reflecting the requested // accuracy. mozilla::Maybe mStarting; @@ -1546,18 +1462,18 @@ index 57814242d551774e81403b7fdc20c795deadb625..c48c1b19a8d5499784ffb7b50d5e88e4 namespace mozilla::dom { diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp -index 5b0228d4a61dfe2b95e7a3ce016217007e8dee12..b753b0fceeec3278cb026d9137aafab5fb6ef968 100644 +index 31b29ac946..f8c6335c0a 100644 --- a/dom/html/HTMLInputElement.cpp +++ b/dom/html/HTMLInputElement.cpp -@@ -64,6 +64,7 @@ - #include "mozilla/dom/Document.h" +@@ -45,6 +45,7 @@ #include "mozilla/dom/HTMLDataListElement.h" #include "mozilla/dom/HTMLOptionElement.h" + #include "mozilla/dom/InputType.h" +#include "nsDocShell.h" - #include "nsIFrame.h" - #include "nsRangeFrame.h" - #include "nsError.h" -@@ -817,6 +818,13 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) { + #include "mozilla/dom/MouseEvent.h" + #include "mozilla/dom/NumericInputTypes.h" + #include "mozilla/dom/ProgressEvent.h" +@@ -799,6 +800,13 @@ nsresult HTMLInputElement::InitColorPicker() { return NS_ERROR_FAILURE; } @@ -1572,10 +1488,10 @@ index 5b0228d4a61dfe2b95e7a3ce016217007e8dee12..b753b0fceeec3278cb026d9137aafab5 return NS_OK; } diff --git a/dom/interfaces/base/nsIDOMWindowUtils.idl b/dom/interfaces/base/nsIDOMWindowUtils.idl -index 64a2dad65911395ea7eb8ded3374ae6bdd31cf3c..e333c802f8a9232e58d963e05187c0a1b30948f5 100644 +index ce7c11966e..4079c43d9d 100644 --- a/dom/interfaces/base/nsIDOMWindowUtils.idl +++ b/dom/interfaces/base/nsIDOMWindowUtils.idl -@@ -390,6 +390,26 @@ cenum AsyncEnabledOption : 8 { +@@ -327,6 +327,26 @@ cenum AsyncEnabledOption : 8 { ASYNC_ENABLED = 1 }; @@ -1603,10 +1519,10 @@ index 64a2dad65911395ea7eb8ded3374ae6bdd31cf3c..e333c802f8a9232e58d963e05187c0a1 * touchstart, touchend, touchmove, and touchcancel * diff --git a/dom/ipc/BrowserChild.cpp b/dom/ipc/BrowserChild.cpp -index 780550d573644bcfe4a9bc03243aa4559a62d979..9ed69194ef329aad1e8a3e2c06041a443e4bc6ba 100644 +index 80158ce3a0..4e7fc3c95d 100644 --- a/dom/ipc/BrowserChild.cpp +++ b/dom/ipc/BrowserChild.cpp -@@ -1744,6 +1744,21 @@ void BrowserChild::HandleRealMouseButtonEvent(const WidgetMouseEvent& aEvent, +@@ -1813,6 +1813,21 @@ void BrowserChild::HandleRealMouseButtonEvent(const WidgetMouseEvent& aEvent, if (postLayerization) { postLayerization->Register(); } @@ -1629,10 +1545,10 @@ index 780550d573644bcfe4a9bc03243aa4559a62d979..9ed69194ef329aad1e8a3e2c06041a44 mozilla::ipc::IPCResult BrowserChild::RecvNormalPriorityRealMouseButtonEvent( diff --git a/dom/ipc/CoalescedMouseData.cpp b/dom/ipc/CoalescedMouseData.cpp -index 83aa0d08839f6fa5a150e5791b9b717e5aa9e751..fc1e1140ac7c6cda8cf116027c2fc2898dbe9d4b 100644 +index a4ccc0049d..36b4c59369 100644 --- a/dom/ipc/CoalescedMouseData.cpp +++ b/dom/ipc/CoalescedMouseData.cpp -@@ -72,6 +72,9 @@ bool CoalescedMouseData::CanCoalesce(const WidgetMouseEvent& aEvent, +@@ -73,6 +73,9 @@ bool CoalescedMouseData::CanCoalesce(const WidgetMouseEvent& aEvent, mCoalescedInputEvent->pointerId != aEvent.pointerId || mCoalescedInputEvent->mButton != aEvent.mButton || mCoalescedInputEvent->mButtons != aEvent.mButtons || mGuid != aGuid || @@ -1643,7 +1559,7 @@ index 83aa0d08839f6fa5a150e5791b9b717e5aa9e751..fc1e1140ac7c6cda8cf116027c2fc289 return false; } diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.cc b/dom/media/systemservices/video_engine/desktop_capture_impl.cc -index db777994b583efc2a3533e7d4534fff894c733bb..eb317c19b2422bd983d5e132c9ee4dac31687428 100644 +index ad5f871cf6..171c647963 100644 --- a/dom/media/systemservices/video_engine/desktop_capture_impl.cc +++ b/dom/media/systemservices/video_engine/desktop_capture_impl.cc @@ -53,9 +53,10 @@ namespace webrtc { @@ -1653,9 +1569,9 @@ index db777994b583efc2a3533e7d4534fff894c733bb..eb317c19b2422bd983d5e132c9ee4dac - const CaptureDeviceType aType) { + const CaptureDeviceType aType, + bool aCaptureCursor) { - return new rtc::RefCountedObject(aModuleId, aUniqueId, -- aType); -+ aType, aCaptureCursor); + return new webrtc::RefCountedObject(aModuleId, aUniqueId, +- aType); ++ aType, aCaptureCursor); } static DesktopCaptureOptions CreateDesktopCaptureOptions() { @@ -1735,7 +1651,7 @@ index db777994b583efc2a3533e7d4534fff894c733bb..eb317c19b2422bd983d5e132c9ee4dac frameInfo.width * frameInfo.height * DesktopFrame::kBytesPerPixel; diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.h b/dom/media/systemservices/video_engine/desktop_capture_impl.h -index a76b7de569db1cb42728a5514fb80e5c46e0344e..3d61ad8d3aa4a7eaf96957dcd680e1e1ee8abdf4 100644 +index 498de96bf6..e221396633 100644 --- a/dom/media/systemservices/video_engine/desktop_capture_impl.h +++ b/dom/media/systemservices/video_engine/desktop_capture_impl.h @@ -26,6 +26,7 @@ @@ -1795,7 +1711,7 @@ index a76b7de569db1cb42728a5514fb80e5c46e0344e..3d61ad8d3aa4a7eaf96957dcd680e1e1 CreateDeviceInfo(const int32_t aId, @@ -66,6 +94,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, void DeRegisterCaptureDataCallback( - rtc::VideoSinkInterface* aCallback) override; + webrtc::VideoSinkInterface* aCallback) override; int32_t StopCaptureIfAllClientsClose() override; + void RegisterRawFrameCallback(RawFrameCallback* rawFrameCallback) override; + void DeRegisterRawFrameCallback(RawFrameCallback* rawFrameCallback) override; @@ -1832,7 +1748,7 @@ index a76b7de569db1cb42728a5514fb80e5c46e0344e..3d61ad8d3aa4a7eaf96957dcd680e1e1 const nsCOMPtr mControlThread; // Set in StartCapture. diff --git a/dom/script/ScriptSettings.cpp b/dom/script/ScriptSettings.cpp -index d5964b27e9c99af76fe3f4076322592a9370c2d0..da217e2c1fbd9ca02e50ff74dde028189a216a6d 100644 +index 9444fad192..cc526e1ac8 100644 --- a/dom/script/ScriptSettings.cpp +++ b/dom/script/ScriptSettings.cpp @@ -150,6 +150,30 @@ ScriptSettingsStackEntry::~ScriptSettingsStackEntry() { @@ -1876,17 +1792,17 @@ index d5964b27e9c99af76fe3f4076322592a9370c2d0..da217e2c1fbd9ca02e50ff74dde02818 return aGlobalOrNull; diff --git a/dom/security/nsCSPUtils.cpp b/dom/security/nsCSPUtils.cpp -index 8b68f22ae64d19165bf4b3c58aea8f5c237ba351..c3733bfa4ed550c98ab5f72c406cd6d01a621aca 100644 +index fb7533f064..420383cefa 100644 --- a/dom/security/nsCSPUtils.cpp +++ b/dom/security/nsCSPUtils.cpp -@@ -24,6 +24,7 @@ +@@ -33,6 +33,7 @@ #include "nsSandboxFlags.h" #include "nsServiceManagerUtils.h" #include "nsWhitespaceTokenizer.h" +#include "nsDocShell.h" - #include "mozilla/Assertions.h" - #include "mozilla/Components.h" + using namespace mozilla; + using mozilla::dom::SRIMetadata; @@ -136,6 +137,11 @@ void CSP_ApplyMetaCSPToDoc(mozilla::dom::Document& aDoc, return; } @@ -1900,7 +1816,7 @@ index 8b68f22ae64d19165bf4b3c58aea8f5c237ba351..c3733bfa4ed550c98ab5f72c406cd6d0 nsContentUtils::TrimWhitespace( aPolicyStr)); diff --git a/dom/webidl/GeometryUtils.webidl b/dom/webidl/GeometryUtils.webidl -index aee376e971ae01ac1e512c3920b115bfaf06afa8..1701311534bf77e6cd9bafc0e3a283610476aa8f 100644 +index aee376e971..1701311534 100644 --- a/dom/webidl/GeometryUtils.webidl +++ b/dom/webidl/GeometryUtils.webidl @@ -17,6 +17,8 @@ dictionary GeometryUtilsOptions { @@ -1922,15 +1838,37 @@ index aee376e971ae01ac1e512c3920b115bfaf06afa8..1701311534bf77e6cd9bafc0e3a28361 /* getBoxQuadsFromWindowOrigin is similar to getBoxQuads, but the * returned quads are further translated relative to the window * origin -- which is not the layout origin. Further translation +diff --git a/dom/webidl/Window.webidl b/dom/webidl/Window.webidl +index 7c509eb87e..632652dace 100644 +--- a/dom/webidl/Window.webidl ++++ b/dom/webidl/Window.webidl +@@ -408,6 +408,8 @@ dictionary SynthesizeMouseEventData { + short inputSource = 1; + // Modifiers pressed, using constants defined as MODIFIER_* in nsIDOMWindowUtils. + long modifiers = 0; ++ // Juggler event identifier for tracking events across processes. ++ unsigned long jugglerEventId = 0; + }; + + // Mozilla-specific stuff +@@ -424,6 +426,8 @@ dictionary SynthesizeMouseEventOptions { + // Set this to true to ensure that the event is dispatched to this DOM window + // or one of its children. + boolean toWindow = false; ++ // Controls whether the mouse event should be converted to a pointer event. ++ boolean convertToPointer = true; + }; + + // Mozilla-specific stuff diff --git a/dom/workers/RuntimeService.cpp b/dom/workers/RuntimeService.cpp -index 83cef5b52b8f5c3168cd1d59266b4149425647fd..a80e89ec26a7e049c8ed84687ba2cd49597be05f 100644 +index 5b30b4117b..f53955c06d 100644 --- a/dom/workers/RuntimeService.cpp +++ b/dom/workers/RuntimeService.cpp @@ -1117,7 +1117,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) { AssertIsOnMainThread(); nsTArray languages; -- Navigator::GetAcceptLanguages(languages); +- Navigator::GetAcceptLanguages(languages, nullptr); + Navigator::GetAcceptLanguages(nullptr, languages); RuntimeService* runtime = RuntimeService::GetService(); @@ -1940,12 +1878,12 @@ index 83cef5b52b8f5c3168cd1d59266b4149425647fd..a80e89ec26a7e049c8ed84687ba2cd49 // The navigator overridden properties should have already been read. - -- Navigator::GetAcceptLanguages(mNavigatorProperties.mLanguages); +- Navigator::GetAcceptLanguages(mNavigatorProperties.mLanguages, nullptr); + Navigator::GetAcceptLanguages(nullptr, mNavigatorProperties.mLanguages); mNavigatorPropertiesLoaded = true; } -@@ -1901,6 +1900,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted( +@@ -1936,6 +1935,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted( } } @@ -1959,7 +1897,7 @@ index 83cef5b52b8f5c3168cd1d59266b4149425647fd..a80e89ec26a7e049c8ed84687ba2cd49 template void RuntimeService::BroadcastAllWorkers(const Func& aFunc) { AssertIsOnMainThread(); -@@ -2451,6 +2457,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers( +@@ -2497,6 +2503,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers( } } @@ -1975,10 +1913,10 @@ index 83cef5b52b8f5c3168cd1d59266b4149425647fd..a80e89ec26a7e049c8ed84687ba2cd49 MOZ_ASSERT(!NS_IsMainThread()); MOZ_ASSERT(aCx); diff --git a/dom/workers/RuntimeService.h b/dom/workers/RuntimeService.h -index 6d75c6708bcb999dc1dc3b0172afa14136110bc6..809d0ef80ffe793beff5d3c11bf6bf7912385e99 100644 +index bb7167d639..6d5bef88d9 100644 --- a/dom/workers/RuntimeService.h +++ b/dom/workers/RuntimeService.h -@@ -115,6 +115,8 @@ class RuntimeService final : public nsIObserver { +@@ -112,6 +112,8 @@ class RuntimeService final : public nsIObserver { void PropagateStorageAccessPermissionGranted( const nsPIDOMWindowInner& aWindow); @@ -1988,7 +1926,7 @@ index 6d75c6708bcb999dc1dc3b0172afa14136110bc6..809d0ef80ffe793beff5d3c11bf6bf79 return mNavigatorProperties; } diff --git a/dom/workers/WorkerCommon.h b/dom/workers/WorkerCommon.h -index af8d36c0d72683712a3fee22661f8c3279e103db..6b3a967c9acde2c81ab38148d4b1ac120a4717a2 100644 +index af8d36c0d7..6b3a967c9a 100644 --- a/dom/workers/WorkerCommon.h +++ b/dom/workers/WorkerCommon.h @@ -50,6 +50,8 @@ void ResumeWorkersForWindow(const nsPIDOMWindowInner& aWindow); @@ -2001,10 +1939,10 @@ index af8d36c0d72683712a3fee22661f8c3279e103db..6b3a967c9acde2c81ab38148d4b1ac12 bool IsWorkerGlobal(JSObject* global); diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp -index 06083bb8f9546be06fa0b5c78d4e005a1617e51b..1753896265c1701ad50425c565f8d44392d0afb9 100644 +index c8e44687b7..382b67f1c4 100644 --- a/dom/workers/WorkerPrivate.cpp +++ b/dom/workers/WorkerPrivate.cpp -@@ -738,6 +738,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { +@@ -742,6 +742,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { } }; @@ -2023,7 +1961,7 @@ index 06083bb8f9546be06fa0b5c78d4e005a1617e51b..1753896265c1701ad50425c565f8d443 class UpdateLanguagesRunnable final : public WorkerThreadRunnable { nsTArray mLanguages; -@@ -2334,6 +2346,16 @@ void WorkerPrivate::UpdateContextOptions( +@@ -2350,6 +2362,16 @@ void WorkerPrivate::UpdateContextOptions( } } @@ -2040,7 +1978,7 @@ index 06083bb8f9546be06fa0b5c78d4e005a1617e51b..1753896265c1701ad50425c565f8d443 void WorkerPrivate::UpdateLanguages(const nsTArray& aLanguages) { AssertIsOnParentThread(); -@@ -5996,6 +6018,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( +@@ -6019,6 +6041,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( } } @@ -2057,10 +1995,10 @@ index 06083bb8f9546be06fa0b5c78d4e005a1617e51b..1753896265c1701ad50425c565f8d443 const nsTArray& aLanguages) { WorkerGlobalScope* globalScope = GlobalScope(); diff --git a/dom/workers/WorkerPrivate.h b/dom/workers/WorkerPrivate.h -index 15c819c84fa934e25517ac8f55fd39ef8ba46986..fe01e09abcf2315abe41a3d19418c4e0f8c7df2b 100644 +index c5d17c1c0a..f8790fa5b0 100644 --- a/dom/workers/WorkerPrivate.h +++ b/dom/workers/WorkerPrivate.h -@@ -457,6 +457,8 @@ class WorkerPrivate final +@@ -462,6 +462,8 @@ class WorkerPrivate final void UpdateContextOptionsInternal(JSContext* aCx, const JS::ContextOptions& aContextOptions); @@ -2069,7 +2007,7 @@ index 15c819c84fa934e25517ac8f55fd39ef8ba46986..fe01e09abcf2315abe41a3d19418c4e0 void UpdateLanguagesInternal(const nsTArray& aLanguages); void UpdateJSWorkerMemoryParameterInternal(JSContext* aCx, JSGCParamKey key, -@@ -1103,6 +1105,8 @@ class WorkerPrivate final +@@ -1109,6 +1111,8 @@ class WorkerPrivate final void UpdateContextOptions(const JS::ContextOptions& aContextOptions); @@ -2079,7 +2017,7 @@ index 15c819c84fa934e25517ac8f55fd39ef8ba46986..fe01e09abcf2315abe41a3d19418c4e0 void UpdateJSWorkerMemoryParameter(JSGCParamKey key, Maybe value); diff --git a/intl/components/src/TimeZone.cpp b/intl/components/src/TimeZone.cpp -index 7a069ef0c59895cf1f8dc35d612f1494c9c9f1ef..5b09dfdcc5323def65c35b0696141b44eef9dcda 100644 +index fb4c0657ba..472492899a 100644 --- a/intl/components/src/TimeZone.cpp +++ b/intl/components/src/TimeZone.cpp @@ -16,6 +16,7 @@ @@ -2089,8 +2027,8 @@ index 7a069ef0c59895cf1f8dc35d612f1494c9c9f1ef..5b09dfdcc5323def65c35b0696141b44 + /* static */ Result, ICUError> TimeZone::TryCreate( - Maybe> aTimeZoneOverride) { -@@ -318,6 +319,13 @@ static ICUResult SetDefaultTimeZone(TimeZoneIdentifierVector& timeZone) { + Maybe> aTimeZoneOverride) { +@@ -327,6 +328,13 @@ static ICUResult SetDefaultTimeZone(TimeZoneIdentifierVector& timeZone) { } #endif @@ -2105,10 +2043,10 @@ index 7a069ef0c59895cf1f8dc35d612f1494c9c9f1ef..5b09dfdcc5323def65c35b0696141b44 Span aTimeZone) { #if MOZ_INTL_USE_ICU_CPP_TIMEZONE diff --git a/intl/components/src/TimeZone.h b/intl/components/src/TimeZone.h -index 89770839ae108b5f3462a7f20684fdb72c4ab2fb..a7e40d6b7c33c234b41e586eac573ba4ce3a7d18 100644 +index 9eea5e24b6..b530d01060 100644 --- a/intl/components/src/TimeZone.h +++ b/intl/components/src/TimeZone.h -@@ -191,6 +191,8 @@ class TimeZone final { +@@ -190,6 +190,8 @@ class TimeZone final { return FillBufferWithICUCall(aBuffer, ucal_getHostTimeZone); } @@ -2118,7 +2056,7 @@ index 89770839ae108b5f3462a7f20684fdb72c4ab2fb..a7e40d6b7c33c234b41e586eac573ba4 * Set the default time zone. */ diff --git a/js/public/Date.h b/js/public/Date.h -index 523e84c8c93f4221701f90f2e8ee146ec8e1adbd..98d5b1176e5378431b859a2dbd4d4e778d236e78 100644 +index 523e84c8c9..98d5b1176e 100644 --- a/js/public/Date.h +++ b/js/public/Date.h @@ -55,6 +55,8 @@ namespace JS { @@ -2131,7 +2069,7 @@ index 523e84c8c93f4221701f90f2e8ee146ec8e1adbd..98d5b1176e5378431b859a2dbd4d4e77 inline ClippedTime TimeClip(double time); diff --git a/js/src/debugger/Object.cpp b/js/src/debugger/Object.cpp -index 2d177b5aade6d158e9ae62d317d5155b72cdcf84..28af5d41eb06d4b33cd5f86484dc29c923308835 100644 +index 2d177b5aad..28af5d41eb 100644 --- a/js/src/debugger/Object.cpp +++ b/js/src/debugger/Object.cpp @@ -2516,7 +2516,11 @@ Maybe DebuggerObject::call(JSContext* cx, @@ -2147,12 +2085,12 @@ index 2d177b5aade6d158e9ae62d317d5155b72cdcf84..28af5d41eb06d4b33cd5f86484dc29c9 } diff --git a/js/src/vm/DateTime.cpp b/js/src/vm/DateTime.cpp -index cc366b4cc411ed8de972811237563edb376355e3..adf727cf80fadebce3be9301752dc1d0b9ee35b9 100644 +index 5f329ff0f6..bfeec77700 100644 --- a/js/src/vm/DateTime.cpp +++ b/js/src/vm/DateTime.cpp -@@ -188,6 +188,11 @@ void js::DateTimeInfo::internalResetTimeZone(ResetTimeZoneMode mode) { - } +@@ -225,6 +225,11 @@ void js::DateTimeInfo::updateTimeZoneOverride( } + #endif +void js::DateTimeInfo::internalSetTimeZoneOverride(std::string timeZone) { + timeZoneOverride_ = std::move(timeZone); @@ -2161,8 +2099,8 @@ index cc366b4cc411ed8de972811237563edb376355e3..adf727cf80fadebce3be9301752dc1d0 + void js::DateTimeInfo::updateTimeZone() { MOZ_ASSERT(timeZoneStatus_ != TimeZoneStatus::Valid); - -@@ -556,10 +561,24 @@ void js::ResetTimeZoneInternal(ResetTimeZoneMode mode) { + #if JS_HAS_INTL_API +@@ -596,10 +601,24 @@ void js::ResetTimeZoneInternal(ResetTimeZoneMode mode) { js::DateTimeInfo::resetTimeZone(mode); } @@ -2187,7 +2125,7 @@ index cc366b4cc411ed8de972811237563edb376355e3..adf727cf80fadebce3be9301752dc1d0 #if JS_HAS_INTL_API # if defined(XP_WIN) static bool IsOlsonCompatibleWindowsTimeZoneId(std::string_view tz) { -@@ -773,6 +792,15 @@ static bool ReadTimeZoneLink(std::string_view tz, +@@ -813,9 +832,17 @@ static bool ReadTimeZoneLink(std::string_view tz, void js::DateTimeInfo::internalResyncICUDefaultTimeZone() { #if JS_HAS_INTL_API @@ -2200,11 +2138,6 @@ index cc366b4cc411ed8de972811237563edb376355e3..adf727cf80fadebce3be9301752dc1d0 + return; + } + - // In the future we should not be setting a default ICU time zone at all, - // instead all accesses should go through the appropriate DateTimeInfo - // instance depending on the resist fingerprinting status. For now we return -@@ -784,7 +812,6 @@ void js::DateTimeInfo::internalResyncICUDefaultTimeZone() { - if (const char* tzenv = std::getenv("TZ")) { std::string_view tz(tzenv); - @@ -2212,10 +2145,10 @@ index cc366b4cc411ed8de972811237563edb376355e3..adf727cf80fadebce3be9301752dc1d0 # if defined(XP_WIN) diff --git a/js/src/vm/DateTime.h b/js/src/vm/DateTime.h -index 7be5b49afdce8e761af05dfbd48f3cb22e9ce318..3899c7988959f11bbadd0c005462acb979823fd1 100644 +index 30b172e197..6212636bca 100644 --- a/js/src/vm/DateTime.h +++ b/js/src/vm/DateTime.h -@@ -75,6 +75,8 @@ using TimeZoneIdentifierVector = +@@ -77,6 +77,8 @@ using TimeZoneIdentifierVector = SystemAllocPolicy>; #endif @@ -2224,15 +2157,15 @@ index 7be5b49afdce8e761af05dfbd48f3cb22e9ce318..3899c7988959f11bbadd0c005462acb9 /** * Stores date/time information, particularly concerning the current local * time zone, and implements a small cache for daylight saving time offset -@@ -258,6 +260,7 @@ class DateTimeInfo { +@@ -287,6 +289,7 @@ class DateTimeInfo { private: // The method below should only be called via js::ResetTimeZoneInternal(). friend void js::ResetTimeZoneInternal(ResetTimeZoneMode); + friend void js::SetTimeZoneOverrideInternal(std::string); static void resetTimeZone(ResetTimeZoneMode mode) { - { -@@ -362,6 +365,8 @@ class DateTimeInfo { + auto guard = instance->lock(); +@@ -390,6 +393,8 @@ class DateTimeInfo { JS::UniqueChars locale_; JS::UniqueTwoByteChars standardName_; JS::UniqueTwoByteChars daylightSavingsName_; @@ -2241,9 +2174,9 @@ index 7be5b49afdce8e761af05dfbd48f3cb22e9ce318..3899c7988959f11bbadd0c005462acb9 #else // Restrict the data-time range to the minimum required time_t range as // specified in POSIX. Most operating systems support 64-bit time_t -@@ -377,6 +382,8 @@ class DateTimeInfo { +@@ -407,6 +412,8 @@ class DateTimeInfo { - void internalResetTimeZone(ResetTimeZoneMode mode); + void resetState(); + void internalSetTimeZoneOverride(std::string timeZone); + @@ -2251,7 +2184,7 @@ index 7be5b49afdce8e761af05dfbd48f3cb22e9ce318..3899c7988959f11bbadd0c005462acb9 void internalResyncICUDefaultTimeZone(); diff --git a/layout/base/GeometryUtils.cpp b/layout/base/GeometryUtils.cpp -index 67673c5c306e7237613b0560c7b3f888bd6ad1b8..fe4a278dad4b1747b41b5a824978636a70a9dea8 100644 +index 67673c5c30..fe4a278dad 100644 --- a/layout/base/GeometryUtils.cpp +++ b/layout/base/GeometryUtils.cpp @@ -23,6 +23,7 @@ @@ -2302,10 +2235,10 @@ index 67673c5c306e7237613b0560c7b3f888bd6ad1b8..fe4a278dad4b1747b41b5a824978636a // No boxes to return return; diff --git a/layout/base/PresShell.cpp b/layout/base/PresShell.cpp -index 26119628ab4839858733ce39c6c9ef2970092b49..a9c4dbc4936755fd25b8528511e9a4c62695de89 100644 +index 8e488bb954..d9510c00b9 100644 --- a/layout/base/PresShell.cpp +++ b/layout/base/PresShell.cpp -@@ -12150,7 +12150,9 @@ bool PresShell::ComputeActiveness() const { +@@ -12044,7 +12044,9 @@ bool PresShell::ComputeActiveness() const { if (!browserChild->IsVisible()) { MOZ_LOG(gLog, LogLevel::Debug, (" > BrowserChild %p is not visible", browserChild)); @@ -2317,10 +2250,10 @@ index 26119628ab4839858733ce39c6c9ef2970092b49..a9c4dbc4936755fd25b8528511e9a4c6 // If the browser is visible but just due to be preserving layers diff --git a/layout/base/nsLayoutUtils.cpp b/layout/base/nsLayoutUtils.cpp -index ee4e4b7e04f0f949b0afc7e8097711fcefe8b3c3..3af1d380d514b70392d1daaa4bc623afd7a570e6 100644 +index 89ed5fec3e..6f8cc2ccf6 100644 --- a/layout/base/nsLayoutUtils.cpp +++ b/layout/base/nsLayoutUtils.cpp -@@ -707,6 +707,10 @@ bool nsLayoutUtils::AllowZoomingForDocument( +@@ -704,6 +704,10 @@ bool nsLayoutUtils::AllowZoomingForDocument( !aDocument->GetPresShell()->AsyncPanZoomEnabled()) { return false; } @@ -2331,7 +2264,7 @@ index ee4e4b7e04f0f949b0afc7e8097711fcefe8b3c3..3af1d380d514b70392d1daaa4bc623af // True if we allow zooming for all documents on this platform, or if we are // in RDM. BrowsingContext* bc = aDocument->GetBrowsingContext(); -@@ -9772,6 +9776,9 @@ void nsLayoutUtils::ComputeSystemFont(nsFont* aSystemFont, +@@ -9736,6 +9740,9 @@ void nsLayoutUtils::ComputeSystemFont(nsFont* aSystemFont, /* static */ bool nsLayoutUtils::ShouldHandleMetaViewport(const Document* aDocument) { @@ -2342,7 +2275,7 @@ index ee4e4b7e04f0f949b0afc7e8097711fcefe8b3c3..3af1d380d514b70392d1daaa4bc623af return StaticPrefs::dom_meta_viewport_enabled() || (bc && bc->InRDMPane()); } diff --git a/layout/style/GeckoBindings.h b/layout/style/GeckoBindings.h -index 9527443c79077e0a728d78c3184ab7319f1c9efd..4e193ed114b4f70fb72bea928709fc7723f35b88 100644 +index 79a93cb336..124390898b 100644 --- a/layout/style/GeckoBindings.h +++ b/layout/style/GeckoBindings.h @@ -591,6 +591,7 @@ float Gecko_MediaFeatures_GetResolution(const mozilla::dom::Document*); @@ -2350,14 +2283,14 @@ index 9527443c79077e0a728d78c3184ab7319f1c9efd..4e193ed114b4f70fb72bea928709fc77 bool Gecko_MediaFeatures_PrefersReducedTransparency( const mozilla::dom::Document*); +bool Gecko_MediaFeatures_ForcedColors(const mozilla::dom::Document*); + bool Gecko_MediaFeatures_MacRTL(const mozilla::dom::Document*); mozilla::StylePrefersContrast Gecko_MediaFeatures_PrefersContrast( const mozilla::dom::Document*); - mozilla::StylePrefersColorScheme Gecko_MediaFeatures_PrefersColorScheme( diff --git a/layout/style/nsMediaFeatures.cpp b/layout/style/nsMediaFeatures.cpp -index 21bcc8e890a0d3f3e86b5ea6eed79d017dd2fb76..eefc7d5c934f03b4a9213dafcbb65dd32b695622 100644 +index 3182e94281..6f4ca1847a 100644 --- a/layout/style/nsMediaFeatures.cpp +++ b/layout/style/nsMediaFeatures.cpp -@@ -268,11 +268,7 @@ bool Gecko_MediaFeatures_MatchesPlatform(StylePlatform aPlatform) { +@@ -264,11 +264,7 @@ bool Gecko_MediaFeatures_MatchesPlatform(StylePlatform aPlatform) { } bool Gecko_MediaFeatures_PrefersReducedMotion(const Document* aDocument) { @@ -2370,7 +2303,7 @@ index 21bcc8e890a0d3f3e86b5ea6eed79d017dd2fb76..eefc7d5c934f03b4a9213dafcbb65dd3 } bool Gecko_MediaFeatures_PrefersReducedTransparency(const Document* aDocument) { -@@ -297,6 +293,20 @@ StylePrefersColorScheme Gecko_MediaFeatures_PrefersColorScheme( +@@ -298,6 +294,20 @@ bool Gecko_MediaFeatures_MacRTL(const Document* aDocument) { // as a signal. StylePrefersContrast Gecko_MediaFeatures_PrefersContrast( const Document* aDocument) { @@ -2392,20 +2325,10 @@ index 21bcc8e890a0d3f3e86b5ea6eed79d017dd2fb76..eefc7d5c934f03b4a9213dafcbb65dd3 return StylePrefersContrast::NoPreference; } diff --git a/netwerk/base/LoadInfo.cpp b/netwerk/base/LoadInfo.cpp -index e5cf36273d5790de2c80acb42a6ee181bdb66f08..0523a37fc19b470e3817ae61c912a3dc54fc57a6 100644 +index c80e36383b..169cce6ea2 100644 --- a/netwerk/base/LoadInfo.cpp +++ b/netwerk/base/LoadInfo.cpp -@@ -801,7 +801,8 @@ LoadInfo::LoadInfo(const LoadInfo& rhs) - rhs.mHasInjectedCookieForCookieBannerHandling), - mSchemelessInput(rhs.mSchemelessInput), - mHttpsUpgradeTelemetry(rhs.mHttpsUpgradeTelemetry), -- mIsNewWindowTarget(rhs.mIsNewWindowTarget) { -+ mIsNewWindowTarget(rhs.mIsNewWindowTarget), -+ mJugglerLoadIdentifier(rhs.mJugglerLoadIdentifier) { - } - - LoadInfo::LoadInfo( -@@ -2778,4 +2779,16 @@ void LoadInfo::UpdateParentAddressSpaceInfo() { +@@ -2094,4 +2094,16 @@ void LoadInfo::UpdateParentAddressSpaceInfo() { } } @@ -2423,12 +2346,12 @@ index e5cf36273d5790de2c80acb42a6ee181bdb66f08..0523a37fc19b470e3817ae61c912a3dc + } // namespace mozilla::net diff --git a/netwerk/base/LoadInfo.h b/netwerk/base/LoadInfo.h -index 6547d451f3a764c8860dd0c19b5b490caecbf0af..feccce92e3769b8e9a3a4926cca9b85fccda86a5 100644 +index 383d6f1f80..a51107be81 100644 --- a/netwerk/base/LoadInfo.h +++ b/netwerk/base/LoadInfo.h -@@ -455,6 +455,8 @@ class LoadInfo final : public nsILoadInfo { +@@ -540,6 +540,8 @@ class LoadInfo final : public nsILoadInfo { + dom::UserNavigationInvolvement::None; - bool mIsNewWindowTarget = false; bool mSkipHTTPSUpgrade = false; + + uint64_t mJugglerLoadIdentifier = 0; @@ -2436,10 +2359,10 @@ index 6547d451f3a764c8860dd0c19b5b490caecbf0af..feccce92e3769b8e9a3a4926cca9b85f // This is exposed solely for testing purposes and should not be used outside of // LoadInfo diff --git a/netwerk/base/TRRLoadInfo.cpp b/netwerk/base/TRRLoadInfo.cpp -index 551d89315243f4b515aa29d3a67eb23050ea9f0a..ac3a1ca6d846826c5d704d1b4abdaee55b834b0d 100644 +index be0f8bcb6f..00f0771453 100644 --- a/netwerk/base/TRRLoadInfo.cpp +++ b/netwerk/base/TRRLoadInfo.cpp -@@ -1010,5 +1010,15 @@ TRRLoadInfo::GetFetchDestination(nsACString& aDestination) { +@@ -562,5 +562,15 @@ TRRLoadInfo::GetFetchDestination(nsACString& aDestination) { return NS_ERROR_NOT_IMPLEMENTED; } @@ -2456,10 +2379,10 @@ index 551d89315243f4b515aa29d3a67eb23050ea9f0a..ac3a1ca6d846826c5d704d1b4abdaee5 } // namespace net } // namespace mozilla diff --git a/netwerk/base/nsILoadInfo.idl b/netwerk/base/nsILoadInfo.idl -index f1b54736d9ee006292bf4c9cd0b3490d5ec8da66..257fda17a10f702cee39fb42ad69e0cd86ca95d1 100644 +index 4f4673f41b..dbc045c153 100644 --- a/netwerk/base/nsILoadInfo.idl +++ b/netwerk/base/nsILoadInfo.idl -@@ -1686,4 +1686,6 @@ interface nsILoadInfo : nsISupports +@@ -1714,4 +1714,6 @@ interface nsILoadInfo : nsISupports return static_cast(userNavigationInvolvement); } %} @@ -2467,7 +2390,7 @@ index f1b54736d9ee006292bf4c9cd0b3490d5ec8da66..257fda17a10f702cee39fb42ad69e0cd + [infallible] attribute unsigned long long jugglerLoadIdentifier; }; diff --git a/netwerk/base/nsINetworkInterceptController.idl b/netwerk/base/nsINetworkInterceptController.idl -index 7f91d2df6f8bb4020c75c132dc8f6bf26625fa1e..aaa5541a17039d6b13ad83ab176fdaaf79edb2a0 100644 +index 7f91d2df6f..aaa5541a17 100644 --- a/netwerk/base/nsINetworkInterceptController.idl +++ b/netwerk/base/nsINetworkInterceptController.idl @@ -60,6 +60,16 @@ interface nsIInterceptedChannel : nsISupports @@ -2488,10 +2411,10 @@ index 7f91d2df6f8bb4020c75c132dc8f6bf26625fa1e..aaa5541a17039d6b13ad83ab176fdaaf * Set the status and reason for the forthcoming synthesized response. * Multiple calls overwrite existing values. diff --git a/netwerk/ipc/DocumentLoadListener.cpp b/netwerk/ipc/DocumentLoadListener.cpp -index 1471432c1f1a47be5073ed01b746f1f13d3a0b47..585f81762e2bf51681d11c06c9459063121c34e9 100644 +index 634865583e..91585bddb7 100644 --- a/netwerk/ipc/DocumentLoadListener.cpp +++ b/netwerk/ipc/DocumentLoadListener.cpp -@@ -185,6 +185,7 @@ static auto CreateDocumentLoadInfo(CanonicalBrowsingContext* aBrowsingContext, +@@ -190,6 +190,7 @@ static auto CreateDocumentLoadInfo(CanonicalBrowsingContext* aBrowsingContext, loadInfo->SetTextDirectiveUserActivation( aLoadState->GetTextDirectiveUserActivation()); loadInfo->SetIsMetaRefresh(aLoadState->IsMetaRefresh()); @@ -2500,10 +2423,10 @@ index 1471432c1f1a47be5073ed01b746f1f13d3a0b47..585f81762e2bf51681d11c06c9459063 return loadInfo.forget(); } diff --git a/netwerk/protocol/http/InterceptedHttpChannel.cpp b/netwerk/protocol/http/InterceptedHttpChannel.cpp -index fbf4bdf1e24d1102df113984be6c8dc3a7d0d810..cf1978009d74221ae804b998e223904fa943a91f 100644 +index 9a7f39489d..56ee9beaee 100644 --- a/netwerk/protocol/http/InterceptedHttpChannel.cpp +++ b/netwerk/protocol/http/InterceptedHttpChannel.cpp -@@ -728,10 +728,33 @@ NS_IMPL_ISUPPORTS(ResetInterceptionHeaderVisitor, nsIHttpHeaderVisitor) +@@ -724,10 +724,33 @@ NS_IMPL_ISUPPORTS(ResetInterceptionHeaderVisitor, nsIHttpHeaderVisitor) } // anonymous namespace @@ -2537,7 +2460,7 @@ index fbf4bdf1e24d1102df113984be6c8dc3a7d0d810..cf1978009d74221ae804b998e223904f if (mCanceled) { return mStatus; } -@@ -1146,11 +1169,18 @@ InterceptedHttpChannel::OnStartRequest(nsIRequest* aRequest) { +@@ -1142,11 +1165,18 @@ InterceptedHttpChannel::OnStartRequest(nsIRequest* aRequest) { GetCallback(mProgressSink); } @@ -2557,7 +2480,7 @@ index fbf4bdf1e24d1102df113984be6c8dc3a7d0d810..cf1978009d74221ae804b998e223904f if (mPump && mLoadFlags & LOAD_CALL_CONTENT_SNIFFERS) { mPump->PeekStream(CallTypeSniffers, static_cast(this)); diff --git a/netwerk/protocol/http/InterceptedHttpChannel.h b/netwerk/protocol/http/InterceptedHttpChannel.h -index 704404c9f094640ad63b685d64bd5a396e733e4b..92bdc21b4d6a015cc2f2bb22781ec6750c7789ec 100644 +index 7a2a4f2910..a416e1357a 100644 --- a/netwerk/protocol/http/InterceptedHttpChannel.h +++ b/netwerk/protocol/http/InterceptedHttpChannel.h @@ -90,6 +90,11 @@ class InterceptedHttpChannel final @@ -2573,10 +2496,10 @@ index 704404c9f094640ad63b685d64bd5a396e733e4b..92bdc21b4d6a015cc2f2bb22781ec675 * InterceptionTimeStamps is used to record the time stamps of the * interception. diff --git a/netwerk/protocol/http/nsHttpChannel.cpp b/netwerk/protocol/http/nsHttpChannel.cpp -index 1051d1e91c1ebf036f2e5db82a37636dd7cda4c3..3ef53c09442e24fb50308740950aa6d354703b7d 100644 +index 1a76f06043..61f7cab9c1 100644 --- a/netwerk/protocol/http/nsHttpChannel.cpp +++ b/netwerk/protocol/http/nsHttpChannel.cpp -@@ -685,11 +685,9 @@ nsresult nsHttpChannel::OnBeforeConnect() { +@@ -922,11 +922,9 @@ nsresult nsHttpChannel::OnBeforeConnect() { // SecurityInfo.sys.mjs mLoadInfo->SetHstsStatus(isSecureURI); @@ -2589,7 +2512,7 @@ index 1051d1e91c1ebf036f2e5db82a37636dd7cda4c3..3ef53c09442e24fb50308740950aa6d3 BYPASS_LOCAL_CACHE(mLoadFlags, LoadPreferCacheLoadOverBypass())) { return NS_ERROR_OFFLINE; } -@@ -802,9 +800,7 @@ nsresult nsHttpChannel::MaybeUseHTTPSRRForUpgrade(bool aShouldUpgrade, +@@ -1039,9 +1037,7 @@ nsresult nsHttpChannel::MaybeUseHTTPSRRForUpgrade(bool aShouldUpgrade, return aStatus; } @@ -2600,7 +2523,7 @@ index 1051d1e91c1ebf036f2e5db82a37636dd7cda4c3..3ef53c09442e24fb50308740950aa6d3 if (mURI->SchemeIs("https") || aShouldUpgrade || !LoadUseHTTPSSVC() || forceOffline) { -@@ -1263,15 +1259,14 @@ nsresult nsHttpChannel::ContinueConnect() { +@@ -1518,15 +1514,14 @@ nsresult nsHttpChannel::ContinueConnect() { "CORS preflight must have been finished by the time we " "do the rest of ContinueConnect"); @@ -2618,7 +2541,7 @@ index 1051d1e91c1ebf036f2e5db82a37636dd7cda4c3..3ef53c09442e24fb50308740950aa6d3 BYPASS_LOCAL_CACHE(mLoadFlags, LoadPreferCacheLoadOverBypass())) { return NS_ERROR_OFFLINE; } -@@ -1313,7 +1308,7 @@ nsresult nsHttpChannel::ContinueConnect() { +@@ -1568,7 +1563,7 @@ nsresult nsHttpChannel::ContinueConnect() { } // We're about to hit the network. Don't if we're forced offline. @@ -2627,7 +2550,7 @@ index 1051d1e91c1ebf036f2e5db82a37636dd7cda4c3..3ef53c09442e24fb50308740950aa6d3 return NS_ERROR_OFFLINE; } -@@ -1418,12 +1413,9 @@ void nsHttpChannel::SpeculativeConnect() { +@@ -1676,12 +1671,9 @@ void nsHttpChannel::SpeculativeConnect() { // don't speculate if we are offline, when doing http upgrade (i.e. // websockets bootstrap), or if we can't do keep-alive (because then we // couldn't reuse the speculative connection anyhow). @@ -2641,7 +2564,7 @@ index 1051d1e91c1ebf036f2e5db82a37636dd7cda4c3..3ef53c09442e24fb50308740950aa6d3 return; } -@@ -4240,9 +4232,6 @@ nsresult nsHttpChannel::OpenCacheEntryInternal(bool isHttps) { +@@ -4674,9 +4666,6 @@ nsresult nsHttpChannel::OpenCacheEntryInternal(bool isHttps) { uint32_t cacheEntryOpenFlags; bool offline = gIOService->IsOffline(); @@ -2651,7 +2574,7 @@ index 1051d1e91c1ebf036f2e5db82a37636dd7cda4c3..3ef53c09442e24fb50308740950aa6d3 bool maybeRCWN = false; nsAutoCString cacheControlRequestHeader; -@@ -4253,7 +4242,7 @@ nsresult nsHttpChannel::OpenCacheEntryInternal(bool isHttps) { +@@ -4687,7 +4676,7 @@ nsresult nsHttpChannel::OpenCacheEntryInternal(bool isHttps) { return NS_OK; } @@ -2660,7 +2583,7 @@ index 1051d1e91c1ebf036f2e5db82a37636dd7cda4c3..3ef53c09442e24fb50308740950aa6d3 if (offline || (mLoadFlags & INHIBIT_CACHING) || forceOffline) { if (BYPASS_LOCAL_CACHE(mLoadFlags, LoadPreferCacheLoadOverBypass()) && !offline && !forceOffline) { -@@ -7357,6 +7346,20 @@ void nsHttpChannel::MaybeStartDNSPrefetch() { +@@ -7975,6 +7964,20 @@ void nsHttpChannel::MaybeStartDNSPrefetch() { } } @@ -2682,10 +2605,10 @@ index 1051d1e91c1ebf036f2e5db82a37636dd7cda4c3..3ef53c09442e24fb50308740950aa6d3 nsHttpChannel::GetEncodedBodySize(uint64_t* aEncodedBodySize) { if (mCacheEntry && !LoadCacheEntryIsWriteOnly()) { diff --git a/netwerk/protocol/http/nsHttpChannel.h b/netwerk/protocol/http/nsHttpChannel.h -index 9d28bae2d270690517c11383abe4c4bcc0edda96..9087d345b1b63bdce0912abb0c880c50900a797b 100644 +index f455ad5874..f2e8f43543 100644 --- a/netwerk/protocol/http/nsHttpChannel.h +++ b/netwerk/protocol/http/nsHttpChannel.h -@@ -305,6 +305,10 @@ class nsHttpChannel final : public HttpBaseChannel, +@@ -312,6 +312,10 @@ class nsHttpChannel final : public HttpBaseChannel, void MaybeResolveProxyAndBeginConnect(); void MaybeStartDNSPrefetch(); @@ -2697,10 +2620,10 @@ index 9d28bae2d270690517c11383abe4c4bcc0edda96..9087d345b1b63bdce0912abb0c880c50 // end server host name. ProxyDNSStrategy GetProxyDNSStrategy(); diff --git a/parser/html/nsHtml5TreeOpExecutor.cpp b/parser/html/nsHtml5TreeOpExecutor.cpp -index ce2a868b9a915b98938518b6c935870f8169e0f7..e6d0a75bb3f5e8dea3f3e7f3448b553979860bd3 100644 +index 72523ca8c1..465aac80a7 100644 --- a/parser/html/nsHtml5TreeOpExecutor.cpp +++ b/parser/html/nsHtml5TreeOpExecutor.cpp -@@ -1361,6 +1361,10 @@ void nsHtml5TreeOpExecutor::UpdateReferrerInfoFromMeta( +@@ -1367,6 +1367,10 @@ void nsHtml5TreeOpExecutor::UpdateReferrerInfoFromMeta( void nsHtml5TreeOpExecutor::AddSpeculationCSP(const nsAString& aCSP) { NS_ASSERTION(NS_IsMainThread(), "Wrong thread!"); @@ -2712,10 +2635,10 @@ index ce2a868b9a915b98938518b6c935870f8169e0f7..e6d0a75bb3f5e8dea3f3e7f3448b5539 nsCOMPtr preloadCsp = mDocument->GetPreloadCsp(); if (!preloadCsp) { diff --git a/security/manager/ssl/nsCertOverrideService.cpp b/security/manager/ssl/nsCertOverrideService.cpp -index 0ecf2c0df3aad52e004a69b4c7a22fea7532b4d8..f5982c2cf1d6ea0522ac7f7e1fb5b4ab8fa07cb4 100644 +index 9d262dbf33..495afbbe2b 100644 --- a/security/manager/ssl/nsCertOverrideService.cpp +++ b/security/manager/ssl/nsCertOverrideService.cpp -@@ -627,6 +627,8 @@ void nsCertOverrideService::CountPermanentOverrideTelemetry( +@@ -626,6 +626,8 @@ void nsCertOverrideService::CountPermanentOverrideTelemetry( } static bool IsDebugger() { @@ -2725,7 +2648,7 @@ index 0ecf2c0df3aad52e004a69b4c7a22fea7532b4d8..f5982c2cf1d6ea0522ac7f7e1fb5b4ab nsCOMPtr marionette = do_GetService(NS_MARIONETTE_CONTRACTID); if (marionette) { diff --git a/services/settings/Utils.sys.mjs b/services/settings/Utils.sys.mjs -index cbdf07bcdae11de6f59e6c6c279833aca430dc70..6840c78350ccb52e99f23446b010abc2a1d92a55 100644 +index 8cd4afc313..60f5eb6e52 100644 --- a/services/settings/Utils.sys.mjs +++ b/services/settings/Utils.sys.mjs @@ -97,7 +97,7 @@ const _cdnURLs = {}; @@ -2748,7 +2671,7 @@ index cbdf07bcdae11de6f59e6c6c279833aca430dc70..6840c78350ccb52e99f23446b010abc2 (lazy.isRunningTests || Cu.isInAutomation) && this.SERVER_URL == "data:,#remote-settings-dummy/v1" diff --git a/toolkit/components/browser/nsIWebBrowserChrome.idl b/toolkit/components/browser/nsIWebBrowserChrome.idl -index 75555352b8a15a50e4a21e34fc8ede4e9246c7cc..72855a404effa42b6c55cd0c2fcb8bdd6c2b3f9f 100644 +index 75555352b8..72855a404e 100644 --- a/toolkit/components/browser/nsIWebBrowserChrome.idl +++ b/toolkit/components/browser/nsIWebBrowserChrome.idl @@ -74,6 +74,9 @@ interface nsIWebBrowserChrome : nsISupports @@ -2762,7 +2685,7 @@ index 75555352b8a15a50e4a21e34fc8ede4e9246c7cc..72855a404effa42b6c55cd0c2fcb8bdd // ignored for Linux. const unsigned long CHROME_SUPPRESS_ANIMATION = 1 << 24; diff --git a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs -index 3d8837cdb38fb5b25abfb9e3e369ad6fe688706e..867ce2efaa10eaea87ffeeb2669cc5a7be0045b3 100644 +index bb451a2795..cf5ae51466 100644 --- a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs +++ b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs @@ -106,7 +106,9 @@ EnterprisePoliciesManager.prototype = { @@ -2776,7 +2699,7 @@ index 3d8837cdb38fb5b25abfb9e3e369ad6fe688706e..867ce2efaa10eaea87ffeeb2669cc5a7 if (provider.failed) { this.status = Ci.nsIEnterprisePolicies.FAILED; -@@ -606,6 +608,19 @@ class JSONPoliciesProvider { +@@ -619,6 +621,19 @@ class JSONPoliciesProvider { } } @@ -2797,23 +2720,23 @@ index 3d8837cdb38fb5b25abfb9e3e369ad6fe688706e..867ce2efaa10eaea87ffeeb2669cc5a7 constructor() { this._policies = null; diff --git a/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp b/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp -index 52fa968554a88d1624bf9403b07781a8b42c93b6..2bd5162859dbc482361e2f6aaf5b7a732e9a5929 100644 +index 091aafb624..a82d8a79de 100644 --- a/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp +++ b/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp @@ -589,7 +589,7 @@ void PopulateLanguages() { // sufficient to only collect this information as the other properties are // just reformats of Navigator::GetAcceptLanguages. nsTArray languages; -- dom::Navigator::GetAcceptLanguages(languages); +- dom::Navigator::GetAcceptLanguages(languages, nullptr); + dom::Navigator::GetAcceptLanguages(nullptr, languages); nsCString output = "["_ns; for (const auto& language : languages) { diff --git a/toolkit/components/startup/nsAppStartup.cpp b/toolkit/components/startup/nsAppStartup.cpp -index d8f0c072c8a52c2837d87fe749ccac6e3e59e48a..6837927e6a49a8ff4c9f709502bf8d8983bd735c 100644 +index 5175a8a3ef..4c6b3137f7 100644 --- a/toolkit/components/startup/nsAppStartup.cpp +++ b/toolkit/components/startup/nsAppStartup.cpp -@@ -361,7 +361,7 @@ nsAppStartup::Quit(uint32_t aMode, int aExitCode, bool* aUserAllowedQuit) { +@@ -360,7 +360,7 @@ nsAppStartup::Quit(uint32_t aMode, int aExitCode, bool* aUserAllowedQuit) { nsCOMPtr windowEnumerator; nsCOMPtr mediator( do_GetService(NS_WINDOWMEDIATOR_CONTRACTID)); @@ -2823,7 +2746,7 @@ index d8f0c072c8a52c2837d87fe749ccac6e3e59e48a..6837927e6a49a8ff4c9f709502bf8d89 if (windowEnumerator) { bool more; diff --git a/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp b/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp -index c0d60b927542653ab9beee730ec2c07f4b3d911c..85c416315f567a5edf8cfc89262dd7a48250dfd6 100644 +index 36fe2d427e..593795dfb2 100644 --- a/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp +++ b/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp @@ -176,8 +176,8 @@ nsBrowserStatusFilter::OnStateChange(nsIWebProgress* aWebProgress, @@ -2838,10 +2761,10 @@ index c0d60b927542653ab9beee730ec2c07f4b3d911c..85c416315f567a5edf8cfc89262dd7a4 int32_t aMaxSelfProgress, int32_t aCurTotalProgress, diff --git a/toolkit/components/windowwatcher/nsWindowWatcher.cpp b/toolkit/components/windowwatcher/nsWindowWatcher.cpp -index 622ff7fe214d22e1e5d5a561753cffe3e1eafe31..ac2f30e00a9a6d18c61d00b0d6d4bf41ff48af95 100644 +index 942cb7c400..864cf804b6 100644 --- a/toolkit/components/windowwatcher/nsWindowWatcher.cpp +++ b/toolkit/components/windowwatcher/nsWindowWatcher.cpp -@@ -1882,7 +1882,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent( +@@ -1880,7 +1880,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent( // Open a minimal popup. *aIsPopupRequested = true; @@ -2855,10 +2778,10 @@ index 622ff7fe214d22e1e5d5a561753cffe3e1eafe31..ac2f30e00a9a6d18c61d00b0d6d4bf41 /** diff --git a/toolkit/mozapps/update/UpdateService.sys.mjs b/toolkit/mozapps/update/UpdateService.sys.mjs -index 5d5a3f2c46138b578b583ad4a3506e1d227607ad..6d414635b80a74edb0b5ecfc6a98dd0fee763952 100644 +index 61a7a589cf..fccf2fbefa 100644 --- a/toolkit/mozapps/update/UpdateService.sys.mjs +++ b/toolkit/mozapps/update/UpdateService.sys.mjs -@@ -3874,6 +3874,8 @@ export class UpdateService { +@@ -3990,6 +3990,8 @@ export class UpdateService { } get disabledForTesting() { @@ -2868,10 +2791,10 @@ index 5d5a3f2c46138b578b583ad4a3506e1d227607ad..6d414635b80a74edb0b5ecfc6a98dd0f } diff --git a/toolkit/toolkit.mozbuild b/toolkit/toolkit.mozbuild -index e8399d277ec0b64e5ea29aa7262b118936a02779..983ed73ad1d6d734af55a9066a8e8a6cf3ae3f45 100644 +index 0ab59fb09f..f115a6f7bb 100644 --- a/toolkit/toolkit.mozbuild +++ b/toolkit/toolkit.mozbuild -@@ -155,6 +155,7 @@ if CONFIG["ENABLE_WEBDRIVER"]: +@@ -156,6 +156,7 @@ if CONFIG["ENABLE_WEBDRIVER"]: "/remote", "/testing/firefox-ui", "/testing/marionette", @@ -2880,7 +2803,7 @@ index e8399d277ec0b64e5ea29aa7262b118936a02779..983ed73ad1d6d734af55a9066a8e8a6c ] diff --git a/toolkit/xre/nsWindowsWMain.cpp b/toolkit/xre/nsWindowsWMain.cpp -index 7eb9e1104682d4eb47060654f43a1efa8b2a6bb2..a8315d6decf654b5302bea5beeea34140c300ded 100644 +index b7c376eadc..4438577634 100644 --- a/toolkit/xre/nsWindowsWMain.cpp +++ b/toolkit/xre/nsWindowsWMain.cpp @@ -14,8 +14,10 @@ @@ -2915,12 +2838,12 @@ index 7eb9e1104682d4eb47060654f43a1efa8b2a6bb2..a8315d6decf654b5302bea5beeea3414 // Only run this code if LauncherProcessWin.h was included beforehand, thus // signalling that the hosting process should support launcher mode. diff --git a/uriloader/base/nsDocLoader.cpp b/uriloader/base/nsDocLoader.cpp -index 9ef5370d1524ddecb965785a73a3cfea39867324..e0245cca94e496bcffba40c9660a52b518803d44 100644 +index ef95040ffc..f62a103de6 100644 --- a/uriloader/base/nsDocLoader.cpp +++ b/uriloader/base/nsDocLoader.cpp -@@ -861,6 +861,12 @@ void nsDocLoader::DocLoaderIsEmpty(bool aFlushLayout, - ("DocLoader:%p: Firing load event for document.open\n", - this)); +@@ -897,6 +897,12 @@ void nsDocLoader::DocLoaderIsEmpty(bool aFlushLayout, + mIsLoadingJavascriptURI ? "javascript URI" + : "document.open")); + nsCOMPtr os = mozilla::services::GetObserverService(); + if (os) { @@ -2932,10 +2855,10 @@ index 9ef5370d1524ddecb965785a73a3cfea39867324..e0245cca94e496bcffba40c9660a52b5 // 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 5bd60b585b53cc77e75c0b68c763957f90b7e164..940b3b62b09ca70ae5e69c3e94eda11ad35b9dfe 100644 +index 04c46fda68..d7de9b937c 100644 --- a/uriloader/exthandler/nsExternalHelperAppService.cpp +++ b/uriloader/exthandler/nsExternalHelperAppService.cpp -@@ -112,6 +112,7 @@ +@@ -111,6 +111,7 @@ #include "mozilla/Components.h" #include "mozilla/ClearOnShutdown.h" @@ -2943,7 +2866,7 @@ index 5bd60b585b53cc77e75c0b68c763957f90b7e164..940b3b62b09ca70ae5e69c3e94eda11a #include "mozilla/Preferences.h" #include "mozilla/ipc/URIUtils.h" -@@ -865,6 +866,12 @@ NS_IMETHODIMP nsExternalHelperAppService::ApplyDecodingForExtension( +@@ -866,6 +867,12 @@ NS_IMETHODIMP nsExternalHelperAppService::ApplyDecodingForExtension( return NS_OK; } @@ -2956,7 +2879,7 @@ index 5bd60b585b53cc77e75c0b68c763957f90b7e164..940b3b62b09ca70ae5e69c3e94eda11a nsresult nsExternalHelperAppService::GetFileTokenForPath( const char16_t* aPlatformAppPath, nsIFile** aFile) { nsDependentString platformAppPath(aPlatformAppPath); -@@ -1500,7 +1507,12 @@ nsresult nsExternalAppHandler::SetUpTempFile(nsIChannel* aChannel) { +@@ -1497,7 +1504,12 @@ nsresult nsExternalAppHandler::SetUpTempFile(nsIChannel* aChannel) { // Strip off the ".part" from mTempLeafName mTempLeafName.Truncate(mTempLeafName.Length() - std::size(".part") + 1); @@ -2969,7 +2892,7 @@ index 5bd60b585b53cc77e75c0b68c763957f90b7e164..940b3b62b09ca70ae5e69c3e94eda11a mSaver = do_CreateInstance(NS_BACKGROUNDFILESAVERSTREAMLISTENER_CONTRACTID, &rv); NS_ENSURE_SUCCESS(rv, rv); -@@ -1684,7 +1696,36 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) { +@@ -1681,7 +1693,36 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) { return NS_OK; } @@ -3007,7 +2930,7 @@ index 5bd60b585b53cc77e75c0b68c763957f90b7e164..940b3b62b09ca70ae5e69c3e94eda11a if (NS_FAILED(rv)) { nsresult transferError = rv; -@@ -1745,6 +1786,9 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) { +@@ -1742,6 +1783,9 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) { bool alwaysAsk = true; mMimeInfo->GetAlwaysAskBeforeHandling(&alwaysAsk); @@ -3017,7 +2940,7 @@ index 5bd60b585b53cc77e75c0b68c763957f90b7e164..940b3b62b09ca70ae5e69c3e94eda11a if (alwaysAsk) { // But we *don't* ask if this mimeInfo didn't come from // our user configuration datastore and the user has said -@@ -2261,6 +2305,16 @@ nsExternalAppHandler::OnSaveComplete(nsIBackgroundFileSaver* aSaver, +@@ -2258,6 +2302,16 @@ nsExternalAppHandler::OnSaveComplete(nsIBackgroundFileSaver* aSaver, NotifyTransfer(aStatus); } @@ -3034,7 +2957,7 @@ index 5bd60b585b53cc77e75c0b68c763957f90b7e164..940b3b62b09ca70ae5e69c3e94eda11a return NS_OK; } -@@ -2744,6 +2798,15 @@ NS_IMETHODIMP nsExternalAppHandler::Cancel(nsresult aReason) { +@@ -2741,6 +2795,15 @@ NS_IMETHODIMP nsExternalAppHandler::Cancel(nsresult aReason) { } } @@ -3051,10 +2974,10 @@ index 5bd60b585b53cc77e75c0b68c763957f90b7e164..940b3b62b09ca70ae5e69c3e94eda11a // OnStartRequest) mDialog = nullptr; diff --git a/uriloader/exthandler/nsExternalHelperAppService.h b/uriloader/exthandler/nsExternalHelperAppService.h -index 26dfc6f04298420317c8b87b2ecc3f2f47f59598..c458ab5efb238c62499ee13452f2d750e0569e38 100644 +index f2e7d379f3..a5932f2986 100644 --- a/uriloader/exthandler/nsExternalHelperAppService.h +++ b/uriloader/exthandler/nsExternalHelperAppService.h -@@ -263,6 +263,8 @@ class nsExternalHelperAppService : public nsIExternalHelperAppService, +@@ -270,6 +270,8 @@ class nsExternalHelperAppService : public nsIExternalHelperAppService, mozilla::dom::BrowsingContext* aContentContext, bool aForceSave, nsIInterfaceRequestor* aWindowContext, nsIStreamListener** aStreamListener); @@ -3063,7 +2986,7 @@ index 26dfc6f04298420317c8b87b2ecc3f2f47f59598..c458ab5efb238c62499ee13452f2d750 }; /** -@@ -460,6 +462,9 @@ class nsExternalAppHandler final : public nsIStreamListener, +@@ -467,6 +469,9 @@ class nsExternalAppHandler final : public nsIStreamListener, * Upon successful return, both mTempFile and mSaver will be valid. */ nsresult SetUpTempFile(nsIChannel* aChannel); @@ -3074,7 +2997,7 @@ index 26dfc6f04298420317c8b87b2ecc3f2f47f59598..c458ab5efb238c62499ee13452f2d750 * When we download a helper app, we are going to retarget all load * notifications into our own docloader and load group instead of diff --git a/uriloader/exthandler/nsIExternalHelperAppService.idl b/uriloader/exthandler/nsIExternalHelperAppService.idl -index e6490ebb086eb4dca9db560c14e073a9e7722e29..2792373dcb30ebc787a9bdca306ac12e72aa19ec 100644 +index e6490ebb08..2792373dcb 100644 --- a/uriloader/exthandler/nsIExternalHelperAppService.idl +++ b/uriloader/exthandler/nsIExternalHelperAppService.idl @@ -6,8 +6,11 @@ @@ -3117,7 +3040,7 @@ index e6490ebb086eb4dca9db560c14e073a9e7722e29..2792373dcb30ebc787a9bdca306ac12e /** diff --git a/widget/InProcessCompositorWidget.cpp b/widget/InProcessCompositorWidget.cpp -index 7098db301770ecb5b9a506d7caec89d5cf63384b..aff8d7562f8a3e595a077ce8e591008762479587 100644 +index 777157e17e..50cf4bfffc 100644 --- a/widget/InProcessCompositorWidget.cpp +++ b/widget/InProcessCompositorWidget.cpp @@ -4,7 +4,10 @@ @@ -3128,12 +3051,12 @@ index 7098db301770ecb5b9a506d7caec89d5cf63384b..aff8d7562f8a3e595a077ce8e5910087 +#include "HeadlessWidget.h" #include "mozilla/VsyncDispatcher.h" +#include "mozilla/widget/PlatformWidgetTypes.h" - #include "nsBaseWidget.h" + #include "mozilla/layers/NativeLayer.h" + #include "nsIWidget.h" - namespace mozilla { -@@ -23,6 +26,12 @@ RefPtr CompositorWidget::CreateLocal( +@@ -27,6 +30,12 @@ RefPtr CompositorWidget::CreateLocal( // do it after the static_cast. - nsBaseWidget* widget = static_cast(aWidget); + nsIWidget* widget = static_cast(aWidget); MOZ_RELEASE_ASSERT(widget); + if (aInitData.type() == + CompositorWidgetInitData::THeadlessCompositorWidgetInitData) { @@ -3145,10 +3068,10 @@ index 7098db301770ecb5b9a506d7caec89d5cf63384b..aff8d7562f8a3e595a077ce8e5910087 } #endif diff --git a/widget/MouseEvents.h b/widget/MouseEvents.h -index 4f7ca9d0d460da3124ec8489917a9484661d5624..a04c3661b3e1e2be030ac6fe90041c81e653d26e 100644 +index 76fd0e0ff6..ee6cb6d354 100644 --- a/widget/MouseEvents.h +++ b/widget/MouseEvents.h -@@ -380,6 +380,9 @@ class WidgetMouseEvent : public WidgetMouseEventBase, +@@ -386,6 +386,9 @@ class WidgetMouseEvent : public WidgetMouseEventBase, // Otherwise, this must be 0. uint32_t mClickCount = 0; @@ -3158,7 +3081,7 @@ index 4f7ca9d0d460da3124ec8489917a9484661d5624..a04c3661b3e1e2be030ac6fe90041c81 // Whether the event should ignore scroll frame bounds during dispatch. bool mIgnoreRootScrollFrame = false; -@@ -407,6 +410,7 @@ class WidgetMouseEvent : public WidgetMouseEventBase, +@@ -425,6 +428,7 @@ class WidgetMouseEvent : public WidgetMouseEventBase, mContextMenuTrigger = aEvent.mContextMenuTrigger; mExitFrom = aEvent.mExitFrom; mClickCount = aEvent.mClickCount; @@ -3167,7 +3090,7 @@ index 4f7ca9d0d460da3124ec8489917a9484661d5624..a04c3661b3e1e2be030ac6fe90041c81 mIgnoreCapturingContent = aEvent.mIgnoreCapturingContent; mClickEventPrevented = aEvent.mClickEventPrevented; diff --git a/widget/cocoa/NativeKeyBindings.mm b/widget/cocoa/NativeKeyBindings.mm -index 24b70173c2e8bb9be9fd6255984a70efe3b14099..75ac367a1c4bb44d4b68b5f4ecc6adf56dbd408e 100644 +index 24b70173c2..75ac367a1c 100644 --- a/widget/cocoa/NativeKeyBindings.mm +++ b/widget/cocoa/NativeKeyBindings.mm @@ -549,6 +549,13 @@ void NativeKeyBindings::GetEditCommandsForTests( @@ -3230,19 +3153,19 @@ index 24b70173c2e8bb9be9fd6255984a70efe3b14099..75ac367a1c4bb44d4b68b5f4ecc6adf5 } if (aEvent.IsMeta()) { diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp -index f09b0e4994304413cbd75f14e6650cf3f9df9025..41c184e74df2b9c59315a236506946bcb5d69216 100644 +index 20fac05df3..ff9f1c79e6 100644 --- a/widget/gtk/nsFilePicker.cpp +++ b/widget/gtk/nsFilePicker.cpp -@@ -21,6 +21,7 @@ - #include "mozilla/Components.h" +@@ -22,6 +22,7 @@ #include "mozilla/Preferences.h" #include "mozilla/dom/Promise.h" + #include "mozilla/dom/Document.h" +#include "gfxPlatform.h" #include "nsArrayEnumerator.h" #include "nsEnumeratorUtils.h" diff --git a/widget/headless/HeadlessCompositorWidget.cpp b/widget/headless/HeadlessCompositorWidget.cpp -index bb4ee9175e66dc40de1871a7f91368fe309494a3..6814ae85038d31f1a3b1f87ba341219ffbc1e6b3 100644 +index bb4ee9175e..6814ae8503 100644 --- a/widget/headless/HeadlessCompositorWidget.cpp +++ b/widget/headless/HeadlessCompositorWidget.cpp @@ -3,6 +3,7 @@ @@ -3345,7 +3268,7 @@ index bb4ee9175e66dc40de1871a7f91368fe309494a3..6814ae85038d31f1a3b1f87ba341219f LayoutDeviceIntSize HeadlessCompositorWidget::GetClientSize() { diff --git a/widget/headless/HeadlessCompositorWidget.h b/widget/headless/HeadlessCompositorWidget.h -index facd2bc65afab8ec1aa322faa20a67464964dfb9..3c5751ad1b7f042bc7cd9a63895cebcd2942ccd3 100644 +index facd2bc65a..3c5751ad1b 100644 --- a/widget/headless/HeadlessCompositorWidget.h +++ b/widget/headless/HeadlessCompositorWidget.h @@ -6,6 +6,7 @@ @@ -3388,19 +3311,19 @@ index facd2bc65afab8ec1aa322faa20a67464964dfb9..3c5751ad1b7f042bc7cd9a63895cebcd } // namespace widget diff --git a/widget/headless/HeadlessWidget.cpp b/widget/headless/HeadlessWidget.cpp -index 290de12f9d0ff858474564fa8ce54814a04f6088..c144a891b84c3c57f394d6d551e6c89dcd6d9829 100644 +index 9ca469064e..adf0f885f8 100644 --- a/widget/headless/HeadlessWidget.cpp +++ b/widget/headless/HeadlessWidget.cpp -@@ -85,6 +85,8 @@ void HeadlessWidget::Destroy() { +@@ -113,6 +113,8 @@ void HeadlessWidget::Destroy() { } } + SetSnapshotListener(nullptr); + - nsBaseWidget::OnDestroy(); + nsIWidget::OnDestroy(); - nsBaseWidget::Destroy(); -@@ -593,5 +595,14 @@ nsresult HeadlessWidget::SynthesizeNativeTouchpadPan( + nsIWidget::Destroy(); +@@ -590,5 +592,14 @@ nsresult HeadlessWidget::SynthesizeNativeTouchpadPan( return NS_OK; } @@ -3416,10 +3339,10 @@ index 290de12f9d0ff858474564fa8ce54814a04f6088..c144a891b84c3c57f394d6d551e6c89d } // namespace widget } // namespace mozilla diff --git a/widget/headless/HeadlessWidget.h b/widget/headless/HeadlessWidget.h -index 60598d097d9dae829ebdc15dede78bd915e3107d..3b5ac5e5590dcb36440e28569f71592db3c1218c 100644 +index ba4da76d76..027c55167d 100644 --- a/widget/headless/HeadlessWidget.h +++ b/widget/headless/HeadlessWidget.h -@@ -131,6 +131,9 @@ class HeadlessWidget final : public nsBaseWidget { +@@ -131,6 +131,9 @@ class HeadlessWidget final : public nsIWidget { double aDeltaX, double aDeltaY, int32_t aModifierFlags, nsISynthesizedEventCallback* aCallback) override; @@ -3430,7 +3353,7 @@ index 60598d097d9dae829ebdc15dede78bd915e3107d..3b5ac5e5590dcb36440e28569f71592d ~HeadlessWidget(); bool mEnabled; diff --git a/widget/nsGUIEventIPC.h b/widget/nsGUIEventIPC.h -index 2f4c33f151870bb9233899b186a5eccfaa6f5da6..6acf66e4938e3f9727916824a08d6294f8993452 100644 +index ef6b603bdb..6cc82fa4a6 100644 --- a/widget/nsGUIEventIPC.h +++ b/widget/nsGUIEventIPC.h @@ -250,6 +250,7 @@ struct ParamTraits { @@ -3438,19 +3361,19 @@ index 2f4c33f151870bb9233899b186a5eccfaa6f5da6..6acf66e4938e3f9727916824a08d6294 } WriteParam(aWriter, aParam.mClickCount); + WriteParam(aWriter, aParam.mJugglerEventId); - } + WriteParam(aWriter, aParam.mCallbackId); - static bool Read(MessageReader* aReader, paramType* aResult) { -@@ -278,6 +278,7 @@ struct ParamTraits { + // Mark the event as stopped to notify callback. +@@ -278,6 +279,7 @@ struct ParamTraits { aResult->mExitFrom = Some(static_cast(exitFrom)); } - rv = rv && ReadParam(aReader, &aResult->mClickCount); -+ rv = rv && ReadParam(aReader, &aResult->mJugglerEventId); + rv = rv && ReadParam(aReader, &aResult->mClickCount) && ++ ReadParam(aReader, &aResult->mJugglerEventId) && + ReadParam(aReader, &aResult->mCallbackId); return rv; } - }; diff --git a/xpcom/reflect/xptinfo/xptinfo.h b/xpcom/reflect/xptinfo/xptinfo.h -index 787d30d881adedd57d2025ca57bff4bc6c57e803..ae1a0172c960ab16919133485722d2ae0cdbcbd4 100644 +index 1c0aff31b9..bbac5fa58a 100644 --- a/xpcom/reflect/xptinfo/xptinfo.h +++ b/xpcom/reflect/xptinfo/xptinfo.h @@ -505,7 +505,7 @@ static_assert(sizeof(nsXPTMethodInfo) == 8, "wrong size"); @@ -3461,4 +3384,4 @@ index 787d30d881adedd57d2025ca57bff4bc6c57e803..ae1a0172c960ab16919133485722d2ae +# define PARAM_BUFFER_COUNT 15 #endif - /** \ No newline at end of file + /**