diff --git a/browser_patches/firefox/UPSTREAM_CONFIG.sh b/browser_patches/firefox/UPSTREAM_CONFIG.sh index c1afbe1b76..2b6979cfab 100644 --- a/browser_patches/firefox/UPSTREAM_CONFIG.sh +++ b/browser_patches/firefox/UPSTREAM_CONFIG.sh @@ -1,3 +1,3 @@ REMOTE_URL="https://github.com/mozilla/gecko-dev" BASE_BRANCH="release" -BASE_REVISION="5cfa81898f6eef8fb1abe463e5253cea5bc17f3f" +BASE_REVISION="4764531b2bb14867dde520d74f6a3c88690e0751" diff --git a/browser_patches/firefox/juggler/TargetRegistry.js b/browser_patches/firefox/juggler/TargetRegistry.js index 586f6c9af5..fb6280faeb 100644 --- a/browser_patches/firefox/juggler/TargetRegistry.js +++ b/browser_patches/firefox/juggler/TargetRegistry.js @@ -384,6 +384,7 @@ class PageTarget { this._linkedBrowser = tab.linkedBrowser; this._browserContext = browserContext; this._viewportSize = undefined; + this._zoom = 1; this._initialDPPX = this._linkedBrowser.browsingContext.overrideDPPX; this._url = 'about:blank'; this._openerId = opener ? opener.id() : undefined; @@ -496,6 +497,7 @@ class PageTarget { this.updateUserAgent(browsingContext); this.updatePlatform(browsingContext); this.updateDPPXOverride(browsingContext); + this.updateZoom(browsingContext); this.updateEmulatedMedia(browsingContext); this.updateColorSchemeOverride(browsingContext); this.updateReducedMotionOverride(browsingContext); @@ -534,7 +536,16 @@ class PageTarget { } updateDPPXOverride(browsingContext = undefined) { - (browsingContext || this._linkedBrowser.browsingContext).overrideDPPX = this._browserContext.deviceScaleFactor || this._initialDPPX; + browsingContext ||= this._linkedBrowser.browsingContext; + const dppx = this._zoom * (this._browserContext.deviceScaleFactor || this._initialDPPX); + browsingContext.overrideDPPX = dppx; + } + + async updateZoom(browsingContext = undefined) { + browsingContext ||= this._linkedBrowser.browsingContext; + // Update dpr first, and then UI zoom. + this.updateDPPXOverride(browsingContext); + browsingContext.fullZoom = this._zoom; } _updateModalDialogs() { @@ -584,7 +595,7 @@ class PageTarget { const toolbarTop = stackRect.y; this._window.resizeBy(width - this._window.innerWidth, height + toolbarTop - this._window.innerHeight); - await this._channel.connect('').send('awaitViewportDimensions', { width, height }); + await this._channel.connect('').send('awaitViewportDimensions', { width: width / this._zoom, height: height / this._zoom }); } else { this._linkedBrowser.style.removeProperty('width'); this._linkedBrowser.style.removeProperty('height'); @@ -596,8 +607,8 @@ class PageTarget { const actualSize = this._linkedBrowser.getBoundingClientRect(); await this._channel.connect('').send('awaitViewportDimensions', { - width: actualSize.width, - height: actualSize.height, + width: actualSize.width / this._zoom, + height: actualSize.height / this._zoom, }); } } @@ -650,6 +661,14 @@ class PageTarget { await this.updateViewportSize(); } + async setZoom(zoom) { + // This is default range from the ZoomManager. + if (zoom < 0.3 || zoom > 5) + throw new Error('Invalid zoom value, must be between 0.3 and 5'); + this._zoom = zoom; + await this.updateZoom(); + } + close(runBeforeUnload = false) { this._gBrowser.removeTab(this._tab, { skipPermitUnload: !runBeforeUnload, diff --git a/browser_patches/firefox/juggler/protocol/PageHandler.js b/browser_patches/firefox/juggler/protocol/PageHandler.js index bab151b392..e8367070a8 100644 --- a/browser_patches/firefox/juggler/protocol/PageHandler.js +++ b/browser_patches/firefox/juggler/protocol/PageHandler.js @@ -240,6 +240,10 @@ class PageHandler { await this._pageTarget.setViewportSize(viewportSize === null ? undefined : viewportSize); } + async ['Page.setZoom']({zoom}) { + await this._pageTarget.setZoom(zoom); + } + async ['Runtime.evaluate'](options) { return await this._contentPage.send('evaluate', options); } diff --git a/browser_patches/firefox/juggler/protocol/Protocol.js b/browser_patches/firefox/juggler/protocol/Protocol.js index 2b93186e54..6fa3dc8555 100644 --- a/browser_patches/firefox/juggler/protocol/Protocol.js +++ b/browser_patches/firefox/juggler/protocol/Protocol.js @@ -794,6 +794,11 @@ const Page = { viewportSize: t.Nullable(pageTypes.Size), }, }, + 'setZoom': { + params: { + zoom: t.Number, + }, + }, 'bringToFront': { params: { }, diff --git a/browser_patches/firefox/juggler/screencast/moz.build b/browser_patches/firefox/juggler/screencast/moz.build index e21b177c39..f89c54e037 100644 --- a/browser_patches/firefox/juggler/screencast/moz.build +++ b/browser_patches/firefox/juggler/screencast/moz.build @@ -23,8 +23,8 @@ XPCOM_MANIFESTS += [ LOCAL_INCLUDES += [ '/dom/media/systemservices', '/media/libyuv/libyuv/include', + '/third_party/abseil-cpp', '/third_party/libwebrtc', - '/third_party/libwebrtc/third_party/abseil-cpp', ] LOCAL_INCLUDES += [ diff --git a/browser_patches/firefox/juggler/screencast/nsScreencastService.cpp b/browser_patches/firefox/juggler/screencast/nsScreencastService.cpp index 062a851429..7256c8c8ea 100644 --- a/browser_patches/firefox/juggler/screencast/nsScreencastService.cpp +++ b/browser_patches/firefox/juggler/screencast/nsScreencastService.cpp @@ -343,10 +343,17 @@ nsresult nsScreencastService::StartVideoRecording(nsIScreencastServiceClient* aC return NS_ERROR_FAILURE; gfx::IntMargin margin; - auto bounds = widget->GetScreenBounds().ToUnknownRect(); + // Screen bounds is the widget location on screen. + auto screenBounds = widget->GetScreenBounds().ToUnknownRect(); + // Client bounds is the content location, in terms of parent widget. + // To use it, we need to translate it to screen coordinates first. auto clientBounds = widget->GetClientBounds().ToUnknownRect(); + for (auto parent = widget->GetParent(); parent != nullptr; parent = parent->GetParent()) { + auto pb = parent->GetClientBounds().ToUnknownRect(); + clientBounds.MoveBy(pb.X(), pb.Y()); + } // Crop the image to exclude frame (if any). - margin = bounds - clientBounds; + margin = screenBounds - clientBounds; // Crop the image to exclude controls. margin.top += offsetTop; diff --git a/browser_patches/firefox/patches/bootstrap.diff b/browser_patches/firefox/patches/bootstrap.diff index 785f3e485f..9fecd89256 100644 --- a/browser_patches/firefox/patches/bootstrap.diff +++ b/browser_patches/firefox/patches/bootstrap.diff @@ -106,7 +106,7 @@ index 213a99ed433d5219c2b9a64baad82d14cdbcd432..ee4f6484cdfe80899c28a1d9607494e5 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 8aa6bf65634b6b82d448d57b337c3186bc6e5f96..49e98523b335d982a63863f6b93ae3db443fc925 100644 +index 90c2e7a69076df56392f6d14aacadada7f413e89..9ed24d7d690eca04ef07e9715444227ecf32a008 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in @@ -196,6 +196,9 @@ @@ -167,7 +167,7 @@ index d49c6fbf1bf83b832795fa674f6b41f223eef812..7ea3540947ff5f61b15f27fbf4b95564 const transportProvider = { setListener(upgradeListener) { diff --git a/docshell/base/BrowsingContext.cpp b/docshell/base/BrowsingContext.cpp -index 9b5c8143cb7f31a2eac982b0bbec4985816bdf5a..104ec4e5221af5647a776711fd349bbb0817aff4 100644 +index b30dab9ecdee37d7db842acaad30ded30fc326b2..534a89916e34f3d4d960dfcf660c38e2d1000e0c 100644 --- a/docshell/base/BrowsingContext.cpp +++ b/docshell/base/BrowsingContext.cpp @@ -106,8 +106,11 @@ struct ParamTraits @@ -184,7 +184,7 @@ index 9b5c8143cb7f31a2eac982b0bbec4985816bdf5a..104ec4e5221af5647a776711fd349bbb template <> struct ParamTraits -@@ -2865,6 +2868,23 @@ void BrowsingContext::DidSet(FieldIndex, +@@ -2887,6 +2890,23 @@ void BrowsingContext::DidSet(FieldIndex, PresContextAffectingFieldChanged(); } @@ -209,7 +209,7 @@ index 9b5c8143cb7f31a2eac982b0bbec4985816bdf5a..104ec4e5221af5647a776711fd349bbb nsString&& aOldValue) { MOZ_ASSERT(IsTop()); diff --git a/docshell/base/BrowsingContext.h b/docshell/base/BrowsingContext.h -index 98a34cab1ffd393a5ee3cbca7799d024b3d4ac71..fdba3572ed3d2c7a6491c42ee535bf04a3585da4 100644 +index e0310bbed02a805a247e04bdc88ae142bcbe5637..19fe77791b055f7f907a0ab00b03e100a0aac1e8 100644 --- a/docshell/base/BrowsingContext.h +++ b/docshell/base/BrowsingContext.h @@ -203,10 +203,10 @@ struct EmbedderColorSchemes { @@ -234,7 +234,7 @@ index 98a34cab1ffd393a5ee3cbca7799d024b3d4ac71..fdba3572ed3d2c7a6491c42ee535bf04 /* The number of entries added to the session history because of this \ * browsing context. */ \ FIELD(HistoryEntryCount, uint32_t) \ -@@ -946,6 +948,10 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { +@@ -947,6 +949,10 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { return GetForcedColorsOverride(); } @@ -245,7 +245,7 @@ index 98a34cab1ffd393a5ee3cbca7799d024b3d4ac71..fdba3572ed3d2c7a6491c42ee535bf04 bool IsInBFCache() const; bool AllowJavascript() const { return GetAllowJavascript(); } -@@ -1125,6 +1131,15 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { +@@ -1128,6 +1134,15 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { void WalkPresContexts(Callback&&); void PresContextAffectingFieldChanged(); @@ -262,10 +262,10 @@ index 98a34cab1ffd393a5ee3cbca7799d024b3d4ac71..fdba3572ed3d2c7a6491c42ee535bf04 bool CanSet(FieldIndex, bool, ContentParent*) { diff --git a/docshell/base/CanonicalBrowsingContext.cpp b/docshell/base/CanonicalBrowsingContext.cpp -index 57bd331851a3604a2d413bf2f0142532d341fa19..68dda8274473d99953d2bee0640d5bec5479827f 100644 +index e73d56380ff6802103896bd63d2e11c26c8ee3f5..2ce283bcc4e6690a26a6483b6b50b24093797e45 100644 --- a/docshell/base/CanonicalBrowsingContext.cpp +++ b/docshell/base/CanonicalBrowsingContext.cpp -@@ -325,6 +325,8 @@ void CanonicalBrowsingContext::ReplacedBy( +@@ -323,6 +323,8 @@ void CanonicalBrowsingContext::ReplacedBy( txn.SetShouldDelayMediaFromStart(GetShouldDelayMediaFromStart()); txn.SetForceOffline(GetForceOffline()); txn.SetTopInnerSizeForRFP(GetTopInnerSizeForRFP()); @@ -274,7 +274,7 @@ index 57bd331851a3604a2d413bf2f0142532d341fa19..68dda8274473d99953d2bee0640d5bec // Propagate some settings on BrowsingContext replacement so they're not lost // on bfcached navigations. These are important for GeckoView (see bug -@@ -1610,6 +1612,12 @@ void CanonicalBrowsingContext::LoadURI(nsIURI* aURI, +@@ -1608,6 +1610,12 @@ void CanonicalBrowsingContext::LoadURI(nsIURI* aURI, return; } @@ -288,7 +288,7 @@ index 57bd331851a3604a2d413bf2f0142532d341fa19..68dda8274473d99953d2bee0640d5bec } diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp -index 17f0d7fa7032a0aade92a8ecacd27017fea28a05..e1728e7cb162fcd96478050eab45ed439098c5b0 100644 +index 4851148d889bdfc12a4b9a463c05d3fb9f1f593f..9f4e3fd0cdfc66b49b1650a05f4b296603846d84 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -15,6 +15,12 @@ @@ -350,7 +350,7 @@ index 17f0d7fa7032a0aade92a8ecacd27017fea28a05..e1728e7cb162fcd96478050eab45ed43 mAllowAuth(mItemType == typeContent), mAllowKeywordFixup(false), mDisableMetaRefreshWhenInactive(false), -@@ -3018,6 +3035,214 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) { +@@ -3019,6 +3036,214 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) { return NS_OK; } @@ -565,7 +565,7 @@ index 17f0d7fa7032a0aade92a8ecacd27017fea28a05..e1728e7cb162fcd96478050eab45ed43 NS_IMETHODIMP nsDocShell::GetIsNavigating(bool* aOut) { *aOut = mIsNavigating; -@@ -4714,7 +4939,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { +@@ -4695,7 +4920,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { } void nsDocShell::ActivenessMaybeChanged() { @@ -574,7 +574,7 @@ index 17f0d7fa7032a0aade92a8ecacd27017fea28a05..e1728e7cb162fcd96478050eab45ed43 if (RefPtr presShell = GetPresShell()) { presShell->ActivenessMaybeChanged(); } -@@ -6641,6 +6866,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, +@@ -6619,6 +6844,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, return false; // no entry to save into } @@ -585,7 +585,7 @@ index 17f0d7fa7032a0aade92a8ecacd27017fea28a05..e1728e7cb162fcd96478050eab45ed43 MOZ_ASSERT(!mozilla::SessionHistoryInParent(), "mOSHE cannot be non-null with SHIP"); nsCOMPtr viewer = mOSHE->GetDocumentViewer(); -@@ -8373,6 +8602,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { +@@ -8352,6 +8581,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { true, // aForceNoOpener getter_AddRefs(newBC)); MOZ_ASSERT(!newBC); @@ -598,7 +598,7 @@ index 17f0d7fa7032a0aade92a8ecacd27017fea28a05..e1728e7cb162fcd96478050eab45ed43 return rv; } -@@ -9520,6 +9755,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, +@@ -9506,6 +9741,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, nsINetworkPredictor::PREDICT_LOAD, attrs, nullptr); nsCOMPtr req; @@ -615,7 +615,7 @@ index 17f0d7fa7032a0aade92a8ecacd27017fea28a05..e1728e7cb162fcd96478050eab45ed43 rv = DoURILoad(aLoadState, aCacheKey, getter_AddRefs(req)); if (NS_SUCCEEDED(rv)) { -@@ -12724,6 +12969,9 @@ class OnLinkClickEvent : public Runnable { +@@ -12708,6 +12953,9 @@ class OnLinkClickEvent : public Runnable { mHandler->OnLinkClickSync(mContent, mLoadState, mNoOpenerImplied, mTriggeringPrincipal); } @@ -625,17 +625,17 @@ index 17f0d7fa7032a0aade92a8ecacd27017fea28a05..e1728e7cb162fcd96478050eab45ed43 return NS_OK; } -@@ -12813,6 +13061,8 @@ nsresult nsDocShell::OnLinkClick( - nsCOMPtr ev = - new OnLinkClickEvent(this, aContent, loadState, noOpenerImplied, - aIsTrusted, aTriggeringPrincipal); +@@ -12794,6 +13042,8 @@ nsresult nsDocShell::OnLinkClick( + + nsCOMPtr ev = new OnLinkClickEvent( + this, aContent, loadState, noOpenerImplied, aTriggeringPrincipal); + nsCOMPtr observerService = mozilla::services::GetObserverService(); + observerService->NotifyObservers(ToSupports(aContent), "juggler-link-click", nullptr); return Dispatch(ev.forget()); } diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h -index 0cf72f8fffb40a4205f9d2cb339f4ebd9031373f..0b09b2877781d0693d466b66e6ff00872988af4a 100644 +index 888741f8490d6f0e885ed0ce73115c16e7bbe821..0958824d57a082fecae6dde1eb568f457c42f443 100644 --- a/docshell/base/nsDocShell.h +++ b/docshell/base/nsDocShell.h @@ -15,6 +15,7 @@ @@ -654,7 +654,7 @@ index 0cf72f8fffb40a4205f9d2cb339f4ebd9031373f..0b09b2877781d0693d466b66e6ff0087 class nsGlobalWindowOuter; class FramingChecker; -@@ -403,6 +405,15 @@ class nsDocShell final : public nsDocLoader, +@@ -402,6 +404,15 @@ class nsDocShell final : public nsDocLoader, void SetWillChangeProcess() { mWillChangeProcess = true; } bool WillChangeProcess() { return mWillChangeProcess; } @@ -670,7 +670,7 @@ index 0cf72f8fffb40a4205f9d2cb339f4ebd9031373f..0b09b2877781d0693d466b66e6ff0087 // Create a content viewer within this nsDocShell for the given // `WindowGlobalChild` actor. nsresult CreateDocumentViewerForActor( -@@ -1006,6 +1017,8 @@ class nsDocShell final : public nsDocLoader, +@@ -1005,6 +1016,8 @@ class nsDocShell final : public nsDocLoader, bool CSSErrorReportingEnabled() const { return mCSSErrorReportingEnabled; } @@ -679,7 +679,7 @@ index 0cf72f8fffb40a4205f9d2cb339f4ebd9031373f..0b09b2877781d0693d466b66e6ff0087 // 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 -@@ -1283,6 +1296,16 @@ class nsDocShell final : public nsDocLoader, +@@ -1282,6 +1295,16 @@ class nsDocShell final : public nsDocLoader, bool mAllowDNSPrefetch : 1; bool mAllowWindowControl : 1; bool mCSSErrorReportingEnabled : 1; @@ -697,7 +697,7 @@ index 0cf72f8fffb40a4205f9d2cb339f4ebd9031373f..0b09b2877781d0693d466b66e6ff0087 bool mAllowKeywordFixup : 1; bool mDisableMetaRefreshWhenInactive : 1; diff --git a/docshell/base/nsIDocShell.idl b/docshell/base/nsIDocShell.idl -index fdc04f16c6f547077ad8c872f9357d85d4513c50..199f8fdb0670265c715f99f5cac1a2b2f22c963d 100644 +index 84e821e33e8164829dfee4f05340784e189b90ee..397742551b98d0d9e6fcf94f55efda5ea628b9ac 100644 --- a/docshell/base/nsIDocShell.idl +++ b/docshell/base/nsIDocShell.idl @@ -44,6 +44,7 @@ interface nsIURI; @@ -746,10 +746,10 @@ index fdc04f16c6f547077ad8c872f9357d85d4513c50..199f8fdb0670265c715f99f5cac1a2b2 * 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 b460181916b4f4edfc1a56e8b06f6506bd81465b..2a493209a2667ad8c5e84b893b5ce01d0dcc3fee 100644 +index 8680bd4e64abc48233b5babb3b4123fea0e76f3b..44ea1267771cd925df74c716cc26d7ab51b2b985 100644 --- a/dom/base/Document.cpp +++ b/dom/base/Document.cpp -@@ -3745,6 +3745,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { +@@ -3741,6 +3741,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { } void Document::ApplySettingsFromCSP(bool aSpeculative) { @@ -759,7 +759,7 @@ index b460181916b4f4edfc1a56e8b06f6506bd81465b..2a493209a2667ad8c5e84b893b5ce01d nsresult rv = NS_OK; if (!aSpeculative) { // 1) apply settings from regular CSP -@@ -3802,6 +3805,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { +@@ -3798,6 +3801,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { MOZ_ASSERT(!mScriptGlobalObject, "CSP must be initialized before mScriptGlobalObject is set!"); @@ -771,7 +771,7 @@ index b460181916b4f4edfc1a56e8b06f6506bd81465b..2a493209a2667ad8c5e84b893b5ce01d // If this is a data document - no need to set CSP. if (mLoadedAsData) { return NS_OK; -@@ -4603,6 +4611,10 @@ bool Document::HasFocus(ErrorResult& rv) const { +@@ -4605,6 +4613,10 @@ bool Document::HasFocus(ErrorResult& rv) const { return false; } @@ -782,7 +782,7 @@ index b460181916b4f4edfc1a56e8b06f6506bd81465b..2a493209a2667ad8c5e84b893b5ce01d if (!fm->IsInActiveWindow(bc)) { return false; } -@@ -19462,6 +19474,35 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { +@@ -19488,6 +19500,35 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { return PreferenceSheet::PrefsFor(*this).mColorScheme; } @@ -819,10 +819,10 @@ index b460181916b4f4edfc1a56e8b06f6506bd81465b..2a493209a2667ad8c5e84b893b5ce01d if (!sLoadingForegroundTopLevelContentDocument) { return false; diff --git a/dom/base/Document.h b/dom/base/Document.h -index 9b748acbce8e4dd1c1393aa5d26170747ec48228..a8bc4c52651ea32128388d1e5f486b7fe0203d4b 100644 +index ee5800c51cacc7ac3517c03274ed4e0a35e57f9f..91a8ea64eb40dc0e642e8ab515b78c93e11d7d5a 100644 --- a/dom/base/Document.h +++ b/dom/base/Document.h -@@ -4108,6 +4108,8 @@ class Document : public nsINode, +@@ -4123,6 +4123,8 @@ class Document : public nsINode, // color-scheme meta tag. ColorScheme DefaultColorScheme() const; @@ -832,7 +832,7 @@ index 9b748acbce8e4dd1c1393aa5d26170747ec48228..a8bc4c52651ea32128388d1e5f486b7f static bool AutomaticStorageAccessPermissionCanBeGranted( diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp -index d7ed73aee3af96096e36ead6d1aeecec7269556d..b2f3b53f46bfbcca044a7d9f18a694469b4884d5 100644 +index 0f159ad09a2a4b8962307b9f20abf30323377a36..e0cbb3f1f8af42825696d7152eb9993ab3802f90 100644 --- a/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp @@ -344,14 +344,18 @@ void Navigator::GetAppName(nsAString& aAppName) const { @@ -895,10 +895,10 @@ index 6abf6cef230c97815f17f6b7abf9f1b1de274a6f..46ead1f32e0d710b5b32e61dff72a4f7 dom::MediaCapabilities* MediaCapabilities(); dom::MediaSession* MediaSession(); diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp -index 80df23b73f132c2b6ec99df1cb219878d6ea8639..0b82f7117805f0ad5ccca21532f87852eaae3ecf 100644 +index 13ba7fa81c67f41e419a13c74f9c382193e0eb27..f438d58b594e1434d090eecc89accc66b9f62fcd 100644 --- a/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp -@@ -8793,7 +8793,8 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8773,7 +8773,8 @@ nsresult nsContentUtils::SendMouseEvent( bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, PreventDefaultResult* aPreventDefault, bool aIsDOMEventSynthesized, @@ -908,7 +908,7 @@ index 80df23b73f132c2b6ec99df1cb219878d6ea8639..0b82f7117805f0ad5ccca21532f87852 nsPoint offset; nsCOMPtr widget = GetWidget(aPresShell, &offset); if (!widget) return NS_ERROR_FAILURE; -@@ -8801,6 +8802,7 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8781,6 +8782,7 @@ nsresult nsContentUtils::SendMouseEvent( EventMessage msg; Maybe exitFrom; bool contextMenuKey = false; @@ -916,7 +916,7 @@ index 80df23b73f132c2b6ec99df1cb219878d6ea8639..0b82f7117805f0ad5ccca21532f87852 if (aType.EqualsLiteral("mousedown")) { msg = eMouseDown; } else if (aType.EqualsLiteral("mouseup")) { -@@ -8826,6 +8828,12 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8806,6 +8808,12 @@ nsresult nsContentUtils::SendMouseEvent( msg = eMouseHitTest; } else if (aType.EqualsLiteral("MozMouseExploreByTouch")) { msg = eMouseExploreByTouch; @@ -929,7 +929,7 @@ index 80df23b73f132c2b6ec99df1cb219878d6ea8639..0b82f7117805f0ad5ccca21532f87852 } else { return NS_ERROR_FAILURE; } -@@ -8836,7 +8844,14 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8816,7 +8824,14 @@ nsresult nsContentUtils::SendMouseEvent( Maybe pointerEvent; Maybe mouseEvent; @@ -945,7 +945,7 @@ index 80df23b73f132c2b6ec99df1cb219878d6ea8639..0b82f7117805f0ad5ccca21532f87852 MOZ_ASSERT(!aIsWidgetEventSynthesized, "The event shouldn't be dispatched as a synthesized event"); if (MOZ_UNLIKELY(aIsWidgetEventSynthesized)) { -@@ -8855,8 +8870,11 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8835,8 +8850,11 @@ nsresult nsContentUtils::SendMouseEvent( contextMenuKey ? WidgetMouseEvent::eContextMenuKey : WidgetMouseEvent::eNormal); } @@ -957,7 +957,7 @@ index 80df23b73f132c2b6ec99df1cb219878d6ea8639..0b82f7117805f0ad5ccca21532f87852 mouseOrPointerEvent.pointerId = aIdentifier; mouseOrPointerEvent.mModifiers = GetWidgetModifiers(aModifiers); mouseOrPointerEvent.mButton = aButton; -@@ -8869,6 +8887,8 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8849,6 +8867,8 @@ nsresult nsContentUtils::SendMouseEvent( mouseOrPointerEvent.mClickCount = aClickCount; mouseOrPointerEvent.mFlags.mIsSynthesizedForTests = aIsDOMEventSynthesized; mouseOrPointerEvent.mExitFrom = exitFrom; @@ -967,10 +967,10 @@ index 80df23b73f132c2b6ec99df1cb219878d6ea8639..0b82f7117805f0ad5ccca21532f87852 nsPresContext* presContext = aPresShell->GetPresContext(); if (!presContext) return NS_ERROR_FAILURE; diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h -index d9556910b2e27aebd648835353a6843347d6f8ac..61fdbfda2c43e3265fa8bc48a1d0f5f38f70b48c 100644 +index a1efe3efc7f48f9ff8e2b1a1a50e5dd7bf81f263..caf55fa9dae74ce4ce9ad0369c8cfc8eea061778 100644 --- a/dom/base/nsContentUtils.h +++ b/dom/base/nsContentUtils.h -@@ -3039,7 +3039,8 @@ class nsContentUtils { +@@ -3033,7 +3033,8 @@ class nsContentUtils { int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, mozilla::PreventDefaultResult* aPreventDefault, @@ -981,10 +981,10 @@ index d9556910b2e27aebd648835353a6843347d6f8ac..61fdbfda2c43e3265fa8bc48a1d0f5f3 static void FirePageShowEventForFrameLoaderSwap( nsIDocShellTreeItem* aItem, diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp -index 7e22693477bb4ededfc3fff568f3993db6abb838..91379e3032b64e08892790a72c6cc421983cf94e 100644 +index aae46b9bd2e7756fc025c0597db221c579cac679..5e8ae13a9d1747312cd7df9d80cbb1677530465c 100644 --- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp -@@ -685,6 +685,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) { +@@ -686,6 +686,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) { return NS_ERROR_FAILURE; } @@ -1011,7 +1011,7 @@ index 7e22693477bb4ededfc3fff568f3993db6abb838..91379e3032b64e08892790a72c6cc421 NS_IMETHODIMP nsDOMWindowUtils::SendMouseEvent( const nsAString& aType, float aX, float aY, int32_t aButton, -@@ -699,7 +719,7 @@ nsDOMWindowUtils::SendMouseEvent( +@@ -700,7 +720,7 @@ nsDOMWindowUtils::SendMouseEvent( aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, false, aPreventDefault, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true, aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false, @@ -1020,7 +1020,7 @@ index 7e22693477bb4ededfc3fff568f3993db6abb838..91379e3032b64e08892790a72c6cc421 } NS_IMETHODIMP -@@ -717,7 +737,7 @@ nsDOMWindowUtils::SendMouseEventToWindow( +@@ -718,7 +738,7 @@ nsDOMWindowUtils::SendMouseEventToWindow( aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, true, nullptr, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true, aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false, @@ -1029,7 +1029,7 @@ index 7e22693477bb4ededfc3fff568f3993db6abb838..91379e3032b64e08892790a72c6cc421 } NS_IMETHODIMP -@@ -726,13 +746,13 @@ nsDOMWindowUtils::SendMouseEventCommon( +@@ -727,13 +747,13 @@ nsDOMWindowUtils::SendMouseEventCommon( int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, uint32_t aPointerId, bool aToWindow, bool* aPreventDefault, bool aIsDOMEventSynthesized, @@ -1059,7 +1059,7 @@ index 47ff326b202266b1d7d6af8bdfb72776df8a6a93..b8e084b0c788c46345b1455b8257f171 MOZ_CAN_RUN_SCRIPT nsresult SendTouchEventCommon( diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp -index f24942e513f85a0f750eabaeb429889a9cf99092..74683b60bdfac459c0047c52b7efefa9aae1c01a 100644 +index 54cf5e2647a8fa097481e972e0ab67928b2abc8b..37ff283278cebc0e058b0345a157036283847de8 100644 --- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp @@ -1712,6 +1712,10 @@ Maybe nsFocusManager::SetFocusInner(Element* aNewContent, @@ -1105,7 +1105,7 @@ index f24942e513f85a0f750eabaeb429889a9cf99092..74683b60bdfac459c0047c52b7efefa9 // 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 8973a1e401670d32808136d47ab8efb0e396a549..0889b2ff12540c9aa36d9efc5d81fb684513b686 100644 +index d8ba9e36c98197a7dd7e1b0781f2477c451fc5fd..f3b5b0417ed9433678c7379d304de263c7bc1f80 100644 --- a/dom/base/nsGlobalWindowOuter.cpp +++ b/dom/base/nsGlobalWindowOuter.cpp @@ -2516,10 +2516,16 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, @@ -1150,7 +1150,7 @@ index 8973a1e401670d32808136d47ab8efb0e396a549..0889b2ff12540c9aa36d9efc5d81fb68 void nsGlobalWindowOuter::SetDocShell(nsDocShell* aDocShell) { diff --git a/dom/base/nsGlobalWindowOuter.h b/dom/base/nsGlobalWindowOuter.h -index b388bfb6ea26a88c29d9d14dfbc375ff7bd09eec..8685e4cece9d2cc2511b9d3022c891df6dc1660d 100644 +index d4347e7a508742986f634e97394a9e3dd435d170..5088520537c8c5c6cc79c1dffd91a68de09f27eb 100644 --- a/dom/base/nsGlobalWindowOuter.h +++ b/dom/base/nsGlobalWindowOuter.h @@ -317,6 +317,7 @@ class nsGlobalWindowOuter final : public mozilla::dom::EventTarget, @@ -1162,10 +1162,10 @@ index b388bfb6ea26a88c29d9d14dfbc375ff7bd09eec..8685e4cece9d2cc2511b9d3022c891df // Outer windows only. virtual void EnsureSizeAndPositionUpToDate() override; diff --git a/dom/base/nsINode.cpp b/dom/base/nsINode.cpp -index 03990e9ed30f4dfa7d3dbec40942ce1121b07b8d..2dd4ac45ad0aec598ad9c00e6e280757b33c7648 100644 +index 855ba87b5b6db67d7dd207cb54001190c494c61a..f96eb49056dafcbd0ca244dac6d1d4a38e7819ce 100644 --- a/dom/base/nsINode.cpp +++ b/dom/base/nsINode.cpp -@@ -1426,6 +1426,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, +@@ -1438,6 +1438,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, mozilla::GetBoxQuadsFromWindowOrigin(this, aOptions, aResult, aRv); } @@ -1228,10 +1228,10 @@ index 03990e9ed30f4dfa7d3dbec40942ce1121b07b8d..2dd4ac45ad0aec598ad9c00e6e280757 DOMQuad& aQuad, const GeometryNode& aFrom, const ConvertCoordinateOptions& aOptions, CallerType aCallerType, diff --git a/dom/base/nsINode.h b/dom/base/nsINode.h -index c7d56c4f8ed4400ac7e5dd5b168862c8bfc8c7aa..1a8469bb00cfdcc1b6e7675c4a19e4ae9ad18637 100644 +index e1fb6c2aeb67ab600b668b342bee0c716427d116..55e573dce8ad4d34542f89b9179a1da14f45d1bc 100644 --- a/dom/base/nsINode.h +++ b/dom/base/nsINode.h -@@ -2322,6 +2322,10 @@ class nsINode : public mozilla::dom::EventTarget { +@@ -2356,6 +2356,10 @@ class nsINode : public mozilla::dom::EventTarget { nsTArray>& aResult, ErrorResult& aRv); @@ -1243,10 +1243,10 @@ index c7d56c4f8ed4400ac7e5dd5b168862c8bfc8c7aa..1a8469bb00cfdcc1b6e7675c4a19e4ae DOMQuad& aQuad, const TextOrElementOrDocument& aFrom, const ConvertCoordinateOptions& aOptions, CallerType aCallerType, diff --git a/dom/base/nsJSUtils.cpp b/dom/base/nsJSUtils.cpp -index 48df3ae2d30b975269d06e6354b143abd3e5fcd8..87c8d237355668b0ff324f49be879219b1761083 100644 +index bf7eb34da03c0958de688deecb53b407d430f645..a2ec3b1b7e86f72bee38d890c0834abfe4be8637 100644 --- a/dom/base/nsJSUtils.cpp +++ b/dom/base/nsJSUtils.cpp -@@ -149,6 +149,11 @@ bool nsJSUtils::GetScopeChainForElement( +@@ -149,6 +149,11 @@ bool nsJSUtils::GetEnvironmentChainForElement(JSContext* aCx, Element* aElement, return true; } @@ -1259,12 +1259,12 @@ index 48df3ae2d30b975269d06e6354b143abd3e5fcd8..87c8d237355668b0ff324f49be879219 void nsJSUtils::ResetTimeZone() { JS::ResetTimeZone(); } diff --git a/dom/base/nsJSUtils.h b/dom/base/nsJSUtils.h -index 8b4c1492c64884d83eb1553bc40b921e0da601b7..ee66eaa21d8e8c208204ef73fca5b3d78abefb24 100644 +index f32e21752d5013bf143eb45391ab9218debab08e..83763d2354dade2f8d2b7930ba18ae91c55133ad 100644 --- a/dom/base/nsJSUtils.h +++ b/dom/base/nsJSUtils.h -@@ -71,6 +71,7 @@ class nsJSUtils { - JSContext* aCx, mozilla::dom::Element* aElement, - JS::MutableHandleVector aScopeChain); +@@ -75,6 +75,7 @@ class nsJSUtils { + mozilla::dom::Element* aElement, + JS::EnvironmentChain& aEnvChain); + static bool SetTimeZoneOverride(const char* timezoneId); static void ResetTimeZone(); @@ -1301,7 +1301,7 @@ index 28e8d8cb9c61ff8362b2d191d47c3630d2cb0b34..0058e60aaab21f8003bbe1bf3f271c63 * A unique identifier for the browser element that is hosting this * BrowsingContext tree. Every BrowsingContext in the element's tree will diff --git a/dom/geolocation/Geolocation.cpp b/dom/geolocation/Geolocation.cpp -index 140ad5a3e651cc3dc7c31ff7efebbd3cecb0076d..cae2d2af93a3d881d2a934d446945f356c3b6070 100644 +index 6a624e4c0f5fb8ffff06419a29f6e6acc6108773..370625634f7846d0545ec7ee964d7fa1a15b3ac0 100644 --- a/dom/geolocation/Geolocation.cpp +++ b/dom/geolocation/Geolocation.cpp @@ -29,6 +29,7 @@ @@ -1312,7 +1312,7 @@ index 140ad5a3e651cc3dc7c31ff7efebbd3cecb0076d..cae2d2af93a3d881d2a934d446945f35 #include "nsGlobalWindowInner.h" #include "mozilla/dom/Document.h" #include "nsINamed.h" -@@ -432,10 +433,8 @@ nsGeolocationRequest::Allow(JS::Handle aChoices) { +@@ -429,10 +430,8 @@ nsGeolocationRequest::Allow(JS::Handle aChoices) { return NS_OK; } @@ -1325,7 +1325,7 @@ index 140ad5a3e651cc3dc7c31ff7efebbd3cecb0076d..cae2d2af93a3d881d2a934d446945f35 CachedPositionAndAccuracy lastPosition = gs->GetCachedPosition(); if (lastPosition.position) { EpochTimeStamp cachedPositionTime_ms; -@@ -643,8 +642,7 @@ void nsGeolocationRequest::Shutdown() { +@@ -640,8 +639,7 @@ void nsGeolocationRequest::Shutdown() { // If there are no other high accuracy requests, the geolocation service will // notify the provider to switch to the default accuracy. if (mOptions && mOptions->mEnableHighAccuracy) { @@ -1335,7 +1335,7 @@ index 140ad5a3e651cc3dc7c31ff7efebbd3cecb0076d..cae2d2af93a3d881d2a934d446945f35 if (gs) { gs->UpdateAccuracy(); } -@@ -961,8 +959,14 @@ void nsGeolocationService::StopDevice() { +@@ -958,8 +956,14 @@ void nsGeolocationService::StopDevice() { StaticRefPtr nsGeolocationService::sService; already_AddRefed @@ -1351,7 +1351,7 @@ index 140ad5a3e651cc3dc7c31ff7efebbd3cecb0076d..cae2d2af93a3d881d2a934d446945f35 if (nsGeolocationService::sService) { result = nsGeolocationService::sService; -@@ -1054,7 +1058,9 @@ nsresult Geolocation::Init(nsPIDOMWindowInner* aContentDom) { +@@ -1051,7 +1055,9 @@ nsresult Geolocation::Init(nsPIDOMWindowInner* aContentDom) { // If no aContentDom was passed into us, we are being used // by chrome/c++ and have no mOwner, no mPrincipal, and no need // to prompt. @@ -1400,10 +1400,10 @@ index 992de29b5d2d09c19e55ebb2502215ec9d05a171..cdc20567b693283b0fd5a5923f7ea542 ~Geolocation(); diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp -index d40c2a230c8c86f585935061d05e20b405c906fe..29547e7a0d75fdc8b8b30344db32287424e65fba 100644 +index 4b6686880b9fca9bb7c08e850918a4c0f15dac88..825a006b05947ede8ffdfefa4cd12dd5663fb98f 100644 --- a/dom/html/HTMLInputElement.cpp +++ b/dom/html/HTMLInputElement.cpp -@@ -60,6 +60,7 @@ +@@ -62,6 +62,7 @@ #include "mozilla/dom/Document.h" #include "mozilla/dom/HTMLDataListElement.h" #include "mozilla/dom/HTMLOptionElement.h" @@ -1411,7 +1411,7 @@ index d40c2a230c8c86f585935061d05e20b405c906fe..29547e7a0d75fdc8b8b30344db322874 #include "nsIFrame.h" #include "nsRangeFrame.h" #include "nsError.h" -@@ -783,6 +784,13 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) { +@@ -789,6 +790,13 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) { return NS_ERROR_FAILURE; } @@ -1426,7 +1426,7 @@ index d40c2a230c8c86f585935061d05e20b405c906fe..29547e7a0d75fdc8b8b30344db322874 return NS_OK; } diff --git a/dom/interfaces/base/nsIDOMWindowUtils.idl b/dom/interfaces/base/nsIDOMWindowUtils.idl -index 4f0fc82a36c5ef5daa99d3623d4e7dac467038e2..9076e43644a2bd82fbaca41fb0e3559dc5f20c24 100644 +index b4d065ff3197404f92e099afea9a0dcb4ff79bf1..59448d3c4f1054a8a1c8cb415f36fdeb2983040d 100644 --- a/dom/interfaces/base/nsIDOMWindowUtils.idl +++ b/dom/interfaces/base/nsIDOMWindowUtils.idl @@ -374,6 +374,26 @@ interface nsIDOMWindowUtils : nsISupports { @@ -1457,7 +1457,7 @@ index 4f0fc82a36c5ef5daa99d3623d4e7dac467038e2..9076e43644a2bd82fbaca41fb0e3559d * touchstart, touchend, touchmove, and touchcancel * diff --git a/dom/ipc/BrowserChild.cpp b/dom/ipc/BrowserChild.cpp -index 017d579a4c529587ff6730a8bbcd748840ff91ac..4be9d8ee6b6c9e4bbc9c7a2568e883ae43039348 100644 +index 067e8551685497a8d7681296bbb7d7eae1d7587b..5667fbbfff99b77992eac181304093d8afbff367 100644 --- a/dom/ipc/BrowserChild.cpp +++ b/dom/ipc/BrowserChild.cpp @@ -1674,6 +1674,21 @@ void BrowserChild::HandleRealMouseButtonEvent(const WidgetMouseEvent& aEvent, @@ -1730,7 +1730,7 @@ index 3b39538e51840cd9b1685b2efd2ff2e9ec83608a..c7bf4f2d53b58bbacb22b3ebebf6f3fc return aGlobalOrNull; diff --git a/dom/security/nsCSPUtils.cpp b/dom/security/nsCSPUtils.cpp -index 17a205b2607208a696a470f81223c4d2618e6bec..90dc5c04f395a3e7c98cc6eff146aa78dc03d1cf 100644 +index 8c4364190dadd1a58bfd99e2c0dae1524a4e2c0c..ffadb3b4665a804320724b5a12e09cb29ef31498 100644 --- a/dom/security/nsCSPUtils.cpp +++ b/dom/security/nsCSPUtils.cpp @@ -23,6 +23,7 @@ @@ -1754,19 +1754,19 @@ index 17a205b2607208a696a470f81223c4d2618e6bec..90dc5c04f395a3e7c98cc6eff146aa78 nsContentUtils::TrimWhitespace( aPolicyStr)); diff --git a/dom/webidl/GeometryUtils.webidl b/dom/webidl/GeometryUtils.webidl -index 2f71b284ee5f7e11f117c447834b48355784448c..2640bd57123c2b03bf4b06a2419cd020ba95f155 100644 +index aee376e971ae01ac1e512c3920b115bfaf06afa8..1701311534bf77e6cd9bafc0e3a283610476aa8f 100644 --- a/dom/webidl/GeometryUtils.webidl +++ b/dom/webidl/GeometryUtils.webidl -@@ -16,6 +16,8 @@ dictionary BoxQuadOptions { - GeometryNode relativeTo; - [ChromeOnly] +@@ -17,6 +17,8 @@ dictionary GeometryUtilsOptions { boolean createFramesForSuppressedWhitespace = true; + [ChromeOnly] + boolean flush = true; + [ChromeOnly] + boolean recurseWhenNoFrame = false; }; - dictionary ConvertCoordinateOptions { -@@ -27,6 +29,9 @@ interface mixin GeometryUtils { + dictionary BoxQuadOptions : GeometryUtilsOptions { +@@ -35,6 +37,9 @@ interface mixin GeometryUtils { [Throws, Func="nsINode::HasBoxQuadsSupport", NeedsCallerType] sequence getBoxQuads(optional BoxQuadOptions options = {}); @@ -1777,7 +1777,7 @@ index 2f71b284ee5f7e11f117c447834b48355784448c..2640bd57123c2b03bf4b06a2419cd020 * returned quads are further translated relative to the window * origin -- which is not the layout origin. Further translation diff --git a/dom/workers/RuntimeService.cpp b/dom/workers/RuntimeService.cpp -index be23f9f192208c30849ff640ab67debdef3f3ca6..6c14aa9dd751f20838c915b5a0a3d66f13f9dcc5 100644 +index 996b5699166711901ff0d11fe64352b6c9c97d1e..5b08ea6145e6052058a55d6a678fd7539f70baa1 100644 --- a/dom/workers/RuntimeService.cpp +++ b/dom/workers/RuntimeService.cpp @@ -1005,7 +1005,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) { @@ -1789,7 +1789,7 @@ index be23f9f192208c30849ff640ab67debdef3f3ca6..6c14aa9dd751f20838c915b5a0a3d66f RuntimeService* runtime = RuntimeService::GetService(); if (runtime) { -@@ -1191,8 +1191,7 @@ bool RuntimeService::RegisterWorker(WorkerPrivate& aWorkerPrivate) { +@@ -1193,8 +1193,7 @@ bool RuntimeService::RegisterWorker(WorkerPrivate& aWorkerPrivate) { } // The navigator overridden properties should have already been read. @@ -1799,7 +1799,7 @@ index be23f9f192208c30849ff640ab67debdef3f3ca6..6c14aa9dd751f20838c915b5a0a3d66f mNavigatorPropertiesLoaded = true; } -@@ -1813,6 +1812,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted( +@@ -1815,6 +1814,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted( } } @@ -1813,7 +1813,7 @@ index be23f9f192208c30849ff640ab67debdef3f3ca6..6c14aa9dd751f20838c915b5a0a3d66f template void RuntimeService::BroadcastAllWorkers(const Func& aFunc) { AssertIsOnMainThread(); -@@ -2338,6 +2344,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers( +@@ -2340,6 +2346,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers( } } @@ -1855,10 +1855,10 @@ index 58894a8361c7ef1dddd481ca5877a209a8b8ff5c..c481d40d79b6397b7f1d571bd9f6ae5c bool IsWorkerGlobal(JSObject* global); diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp -index ee89a9ffbe33754bd41643555a621ca6f62e5465..9d9ec1aac7858129ad5adef62ab359d1ea667082 100644 +index 0076a8463fa9ff05b32edfe21462987610432b5d..9f810c9728b7d7caf9fbeb3e24346c219326637d 100644 --- a/dom/workers/WorkerPrivate.cpp +++ b/dom/workers/WorkerPrivate.cpp -@@ -718,6 +718,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { +@@ -736,6 +736,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { } }; @@ -1877,7 +1877,7 @@ index ee89a9ffbe33754bd41643555a621ca6f62e5465..9d9ec1aac7858129ad5adef62ab359d1 class UpdateLanguagesRunnable final : public WorkerThreadRunnable { nsTArray mLanguages; -@@ -2131,6 +2143,16 @@ void WorkerPrivate::UpdateContextOptions( +@@ -2149,6 +2161,16 @@ void WorkerPrivate::UpdateContextOptions( } } @@ -1894,7 +1894,7 @@ index ee89a9ffbe33754bd41643555a621ca6f62e5465..9d9ec1aac7858129ad5adef62ab359d1 void WorkerPrivate::UpdateLanguages(const nsTArray& aLanguages) { AssertIsOnParentThread(); -@@ -5768,6 +5790,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( +@@ -5833,6 +5855,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( } } @@ -1911,10 +1911,10 @@ index ee89a9ffbe33754bd41643555a621ca6f62e5465..9d9ec1aac7858129ad5adef62ab359d1 const nsTArray& aLanguages) { WorkerGlobalScope* globalScope = GlobalScope(); diff --git a/dom/workers/WorkerPrivate.h b/dom/workers/WorkerPrivate.h -index 8ca40304e014da2e6898f71ac214f7ca1ab19e87..e0179f6db7fdc679f104bf180c181ab1ac85b4ad 100644 +index c2ade467934d08587d4e3589b310c6302534d699..414814c03180b50d218ad84a0db262fff19f78a7 100644 --- a/dom/workers/WorkerPrivate.h +++ b/dom/workers/WorkerPrivate.h -@@ -433,6 +433,8 @@ class WorkerPrivate final +@@ -443,6 +443,8 @@ class WorkerPrivate final void UpdateContextOptionsInternal(JSContext* aCx, const JS::ContextOptions& aContextOptions); @@ -1923,7 +1923,7 @@ index 8ca40304e014da2e6898f71ac214f7ca1ab19e87..e0179f6db7fdc679f104bf180c181ab1 void UpdateLanguagesInternal(const nsTArray& aLanguages); void UpdateJSWorkerMemoryParameterInternal(JSContext* aCx, JSGCParamKey key, -@@ -1070,6 +1072,8 @@ class WorkerPrivate final +@@ -1086,6 +1088,8 @@ class WorkerPrivate final void UpdateContextOptions(const JS::ContextOptions& aContextOptions); @@ -2001,10 +2001,10 @@ index 880e716c24464c93283410417f8e69d6d233d105..6e046fbd2e643dace5ad7796740253df } diff --git a/js/src/vm/DateTime.cpp b/js/src/vm/DateTime.cpp -index 623a6863a54fb0d653ebe55fd83356f1a8c8be15..1c0ef7b0d3ee2f61de728a68dd704a5d09757b38 100644 +index cf63b124f39223a1a42c322dcc0ad108947d54f5..9e3a7b757cbad57ee6cfe2254d0355f62f7c8662 100644 --- a/js/src/vm/DateTime.cpp +++ b/js/src/vm/DateTime.cpp -@@ -186,6 +186,11 @@ void js::DateTimeInfo::internalResetTimeZone(ResetTimeZoneMode mode) { +@@ -185,6 +185,11 @@ void js::DateTimeInfo::internalResetTimeZone(ResetTimeZoneMode mode) { } } @@ -2016,7 +2016,7 @@ index 623a6863a54fb0d653ebe55fd83356f1a8c8be15..1c0ef7b0d3ee2f61de728a68dd704a5d void js::DateTimeInfo::updateTimeZone() { MOZ_ASSERT(timeZoneStatus_ != TimeZoneStatus::Valid); -@@ -529,10 +534,24 @@ void js::ResetTimeZoneInternal(ResetTimeZoneMode mode) { +@@ -528,10 +533,24 @@ void js::ResetTimeZoneInternal(ResetTimeZoneMode mode) { js::DateTimeInfo::resetTimeZone(mode); } @@ -2041,7 +2041,7 @@ index 623a6863a54fb0d653ebe55fd83356f1a8c8be15..1c0ef7b0d3ee2f61de728a68dd704a5d #if JS_HAS_INTL_API # if defined(XP_WIN) static bool IsOlsonCompatibleWindowsTimeZoneId(std::string_view tz) { -@@ -750,6 +769,15 @@ static bool ReadTimeZoneLink(std::string_view tz, +@@ -749,6 +768,15 @@ static bool ReadTimeZoneLink(std::string_view tz, void js::DateTimeInfo::internalResyncICUDefaultTimeZone() { #if JS_HAS_INTL_API @@ -2057,7 +2057,7 @@ index 623a6863a54fb0d653ebe55fd83356f1a8c8be15..1c0ef7b0d3ee2f61de728a68dd704a5d // 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 -@@ -761,7 +789,6 @@ void js::DateTimeInfo::internalResyncICUDefaultTimeZone() { +@@ -760,7 +788,6 @@ void js::DateTimeInfo::internalResyncICUDefaultTimeZone() { if (const char* tzenv = std::getenv("TZ")) { std::string_view tz(tzenv); @@ -2066,7 +2066,7 @@ index 623a6863a54fb0d653ebe55fd83356f1a8c8be15..1c0ef7b0d3ee2f61de728a68dd704a5d # if defined(XP_WIN) diff --git a/js/src/vm/DateTime.h b/js/src/vm/DateTime.h -index fd6d7ae078b8f6b3cc46a4a993a1e044a7128c90..4743094e489122dd9ee8ab9a7a175dd7e928859d 100644 +index e3cf82daa3749664aa8ced7e6553b8c6434dfec8..b45b49c4f3bbf12853c4afb12de21d99ac88d77b 100644 --- a/js/src/vm/DateTime.h +++ b/js/src/vm/DateTime.h @@ -65,6 +65,8 @@ enum class ResetTimeZoneMode : bool { @@ -2078,7 +2078,7 @@ index fd6d7ae078b8f6b3cc46a4a993a1e044a7128c90..4743094e489122dd9ee8ab9a7a175dd7 /** * Stores date/time information, particularly concerning the current local * time zone, and implements a small cache for daylight saving time offset -@@ -225,6 +227,7 @@ class DateTimeInfo { +@@ -253,6 +255,7 @@ class DateTimeInfo { private: // The method below should only be called via js::ResetTimeZoneInternal(). friend void js::ResetTimeZoneInternal(ResetTimeZoneMode); @@ -2086,7 +2086,7 @@ index fd6d7ae078b8f6b3cc46a4a993a1e044a7128c90..4743094e489122dd9ee8ab9a7a175dd7 static void resetTimeZone(ResetTimeZoneMode mode) { { -@@ -321,6 +324,8 @@ class DateTimeInfo { +@@ -352,6 +355,8 @@ class DateTimeInfo { JS::UniqueChars locale_; JS::UniqueTwoByteChars standardName_; JS::UniqueTwoByteChars daylightSavingsName_; @@ -2095,7 +2095,7 @@ index fd6d7ae078b8f6b3cc46a4a993a1e044a7128c90..4743094e489122dd9ee8ab9a7a175dd7 #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 -@@ -336,6 +341,8 @@ class DateTimeInfo { +@@ -367,6 +372,8 @@ class DateTimeInfo { void internalResetTimeZone(ResetTimeZoneMode mode); @@ -2105,7 +2105,7 @@ index fd6d7ae078b8f6b3cc46a4a993a1e044a7128c90..4743094e489122dd9ee8ab9a7a175dd7 void internalResyncICUDefaultTimeZone(); diff --git a/layout/base/GeometryUtils.cpp b/layout/base/GeometryUtils.cpp -index 0ec6ee3eb37c6493d8a25352fd0e54e1927bceab..885dba71bc5815e5f6f3ec2700c376aa119b30d0 100644 +index 4bfd336ddcbee8004ac538ca7b7d8216d04a61c3..cd22351c4aeacea8afc9828972222aca1b3063bf 100644 --- a/layout/base/GeometryUtils.cpp +++ b/layout/base/GeometryUtils.cpp @@ -23,6 +23,7 @@ @@ -2116,18 +2116,18 @@ index 0ec6ee3eb37c6493d8a25352fd0e54e1927bceab..885dba71bc5815e5f6f3ec2700c376aa using namespace mozilla; using namespace mozilla::dom; -@@ -261,11 +262,27 @@ static bool CheckFramesInSameTopLevelBrowsingContext(nsIFrame* aFrame1, +@@ -265,10 +266,27 @@ static bool CheckFramesInSameTopLevelBrowsingContext(nsIFrame* aFrame1, return false; } -+static nsIFrame* GetFrameForNode(nsINode* aNode, -+ bool aCreateFramesForSuppressedWhitespace, ++static nsIFrame* GetFrameForNodeRecursive(nsINode* aNode, ++ const GeometryUtilsOptions& aOptions, + bool aRecurseWhenNoFrame) { -+ nsIFrame* frame = GetFrameForNode(aNode, aCreateFramesForSuppressedWhitespace); ++ nsIFrame* frame = GetFrameForNode(aNode, aOptions); + if (!frame && aRecurseWhenNoFrame && aNode->IsContent()) { + dom::FlattenedChildIterator iter(aNode->AsContent()); + for (nsIContent* child = iter.GetNextChild(); child; child = iter.GetNextChild()) { -+ frame = GetFrameForNode(child, aCreateFramesForSuppressedWhitespace, aRecurseWhenNoFrame); ++ frame = GetFrameForNodeRecursive(child, aOptions, aRecurseWhenNoFrame); + if (frame) { + break; + } @@ -2137,28 +2137,29 @@ index 0ec6ee3eb37c6493d8a25352fd0e54e1927bceab..885dba71bc5815e5f6f3ec2700c376aa +} + void GetBoxQuads(nsINode* aNode, const dom::BoxQuadOptions& aOptions, - nsTArray >& aResult, CallerType aCallerType, + nsTArray>& aResult, CallerType aCallerType, ErrorResult& aRv) { - nsIFrame* frame = -- GetFrameForNode(aNode, aOptions.mCreateFramesForSuppressedWhitespace); -+ GetFrameForNode(aNode, aOptions.mCreateFramesForSuppressedWhitespace, aOptions.mRecurseWhenNoFrame); +- nsIFrame* frame = GetFrameForNode(aNode, aOptions); ++ nsIFrame* frame = ++ GetFrameForNodeRecursive(aNode, aOptions, aOptions.mRecurseWhenNoFrame); if (!frame) { // No boxes to return return; -@@ -280,7 +297,7 @@ void GetBoxQuads(nsINode* aNode, const dom::BoxQuadOptions& aOptions, +@@ -281,7 +299,8 @@ void GetBoxQuads(nsINode* aNode, const dom::BoxQuadOptions& aOptions, + // EnsureFrameForTextNode call. We need to get the first frame again // when that happens and re-check it. if (!weakFrame.IsAlive()) { - frame = -- GetFrameForNode(aNode, aOptions.mCreateFramesForSuppressedWhitespace); -+ GetFrameForNode(aNode, aOptions.mCreateFramesForSuppressedWhitespace, aOptions.mRecurseWhenNoFrame); +- frame = GetFrameForNode(aNode, aOptions); ++ frame = ++ GetFrameForNodeRecursive(aNode, aOptions, aOptions.mRecurseWhenNoFrame); if (!frame) { // No boxes to return return; diff --git a/layout/base/PresShell.cpp b/layout/base/PresShell.cpp -index 27fd20e845af4c96cd1798debba57422872fab66..bcd1351884fb6de8f04062283dc677e057ada988 100644 +index c533494e49d59904b839ea770475ec726c4c897e..1da4eeb774dadb4e3463cbeb17d857ccb6ef76ea 100644 --- a/layout/base/PresShell.cpp +++ b/layout/base/PresShell.cpp -@@ -11194,7 +11194,9 @@ bool PresShell::ComputeActiveness() const { +@@ -11278,7 +11278,9 @@ bool PresShell::ComputeActiveness() const { if (!browserChild->IsVisible()) { MOZ_LOG(gLog, LogLevel::Debug, (" > BrowserChild %p is not visible", browserChild)); @@ -2170,10 +2171,10 @@ index 27fd20e845af4c96cd1798debba57422872fab66..bcd1351884fb6de8f04062283dc677e0 // 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 43d7e5008b352b7deb198ffc81fedf5de3f4b72a..c62d9f87a84c01994ad735146491219ef4f0e42e 100644 +index 1fba8697d48f35e20a69ff861f5da9689c6d6769..77d0de76f346c0563d9b74b667c8400e26a98694 100644 --- a/layout/base/nsLayoutUtils.cpp +++ b/layout/base/nsLayoutUtils.cpp -@@ -699,6 +699,10 @@ bool nsLayoutUtils::AllowZoomingForDocument( +@@ -708,6 +708,10 @@ bool nsLayoutUtils::AllowZoomingForDocument( !aDocument->GetPresShell()->AsyncPanZoomEnabled()) { return false; } @@ -2184,7 +2185,7 @@ index 43d7e5008b352b7deb198ffc81fedf5de3f4b72a..c62d9f87a84c01994ad735146491219e // True if we allow zooming for all documents on this platform, or if we are // in RDM. BrowsingContext* bc = aDocument->GetBrowsingContext(); -@@ -9645,6 +9649,9 @@ void nsLayoutUtils::ComputeSystemFont(nsFont* aSystemFont, +@@ -9709,6 +9713,9 @@ void nsLayoutUtils::ComputeSystemFont(nsFont* aSystemFont, /* static */ bool nsLayoutUtils::ShouldHandleMetaViewport(const Document* aDocument) { @@ -2207,10 +2208,10 @@ index acb5b24776c8591933d1abcbcc7b254cf2ceb4e4..191ddd1f43bd704294727555c3d5137d const mozilla::dom::Document*); mozilla::StylePrefersColorScheme Gecko_MediaFeatures_PrefersColorScheme( diff --git a/layout/style/nsMediaFeatures.cpp b/layout/style/nsMediaFeatures.cpp -index 94f01a53378c67b78346cf13f43431d9a5d104d9..4861de461648699360ed8c0453126c6c80587745 100644 +index ca382a3cfba8ce5839890d6e4cb3cf9789287e3b..b1f1b579d7609c6ab93cc0bc52417ea54ab4aeed 100644 --- a/layout/style/nsMediaFeatures.cpp +++ b/layout/style/nsMediaFeatures.cpp -@@ -265,11 +265,7 @@ bool Gecko_MediaFeatures_MatchesPlatform(StylePlatform aPlatform) { +@@ -264,11 +264,7 @@ bool Gecko_MediaFeatures_MatchesPlatform(StylePlatform aPlatform) { } bool Gecko_MediaFeatures_PrefersReducedMotion(const Document* aDocument) { @@ -2224,12 +2225,12 @@ index 94f01a53378c67b78346cf13f43431d9a5d104d9..4861de461648699360ed8c0453126c6c bool Gecko_MediaFeatures_PrefersReducedTransparency(const Document* aDocument) { diff --git a/netwerk/base/LoadInfo.cpp b/netwerk/base/LoadInfo.cpp -index 283e991f921f877ddfc6b15e8dbe08f92bf3342b..7d08aa7fa4a40255a93c617fc2cc99d6b3f666d6 100644 +index 06acdc629c2b6ee0e29c50d8edc5a96d343b1ef2..6c263edf54117fd9cbf4a77abc396f1238730880 100644 --- a/netwerk/base/LoadInfo.cpp +++ b/netwerk/base/LoadInfo.cpp -@@ -694,7 +694,8 @@ LoadInfo::LoadInfo(const LoadInfo& rhs) +@@ -696,7 +696,8 @@ LoadInfo::LoadInfo(const LoadInfo& rhs) rhs.mHasInjectedCookieForCookieBannerHandling), - mWasSchemelessInput(rhs.mWasSchemelessInput), + mSchemelessInput(rhs.mSchemelessInput), mHttpsUpgradeTelemetry(rhs.mHttpsUpgradeTelemetry), - mIsNewWindowTarget(rhs.mIsNewWindowTarget) { + mIsNewWindowTarget(rhs.mIsNewWindowTarget), @@ -2237,7 +2238,7 @@ index 283e991f921f877ddfc6b15e8dbe08f92bf3342b..7d08aa7fa4a40255a93c617fc2cc99d6 } LoadInfo::LoadInfo( -@@ -2488,4 +2489,16 @@ LoadInfo::SetSkipHTTPSUpgrade(bool aSkipHTTPSUpgrade) { +@@ -2515,4 +2516,16 @@ LoadInfo::SetSkipHTTPSUpgrade(bool aSkipHTTPSUpgrade) { return NS_OK; } @@ -2255,16 +2256,10 @@ index 283e991f921f877ddfc6b15e8dbe08f92bf3342b..7d08aa7fa4a40255a93c617fc2cc99d6 + } // namespace mozilla::net diff --git a/netwerk/base/LoadInfo.h b/netwerk/base/LoadInfo.h -index 0598c9703fdd0f8f71cc9d88ade4c8bc8b241af6..bfb71b848104c7df0c3784a95801a87d5f9cc20b 100644 +index c78602f6b46c983aa4d96c5727ebbaf7e2c7d984..e292766a0f34306ea1101be4ecd8848764726bad 100644 --- a/netwerk/base/LoadInfo.h +++ b/netwerk/base/LoadInfo.h -@@ -413,12 +413,13 @@ class LoadInfo final : public nsILoadInfo { - - bool mHasInjectedCookieForCookieBannerHandling = false; - bool mWasSchemelessInput = false; -- - nsILoadInfo::HTTPSUpgradeTelemetryType mHttpsUpgradeTelemetry = - nsILoadInfo::NOT_INITIALIZED; +@@ -423,6 +423,8 @@ class LoadInfo final : public nsILoadInfo { bool mIsNewWindowTarget = false; bool mSkipHTTPSUpgrade = false; @@ -2274,10 +2269,10 @@ index 0598c9703fdd0f8f71cc9d88ade4c8bc8b241af6..bfb71b848104c7df0c3784a95801a87d // This is exposed solely for testing purposes and should not be used outside of diff --git a/netwerk/base/TRRLoadInfo.cpp b/netwerk/base/TRRLoadInfo.cpp -index d1aad5d3a3863f62b17ebb01d9d6dc02c5dbcf71..8b3640504c877fccd75d523dc45c3a1c812f4ceb 100644 +index 5984a0a196615cca5544de052874cbb163a8233b..3617816a06651ae65c214ebd5f0affedc4d11390 100644 --- a/netwerk/base/TRRLoadInfo.cpp +++ b/netwerk/base/TRRLoadInfo.cpp -@@ -923,5 +923,15 @@ TRRLoadInfo::SetSkipHTTPSUpgrade(bool aSkipHTTPSUpgrade) { +@@ -936,5 +936,15 @@ TRRLoadInfo::GetFetchDestination(nsACString& aDestination) { return NS_ERROR_NOT_IMPLEMENTED; } @@ -2294,10 +2289,10 @@ index d1aad5d3a3863f62b17ebb01d9d6dc02c5dbcf71..8b3640504c877fccd75d523dc45c3a1c } // namespace net } // namespace mozilla diff --git a/netwerk/base/nsILoadInfo.idl b/netwerk/base/nsILoadInfo.idl -index afe180f91f6b4921408955db499fcb47f1da509f..89e9dd69dccd3bff11076595244e106a06d80de1 100644 +index 50dfc8767a99eef5e8748d648995f3cd7cc81a73..32a171eac26376144482bc7d90e8662a0e719f47 100644 --- a/netwerk/base/nsILoadInfo.idl +++ b/netwerk/base/nsILoadInfo.idl -@@ -1600,4 +1600,6 @@ interface nsILoadInfo : nsISupports +@@ -1616,4 +1616,6 @@ interface nsILoadInfo : nsISupports * When true, this load will never be upgraded to HTTPS. */ [infallible] attribute boolean skipHTTPSUpgrade; @@ -2317,7 +2312,7 @@ index 7f91d2df6f8bb4020c75c132dc8f6bf26625fa1e..ba6569f4be8fc54ec96ee44d5de45a09 /** * Set the status and reason for the forthcoming synthesized response. diff --git a/netwerk/ipc/DocumentLoadListener.cpp b/netwerk/ipc/DocumentLoadListener.cpp -index 82c6137d8c52c8fd2ba3542d6f7a645ad1e73f11..5f31e5e1c9cb44d49ac61b6f6bda0189424c2685 100644 +index 8b392845d07f50dddf016770836107614b6b9753..b0817d1b660dbb2dd856daf30ec9ec0fcb3d2aeb 100644 --- a/netwerk/ipc/DocumentLoadListener.cpp +++ b/netwerk/ipc/DocumentLoadListener.cpp @@ -172,6 +172,7 @@ static auto CreateDocumentLoadInfo(CanonicalBrowsingContext* aBrowsingContext, @@ -2329,10 +2324,10 @@ index 82c6137d8c52c8fd2ba3542d6f7a645ad1e73f11..5f31e5e1c9cb44d49ac61b6f6bda0189 return loadInfo.forget(); } diff --git a/netwerk/protocol/http/InterceptedHttpChannel.cpp b/netwerk/protocol/http/InterceptedHttpChannel.cpp -index e81a4538fd45c13aa60d933de5f4f32ce69fb5f2..d7945f81295c497485a09696f06ce041c1cd8079 100644 +index b7c129dcc21cb5d5478765f6aa06ed047aee6de0..6f3881c002c5f6d3e48865d253515ffd4d24bcf6 100644 --- a/netwerk/protocol/http/InterceptedHttpChannel.cpp +++ b/netwerk/protocol/http/InterceptedHttpChannel.cpp -@@ -727,6 +727,14 @@ NS_IMPL_ISUPPORTS(ResetInterceptionHeaderVisitor, nsIHttpHeaderVisitor) +@@ -726,6 +726,14 @@ NS_IMPL_ISUPPORTS(ResetInterceptionHeaderVisitor, nsIHttpHeaderVisitor) } // anonymous namespace @@ -2347,7 +2342,7 @@ index e81a4538fd45c13aa60d933de5f4f32ce69fb5f2..d7945f81295c497485a09696f06ce041 NS_IMETHODIMP InterceptedHttpChannel::ResetInterception(bool aBypass) { INTERCEPTED_LOG(("InterceptedHttpChannel::ResetInterception [%p] bypass: %s", -@@ -1140,11 +1148,18 @@ InterceptedHttpChannel::OnStartRequest(nsIRequest* aRequest) { +@@ -1139,11 +1147,18 @@ InterceptedHttpChannel::OnStartRequest(nsIRequest* aRequest) { GetCallback(mProgressSink); } @@ -2492,7 +2487,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 00a5381133f8cec0de452c31c7151801a1acc0b9..5d3e3d6f566dc724f257beaeb994cedaa7e71139 100644 +index 8b975a8b11bcf2eabbb7fa51a431ff99ff69a5bc..0eeb5924c43a21b8561dd4b68fa89228ddcbc708 100644 --- a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs +++ b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs @@ -108,6 +108,12 @@ EnterprisePoliciesManager.prototype = { @@ -2509,10 +2504,10 @@ index 00a5381133f8cec0de452c31c7151801a1acc0b9..5d3e3d6f566dc724f257beaeb994ceda if (provider.failed) { diff --git a/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp b/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp -index 3aeddf503de749ecd2d87cac2e8185db0ae265d5..85f5f06ca3beee0b4aa6c51551bbe5a4390ed0df 100644 +index 77496e700eebbf286e8c5175ea1f77f8576fde1f..3d13e9b316284eaef5d4c82087117020ca8aba71 100644 --- a/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp +++ b/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp -@@ -487,7 +487,7 @@ void PopulateLanguages() { +@@ -488,7 +488,7 @@ void PopulateLanguages() { // sufficient to only collect this information as the other properties are // just reformats of Navigator::GetAcceptLanguages. nsTArray languages; @@ -2522,7 +2517,7 @@ index 3aeddf503de749ecd2d87cac2e8185db0ae265d5..85f5f06ca3beee0b4aa6c51551bbe5a4 for (const auto& language : languages) { diff --git a/toolkit/components/startup/nsAppStartup.cpp b/toolkit/components/startup/nsAppStartup.cpp -index 76d85f007ba2198921f9deccfa91efc185af183b..689f0656debc6e50078828bde830c357cc7efaec 100644 +index 9297e5eacd65658289dda764ad39e182c22d192b..15926f106850637a5bbd27e56834dc5c82791250 100644 --- a/toolkit/components/startup/nsAppStartup.cpp +++ b/toolkit/components/startup/nsAppStartup.cpp @@ -365,7 +365,7 @@ nsAppStartup::Quit(uint32_t aMode, int aExitCode, bool* aUserAllowedQuit) { @@ -2567,10 +2562,10 @@ index 585a957fd8a1467dc262bd1ca2058584fd8762c9..16ad38c3b7d753c386e091af700d1beb /** diff --git a/toolkit/mozapps/update/UpdateService.sys.mjs b/toolkit/mozapps/update/UpdateService.sys.mjs -index f7a6f11d510b895869673f842f29d9de9e433766..5be30f341b01acfe496a3178bef3f79282d5dfeb 100644 +index eeec31f4d77de0f9622692eeb761392ed54b90ad..8907773fb6212f4e9cc184f87b840c91a0db67b6 100644 --- a/toolkit/mozapps/update/UpdateService.sys.mjs +++ b/toolkit/mozapps/update/UpdateService.sys.mjs -@@ -3895,6 +3895,8 @@ export class UpdateService { +@@ -3811,6 +3811,8 @@ export class UpdateService { } get disabledForTesting() { @@ -2580,10 +2575,10 @@ index f7a6f11d510b895869673f842f29d9de9e433766..5be30f341b01acfe496a3178bef3f792 } diff --git a/toolkit/toolkit.mozbuild b/toolkit/toolkit.mozbuild -index f42ed17a4a75689ae9c8e769d7b6e2c3f654b8ee..5af0877335339407160dd7d10b89bd3d62adff9f 100644 +index c50b7f3932e18da9fad4b673e353974a001e78c4..708e0d75594ddcd62276d4e08c4bd5c64d7f0698 100644 --- a/toolkit/toolkit.mozbuild +++ b/toolkit/toolkit.mozbuild -@@ -156,6 +156,7 @@ if CONFIG["ENABLE_WEBDRIVER"]: +@@ -152,6 +152,7 @@ if CONFIG["ENABLE_WEBDRIVER"]: "/remote", "/testing/firefox-ui", "/testing/marionette", @@ -2592,10 +2587,10 @@ index f42ed17a4a75689ae9c8e769d7b6e2c3f654b8ee..5af0877335339407160dd7d10b89bd3d ] diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp -index 318ee7e293b917534128d2c0fa631ecf369b5119..6049f5a260153f963710f45e6fd2345521e1180b 100644 +index 795fc8669cc6f03a57139745f58963ffefe5aeff..46651bb0b53be9a522e1deb90140bf386a9f8b51 100644 --- a/toolkit/xre/nsAppRunner.cpp +++ b/toolkit/xre/nsAppRunner.cpp -@@ -5640,7 +5640,10 @@ nsresult XREMain::XRE_mainRun() { +@@ -5633,7 +5633,10 @@ nsresult XREMain::XRE_mainRun() { if (!AppShutdown::IsInOrBeyond(ShutdownPhase::AppShutdownConfirmed)) { #ifdef XP_MACOSX @@ -2643,7 +2638,7 @@ 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 01ca680039edcc9f56900a40e0a94cb77a367383..36f3f9a13bc0e3da3285a7a14c824c1bad9a0799 100644 +index e5cc386651e192710b61858ab5625c97a02b92da..e560ad4fef232a26ce1e1b244f4ccea05f4aea71 100644 --- a/uriloader/base/nsDocLoader.cpp +++ b/uriloader/base/nsDocLoader.cpp @@ -812,6 +812,12 @@ void nsDocLoader::DocLoaderIsEmpty(bool aFlushLayout, @@ -2660,7 +2655,7 @@ index 01ca680039edcc9f56900a40e0a94cb77a367383..36f3f9a13bc0e3da3285a7a14c824c1b // 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 2c27ae5c68810557ab4b60efd4b4893433dff77d..29b1916903da6eebdbc38f987fda0d947c31e872 100644 +index c4dc15918032a34d8be9f1cda94a9375466980f6..20756dc9166f9665d408cd007e9df55b5937b73c 100644 --- a/uriloader/exthandler/nsExternalHelperAppService.cpp +++ b/uriloader/exthandler/nsExternalHelperAppService.cpp @@ -112,6 +112,7 @@ @@ -2686,7 +2681,7 @@ index 2c27ae5c68810557ab4b60efd4b4893433dff77d..29b1916903da6eebdbc38f987fda0d94 nsDependentString platformAppPath(aPlatformAppPath); @@ -1485,7 +1492,12 @@ nsresult nsExternalAppHandler::SetUpTempFile(nsIChannel* aChannel) { // Strip off the ".part" from mTempLeafName - mTempLeafName.Truncate(mTempLeafName.Length() - ArrayLength(".part") + 1); + mTempLeafName.Truncate(mTempLeafName.Length() - std::size(".part") + 1); + return CreateSaverForTempFile(); +} @@ -2873,7 +2868,7 @@ index 1c25e9d9a101233f71e92288a0f93125b81ac1c5..22cf67b0f6e3ddd2b3ed725a314ba6a9 } #endif diff --git a/widget/MouseEvents.h b/widget/MouseEvents.h -index 413b3f00a9659a8d0760745a006bc72b3e4de846..3d26a1c5c1c9ff1feea698165085ae1a88517f86 100644 +index c4e510441cf6329b2ad898034fbe39fa1a701ad4..e34d797ee3e3f2985e6d4472afce133e97a0caa4 100644 --- a/widget/MouseEvents.h +++ b/widget/MouseEvents.h @@ -363,6 +363,9 @@ class WidgetMouseEvent : public WidgetMouseEventBase, @@ -2958,7 +2953,7 @@ index e4bdf715e2fb899e97a5bfeb2e147127460d6047..3554f919480278b7353617481c7ce805 } if (aEvent.IsMeta()) { diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp -index 6f5b0ba67b59635256d444f6b56be656c0caac04..90815bb3d3ed2801fc2eba16db168f454dad9d67 100644 +index ad56ab325bb3b3c348259f852453eec1190d892b..272731c25d19e83a2da988ec3176e5227dc4da5b 100644 --- a/widget/gtk/nsFilePicker.cpp +++ b/widget/gtk/nsFilePicker.cpp @@ -21,6 +21,7 @@ @@ -2969,18 +2964,6 @@ index 6f5b0ba67b59635256d444f6b56be656c0caac04..90815bb3d3ed2801fc2eba16db168f45 #include "nsArrayEnumerator.h" #include "nsEnumeratorUtils.h" -@@ -421,6 +422,11 @@ nsFilePicker::Open(nsIFilePickerShownCallback* aCallback) { - return NS_OK; - } - -+ // Don't attempt to open a real file-picker in headless mode. -+ if (gfxPlatform::IsHeadless()) { -+ return NS_ERROR_NOT_AVAILABLE; -+ } -+ - NS_ConvertUTF16toUTF8 title(mTitle); - - GtkWindow* parent_widget = diff --git a/widget/headless/HeadlessCompositorWidget.cpp b/widget/headless/HeadlessCompositorWidget.cpp index bb4ee9175e66dc40de1871a7f91368fe309494a3..747625e3869882300bfbc18b184db5151dd90c1a 100644 --- a/widget/headless/HeadlessCompositorWidget.cpp @@ -3131,7 +3114,7 @@ index facd2bc65afab8ec1aa322faa20a67464964dfb9..d6dea95472bec6006411753c3dfdab2e } // namespace widget diff --git a/widget/headless/HeadlessWidget.cpp b/widget/headless/HeadlessWidget.cpp -index c6095751bc1e9bbe907e64fb634b799cac31bb0a..ce1b995015843babeab0e3bf4e357d45066b3cab 100644 +index b8b3f6a09f3fd480f67c28a2d3c6daa960946324..8b9ea637e18c404254ca8a72dabf860452699096 100644 --- a/widget/headless/HeadlessWidget.cpp +++ b/widget/headless/HeadlessWidget.cpp @@ -111,6 +111,8 @@ void HeadlessWidget::Destroy() { @@ -3143,7 +3126,7 @@ index c6095751bc1e9bbe907e64fb634b799cac31bb0a..ce1b995015843babeab0e3bf4e357d45 nsBaseWidget::OnDestroy(); nsBaseWidget::Destroy(); -@@ -613,5 +615,14 @@ nsresult HeadlessWidget::SynthesizeNativeTouchpadPan( +@@ -591,5 +593,14 @@ nsresult HeadlessWidget::SynthesizeNativeTouchpadPan( return NS_OK; } @@ -3159,12 +3142,12 @@ index c6095751bc1e9bbe907e64fb634b799cac31bb0a..ce1b995015843babeab0e3bf4e357d45 } // namespace widget } // namespace mozilla diff --git a/widget/headless/HeadlessWidget.h b/widget/headless/HeadlessWidget.h -index 9856991ef32f25f51942f8cd664a09bec2192c70..948947a421179e91c51005aeb83ed0d18cfc84ce 100644 +index f07f7284495cf5e48409866aaef6fd4d529568be..daefaa8f58c3c8392ce229c814807bc5fff77dc7 100644 --- a/widget/headless/HeadlessWidget.h +++ b/widget/headless/HeadlessWidget.h -@@ -141,6 +141,9 @@ class HeadlessWidget : public nsBaseWidget { - int32_t aModifierFlags, - nsIObserver* aObserver) override; +@@ -136,6 +136,9 @@ class HeadlessWidget : public nsBaseWidget { + int32_t aModifierFlags, + nsIObserver* aObserver) override; + using SnapshotListener = std::function&&)>; + void SetSnapshotListener(SnapshotListener&& listener); @@ -3173,7 +3156,7 @@ index 9856991ef32f25f51942f8cd664a09bec2192c70..948947a421179e91c51005aeb83ed0d1 ~HeadlessWidget(); bool mEnabled; diff --git a/widget/nsGUIEventIPC.h b/widget/nsGUIEventIPC.h -index cfededb82aa739c38f028bcaea0f3fa39d74f663..d3469a594f9e3b210d230c914de91da4cf9eff82 100644 +index a1f48167403f5bfb30a66809ec3e64bea468fa05..eac7fccf3493e162629918462294456e6ee6b6e1 100644 --- a/widget/nsGUIEventIPC.h +++ b/widget/nsGUIEventIPC.h @@ -244,6 +244,7 @@ struct ParamTraits { diff --git a/browser_patches/firefox/preferences/playwright.cfg b/browser_patches/firefox/preferences/playwright.cfg index 1eb51a0fdb..db47c4f0c3 100644 --- a/browser_patches/firefox/preferences/playwright.cfg +++ b/browser_patches/firefox/preferences/playwright.cfg @@ -88,6 +88,10 @@ pref("geo.provider.testing", true); // THESE ARE NICHE PROPERTIES THAT ARE NICE TO HAVE // ================================================================= +// We never want to have interactive screen capture picker enabled in FF build. +pref("media.getdisplaymedia.screencapturekit.enabled", false); +pref("media.getdisplaymedia.screencapturekit.picker.enabled", false); + // Enable software-backed webgl. See https://phabricator.services.mozilla.com/D164016 pref("webgl.forbid-software", false); diff --git a/browser_patches/webkit/UPSTREAM_CONFIG.sh b/browser_patches/webkit/UPSTREAM_CONFIG.sh index bfca024bd6..ddac1019b9 100644 --- a/browser_patches/webkit/UPSTREAM_CONFIG.sh +++ b/browser_patches/webkit/UPSTREAM_CONFIG.sh @@ -1,3 +1,3 @@ REMOTE_URL="https://github.com/WebKit/WebKit.git" BASE_BRANCH="main" -BASE_REVISION="76c95d6131edd36775a5eac01e297926fc974be8" +BASE_REVISION="71b1107b4656f116936a278cb4948cc2db56998c" diff --git a/browser_patches/webkit/patches/bootstrap.diff b/browser_patches/webkit/patches/bootstrap.diff index 2776a182d7..a067098b83 100644 --- a/browser_patches/webkit/patches/bootstrap.diff +++ b/browser_patches/webkit/patches/bootstrap.diff @@ -887,7 +887,7 @@ index 96af27ece2ac200e11c4311b3ca0d9d3b5a048da..3168f7806fcbdabec07acc5e304bae1e ], "events": [ diff --git a/Source/JavaScriptCore/inspector/protocol/Page.json b/Source/JavaScriptCore/inspector/protocol/Page.json -index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..c14ec5652c0e9d311d94947e38a9e0da701046ef 100644 +index 3d032713a7f3bb9645bfc7d42455a0494b5376c0..913dda5e90b86cc5f8e4ca6881f6db57520a7f66 100644 --- a/Source/JavaScriptCore/inspector/protocol/Page.json +++ b/Source/JavaScriptCore/inspector/protocol/Page.json @@ -20,7 +20,15 @@ @@ -920,9 +920,9 @@ index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..c14ec5652c0e9d311d94947e38a9e0da { "id": "Frame", "type": "object", -@@ -125,6 +139,50 @@ - { "name": "secure", "type": "boolean", "description": "True if cookie is secure." }, - { "name": "sameSite", "$ref": "CookieSameSitePolicy", "description": "Cookie Same-Site policy." } +@@ -126,6 +140,50 @@ + { "name": "sameSite", "$ref": "CookieSameSitePolicy", "description": "Cookie Same-Site policy." }, + { "name": "partitionKey", "type": "string", "optional": true, "description": "Cookie partition key. If null and partitioned property is true, then key must be computed." } ] + }, + { @@ -971,7 +971,7 @@ index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..c14ec5652c0e9d311d94947e38a9e0da } ], "commands": [ -@@ -144,6 +202,14 @@ +@@ -145,6 +203,14 @@ { "name": "revalidateAllResources", "type": "boolean", "optional": true, "description": "If true, all cached subresources will be revalidated when the main resource loads. Otherwise, only expired cached subresources will be revalidated (the default behavior for most WebKit clients)." } ] }, @@ -986,7 +986,7 @@ index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..c14ec5652c0e9d311d94947e38a9e0da { "name": "navigate", "description": "Navigates current page to the given URL.", -@@ -160,6 +226,14 @@ +@@ -161,6 +227,14 @@ { "name": "value", "type": "string", "optional": true, "description": "Value to override the user agent with. If this value is not provided, the override is removed. Overrides are removed when Web Inspector closes/disconnects." } ] }, @@ -1001,7 +1001,7 @@ index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..c14ec5652c0e9d311d94947e38a9e0da { "name": "overrideSetting", "description": "Allows the frontend to override the inspected page's settings.", -@@ -283,6 +357,28 @@ +@@ -285,6 +359,28 @@ { "name": "media", "type": "string", "description": "Media type to emulate. Empty string disables the override." } ] }, @@ -1030,7 +1030,7 @@ index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..c14ec5652c0e9d311d94947e38a9e0da { "name": "snapshotNode", "description": "Capture a snapshot of the specified node that does not include unrelated layers.", -@@ -303,7 +399,8 @@ +@@ -305,7 +401,8 @@ { "name": "y", "type": "integer", "description": "Y coordinate" }, { "name": "width", "type": "integer", "description": "Rectangle width" }, { "name": "height", "type": "integer", "description": "Rectangle height" }, @@ -1040,7 +1040,7 @@ index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..c14ec5652c0e9d311d94947e38a9e0da ], "returns": [ { "name": "dataURL", "type": "string", "description": "Base64-encoded image data (PNG)." } -@@ -321,12 +418,64 @@ +@@ -323,12 +420,64 @@ { "name": "setScreenSizeOverride", "description": "Overrides screen size exposed to DOM and used in media queries for testing with provided values.", @@ -1106,7 +1106,7 @@ index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..c14ec5652c0e9d311d94947e38a9e0da } ], "events": [ -@@ -334,14 +483,16 @@ +@@ -336,14 +485,16 @@ "name": "domContentEventFired", "targetTypes": ["page"], "parameters": [ @@ -1125,7 +1125,7 @@ index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..c14ec5652c0e9d311d94947e38a9e0da ] }, { -@@ -351,6 +502,14 @@ +@@ -353,6 +504,14 @@ { "name": "frame", "$ref": "Frame", "description": "Frame object." } ] }, @@ -1140,7 +1140,7 @@ index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..c14ec5652c0e9d311d94947e38a9e0da { "name": "frameDetached", "description": "Fired when frame has been detached from its parent.", -@@ -379,7 +538,8 @@ +@@ -381,7 +540,8 @@ "targetTypes": ["page"], "parameters": [ { "name": "frameId", "$ref": "Network.FrameId", "description": "Id of the frame that has scheduled a navigation." }, @@ -1150,7 +1150,7 @@ index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..c14ec5652c0e9d311d94947e38a9e0da ] }, { -@@ -390,6 +550,22 @@ +@@ -392,6 +552,22 @@ { "name": "frameId", "$ref": "Network.FrameId", "description": "Id of the frame that has cleared its scheduled navigation." } ] }, @@ -1173,7 +1173,7 @@ index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..c14ec5652c0e9d311d94947e38a9e0da { "name": "defaultUserPreferencesDidChange", "description": "Fired when the default value of a user preference changes at the system level.", -@@ -397,6 +573,42 @@ +@@ -399,6 +575,42 @@ "parameters": [ { "name": "preferences", "type": "array", "items": { "$ref": "UserPreference" }, "description": "List of user preferences that can be overriden and their new system (default) values." } ] @@ -1692,19 +1692,10 @@ index 24891ad836086fd23024fcb4d08ca63f6974c812..29f4b6b1923383fec7a99d28a4e815dc private: enum ArgumentRequirement { ArgumentRequired, ArgumentNotRequired }; diff --git a/Source/ThirdParty/libwebrtc/CMakeLists.txt b/Source/ThirdParty/libwebrtc/CMakeLists.txt -index 347f61b918ee705f510c9e28d49acc5b3aac1f3c..b1718ebbdd3157938895b281497642de08216bbd 100644 +index d21b38eb4e5f27c12ca755799669883e71ce6de2..89cebf78b4599e5595ba570286a82e6aaa0f0f38 100644 --- a/Source/ThirdParty/libwebrtc/CMakeLists.txt +++ b/Source/ThirdParty/libwebrtc/CMakeLists.txt -@@ -5,6 +5,8 @@ file(MAKE_DIRECTORY ${libwebrtc_DERIVED_SOURCES_DIR}) - - enable_language(ASM) - -+add_definitions(-DLIBYUV_DISABLE_SVE) -+ - if (NOT APPLE) - find_package(LibVpx 1.10.0) - if (NOT LIBVPX_FOUND) -@@ -601,6 +603,11 @@ set(webrtc_SOURCES +@@ -532,6 +532,11 @@ set(webrtc_SOURCES Source/third_party/crc32c/src/src/crc32c.cc Source/third_party/crc32c/src/src/crc32c_portable.cc Source/third_party/crc32c/src/src/crc32c_sse42.cc @@ -1716,13 +1707,22 @@ index 347f61b918ee705f510c9e28d49acc5b3aac1f3c..b1718ebbdd3157938895b281497642de Source/third_party/libyuv/source/compare.cc Source/third_party/libyuv/source/compare_common.cc Source/third_party/libyuv/source/compare_gcc.cc -@@ -2476,6 +2483,10 @@ set(webrtc_INCLUDE_DIRECTORIES PRIVATE +@@ -695,7 +700,6 @@ set(webrtc_SOURCES + Source/webrtc/api/video_codecs/builtin_video_encoder_factory.cc + Source/webrtc/api/video_codecs/h264_profile_level_id.cc + Source/webrtc/api/video_codecs/h265_profile_tier_level.cc +- Source/webrtc/api/video_codecs/libaom_av1_encoder_factory.cc + Source/webrtc/api/video_codecs/scalability_mode.cc + Source/webrtc/api/video_codecs/scalability_mode_helper.cc + Source/webrtc/api/video_codecs/sdp_video_format.cc +@@ -2354,6 +2358,11 @@ set(webrtc_INCLUDE_DIRECTORIES PRIVATE Source/third_party/libsrtp/config Source/third_party/libsrtp/crypto/include Source/third_party/libsrtp/include +# Playwright begin + Source/third_party/libwebm + Source/third_party/libvpx/source/libvpx ++ Source/third_party/libvpx/source/libvpx/third_party/googletest/src/include +# Playwright end Source/third_party/libyuv/include Source/third_party/opus/src/celt @@ -1741,7 +1741,7 @@ index 0c5c8e689bdddec766f9de5bffd4444a5e068d77..330dd1f585e530722178c65c883641a2 // FIXME: Set WEBRTC_USE_BUILTIN_ISAC_FIX and WEBRTC_USE_BUILTIN_ISAC_FLOAT for iOS and Mac diff --git a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp -index c6fb5ee1c32a896cd247d339ce5471b0c0628a89..e234adaff73a7302aa8847f32ad1fec545b087b1 100644 +index 6c754858a3ea883a65ad022ce16b6c45ae65ee35..15f968472712e1a2a88672ed290b103cf9d620ec 100644 --- a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp +++ b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp @@ -421,3 +421,16 @@ __ZNK8mkvmuxer7Segment16GetTrackByNumberEy @@ -1762,7 +1762,7 @@ index c6fb5ee1c32a896cd247d339ce5471b0c0628a89..e234adaff73a7302aa8847f32ad1fec5 +_vpx_codec_version_str +_vpx_codec_vp8_cx diff --git a/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj b/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj -index 10f3107c5688e799c6466a1e74f834637b39d2b2..ac3ce66727fb6de865fe1df7b94ed1debba56212 100644 +index 635e7cd52a3eae41c82d989cda47563d0750dab5..8a10d9970972598bf270e12cce5fd55066c8fede 100644 --- a/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj +++ b/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj @@ -35,6 +35,20 @@ @@ -1786,7 +1786,7 @@ index 10f3107c5688e799c6466a1e74f834637b39d2b2..ac3ce66727fb6de865fe1df7b94ed1de /* Begin PBXBuildFile section */ 2D6BFF60280A93DF00A1A74F /* video_coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 4131C45B234C81710028A615 /* video_coding.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2D6BFF61280A93EC00A1A74F /* video_codec_initializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4131C45E234C81720028A615 /* video_codec_initializer.h */; settings = {ATTRIBUTES = (Public, ); }; }; -@@ -5653,6 +5667,13 @@ +@@ -5618,6 +5632,13 @@ remoteGlobalIDString = DDF30D0527C5C003006A526F; remoteInfo = absl; }; @@ -1800,7 +1800,7 @@ index 10f3107c5688e799c6466a1e74f834637b39d2b2..ac3ce66727fb6de865fe1df7b94ed1de /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ -@@ -23816,6 +23837,7 @@ +@@ -23874,6 +23895,7 @@ ); dependencies = ( 410B3827292B73E90003E515 /* PBXTargetDependency */, @@ -1808,7 +1808,7 @@ index 10f3107c5688e799c6466a1e74f834637b39d2b2..ac3ce66727fb6de865fe1df7b94ed1de DD2E76E827C6B69A00F2A74C /* PBXTargetDependency */, CDEBB4CC24C01AB400ADBD44 /* PBXTargetDependency */, 411ED040212E0811004320BA /* PBXTargetDependency */, -@@ -23898,6 +23920,7 @@ +@@ -23956,6 +23978,7 @@ 4460B8B92B155B6A00392062 /* vp9_qp_parser_fuzzer */, 444A6EF02AEADFC9005FE121 /* vp9_replay_fuzzer */, 44945C512B9BA1C300447FFD /* webm_fuzzer */, @@ -1816,7 +1816,7 @@ index 10f3107c5688e799c6466a1e74f834637b39d2b2..ac3ce66727fb6de865fe1df7b94ed1de ); }; /* End PBXProject section */ -@@ -24001,6 +24024,23 @@ +@@ -24059,6 +24082,23 @@ shellPath = /bin/sh; shellScript = "[ -z \"${WK_DERIVED_SDK_HEADERS_DIR}\" -o -d \"${WK_DERIVED_SDK_HEADERS_DIR}\" ] && touch \"${SCRIPT_OUTPUT_FILE_0}\"\n"; }; @@ -1840,7 +1840,7 @@ index 10f3107c5688e799c6466a1e74f834637b39d2b2..ac3ce66727fb6de865fe1df7b94ed1de /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ -@@ -26864,6 +26904,11 @@ +@@ -26874,6 +26914,11 @@ target = DDF30D0527C5C003006A526F /* absl */; targetProxy = DD2E76E727C6B69A00F2A74C /* PBXContainerItemProxy */; }; @@ -1852,7 +1852,7 @@ index 10f3107c5688e799c6466a1e74f834637b39d2b2..ac3ce66727fb6de865fe1df7b94ed1de /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ -@@ -27439,6 +27484,27 @@ +@@ -27449,6 +27494,27 @@ }; name = Production; }; @@ -1880,7 +1880,7 @@ index 10f3107c5688e799c6466a1e74f834637b39d2b2..ac3ce66727fb6de865fe1df7b94ed1de FB39D0711200ED9200088E69 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 5D7C59C71208C68B001C873E /* DebugRelease.xcconfig */; -@@ -27741,6 +27807,16 @@ +@@ -27751,6 +27817,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Production; }; @@ -1898,30 +1898,31 @@ index 10f3107c5688e799c6466a1e74f834637b39d2b2..ac3ce66727fb6de865fe1df7b94ed1de isa = XCConfigurationList; buildConfigurations = ( diff --git a/Source/ThirdParty/skia/CMakeLists.txt b/Source/ThirdParty/skia/CMakeLists.txt -index 2f20123e16626a3a1b76534ea4c0c38522228e06..3ab6fa2fe2a297e98597985903ba7ba735d6d436 100644 +index b7e56daffbaac1c8c5bc94bd76826fea1826918b..5365dbfeae72ce5dc6be37e2f07a973bccddfd78 100644 --- a/Source/ThirdParty/skia/CMakeLists.txt +++ b/Source/ThirdParty/skia/CMakeLists.txt -@@ -5,6 +5,7 @@ if (NOT WIN32) - find_package(Freetype 2.9.0 REQUIRED) - find_package(Fontconfig 2.13.0 REQUIRED) +@@ -10,6 +10,8 @@ if (USE_SKIA_ENCODERS) + find_package(WebP REQUIRED COMPONENTS mux) endif () -+find_package(Threads REQUIRED) - find_package(WebP REQUIRED COMPONENTS mux) ++find_package(Threads REQUIRED) ++ if (ANDROID) -@@ -950,6 +951,7 @@ endif () + find_package(EXPAT REQUIRED) + endif () +@@ -1054,6 +1056,7 @@ endif () target_link_libraries(Skia PRIVATE JPEG::JPEG PNG::PNG + Threads::Threads - WebP::mux ) + WEBKIT_ADD_TARGET_CXX_FLAGS(Skia diff --git a/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml b/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml -index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438ea007b480 100644 +index a18d2cc93197ef89e9148907cdc47cf7c4359085..d377bee3c2c192e1ed6021684077078903bf422d 100644 --- a/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml +++ b/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml -@@ -613,6 +613,7 @@ ApplePayEnabled: +@@ -628,6 +628,7 @@ ApplePayEnabled: richJavaScript: true # FIXME: This is on by default in WebKit2 PLATFORM(COCOA). Perhaps we should consider turning it on for WebKitLegacy as well. @@ -1929,7 +1930,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e AsyncClipboardAPIEnabled: type: bool status: mature -@@ -623,7 +624,7 @@ AsyncClipboardAPIEnabled: +@@ -638,7 +639,7 @@ AsyncClipboardAPIEnabled: default: false WebKit: "PLATFORM(COCOA) || PLATFORM(GTK)" : true @@ -1938,7 +1939,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e WebCore: default: false -@@ -868,13 +869,10 @@ BlobFileAccessEnforcementEnabled: +@@ -883,13 +884,10 @@ BlobFileAccessEnforcementEnabled: sharedPreferenceForWebProcess: true defaultValue: WebKitLegacy: @@ -1952,7 +1953,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e default: false BlobRegistryTopOriginPartitioningEnabled: -@@ -2194,6 +2192,7 @@ CrossOriginEmbedderPolicyEnabled: +@@ -2257,6 +2255,7 @@ CrossOriginEmbedderPolicyEnabled: WebCore: default: false @@ -1960,7 +1961,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e CrossOriginOpenerPolicyEnabled: type: bool status: stable -@@ -2234,7 +2233,7 @@ CustomPasteboardDataEnabled: +@@ -2297,7 +2296,7 @@ CustomPasteboardDataEnabled: WebKitLegacy: default: false WebKit: @@ -1969,7 +1970,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e default: false DNSPrefetchingEnabled: -@@ -2279,6 +2278,7 @@ DOMAudioSessionFullEnabled: +@@ -2342,6 +2341,7 @@ DOMAudioSessionFullEnabled: WebCore: default: false @@ -1977,7 +1978,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e DOMPasteAccessRequestsEnabled: type: bool status: internal -@@ -2290,7 +2290,7 @@ DOMPasteAccessRequestsEnabled: +@@ -2353,7 +2353,7 @@ DOMPasteAccessRequestsEnabled: default: false WebKit: "PLATFORM(IOS) || PLATFORM(MAC) || PLATFORM(GTK) || PLATFORM(VISION)": true @@ -1986,7 +1987,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e WebCore: default: false -@@ -2639,7 +2639,7 @@ DirectoryUploadEnabled: +@@ -2691,7 +2691,7 @@ DirectoryUploadEnabled: WebKitLegacy: default: false WebKit: @@ -1995,7 +1996,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e default: false WebCore: default: false -@@ -3103,10 +3103,10 @@ FullScreenEnabled: +@@ -3144,10 +3144,10 @@ FullScreenEnabled: WebKitLegacy: default: false WebKit: @@ -2008,7 +2009,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e default: false sharedPreferenceForWebProcess: true -@@ -3795,6 +3795,7 @@ InspectorAttachmentSide: +@@ -3852,6 +3852,7 @@ InspectorAttachmentSide: WebKit: default: 0 @@ -2016,7 +2017,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e InspectorStartsAttached: type: bool status: embedder -@@ -3802,7 +3803,7 @@ InspectorStartsAttached: +@@ -3859,7 +3860,7 @@ InspectorStartsAttached: exposed: [ WebKit ] defaultValue: WebKit: @@ -2025,7 +2026,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e InspectorWindowFrame: type: String -@@ -4153,9 +4154,10 @@ LayoutViewportHeightExpansionFactor: +@@ -4210,9 +4211,10 @@ LayoutViewportHeightExpansionFactor: WebCore: default: 0 @@ -2037,7 +2038,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e category: html humanReadableName: "Lazy iframe loading" humanReadableDescription: "Enable lazy iframe loading support" -@@ -4163,9 +4165,9 @@ LazyIframeLoadingEnabled: +@@ -4220,9 +4222,9 @@ LazyIframeLoadingEnabled: WebKitLegacy: default: true WebKit: @@ -2049,7 +2050,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e LazyImageLoadingEnabled: type: bool -@@ -5695,7 +5697,7 @@ PermissionsAPIEnabled: +@@ -5781,7 +5783,7 @@ PermissionsAPIEnabled: WebKitLegacy: default: false WebKit: @@ -2058,7 +2059,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e default: false WebCore: default: false -@@ -5758,6 +5760,19 @@ PitchCorrectionAlgorithm: +@@ -5844,6 +5846,19 @@ PitchCorrectionAlgorithm: WebCore: default: MediaPlayerEnums::PitchCorrectionAlgorithm::BestAllAround @@ -2078,7 +2079,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e PointerLockOptionsEnabled: type: bool status: stable -@@ -6308,7 +6323,7 @@ ScreenOrientationAPIEnabled: +@@ -6435,7 +6450,7 @@ ScreenOrientationAPIEnabled: WebKitLegacy: default: false WebKit: @@ -2087,7 +2088,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e WebCore: default: false sharedPreferenceForWebProcess: true -@@ -7704,6 +7719,7 @@ UseCGDisplayListsForDOMRendering: +@@ -7849,6 +7864,7 @@ UseCGDisplayListsForDOMRendering: default: true sharedPreferenceForWebProcess: true @@ -2095,7 +2096,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e UseGPUProcessForCanvasRenderingEnabled: type: bool status: stable -@@ -7716,7 +7732,7 @@ UseGPUProcessForCanvasRenderingEnabled: +@@ -7861,7 +7877,7 @@ UseGPUProcessForCanvasRenderingEnabled: defaultValue: WebKit: "ENABLE(GPU_PROCESS_BY_DEFAULT)": true @@ -2104,15 +2105,15 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e default: false UseGPUProcessForDOMRenderingEnabled: -@@ -7759,6 +7775,7 @@ UseGPUProcessForMediaEnabled: - "ENABLE(GPU_PROCESS_BY_DEFAULT)": true - default: false +@@ -7906,6 +7922,7 @@ UseGPUProcessForMediaEnabled: + sharedPreferenceForWebProcess: true + mediaPlaybackRelated: true +# Playwright: force-disable on Windows. UseGPUProcessForWebGLEnabled: type: bool status: internal -@@ -7770,7 +7787,7 @@ UseGPUProcessForWebGLEnabled: +@@ -7917,7 +7934,7 @@ UseGPUProcessForWebGLEnabled: default: false WebKit: "ENABLE(GPU_PROCESS_BY_DEFAULT) && ENABLE(GPU_PROCESS_WEBGL_BY_DEFAULT)": true @@ -2122,7 +2123,7 @@ index 97c903534c16864727f7ea5528ab56bfa5b3104a..fd0f0232df11883c9627ed71950f438e WebCore: "ENABLE(GPU_PROCESS_BY_DEFAULT) && ENABLE(GPU_PROCESS_WEBGL_BY_DEFAULT)": true diff --git a/Source/WTF/wtf/PlatformEnable.h b/Source/WTF/wtf/PlatformEnable.h -index 05707f446c2ad5a709f78fd7950a3c099f5f02e2..dae9ff949061a18cd149d63fe937c1cbfc302f4e 100644 +index 960b0ee2c7d012bb2ce8f8d22d0cc43176e6285d..9bc7ad7d36dfe90d296143567252bece6f1d56fb 100644 --- a/Source/WTF/wtf/PlatformEnable.h +++ b/Source/WTF/wtf/PlatformEnable.h @@ -409,7 +409,7 @@ @@ -2144,10 +2145,10 @@ index 05707f446c2ad5a709f78fd7950a3c099f5f02e2..dae9ff949061a18cd149d63fe937c1cb #if !defined(ENABLE_TOUCH_ACTION_REGIONS) diff --git a/Source/WTF/wtf/PlatformEnableCocoa.h b/Source/WTF/wtf/PlatformEnableCocoa.h -index 93435c6b18c4abb7934ac880a6bbb86b05a33756..b81515175fd55e4460a5ef398f9d3af28aeb70e6 100644 +index e744e5190e18a46421335614ba7e46abd9321ede..3da0354adfac2df0570273859448435a0ecfc869 100644 --- a/Source/WTF/wtf/PlatformEnableCocoa.h +++ b/Source/WTF/wtf/PlatformEnableCocoa.h -@@ -802,7 +802,7 @@ +@@ -808,7 +808,7 @@ #endif #if !defined(ENABLE_SEC_ITEM_SHIM) @@ -2157,19 +2158,10 @@ index 93435c6b18c4abb7934ac880a6bbb86b05a33756..b81515175fd55e4460a5ef398f9d3af2 #if !defined(ENABLE_SERVER_PRECONNECT) diff --git a/Source/WTF/wtf/PlatformHave.h b/Source/WTF/wtf/PlatformHave.h -index 1779062c715c2232d13bb8c8e21dd82d932817df..8e35f41126a904460b812cdcef9350f224cc40ce 100644 +index 26ff5ab72c69aa405a6834b4ba1a6192f3030f2f..8c60bc012661a840bea7524b454c92c67fdd6919 100644 --- a/Source/WTF/wtf/PlatformHave.h +++ b/Source/WTF/wtf/PlatformHave.h -@@ -433,7 +433,7 @@ - #define HAVE_FOUNDATION_WITH_SAME_SITE_COOKIE_SUPPORT 1 - #endif - --#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(HAIKU) || PLATFORM(WPE) -+#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(HAIKU) || PLATFORM(WPE) || PLATFORM(WIN) - #define HAVE_OS_DARK_MODE_SUPPORT 1 - #endif - -@@ -1234,7 +1234,8 @@ +@@ -1230,7 +1230,8 @@ #endif #if PLATFORM(MAC) @@ -2196,10 +2188,10 @@ index 007b8fe3292f326504013be8198ae020f7aacf35..1c722c473732ffe05fdb61010fa4417e namespace Unicode { diff --git a/Source/WebCore/DerivedSources.make b/Source/WebCore/DerivedSources.make -index f3c5f1acd4bcc6b51fa2175ac1f786280023d24b..041585f28cf7a38d4261b27b5e9be5e3b8cc65fc 100644 +index 18d8c41490fb662d6f5bfb14689469d53244fb82..73ce4360870e6053f79a0c6d6055ffd17da9f7b7 100644 --- a/Source/WebCore/DerivedSources.make +++ b/Source/WebCore/DerivedSources.make -@@ -1220,6 +1220,10 @@ JS_BINDING_IDLS := \ +@@ -1218,6 +1218,10 @@ JS_BINDING_IDLS := \ $(WebCore)/dom/SubscriberCallback.idl \ $(WebCore)/dom/SubscriptionObserver.idl \ $(WebCore)/dom/SubscriptionObserverCallback.idl \ @@ -2210,7 +2202,7 @@ index f3c5f1acd4bcc6b51fa2175ac1f786280023d24b..041585f28cf7a38d4261b27b5e9be5e3 $(WebCore)/dom/Text.idl \ $(WebCore)/dom/TextDecoder.idl \ $(WebCore)/dom/TextDecoderStream.idl \ -@@ -1814,9 +1818,6 @@ JS_BINDING_IDLS := \ +@@ -1812,9 +1816,6 @@ JS_BINDING_IDLS := \ ADDITIONAL_BINDING_IDLS = \ DocumentTouch.idl \ GestureEvent.idl \ @@ -2272,7 +2264,7 @@ index b2b0391c120d527a9ab4bc6daf8bff7ea5d03cf7..d490a95f89f21536fce4f403b8639916 [self sendSpeechEndIfNeeded]; diff --git a/Source/WebCore/PlatformWPE.cmake b/Source/WebCore/PlatformWPE.cmake -index 9a7c34a144f55c4d333ebd6f5e86aa9fcec3f9f4..8c55646049ac55cd8dc483ce75bbb12030ef7c68 100644 +index 7bbcd501126a7b83986f5d1f5a077779441dc1fe..13e68ac853603d8e7da1b42f5c8073ebdab83264 100644 --- a/Source/WebCore/PlatformWPE.cmake +++ b/Source/WebCore/PlatformWPE.cmake @@ -60,6 +60,8 @@ list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS @@ -2283,12 +2275,12 @@ index 9a7c34a144f55c4d333ebd6f5e86aa9fcec3f9f4..8c55646049ac55cd8dc483ce75bbb120 + platform/wpe/SelectionData.h ) - set(CSS_VALUE_PLATFORM_DEFINES "HAVE_OS_DARK_MODE_SUPPORT=1") + set(WebCore_USER_AGENT_SCRIPTS_DEPENDENCIES ${WEBCORE_DIR}/platform/wpe/RenderThemeWPE.cpp) diff --git a/Source/WebCore/SourcesCocoa.txt b/Source/WebCore/SourcesCocoa.txt -index c22eb8b9b958976182c3ce078035f3f6238bb297..fcf83f02fdff9b91143d264a2e72ac2062125541 100644 +index 79893c978df4277dacc7a90f9b0bca73cee6458a..949f92cc972e59af642e548b00d6788568513fa0 100644 --- a/Source/WebCore/SourcesCocoa.txt +++ b/Source/WebCore/SourcesCocoa.txt -@@ -721,3 +721,9 @@ testing/cocoa/WebViewVisualIdentificationOverlay.mm +@@ -728,3 +728,9 @@ testing/cocoa/WebViewVisualIdentificationOverlay.mm platform/graphics/angle/GraphicsContextGLANGLE.cpp @no-unify platform/graphics/cocoa/GraphicsContextGLCocoa.mm @no-unify platform/graphics/cv/GraphicsContextGLCVCocoa.mm @no-unify @@ -2299,10 +2291,10 @@ index c22eb8b9b958976182c3ce078035f3f6238bb297..fcf83f02fdff9b91143d264a2e72ac20 +JSTouchList.cpp +// Playwright end diff --git a/Source/WebCore/SourcesGTK.txt b/Source/WebCore/SourcesGTK.txt -index cafba5ad19fcce8184f9caeaf50445b3b2065522..75fa95a4f8248ad2d19c2c19dc22166a843f03bb 100644 +index 5838137f6ae130f6ce1e97942078641096d406b6..fcdc7611e36297c1b836ccf44a073781a04809ff 100644 --- a/Source/WebCore/SourcesGTK.txt +++ b/Source/WebCore/SourcesGTK.txt -@@ -112,3 +112,10 @@ platform/unix/LoggingUnix.cpp +@@ -113,3 +113,10 @@ platform/unix/LoggingUnix.cpp platform/unix/SharedMemoryUnix.cpp platform/xdg/MIMETypeRegistryXdg.cpp @@ -2345,10 +2337,10 @@ index 3c68a8ed10cd24cffd26b4b70c3adad8eb6ba91f..b36dee714fdceba5248922bfb6d20469 +JSSpeechSynthesisEventInit.cpp +// Playwright: end. diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj -index a30a792bb3990e024a09567fa5f21631858fb58d..55746a752863d94b440e8b401309dd69484af2c0 100644 +index c10b3c0d8d918e2ca0c33e4820b492465ef2fd97..51a6ace79f76cfbee26c96fc75cd9b5c71ba243c 100644 --- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj +++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj -@@ -6329,6 +6329,13 @@ +@@ -6358,6 +6358,13 @@ EDEC98030AED7E170059137F /* WebCorePrefix.h in Headers */ = {isa = PBXBuildFile; fileRef = EDEC98020AED7E170059137F /* WebCorePrefix.h */; }; EE0C7E042CE845CB0043DAF8 /* CSSPositionTryRule.h in Headers */ = {isa = PBXBuildFile; fileRef = EE0C7E002CE845CB0043DAF8 /* CSSPositionTryRule.h */; }; EFCC6C8F20FE914400A2321B /* CanvasActivityRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = EFCC6C8D20FE914000A2321B /* CanvasActivityRecord.h */; settings = {ATTRIBUTES = (Private, ); }; }; @@ -2362,7 +2354,7 @@ index a30a792bb3990e024a09567fa5f21631858fb58d..55746a752863d94b440e8b401309dd69 F12171F616A8CF0B000053CA /* WebVTTElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F12171F416A8BC63000053CA /* WebVTTElement.h */; }; F32BDCD92363AACA0073B6AE /* UserGestureEmulationScope.h in Headers */ = {isa = PBXBuildFile; fileRef = F32BDCD72363AACA0073B6AE /* UserGestureEmulationScope.h */; }; F344C7141125B82C00F26EEE /* InspectorFrontendClient.h in Headers */ = {isa = PBXBuildFile; fileRef = F344C7121125B82C00F26EEE /* InspectorFrontendClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; -@@ -20816,6 +20823,14 @@ +@@ -20908,6 +20915,14 @@ EE7A169F2C607BFA0057B563 /* StartViewTransitionOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StartViewTransitionOptions.h; sourceTree = ""; }; EFB7287B2124C73D005C2558 /* CanvasActivityRecord.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CanvasActivityRecord.cpp; sourceTree = ""; }; EFCC6C8D20FE914000A2321B /* CanvasActivityRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CanvasActivityRecord.h; sourceTree = ""; }; @@ -2377,7 +2369,7 @@ index a30a792bb3990e024a09567fa5f21631858fb58d..55746a752863d94b440e8b401309dd69 F12171F316A8BC63000053CA /* WebVTTElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebVTTElement.cpp; sourceTree = ""; }; F12171F416A8BC63000053CA /* WebVTTElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebVTTElement.h; sourceTree = ""; }; F32BDCD52363AAC90073B6AE /* UserGestureEmulationScope.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UserGestureEmulationScope.cpp; sourceTree = ""; }; -@@ -28555,6 +28570,11 @@ +@@ -28654,6 +28669,11 @@ BC4A5324256055590028C592 /* TextDirectionSubmenuInclusionBehavior.h */, 2D4F96F11A1ECC240098BF88 /* TextIndicator.cpp */, 2D4F96F21A1ECC240098BF88 /* TextIndicator.h */, @@ -2389,16 +2381,16 @@ index a30a792bb3990e024a09567fa5f21631858fb58d..55746a752863d94b440e8b401309dd69 F48570A42644C76D00C05F71 /* TranslationContextMenuInfo.h */, F4E1965F21F26E4E00285078 /* UndoItem.cpp */, 2ECDBAD521D8906300F00ECD /* UndoItem.h */, -@@ -35368,6 +35388,8 @@ +@@ -35537,6 +35557,8 @@ 29E4D8DF16B0940F00C84704 /* PlatformSpeechSynthesizer.h */, 1AD8F81A11CAB9E900E93E54 /* PlatformStrategies.cpp */, 1AD8F81911CAB9E900E93E54 /* PlatformStrategies.h */, + F050E16623AC9C070011CE47 /* PlatformTouchEvent.h */, + F050E17623AD70C40011CE47 /* PlatformTouchPoint.h */, + FE3DC9932D0C063C0021B6FC /* PlatformTZoneImpls.cpp */, 0FD7C21D23CE41E30096D102 /* PlatformWheelEvent.cpp */, 935C476A09AC4D4F00A6AAB4 /* PlatformWheelEvent.h */, - F491A66A2A9FEFA300F96146 /* PlatformWheelEvent.serialization.in */, -@@ -38149,6 +38171,7 @@ +@@ -38326,6 +38348,7 @@ AD6E71AB1668899D00320C13 /* DocumentSharedObjectPool.h */, 6BDB5DC1227BD3B800919770 /* DocumentStorageAccess.cpp */, 6BDB5DC0227BD3B800919770 /* DocumentStorageAccess.h */, @@ -2406,7 +2398,7 @@ index a30a792bb3990e024a09567fa5f21631858fb58d..55746a752863d94b440e8b401309dd69 7CE7FA5B1EF882300060C9D6 /* DocumentTouch.cpp */, 7CE7FA591EF882300060C9D6 /* DocumentTouch.h */, A8185F3209765765005826D9 /* DocumentType.cpp */, -@@ -43001,6 +43024,8 @@ +@@ -43197,6 +43220,8 @@ F4E90A3C2B52038E002DA469 /* PlatformTextAlternatives.h in Headers */, 0F7D07331884C56C00B4AF86 /* PlatformTextTrack.h in Headers */, 074E82BB18A69F0E007EF54C /* PlatformTimeRanges.h in Headers */, @@ -2415,7 +2407,7 @@ index a30a792bb3990e024a09567fa5f21631858fb58d..55746a752863d94b440e8b401309dd69 CDD08ABD277E542600EA3755 /* PlatformTrackConfiguration.h in Headers */, CD1F9B022700323D00617EB6 /* PlatformVideoColorPrimaries.h in Headers */, CD1F9B01270020B700617EB6 /* PlatformVideoColorSpace.h in Headers */, -@@ -44322,6 +44347,7 @@ +@@ -44527,6 +44552,7 @@ 0F54DD081881D5F5003EEDBB /* Touch.h in Headers */, 71B7EE0D21B5C6870031C1EF /* TouchAction.h in Headers */, 0F54DD091881D5F5003EEDBB /* TouchEvent.h in Headers */, @@ -2423,7 +2415,7 @@ index a30a792bb3990e024a09567fa5f21631858fb58d..55746a752863d94b440e8b401309dd69 0F54DD0A1881D5F5003EEDBB /* TouchList.h in Headers */, 070334D71459FFD5008D8D45 /* TrackBase.h in Headers */, BE88E0C21715CE2600658D98 /* TrackListBase.h in Headers */, -@@ -45498,6 +45524,8 @@ +@@ -45707,6 +45733,8 @@ 2D22830323A8470700364B7E /* CursorMac.mm in Sources */, 5CBD59592280E926002B22AA /* CustomHeaderFields.cpp in Sources */, 07E4BDBF2A3A5FAB000D5509 /* DictationCaretAnimator.cpp in Sources */, @@ -2432,7 +2424,7 @@ index a30a792bb3990e024a09567fa5f21631858fb58d..55746a752863d94b440e8b401309dd69 7CE6CBFD187F394900D46BF5 /* FormatConverter.cpp in Sources */, 4667EA3E2968D9DA00BAB1E2 /* GameControllerHapticEffect.mm in Sources */, 46FE73D32968E52000B8064C /* GameControllerHapticEngines.mm in Sources */, -@@ -45587,6 +45615,9 @@ +@@ -45798,6 +45826,9 @@ CE88EE262414467B007F29C2 /* TextAlternativeWithRange.mm in Sources */, BE39137129B267F500FA5D4F /* TextTransformCocoa.cpp in Sources */, 51DF6D800B92A18E00C2DC85 /* ThreadCheck.mm in Sources */, @@ -2443,7 +2435,7 @@ index a30a792bb3990e024a09567fa5f21631858fb58d..55746a752863d94b440e8b401309dd69 538EC8021F96AF81004D22A8 /* UnifiedSource1.cpp in Sources */, 538EC8051F96AF81004D22A8 /* UnifiedSource2-mm.mm in Sources */, diff --git a/Source/WebCore/accessibility/AccessibilityObject.cpp b/Source/WebCore/accessibility/AccessibilityObject.cpp -index 8d5aae2faffe469a44fdeee680b0a608487eb750..9389e0f7a372120cea95d95ee74ad59ff0810f62 100644 +index f9800e07148d1c3b269a129d90147a1763aa2119..d9e2a2a01162c1b4106b06281dc1c61fbe11ea13 100644 --- a/Source/WebCore/accessibility/AccessibilityObject.cpp +++ b/Source/WebCore/accessibility/AccessibilityObject.cpp @@ -70,6 +70,7 @@ @@ -2454,7 +2446,7 @@ index 8d5aae2faffe469a44fdeee680b0a608487eb750..9389e0f7a372120cea95d95ee74ad59f #include "LocalFrame.h" #include "LocalizedStrings.h" #include "MathMLNames.h" -@@ -4039,7 +4040,12 @@ AccessibilityObjectInclusion AccessibilityObject::defaultObjectInclusion() const +@@ -3963,7 +3964,12 @@ AccessibilityObjectInclusion AccessibilityObject::defaultObjectInclusion() const if (roleValue() == AccessibilityRole::ApplicationDialog) return AccessibilityObjectInclusion::IncludeObject; @@ -2469,7 +2461,7 @@ index 8d5aae2faffe469a44fdeee680b0a608487eb750..9389e0f7a372120cea95d95ee74ad59f bool AccessibilityObject::isWithinHiddenWebArea() const diff --git a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h -index 73946c90c05b0df97746d1e0b67b29274176f081..4bb2265f523ee4fb21ddda22819420ccdb9b154c 100644 +index 9470f5d46c83bb5d0c4f65b75e6a18a7dfaefccb..79eed13cfdf942a04d41032622fad89231a64e9b 100644 --- a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h +++ b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h @@ -186,6 +186,8 @@ namespace WebCore { @@ -2482,13 +2474,13 @@ index 73946c90c05b0df97746d1e0b67b29274176f081..4bb2265f523ee4fb21ddda22819420cc macro(DynamicsCompressorNode) \ macro(ElementInternals) \ diff --git a/Source/WebCore/css/query/MediaQueryFeatures.cpp b/Source/WebCore/css/query/MediaQueryFeatures.cpp -index db901b29c12a0d49a5898d05421a813a627b8dc0..1ea6b452ecce001e3d3729a2c86c47fa9174b562 100644 +index 83e2a42d3f09289d61217f63a121611a92aae85d..f4dfda8e9dc1dd9ad221272f09e1bd7f49afa1e0 100644 --- a/Source/WebCore/css/query/MediaQueryFeatures.cpp +++ b/Source/WebCore/css/query/MediaQueryFeatures.cpp -@@ -364,7 +364,11 @@ const FeatureSchema& forcedColors() - static MainThreadNeverDestroyed schema { +@@ -496,7 +496,11 @@ static const IdentifierSchema& forcedColorsFeatureSchema() "forced-colors"_s, FixedVector { CSSValueNone, CSSValueActive }, + OptionSet(), - [](auto&) { + [](auto& context) { + auto* page = context.document->frame()->page(); @@ -2498,7 +2490,7 @@ index db901b29c12a0d49a5898d05421a813a627b8dc0..1ea6b452ecce001e3d3729a2c86c47fa return MatchingIdentifiers { CSSValueNone }; } }; -@@ -540,6 +544,9 @@ const FeatureSchema& prefersReducedMotion() +@@ -682,6 +686,9 @@ static const IdentifierSchema& prefersReducedMotionFeatureSchema() [](auto& context) { bool userPrefersReducedMotion = [&] { Ref frame = *context.document->frame(); @@ -2509,7 +2501,7 @@ index db901b29c12a0d49a5898d05421a813a627b8dc0..1ea6b452ecce001e3d3729a2c86c47fa case ForcedAccessibilityValue::On: return true; diff --git a/Source/WebCore/dom/DataTransfer.cpp b/Source/WebCore/dom/DataTransfer.cpp -index 2e0a6ccf6778b23f4338c981ae3799c589beccab..4d6b5c864dad7719cedd5668f7d32428be904248 100644 +index a3c4d925cded155b15360793d54c57ca54fa2986..80773b244e3ee7aa7e585617c408f7d851154e7f 100644 --- a/Source/WebCore/dom/DataTransfer.cpp +++ b/Source/WebCore/dom/DataTransfer.cpp @@ -520,6 +520,14 @@ Ref DataTransfer::createForDrag(const Document& document) @@ -2874,7 +2866,7 @@ index 4f5c1e836876710a554455ec53733f72db63de58..774c4a66af84664a7a83ba0790d147f7 } // namespace WebCore diff --git a/Source/WebCore/inspector/InspectorInstrumentation.cpp b/Source/WebCore/inspector/InspectorInstrumentation.cpp -index da310c6df500f80d2ae762c890ce9733d892ebd1..50db06b983b2eb4ac89942df94838e009bc82175 100644 +index 98e75f2aec7f7defae1e0260f0a563517a61940e..64e9b1713e600a6aa3f02c2c4c70190240881270 100644 --- a/Source/WebCore/inspector/InspectorInstrumentation.cpp +++ b/Source/WebCore/inspector/InspectorInstrumentation.cpp @@ -598,6 +598,12 @@ void InspectorInstrumentation::applyUserAgentOverrideImpl(InstrumentingAgents& i @@ -2963,7 +2955,7 @@ index da310c6df500f80d2ae762c890ce9733d892ebd1..50db06b983b2eb4ac89942df94838e00 + inspectorPageAgent->didNavigateWithinPage(frame); +} + - #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) + #if ENABLE(DARK_MODE_CSS) void InspectorInstrumentation::defaultAppearanceDidChangeImpl(InstrumentingAgents& instrumentingAgents) { @@ -915,6 +924,12 @@ void InspectorInstrumentation::interceptResponseImpl(InstrumentingAgents& instru @@ -3044,7 +3036,7 @@ index da310c6df500f80d2ae762c890ce9733d892ebd1..50db06b983b2eb4ac89942df94838e00 { // Using RefPtr makes us hit the m_inRemovedLastRefFunction assert. diff --git a/Source/WebCore/inspector/InspectorInstrumentation.h b/Source/WebCore/inspector/InspectorInstrumentation.h -index 156e222e4383bee7448347d84cb052b0d9b9ae70..9bce3a168c314fc34043578c248d69cb89b48426 100644 +index 81d38dfe2e63476b86b87fccc3544090454ae683..7dfb4d6ed4a795bae882e70c80821befb7818c5b 100644 --- a/Source/WebCore/inspector/InspectorInstrumentation.h +++ b/Source/WebCore/inspector/InspectorInstrumentation.h @@ -31,6 +31,7 @@ @@ -3100,7 +3092,7 @@ index 156e222e4383bee7448347d84cb052b0d9b9ae70..9bce3a168c314fc34043578c248d69cb static void frameClearedScheduledNavigation(Frame&); static void accessibilitySettingsDidChange(Page&); + static void didNavigateWithinPage(LocalFrame&); - #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) + #if ENABLE(DARK_MODE_CSS) static void defaultAppearanceDidChange(Page&); #endif @@ -248,6 +253,7 @@ public: @@ -3170,7 +3162,7 @@ index 156e222e4383bee7448347d84cb052b0d9b9ae70..9bce3a168c314fc34043578c248d69cb static void frameClearedScheduledNavigationImpl(InstrumentingAgents&, Frame&); static void accessibilitySettingsDidChangeImpl(InstrumentingAgents&); + static void didNavigateWithinPageImpl(InstrumentingAgents&, LocalFrame&); - #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) + #if ENABLE(DARK_MODE_CSS) static void defaultAppearanceDidChangeImpl(InstrumentingAgents&); #endif @@ -463,6 +480,7 @@ private: @@ -3269,7 +3261,7 @@ index 156e222e4383bee7448347d84cb052b0d9b9ae70..9bce3a168c314fc34043578c248d69cb + didNavigateWithinPageImpl(*agents, frame); +} + - #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) + #if ENABLE(DARK_MODE_CSS) inline void InspectorInstrumentation::defaultAppearanceDidChange(Page& page) { @@ -1362,6 +1401,13 @@ inline void InspectorInstrumentation::interceptResponse(const LocalFrame& frame, @@ -3394,7 +3386,7 @@ index c028341e84e59a6b1b16107fd74feb21f70b12ab..d385418ac34e8f315f201801a2c65226 + } diff --git a/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp b/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp -index 418700e6fc6432afb3b5091d12ced07a263cccea..a160505c5f419566d2ad83d62f368614dec16ea2 100644 +index f671c06ea5c75e6f4df338ac6c404533a04a3cfd..0d6e106c19063b0ffaeca1cc6830da0729510cbf 100644 --- a/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp @@ -55,6 +55,7 @@ @@ -3474,9 +3466,9 @@ index 418700e6fc6432afb3b5091d12ced07a263cccea..a160505c5f419566d2ad83d62f368614 +} + class RevalidateStyleAttributeTask final : public CanMakeCheckedPtr { - WTF_MAKE_TZONE_ALLOCATED_INLINE(RevalidateStyleAttributeTask); + WTF_MAKE_TZONE_ALLOCATED(RevalidateStyleAttributeTask); WTF_OVERRIDE_DELETE_FOR_CHECKED_PTR(RevalidateStyleAttributeTask); -@@ -476,6 +499,20 @@ Node* InspectorDOMAgent::assertNode(Inspector::Protocol::ErrorString& errorStrin +@@ -475,6 +498,20 @@ Node* InspectorDOMAgent::assertNode(Inspector::Protocol::ErrorString& errorStrin return node.get(); } @@ -3497,7 +3489,7 @@ index 418700e6fc6432afb3b5091d12ced07a263cccea..a160505c5f419566d2ad83d62f368614 Document* InspectorDOMAgent::assertDocument(Inspector::Protocol::ErrorString& errorString, Inspector::Protocol::DOM::NodeId nodeId) { RefPtr node = assertNode(errorString, nodeId); -@@ -1550,16 +1587,7 @@ Inspector::Protocol::ErrorStringOr InspectorDOMAgent::highlightNode(std::o +@@ -1549,16 +1586,7 @@ Inspector::Protocol::ErrorStringOr InspectorDOMAgent::highlightNode(std::o Inspector::Protocol::ErrorStringOr InspectorDOMAgent::highlightNode(std::optional&& nodeId, const Inspector::Protocol::Runtime::RemoteObjectId& objectId, Ref&& highlightInspectorObject, RefPtr&& gridOverlayInspectorObject, RefPtr&& flexOverlayInspectorObject, std::optional&& showRulers) { Inspector::Protocol::ErrorString errorString; @@ -3515,7 +3507,7 @@ index 418700e6fc6432afb3b5091d12ced07a263cccea..a160505c5f419566d2ad83d62f368614 if (!node) return makeUnexpected(errorString); -@@ -1814,15 +1842,155 @@ Inspector::Protocol::ErrorStringOr InspectorDOMAgent::setInspectedNode(Ins +@@ -1813,15 +1841,155 @@ Inspector::Protocol::ErrorStringOr InspectorDOMAgent::setInspectedNode(Ins return { }; } @@ -3674,7 +3666,7 @@ index 418700e6fc6432afb3b5091d12ced07a263cccea..a160505c5f419566d2ad83d62f368614 if (!object) return makeUnexpected("Missing injected script for given nodeId"_s); -@@ -3088,7 +3256,7 @@ Inspector::Protocol::ErrorStringOr InspectorDO +@@ -3087,7 +3255,7 @@ Inspector::Protocol::ErrorStringOr InspectorDO return makeUnexpected("Missing node for given path"_s); } @@ -3683,7 +3675,7 @@ index 418700e6fc6432afb3b5091d12ced07a263cccea..a160505c5f419566d2ad83d62f368614 { Document* document = &node->document(); if (auto* templateHost = document->templateDocumentHost()) -@@ -3097,12 +3265,18 @@ RefPtr InspectorDOMAgent::resolveNod +@@ -3096,12 +3264,18 @@ RefPtr InspectorDOMAgent::resolveNod if (!frame) return nullptr; @@ -3705,7 +3697,7 @@ index 418700e6fc6432afb3b5091d12ced07a263cccea..a160505c5f419566d2ad83d62f368614 } Node* InspectorDOMAgent::scriptValueAsNode(JSC::JSValue value) -@@ -3210,4 +3384,89 @@ Inspector::Protocol::ErrorStringOr> In +@@ -3209,4 +3383,89 @@ Inspector::Protocol::ErrorStringOr> In #endif } @@ -3869,7 +3861,7 @@ index ab0499c5e381855f55fa89227f4da05c7bcf40b1..e506a903ba60173b47135d5b18cfa0d3 void discardBindings(); diff --git a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp -index fb89241329b3d1c4ae05c985070b27f2c360ccf6..442a3d263b6ec7e72ff60ec0d3507d96ed5642eb 100644 +index 3c4c9d809004f683d1248be257980bbbc522d132..cfa772a5caa5f0a7db07dc853036e21db2bb9814 100644 --- a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp @@ -59,6 +59,7 @@ @@ -4025,7 +4017,7 @@ index eda400879afb10b687fcbb317c9fdbb3be9c94cd..f3a382c44b53e6b1507fc046e22bff68 } // namespace WebCore diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp -index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c7045ad6082 100644 +index 8cd529462736f59fa7b24bdb887faf61e88036dd..25df35396b5fd35a9431e8d47168e3527edffdf2 100644 --- a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp @@ -32,19 +32,27 @@ @@ -4069,7 +4061,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 #include "ScriptController.h" #include "ScriptSourceCode.h" #include "SecurityOrigin.h" -@@ -66,14 +78,23 @@ +@@ -67,14 +79,23 @@ #include "StyleScope.h" #include "Theme.h" #include @@ -4093,7 +4085,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 #include #if ENABLE(APPLICATION_MANIFEST) -@@ -95,6 +116,11 @@ using namespace Inspector; +@@ -96,6 +117,11 @@ using namespace Inspector; WTF_MAKE_TZONE_ALLOCATED_IMPL(InspectorPageAgent); @@ -4105,7 +4097,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 static bool decodeBuffer(std::span buffer, const String& textEncodingName, String* result) { if (buffer.data()) { -@@ -347,6 +373,7 @@ InspectorPageAgent::InspectorPageAgent(PageAgentContext& context, InspectorClien +@@ -348,6 +374,7 @@ InspectorPageAgent::InspectorPageAgent(PageAgentContext& context, InspectorClien , m_frontendDispatcher(makeUnique(context.frontendRouter)) , m_backendDispatcher(Inspector::PageBackendDispatcher::create(context.backendDispatcher, this)) , m_inspectedPage(context.inspectedPage) @@ -4113,7 +4105,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 , m_client(client) , m_overlay(overlay) { -@@ -376,12 +403,20 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::enable() +@@ -377,12 +404,20 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::enable() defaultUserPreferencesDidChange(); @@ -4134,7 +4126,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 setShowPaintRects(false); #if !PLATFORM(IOS_FAMILY) -@@ -434,6 +469,22 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::reload(std::optiona +@@ -435,6 +470,22 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::reload(std::optiona return { }; } @@ -4156,8 +4148,8 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 + Inspector::Protocol::ErrorStringOr InspectorPageAgent::navigate(const String& url) { - auto* localMainFrame = dynamicDowncast(m_inspectedPage.mainFrame()); -@@ -457,6 +508,13 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideUserAgent(c + RefPtr localMainFrame = m_inspectedPage.localMainFrame(); +@@ -461,6 +512,13 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideUserAgent(c return { }; } @@ -4171,7 +4163,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Inspector::Protocol::Page::Setting setting, std::optional&& value) { auto& inspectedPageSettings = m_inspectedPage.settings(); -@@ -470,6 +528,12 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Ins +@@ -474,6 +532,12 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Ins inspectedPageSettings.setAuthorAndUserStylesEnabledInspectorOverride(value); return { }; @@ -4184,7 +4176,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 case Inspector::Protocol::Page::Setting::ICECandidateFilteringEnabled: inspectedPageSettings.setICECandidateFilteringEnabledInspectorOverride(value); return { }; -@@ -496,6 +560,45 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Ins +@@ -500,6 +564,45 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Ins m_client->setDeveloperPreferenceOverride(InspectorClient::DeveloperPreference::NeedsSiteSpecificQuirks, value); return { }; @@ -4230,7 +4222,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 case Inspector::Protocol::Page::Setting::ScriptEnabled: inspectedPageSettings.setScriptEnabledInspectorOverride(value); return { }; -@@ -508,6 +611,12 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Ins +@@ -512,6 +615,12 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Ins inspectedPageSettings.setShowRepaintCounterInspectorOverride(value); return { }; @@ -4243,7 +4235,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 case Inspector::Protocol::Page::Setting::WebSecurityEnabled: inspectedPageSettings.setWebSecurityEnabledInspectorOverride(value); return { }; -@@ -908,15 +1017,16 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::setShowPaintRects(b +@@ -919,15 +1028,16 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::setShowPaintRects(b return { }; } @@ -4265,7 +4257,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 } void InspectorPageAgent::frameNavigated(LocalFrame& frame) -@@ -924,13 +1034,38 @@ void InspectorPageAgent::frameNavigated(LocalFrame& frame) +@@ -935,13 +1045,38 @@ void InspectorPageAgent::frameNavigated(LocalFrame& frame) m_frontendDispatcher->frameNavigated(buildObjectForFrame(&frame)); } @@ -4307,7 +4299,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 } Frame* InspectorPageAgent::frameForId(const Inspector::Protocol::Network::FrameId& frameId) -@@ -942,20 +1077,21 @@ String InspectorPageAgent::frameId(Frame* frame) +@@ -953,20 +1088,21 @@ String InspectorPageAgent::frameId(Frame* frame) { if (!frame) return emptyString(); @@ -4337,7 +4329,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 } LocalFrame* InspectorPageAgent::assertFrame(Inspector::Protocol::ErrorString& errorString, const Inspector::Protocol::Network::FrameId& frameId) -@@ -966,11 +1102,6 @@ LocalFrame* InspectorPageAgent::assertFrame(Inspector::Protocol::ErrorString& er +@@ -977,11 +1113,6 @@ LocalFrame* InspectorPageAgent::assertFrame(Inspector::Protocol::ErrorString& er return frame; } @@ -4349,7 +4341,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 void InspectorPageAgent::frameStartedLoading(LocalFrame& frame) { m_frontendDispatcher->frameStartedLoading(frameId(&frame)); -@@ -981,9 +1112,9 @@ void InspectorPageAgent::frameStoppedLoading(LocalFrame& frame) +@@ -992,9 +1123,9 @@ void InspectorPageAgent::frameStoppedLoading(LocalFrame& frame) m_frontendDispatcher->frameStoppedLoading(frameId(&frame)); } @@ -4361,7 +4353,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 } void InspectorPageAgent::frameClearedScheduledNavigation(Frame& frame) -@@ -1030,6 +1161,12 @@ void InspectorPageAgent::defaultUserPreferencesDidChange() +@@ -1041,6 +1172,12 @@ void InspectorPageAgent::defaultUserPreferencesDidChange() m_frontendDispatcher->defaultUserPreferencesDidChange(WTFMove(defaultUserPreferences)); } @@ -4371,10 +4363,10 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 + m_frontendDispatcher->navigatedWithinDocument(frameId(&frame), url); +} + - #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) + #if ENABLE(DARK_MODE_CSS) void InspectorPageAgent::defaultAppearanceDidChange() { -@@ -1043,6 +1180,9 @@ void InspectorPageAgent::didClearWindowObjectInWorld(LocalFrame& frame, DOMWrapp +@@ -1054,6 +1191,9 @@ void InspectorPageAgent::didClearWindowObjectInWorld(LocalFrame& frame, DOMWrapp return; if (m_bootstrapScript.isEmpty()) @@ -4384,7 +4376,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 return; frame.script().evaluateIgnoringException(ScriptSourceCode(m_bootstrapScript, JSC::SourceTaintedOrigin::Untainted, URL { "web-inspector://bootstrap.js"_str })); -@@ -1090,6 +1230,51 @@ void InspectorPageAgent::didRecalculateStyle() +@@ -1101,6 +1241,51 @@ void InspectorPageAgent::didRecalculateStyle() protectedOverlay()->update(); } @@ -4436,7 +4428,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 Ref InspectorPageAgent::buildObjectForFrame(LocalFrame* frame) { ASSERT_ARG(frame, frame); -@@ -1187,6 +1372,12 @@ void InspectorPageAgent::applyUserAgentOverride(String& userAgent) +@@ -1194,6 +1379,12 @@ void InspectorPageAgent::applyUserAgentOverride(String& userAgent) userAgent = m_userAgentOverride; } @@ -4449,7 +4441,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 void InspectorPageAgent::applyEmulatedMedia(AtomString& media) { if (!m_emulatedMedia.isEmpty()) -@@ -1214,11 +1405,13 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::snapshotNode(Insp +@@ -1221,11 +1412,13 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::snapshotNode(Insp return snapshot->toDataURL("image/png"_s, std::nullopt, PreserveResolution::Yes); } @@ -4463,8 +4455,8 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 + options.flags.add(SnapshotFlags::OmitDeviceScaleFactor); IntRect rectangle(x, y, width, height); - auto* localMainFrame = dynamicDowncast(m_inspectedPage.mainFrame()); -@@ -1232,6 +1425,43 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int + RefPtr localMainFrame = m_inspectedPage.localMainFrame(); +@@ -1239,6 +1432,43 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int return snapshot->toDataURL("image/png"_s, std::nullopt, PreserveResolution::Yes); } @@ -4508,7 +4500,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 #if ENABLE(WEB_ARCHIVE) && USE(CF) Inspector::Protocol::ErrorStringOr InspectorPageAgent::archive() { -@@ -1248,7 +1478,6 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::archive() +@@ -1255,7 +1485,6 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::archive() } #endif @@ -4516,7 +4508,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 Inspector::Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::optional&& width, std::optional&& height) { if (width.has_value() != height.has_value()) -@@ -1266,6 +1495,498 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverri +@@ -1273,6 +1502,498 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverri localMainFrame->setOverrideScreenSize(FloatSize(width.value_or(0), height.value_or(0))); return { }; } @@ -5002,7 +4994,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 + +Protocol::ErrorStringOr InspectorPageAgent::crash() +{ -+ CRASH(); ++ WTFCrash(); + return { }; +} + @@ -5017,7 +5009,7 @@ index 4393f2d882d6fc829ce69115e6f5e6db93eee1a6..9e58595296aaa3770ad660515e362c70 } // namespace WebCore diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.h b/Source/WebCore/inspector/agents/InspectorPageAgent.h -index dee4a5033bc6e948e301e9b681d82758c4e92689..6a3db5c90e798693ac3cd6547207713dfa947364 100644 +index c72739aab6ddb20cac65cbe82a14a38d860ae0bd..502b0acd85fe625c13b45f287e38493a772fac1b 100644 --- a/Source/WebCore/inspector/agents/InspectorPageAgent.h +++ b/Source/WebCore/inspector/agents/InspectorPageAgent.h @@ -32,8 +32,10 @@ @@ -5111,7 +5103,7 @@ index dee4a5033bc6e948e301e9b681d82758c4e92689..6a3db5c90e798693ac3cd6547207713d void accessibilitySettingsDidChange(); void defaultUserPreferencesDidChange(); + void didNavigateWithinPage(LocalFrame&); - #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) + #if ENABLE(DARK_MODE_CSS) void defaultAppearanceDidChange(); #endif void applyUserAgentOverride(String&); @@ -5167,7 +5159,7 @@ index dee4a5033bc6e948e301e9b681d82758c4e92689..6a3db5c90e798693ac3cd6547207713d } // namespace WebCore diff --git a/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp b/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp -index 009092f4dd46f22aef63ffa0a9758884859e7385..545da93ce753072c18279c67b1589aefcc7e0b8d 100644 +index fe77f9c4f424a9bbf5cdd6c0721a368767aa374c..0a76877d74a791cd1659c173221ee18cf7bb9fb7 100644 --- a/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp +++ b/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp @@ -34,6 +34,7 @@ @@ -5186,7 +5178,7 @@ index 009092f4dd46f22aef63ffa0a9758884859e7385..545da93ce753072c18279c67b1589aef #include "SecurityOrigin.h" #include "UserGestureEmulationScope.h" #include -@@ -88,13 +90,73 @@ Inspector::Protocol::ErrorStringOr PageRuntimeAgent::disable() +@@ -88,13 +90,74 @@ Inspector::Protocol::ErrorStringOr PageRuntimeAgent::disable() { m_instrumentingAgents.setEnabledPageRuntimeAgent(nullptr); @@ -5233,6 +5225,7 @@ index 009092f4dd46f22aef63ffa0a9758884859e7385..545da93ce753072c18279c67b1589aef +{ + JSC::JSGlobalObject* globalObject = frame.script().globalObject(mainThreadNormalWorld()); + auto& vm = globalObject->vm(); ++ JSC::JSLockHolder lock(vm); + globalObject->putDirectNativeFunction(vm, globalObject, JSC::Identifier::fromString(vm, name), 1, bindingCallback, JSC::ImplementationVisibility::Public, JSC::NoIntrinsic, JSC::attributesForStructure(static_cast(JSC::PropertyAttribute::Function))); +} + @@ -5260,7 +5253,7 @@ index 009092f4dd46f22aef63ffa0a9758884859e7385..545da93ce753072c18279c67b1589aef } void PageRuntimeAgent::didClearWindowObjectInWorld(LocalFrame& frame, DOMWrapperWorld& world) -@@ -103,7 +165,26 @@ void PageRuntimeAgent::didClearWindowObjectInWorld(LocalFrame& frame, DOMWrapper +@@ -103,7 +166,26 @@ void PageRuntimeAgent::didClearWindowObjectInWorld(LocalFrame& frame, DOMWrapper if (!pageAgent) return; @@ -5287,7 +5280,7 @@ index 009092f4dd46f22aef63ffa0a9758884859e7385..545da93ce753072c18279c67b1589aef } InjectedScript PageRuntimeAgent::injectedScriptForEval(Inspector::Protocol::ErrorString& errorString, std::optional&& executionContextId) -@@ -142,9 +223,6 @@ void PageRuntimeAgent::reportExecutionContextCreation() +@@ -142,9 +224,6 @@ void PageRuntimeAgent::reportExecutionContextCreation() return; m_inspectedPage.forEachLocalFrame([&](LocalFrame& frame) { @@ -5332,18 +5325,18 @@ index b70ca7636463b9199bcbb21bfea055870ba33b34..25fdc23bfb71985fe1af04bddc360d11 } // namespace WebCore diff --git a/Source/WebCore/loader/CookieJar.h b/Source/WebCore/loader/CookieJar.h -index ae94a796b1d0c9fee05ec342cfa58b8a0248875b..c0b3bcdaca1f473cca7299db3de69329766daf0b 100644 +index 8fb27c1045b8073d1487d5b61ccdec23a395bfd1..5008052f587ca4ba90da973c539188deb9551621 100644 --- a/Source/WebCore/loader/CookieJar.h +++ b/Source/WebCore/loader/CookieJar.h -@@ -47,6 +47,7 @@ struct CookieStoreGetOptions; - class NetworkStorageSession; +@@ -48,6 +48,7 @@ class NetworkStorageSession; class StorageSessionProvider; struct SameSiteInfo; + enum class ShouldPartitionCookie : bool; +class ResourceLoader; class WEBCORE_EXPORT CookieJar : public RefCountedAndCanMakeWeakPtr { public: -@@ -79,6 +80,9 @@ public: +@@ -80,6 +81,9 @@ public: virtual void clearCache() { } virtual void clearCacheForHost(const String&) { } @@ -5354,10 +5347,10 @@ index ae94a796b1d0c9fee05ec342cfa58b8a0248875b..c0b3bcdaca1f473cca7299db3de69329 protected: static SameSiteInfo sameSiteInfo(const Document&, IsForDOMCookieAccess = IsForDOMCookieAccess::No); diff --git a/Source/WebCore/loader/DocumentLoader.cpp b/Source/WebCore/loader/DocumentLoader.cpp -index ef8c9cbc1c786172081c9b04bdc55a65ae40593e..8eff311ff2b9e88cb484c01d935b97f23eec47ba 100644 +index 5aac9a91d7049e7ae7e3f98023db100b53db0e8d..dd4b841a49a8087aa2573ffd725a6351380a3724 100644 --- a/Source/WebCore/loader/DocumentLoader.cpp +++ b/Source/WebCore/loader/DocumentLoader.cpp -@@ -765,8 +765,10 @@ void DocumentLoader::willSendRequest(ResourceRequest&& newRequest, const Resourc +@@ -767,8 +767,10 @@ void DocumentLoader::willSendRequest(ResourceRequest&& newRequest, const Resourc if (!didReceiveRedirectResponse) return completionHandler(WTFMove(newRequest)); @@ -5368,7 +5361,7 @@ index ef8c9cbc1c786172081c9b04bdc55a65ae40593e..8eff311ff2b9e88cb484c01d935b97f2 switch (navigationPolicyDecision) { case NavigationPolicyDecision::IgnoreLoad: case NavigationPolicyDecision::LoadWillContinueInAnotherProcess: -@@ -1535,11 +1537,17 @@ void DocumentLoader::detachFromFrame(LoadWillContinueInAnotherProcess loadWillCo +@@ -1558,11 +1560,17 @@ void DocumentLoader::detachFromFrame(LoadWillContinueInAnotherProcess loadWillCo if (auto navigationID = std::exchange(m_navigationID, { })) m_frame->loader().client().documentLoaderDetached(*navigationID, loadWillContinueInAnotherProcess); @@ -5402,10 +5395,10 @@ index 710b76ba378d0242be7b9fb469203fcd9ec18252..23ebc0f38d5a5a19b23c748149fbbc8a RefPtr protectedFrameLoader() const; WEBCORE_EXPORT SubresourceLoader* mainResourceLoader() const; diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp -index b38b5938d46ef64d1736bc8b2eebd166d18983a9..0f315f7c0739ea210493a6d19520421c48c645d0 100644 +index dee3c2e19c47f3451a2a1f52c101064dcd74c8e1..891f10b1871118cadaec7abc0a61016547b93b9f 100644 --- a/Source/WebCore/loader/FrameLoader.cpp +++ b/Source/WebCore/loader/FrameLoader.cpp -@@ -1323,6 +1323,7 @@ void FrameLoader::loadInSameDocument(URL url, RefPtr stat +@@ -1322,6 +1322,7 @@ void FrameLoader::loadInSameDocument(URL url, RefPtr stat } m_client->dispatchDidNavigateWithinPage(); @@ -5413,7 +5406,7 @@ index b38b5938d46ef64d1736bc8b2eebd166d18983a9..0f315f7c0739ea210493a6d19520421c document->statePopped(stateObject ? stateObject.releaseNonNull() : SerializedScriptValue::nullValue()); m_client->dispatchDidPopStateWithinPage(); -@@ -1846,6 +1847,7 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t +@@ -1850,6 +1851,7 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t const String& httpMethod = loader->request().httpMethod(); if (shouldPerformFragmentNavigation(isFormSubmission, httpMethod, policyChecker().loadType(), newURL)) { @@ -5421,18 +5414,17 @@ index b38b5938d46ef64d1736bc8b2eebd166d18983a9..0f315f7c0739ea210493a6d19520421c RefPtr oldDocumentLoader = m_documentLoader; NavigationAction action { frame->protectedDocument().releaseNonNull(), loader->request(), InitiatedByMainFrame::Unknown, loader->isRequestFromClientOrUserInput(), policyChecker().loadType(), isFormSubmission }; -@@ -1882,8 +1884,10 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t - } +@@ -1887,7 +1889,9 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t - RELEASE_ASSERT(!isBackForwardLoadType(policyChecker().loadType()) || frame->history().provisionalItem()); -+ InspectorInstrumentation::willCheckNavigationPolicy(m_frame); auto policyDecisionMode = loader->triggeringAction().isFromNavigationAPI() ? PolicyDecisionMode::Synchronous : PolicyDecisionMode::Asynchronous; + RELEASE_ASSERT(!isBackForwardLoadType(policyChecker().loadType()) || history().provisionalItem()); ++ InspectorInstrumentation::willCheckNavigationPolicy(m_frame); policyChecker().checkNavigationPolicy(ResourceRequest(loader->request()), ResourceResponse { } /* redirectResponse */, loader, WTFMove(formState), [this, frame, allowNavigationToInvalidURL, completionHandler = completionHandlerCaller.release()] (const ResourceRequest& request, WeakPtr&& weakFormState, NavigationPolicyDecision navigationPolicyDecision) mutable { + InspectorInstrumentation::didCheckNavigationPolicy(m_frame, navigationPolicyDecision != NavigationPolicyDecision::ContinueLoad); continueLoadAfterNavigationPolicy(request, RefPtr { weakFormState.get() }.get(), navigationPolicyDecision, allowNavigationToInvalidURL); completionHandler(); }, policyDecisionMode); -@@ -3169,10 +3173,15 @@ String FrameLoader::userAgent(const URL& url) const +@@ -3178,10 +3182,15 @@ String FrameLoader::userAgent(const URL& url) const String FrameLoader::navigatorPlatform() const { @@ -5450,7 +5442,7 @@ index b38b5938d46ef64d1736bc8b2eebd166d18983a9..0f315f7c0739ea210493a6d19520421c } void FrameLoader::dispatchOnloadEvents() -@@ -3646,6 +3655,8 @@ void FrameLoader::receivedMainResourceError(const ResourceError& error, LoadWill +@@ -3655,6 +3664,8 @@ void FrameLoader::receivedMainResourceError(const ResourceError& error, LoadWill checkCompleted(); if (frame->page()) checkLoadComplete(loadWillContinueInAnotherProcess); @@ -5459,7 +5451,7 @@ index b38b5938d46ef64d1736bc8b2eebd166d18983a9..0f315f7c0739ea210493a6d19520421c } void FrameLoader::continueFragmentScrollAfterNavigationPolicy(const ResourceRequest& request, const SecurityOrigin* requesterOrigin, bool shouldContinue, NavigationHistoryBehavior historyHandling) -@@ -4530,9 +4541,6 @@ String FrameLoader::referrer() const +@@ -4538,9 +4549,6 @@ String FrameLoader::referrer() const void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() { @@ -5469,7 +5461,7 @@ index b38b5938d46ef64d1736bc8b2eebd166d18983a9..0f315f7c0739ea210493a6d19520421c Vector> worlds; ScriptController::getAllWorlds(worlds); for (auto& world : worlds) -@@ -4542,13 +4550,12 @@ void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() +@@ -4550,13 +4558,12 @@ void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() void FrameLoader::dispatchDidClearWindowObjectInWorld(DOMWrapperWorld& world) { Ref frame = m_frame.get(); @@ -5502,10 +5494,10 @@ index 91340dc21042f545592b442bc42dbceed06219b2..f3591fe333761b10a25ddaf4a4f8d721 virtual bool shouldPerformSecurityChecks() const { return false; } virtual bool havePerformedSecurityChecks(const ResourceResponse&) const { return false; } diff --git a/Source/WebCore/loader/NavigationScheduler.cpp b/Source/WebCore/loader/NavigationScheduler.cpp -index 6ca24eb3b82344b60b33298989857a68ecdc39cb..ca17da3fb6148a1789618f501f85069c1c9b9ead 100644 +index 9c950ef94e1f1257ade5560b2ac2c8f57d15c352..79d0034559c5ec7e1a9ee26452a87a2e73d52ca4 100644 --- a/Source/WebCore/loader/NavigationScheduler.cpp +++ b/Source/WebCore/loader/NavigationScheduler.cpp -@@ -812,7 +812,7 @@ void NavigationScheduler::startTimer() +@@ -806,7 +806,7 @@ void NavigationScheduler::startTimer() Seconds delay = 1_s * m_redirect->delay(); m_timer.startOneShot(delay); @@ -5515,11 +5507,11 @@ index 6ca24eb3b82344b60b33298989857a68ecdc39cb..ca17da3fb6148a1789618f501f85069c } diff --git a/Source/WebCore/loader/ProgressTracker.cpp b/Source/WebCore/loader/ProgressTracker.cpp -index ac208c49bca32e5f2215d881733f2c11396bd18f..7ea80906fea17a592a00c63c8d810a53d893ae45 100644 +index 171c80cd90bdc8cc16c5e037b25f07faef0dec4e..0869f1be1699dd1548a2e4df6612d7fff42e3093 100644 --- a/Source/WebCore/loader/ProgressTracker.cpp +++ b/Source/WebCore/loader/ProgressTracker.cpp -@@ -161,6 +161,8 @@ void ProgressTracker::progressCompleted(LocalFrame& frame) - if (!m_numProgressTrackedFrames || m_originatingProgressFrame == &frame) +@@ -163,6 +163,8 @@ void ProgressTracker::progressCompleted(LocalFrame& frame) + if (!m_numProgressTrackedFrames || originatingProgressFrame == &frame) finalProgressComplete(); + InspectorInstrumentation::frameStoppedLoading(frame); @@ -5527,20 +5519,20 @@ index ac208c49bca32e5f2215d881733f2c11396bd18f..7ea80906fea17a592a00c63c8d810a53 m_client->didChangeEstimatedProgress(); } -@@ -187,8 +189,6 @@ void ProgressTracker::finalProgressComplete() - m_client->progressFinished(*frame); - protectedPage()->progressFinished(*frame); - frame->protectedLoader()->loadProgressingStatusChanged(); +@@ -189,8 +191,6 @@ void ProgressTracker::finalProgressComplete() + m_client->progressFinished(*frame); + protectedPage()->progressFinished(*frame); + frame->protectedLoader()->loadProgressingStatusChanged(); - -- InspectorInstrumentation::frameStoppedLoading(*frame); +- InspectorInstrumentation::frameStoppedLoading(*frame); + } } - void ProgressTracker::incrementProgress(ResourceLoaderIdentifier identifier, const ResourceResponse& response) diff --git a/Source/WebCore/loader/cache/CachedResourceLoader.cpp b/Source/WebCore/loader/cache/CachedResourceLoader.cpp -index 3b4b56c0dc2845f6993cc1d60c65648be74b125f..f8ec6be1f5765b58ced741a348c62a82cf446d3c 100644 +index 2b96086b987dca1f53d68599afa751ba84a083f9..2a44a06c6d5a462f76d39c7100ffc495dd874c81 100644 --- a/Source/WebCore/loader/cache/CachedResourceLoader.cpp +++ b/Source/WebCore/loader/cache/CachedResourceLoader.cpp -@@ -1154,8 +1154,11 @@ ResourceErrorOr> CachedResourceLoader::requ +@@ -1158,8 +1158,11 @@ ResourceErrorOr> CachedResourceLoader::requ request.updateReferrerPolicy(document() ? document()->referrerPolicy() : ReferrerPolicy::Default); @@ -5554,7 +5546,7 @@ index 3b4b56c0dc2845f6993cc1d60c65648be74b125f..f8ec6be1f5765b58ced741a348c62a82 if (RefPtr documentLoader = m_documentLoader.get()) { bool madeHTTPS { request.resourceRequest().wasSchemeOptimisticallyUpgraded() }; -@@ -1773,8 +1776,9 @@ Vector> CachedResourceLoader::allCachedSVGImages() const +@@ -1785,8 +1788,9 @@ Vector> CachedResourceLoader::allCachedSVGImages() const ResourceErrorOr> CachedResourceLoader::preload(CachedResource::Type type, CachedResourceRequest&& request) { @@ -5567,10 +5559,10 @@ index 3b4b56c0dc2845f6993cc1d60c65648be74b125f..f8ec6be1f5765b58ced741a348c62a82 ASSERT(m_document); if (request.charset().isEmpty() && m_document && (type == CachedResource::Type::Script || type == CachedResource::Type::CSSStyleSheet)) diff --git a/Source/WebCore/page/ChromeClient.h b/Source/WebCore/page/ChromeClient.h -index b7d2b467606fb5406769b1c49384aac7b41f7298..633dc036f990798a6d62bb0b50125c6cd5df44aa 100644 +index 87eea1d9d7205eff67801b59345a0c3aa097eda1..4d17e0234a86f22abf874c6b08386b5410d2f771 100644 --- a/Source/WebCore/page/ChromeClient.h +++ b/Source/WebCore/page/ChromeClient.h -@@ -351,7 +351,7 @@ public: +@@ -352,7 +352,7 @@ public: #endif #if ENABLE(ORIENTATION_EVENTS) @@ -5580,10 +5572,10 @@ index b7d2b467606fb5406769b1c49384aac7b41f7298..633dc036f990798a6d62bb0b50125c6c #if ENABLE(INPUT_TYPE_COLOR) diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp -index 7e2577a7e448e543a2c5a8fcdae04a72dc4076f0..99348d9bf3c65d2c732a80a652fe592084d8441c 100644 +index 27a216f1047914aef7ebfe50e2273368da439d49..4de0ff57188dbbfe73da33f49a6c6e5dbb178194 100644 --- a/Source/WebCore/page/EventHandler.cpp +++ b/Source/WebCore/page/EventHandler.cpp -@@ -4398,6 +4398,12 @@ bool EventHandler::handleDrag(const MouseEventWithHitTestResults& event, CheckDr +@@ -4454,6 +4454,12 @@ bool EventHandler::handleDrag(const MouseEventWithHitTestResults& event, CheckDr if (!document) return false; @@ -5596,7 +5588,7 @@ index 7e2577a7e448e543a2c5a8fcdae04a72dc4076f0..99348d9bf3c65d2c732a80a652fe5920 dragState().dataTransfer = DataTransfer::createForDrag(*document); auto hasNonDefaultPasteboardData = HasNonDefaultPasteboardData::No; -@@ -4984,6 +4990,7 @@ static HitTestResult hitTestResultInFrame(LocalFrame* frame, const LayoutPoint& +@@ -5040,6 +5046,7 @@ static HitTestResult hitTestResultInFrame(LocalFrame* frame, const LayoutPoint& return result; } @@ -5604,7 +5596,7 @@ index 7e2577a7e448e543a2c5a8fcdae04a72dc4076f0..99348d9bf3c65d2c732a80a652fe5920 HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEvent& event) { Ref frame = m_frame.get(); -@@ -5059,7 +5066,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve +@@ -5114,7 +5121,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve // Increment the platform touch id by 1 to avoid storing a key of 0 in the hashmap. unsigned touchPointTargetKey = point.id() + 1; @@ -5613,7 +5605,7 @@ index 7e2577a7e448e543a2c5a8fcdae04a72dc4076f0..99348d9bf3c65d2c732a80a652fe5920 bool pointerCancelled = false; #endif RefPtr touchTarget; -@@ -5106,7 +5113,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve +@@ -5161,7 +5168,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve // we also remove it from the map. touchTarget = m_originatingTouchPointTargets.take(touchPointTargetKey); @@ -5622,7 +5614,7 @@ index 7e2577a7e448e543a2c5a8fcdae04a72dc4076f0..99348d9bf3c65d2c732a80a652fe5920 HitTestResult result = hitTestResultAtPoint(pagePoint, hitType | HitTestRequest::Type::AllowChildFrameContent); pointerTarget = result.targetElement(); pointerCancelled = (pointerTarget != touchTarget); -@@ -5129,7 +5136,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve +@@ -5184,7 +5191,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve if (!targetFrame) continue; @@ -5631,7 +5623,7 @@ index 7e2577a7e448e543a2c5a8fcdae04a72dc4076f0..99348d9bf3c65d2c732a80a652fe5920 // FIXME: WPE currently does not send touch stationary events, so create a naive TouchReleased PlatformTouchPoint // on release if the hit test result changed since the previous TouchPressed or TouchMoved if (pointState == PlatformTouchPoint::TouchReleased && pointerCancelled) { -@@ -5219,6 +5226,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve +@@ -5274,6 +5281,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve return swallowedEvent; } @@ -5640,7 +5632,7 @@ index 7e2577a7e448e543a2c5a8fcdae04a72dc4076f0..99348d9bf3c65d2c732a80a652fe5920 #if ENABLE(TOUCH_EVENTS) diff --git a/Source/WebCore/page/FocusController.cpp b/Source/WebCore/page/FocusController.cpp -index b945aaa8fc59d043f8177acc443f0cbba2f5bb71..fc0c93ea6cdf66d7c9a38350230cda6ed9950f17 100644 +index 1e2dd0f272078b2b4cbc11957f2458088b4c99c4..e736ffb95a51650c8365a55251ca692b152223ca 100644 --- a/Source/WebCore/page/FocusController.cpp +++ b/Source/WebCore/page/FocusController.cpp @@ -586,13 +586,14 @@ bool FocusController::relinquishFocusToChrome(FocusDirection direction) @@ -5661,7 +5653,7 @@ index b945aaa8fc59d043f8177acc443f0cbba2f5bb71..fc0c93ea6cdf66d7c9a38350230cda6e } diff --git a/Source/WebCore/page/FrameSnapshotting.cpp b/Source/WebCore/page/FrameSnapshotting.cpp -index ce7eca624ce26cdb4440ca6ce5e3c9f912d5f384..0104c784711709e04128495a6bf6b188fdd8021c 100644 +index 0c099f95827d6f9fe307704ef9d7754fbb3d24f7..f14fd4dba17985d51d824a9b7c32853a33f4008a 100644 --- a/Source/WebCore/page/FrameSnapshotting.cpp +++ b/Source/WebCore/page/FrameSnapshotting.cpp @@ -111,7 +111,7 @@ RefPtr snapshotFrameRectWithClip(LocalFrame& frame, const IntRect& @@ -5712,7 +5704,7 @@ index 3ab70c27fef52f5d933cd2338a7c2f96e2debc88..39fc13df5ce132f8d028cd5039c607fe struct SnapshotOptions { diff --git a/Source/WebCore/page/History.cpp b/Source/WebCore/page/History.cpp -index c114526d3b536993fe20cb2452b913c01d3f65dc..0cdd416742e5a9205f8114ef84ddea3cfce03293 100644 +index 7cffefe901da03913b16cbe560234ebf97ae7dc6..c6694621e0d39974785fbc5472708551b915f75b 100644 --- a/Source/WebCore/page/History.cpp +++ b/Source/WebCore/page/History.cpp @@ -32,6 +32,7 @@ @@ -5733,7 +5725,7 @@ index c114526d3b536993fe20cb2452b913c01d3f65dc..0cdd416742e5a9205f8114ef84ddea3c } diff --git a/Source/WebCore/page/LocalFrame.cpp b/Source/WebCore/page/LocalFrame.cpp -index 43cbdcdc0a278fda65592af1a7b20babf0e055e4..11efd76361ace87f0ad276525cec399e2a103595 100644 +index 4af71417f15e0d93366168e3c22442a67c3dc77c..c002ef7b769b4b7e1d63d7c5ba42bedaef3f4035 100644 --- a/Source/WebCore/page/LocalFrame.cpp +++ b/Source/WebCore/page/LocalFrame.cpp @@ -41,6 +41,7 @@ @@ -5752,7 +5744,7 @@ index 43cbdcdc0a278fda65592af1a7b20babf0e055e4..11efd76361ace87f0ad276525cec399e #include "HTMLAttachmentElement.h" #include "HTMLFormControlElement.h" #include "HTMLFormElement.h" -@@ -77,6 +79,7 @@ +@@ -79,6 +81,7 @@ #include "Logging.h" #include "Navigator.h" #include "NodeList.h" @@ -5760,7 +5752,7 @@ index 43cbdcdc0a278fda65592af1a7b20babf0e055e4..11efd76361ace87f0ad276525cec399e #include "NodeTraversal.h" #include "Page.h" #include "ProcessSyncClient.h" -@@ -193,6 +196,7 @@ LocalFrame::LocalFrame(Page& page, ClientCreator&& clientCreator, FrameIdentifie +@@ -200,6 +203,7 @@ LocalFrame::LocalFrame(Page& page, ClientCreator&& clientCreator, FrameIdentifie void LocalFrame::init() { @@ -5768,7 +5760,7 @@ index 43cbdcdc0a278fda65592af1a7b20babf0e055e4..11efd76361ace87f0ad276525cec399e protectedLoader()->init(); } -@@ -409,7 +413,7 @@ void LocalFrame::orientationChanged() +@@ -421,7 +425,7 @@ void LocalFrame::orientationChanged() IntDegrees LocalFrame::orientation() const { if (RefPtr page = this->page()) @@ -5777,9 +5769,9 @@ index 43cbdcdc0a278fda65592af1a7b20babf0e055e4..11efd76361ace87f0ad276525cec399e return 0; } #endif // ENABLE(ORIENTATION_EVENTS) -@@ -1381,6 +1385,364 @@ void LocalFrame::setScrollingMode(ScrollbarMode scrollingMode) - view->setCanHaveScrollbars(m_scrollingMode != ScrollbarMode::AlwaysOff); - } +@@ -1428,6 +1432,364 @@ void LocalFrame::showResourceMonitoringError() + + #endif +#if !PLATFORM(IOS_FAMILY) + @@ -6143,7 +6135,7 @@ index 43cbdcdc0a278fda65592af1a7b20babf0e055e4..11efd76361ace87f0ad276525cec399e #undef FRAME_RELEASE_LOG_ERROR diff --git a/Source/WebCore/page/LocalFrame.h b/Source/WebCore/page/LocalFrame.h -index a585d427d1e7fd0f04defd8bb0e80841356f4948..05434b295c929791a1f14ab674ea7e0390e8e0ff 100644 +index 3611617df72251227ebd6a2f8c32bc9ab3da48aa..9b59492c8846cd8e91e58602010eb39b103747b7 100644 --- a/Source/WebCore/page/LocalFrame.h +++ b/Source/WebCore/page/LocalFrame.h @@ -28,8 +28,10 @@ @@ -6157,7 +6149,7 @@ index a585d427d1e7fd0f04defd8bb0e80841356f4948..05434b295c929791a1f14ab674ea7e03 #include "ScrollTypes.h" #include "UserScriptTypes.h" #include -@@ -115,8 +117,8 @@ enum { +@@ -116,8 +118,8 @@ enum { }; enum OverflowScrollAction { DoNotPerformOverflowScroll, PerformOverflowScroll }; @@ -6167,7 +6159,7 @@ index a585d427d1e7fd0f04defd8bb0e80841356f4948..05434b295c929791a1f14ab674ea7e03 class LocalFrame final : public Frame { public: -@@ -227,10 +229,6 @@ public: +@@ -226,10 +228,6 @@ public: WEBCORE_EXPORT DataDetectionResultsStorage& dataDetectionResults(); #endif @@ -6178,7 +6170,7 @@ index a585d427d1e7fd0f04defd8bb0e80841356f4948..05434b295c929791a1f14ab674ea7e03 WEBCORE_EXPORT Node* deepestNodeAtLocation(const FloatPoint& viewportLocation); WEBCORE_EXPORT Node* nodeRespondingToClickEvents(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation, SecurityOrigin* = nullptr); WEBCORE_EXPORT Node* nodeRespondingToDoubleClickEvent(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation); -@@ -238,6 +236,10 @@ public: +@@ -237,6 +235,10 @@ public: WEBCORE_EXPORT Node* nodeRespondingToScrollWheelEvents(const FloatPoint& viewportLocation); WEBCORE_EXPORT Node* approximateNodeAtViewportLocationLegacy(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation); @@ -6189,7 +6181,7 @@ index a585d427d1e7fd0f04defd8bb0e80841356f4948..05434b295c929791a1f14ab674ea7e03 WEBCORE_EXPORT NSArray *wordsInCurrentParagraph() const; WEBCORE_EXPORT CGRect renderRectForPoint(CGPoint, bool* isReplaced, float* fontSize) const; -@@ -305,6 +307,7 @@ public: +@@ -304,6 +306,7 @@ public: WEBCORE_EXPORT FloatSize screenSize() const; void setOverrideScreenSize(FloatSize&&); @@ -6197,7 +6189,7 @@ index a585d427d1e7fd0f04defd8bb0e80841356f4948..05434b295c929791a1f14ab674ea7e03 void selfOnlyRef(); void selfOnlyDeref(); -@@ -368,7 +371,6 @@ private: +@@ -371,7 +374,6 @@ private: #if ENABLE(DATA_DETECTION) std::unique_ptr m_dataDetectionResults; #endif @@ -6205,7 +6197,7 @@ index a585d427d1e7fd0f04defd8bb0e80841356f4948..05434b295c929791a1f14ab674ea7e03 void betterApproximateNode(const IntPoint& testPoint, const NodeQualifier&, Node*& best, Node* failedNode, IntPoint& bestPoint, IntRect& bestRect, const IntRect& testRect); bool hitTestResultAtViewportLocation(const FloatPoint& viewportLocation, HitTestResult&, IntPoint& center); -@@ -376,6 +378,7 @@ private: +@@ -379,6 +381,7 @@ private: enum class ShouldFindRootEditableElement : bool { No, Yes }; Node* qualifyingNodeAtViewportLocation(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation, const NodeQualifier&, ShouldApproximate, ShouldFindRootEditableElement = ShouldFindRootEditableElement::Yes); @@ -6214,11 +6206,11 @@ index a585d427d1e7fd0f04defd8bb0e80841356f4948..05434b295c929791a1f14ab674ea7e03 ViewportArguments m_viewportArguments; diff --git a/Source/WebCore/page/Page.cpp b/Source/WebCore/page/Page.cpp -index 45764553395dc05bb5dbbcebca65ae441b827ee6..4452870fa80d2233bf22720e6730ebcfb5763557 100644 +index 7cd56bf4f7fd05b85e61c26dbf1403e17c041867..0152d48d65ed21173df99ebec3e5abe29f7e6b2e 100644 --- a/Source/WebCore/page/Page.cpp +++ b/Source/WebCore/page/Page.cpp -@@ -632,6 +632,45 @@ void Page::setOverrideViewportArguments(const std::optional& - document->updateViewportArguments(); +@@ -637,6 +637,45 @@ void Page::setOverrideViewportArguments(const std::optional& + localTopDocument->updateViewportArguments(); } +FloatSize Page::screenSize() @@ -6263,8 +6255,8 @@ index 45764553395dc05bb5dbbcebca65ae441b827ee6..4452870fa80d2233bf22720e6730ebcf ScrollingCoordinator* Page::scrollingCoordinator() { if (!m_scrollingCoordinator && m_settings->scrollingCoordinatorEnabled()) { -@@ -4018,6 +4057,26 @@ void Page::setUseDarkAppearanceOverride(std::optional valueOverride) - #endif +@@ -4126,6 +4165,26 @@ void Page::setUseDarkAppearanceOverride(std::optional valueOverride) + appearanceDidChange(); } +void Page::setUseReducedMotionOverride(std::optional valueOverride) @@ -6291,10 +6283,10 @@ index 45764553395dc05bb5dbbcebca65ae441b827ee6..4452870fa80d2233bf22720e6730ebcf { if (insets == m_fullscreenInsets) diff --git a/Source/WebCore/page/Page.h b/Source/WebCore/page/Page.h -index 35b77368186161eef9637470b70d438f358ea6aa..2619738f4cb1e7c060435b22921aaca9e5003de0 100644 +index 7a117d8981605065213f521200776f8373439400..694fffe20f596f8e9c655181ed2b5917949859d7 100644 --- a/Source/WebCore/page/Page.h +++ b/Source/WebCore/page/Page.h -@@ -360,6 +360,9 @@ public: +@@ -364,6 +364,9 @@ public: const std::optional& overrideViewportArguments() const { return m_overrideViewportArguments; } WEBCORE_EXPORT void setOverrideViewportArguments(const std::optional&); @@ -6304,7 +6296,7 @@ index 35b77368186161eef9637470b70d438f358ea6aa..2619738f4cb1e7c060435b22921aaca9 static void refreshPlugins(bool reload); WEBCORE_EXPORT PluginData& pluginData(); void clearPluginData(); -@@ -431,6 +434,10 @@ public: +@@ -454,6 +457,10 @@ public: #if ENABLE(DRAG_SUPPORT) DragController& dragController() { return m_dragController.get(); } const DragController& dragController() const { return m_dragController.get(); } @@ -6315,7 +6307,7 @@ index 35b77368186161eef9637470b70d438f358ea6aa..2619738f4cb1e7c060435b22921aaca9 #endif FocusController& focusController() const { return *m_focusController; } WEBCORE_EXPORT CheckedRef checkedFocusController() const; -@@ -617,6 +624,10 @@ public: +@@ -639,6 +646,10 @@ public: WEBCORE_EXPORT void setUseColorAppearance(bool useDarkAppearance, bool useElevatedUserInterfaceLevel); bool defaultUseDarkAppearance() const { return m_useDarkAppearance; } void setUseDarkAppearanceOverride(std::optional); @@ -6326,7 +6318,7 @@ index 35b77368186161eef9637470b70d438f358ea6aa..2619738f4cb1e7c060435b22921aaca9 #if ENABLE(TEXT_AUTOSIZING) float textAutosizingWidth() const { return m_textAutosizingWidth; } -@@ -1070,6 +1081,11 @@ public: +@@ -1094,6 +1105,11 @@ public: WEBCORE_EXPORT void setInteractionRegionsEnabled(bool); #endif @@ -6338,7 +6330,7 @@ index 35b77368186161eef9637470b70d438f358ea6aa..2619738f4cb1e7c060435b22921aaca9 #if ENABLE(DEVICE_ORIENTATION) && PLATFORM(IOS_FAMILY) DeviceOrientationUpdateProvider* deviceOrientationUpdateProvider() const { return m_deviceOrientationUpdateProvider.get(); } #endif -@@ -1325,6 +1341,9 @@ private: +@@ -1358,6 +1374,9 @@ private: #if ENABLE(DRAG_SUPPORT) UniqueRef m_dragController; @@ -6348,7 +6340,7 @@ index 35b77368186161eef9637470b70d438f358ea6aa..2619738f4cb1e7c060435b22921aaca9 #endif std::unique_ptr m_focusController; #if ENABLE(CONTEXT_MENUS) -@@ -1405,6 +1424,8 @@ private: +@@ -1435,6 +1454,8 @@ private: bool m_useElevatedUserInterfaceLevel { false }; bool m_useDarkAppearance { false }; std::optional m_useDarkAppearanceOverride; @@ -6357,7 +6349,7 @@ index 35b77368186161eef9637470b70d438f358ea6aa..2619738f4cb1e7c060435b22921aaca9 #if ENABLE(TEXT_AUTOSIZING) float m_textAutosizingWidth { 0 }; -@@ -1585,6 +1606,11 @@ private: +@@ -1615,6 +1636,11 @@ private: #endif std::optional m_overrideViewportArguments; @@ -6370,10 +6362,10 @@ index 35b77368186161eef9637470b70d438f358ea6aa..2619738f4cb1e7c060435b22921aaca9 #if ENABLE(DEVICE_ORIENTATION) && PLATFORM(IOS_FAMILY) RefPtr m_deviceOrientationUpdateProvider; diff --git a/Source/WebCore/page/PageConsoleClient.cpp b/Source/WebCore/page/PageConsoleClient.cpp -index 7a951f2599ee142d22318055badaa4c6b1acc53a..51fda467e6ff06249e58ca1cda5d955e68370c6c 100644 +index 585c224c08f5a8f8d8e660fa627c264f3386d1ef..26a58fb2fa2a15468a70912f879fe01f4915d0ca 100644 --- a/Source/WebCore/page/PageConsoleClient.cpp +++ b/Source/WebCore/page/PageConsoleClient.cpp -@@ -437,4 +437,9 @@ Ref PageConsoleClient::protectedPage() const +@@ -456,4 +456,9 @@ Ref PageConsoleClient::protectedPage() const return m_page.get(); } @@ -6396,7 +6388,7 @@ index 153fc36199f26adbfb61cbef6744ffe31a68b951..cc667e06700013fd5e994467e19536d2 Ref protectedPage() const; diff --git a/Source/WebCore/page/PointerCaptureController.cpp b/Source/WebCore/page/PointerCaptureController.cpp -index e24fbc296a8bbfb784eaeb3b773b6384c2679b7b..a172c06103bb20d20e905d7cacec0830fd464f02 100644 +index 671c31a3af5253634ffd9a55b99aa9462f4e5f9a..faea774b6987408fac036fd19c8f1cefffa917b1 100644 --- a/Source/WebCore/page/PointerCaptureController.cpp +++ b/Source/WebCore/page/PointerCaptureController.cpp @@ -204,7 +204,7 @@ bool PointerCaptureController::preventsCompatibilityMouseEventsForIdentifier(Poi @@ -6490,7 +6482,7 @@ index 24ed7c019bea4df52f2883db0e40bdbc2dc74ebd..a788f534d9e0e8124153c7f380b4fdb2 } diff --git a/Source/WebCore/page/csp/ContentSecurityPolicy.cpp b/Source/WebCore/page/csp/ContentSecurityPolicy.cpp -index 74e4e43482f969cf90c47d897f8226672d748cff..d2b491a7346677253891f4057b2cdb1d679fe08b 100644 +index a67def78b37298d5efa0b14f337f58471c895169..ddfc9ae5b8391df70b3c6a4be2bcae6ae32b2b7c 100644 --- a/Source/WebCore/page/csp/ContentSecurityPolicy.cpp +++ b/Source/WebCore/page/csp/ContentSecurityPolicy.cpp @@ -347,6 +347,8 @@ bool ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtoc @@ -6665,7 +6657,7 @@ index c359242a7967dab94b8dc3c276a6df5473527145..64b0c6a0bfdf27a0305c25e8b8e0cda6 IntSize dragImageSize(DragImageRef) { diff --git a/Source/WebCore/platform/Pasteboard.h b/Source/WebCore/platform/Pasteboard.h -index 33841aa5cc1fc15557514d60096d8274234447c3..2c91d472a24c591215d6f2861aca6f86a00d086a 100644 +index 1b1a1147d4948e9281a114281e95d57d3b0ccf27..e21ccb98542cc582ad2489d301cb29c2b0c03f4b 100644 --- a/Source/WebCore/platform/Pasteboard.h +++ b/Source/WebCore/platform/Pasteboard.h @@ -46,7 +46,7 @@ OBJC_CLASS NSString; @@ -6839,7 +6831,7 @@ index 34715d27b529750fc866db87cd330b5184286771..3eefa218af075f76d98012cdeae7e4b3 // create a PlatformTouchPoint of type TouchCancelled artificially PlatformTouchPoint(unsigned id, State state, IntPoint screenPos, IntPoint pos) diff --git a/Source/WebCore/platform/Skia.cmake b/Source/WebCore/platform/Skia.cmake -index b3a6d971c8e9935c8ee6fe16c91f4210a8ee22dc..72380815f319976a132079bb4b41bf5b429c87e3 100644 +index 31460a79014b0a8b21fdfe71759af14ff2da46d7..f2594d701502102fed89d711694b64e05a863aaa 100644 --- a/Source/WebCore/platform/Skia.cmake +++ b/Source/WebCore/platform/Skia.cmake @@ -13,6 +13,7 @@ list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS @@ -6851,7 +6843,7 @@ index b3a6d971c8e9935c8ee6fe16c91f4210a8ee22dc..72380815f319976a132079bb4b41bf5b platform/graphics/skia/SkiaHarfBuzzFontCache.h platform/graphics/skia/SkiaPaintingEngine.h diff --git a/Source/WebCore/platform/adwaita/ScrollbarThemeAdwaita.cpp b/Source/WebCore/platform/adwaita/ScrollbarThemeAdwaita.cpp -index 8f36dda49adafd4a542e24e3c4dd33d42be00d27..953b6f88f8deb597d2179a8cec7b717b7cf6dc5a 100644 +index 492c5e76290c2379cda40b9663f5f67ff8f66360..096752985edf39960eb4be6eb733ebe3713313cb 100644 --- a/Source/WebCore/platform/adwaita/ScrollbarThemeAdwaita.cpp +++ b/Source/WebCore/platform/adwaita/ScrollbarThemeAdwaita.cpp @@ -46,7 +46,7 @@ @@ -6984,7 +6976,7 @@ index 3d0ab7eceaf2a6321685bc362eb9b25600fd98fd..2d7e9a399bf2e9dc3f373d5fa3db99fa namespace WebCore { diff --git a/Source/WebCore/platform/graphics/win/ComplexTextControllerUniscribe.cpp b/Source/WebCore/platform/graphics/win/ComplexTextControllerUniscribe.cpp -index eb9710f7d61121f2414c8aa6734dc27653e292bb..9c0c7b350a6140681242ce36a180d6866e3e0fc2 100644 +index 3f0b75a0702db1ed10334c80e4813094571f588c..ea5ff6b7e7bd4c3b8babebc294d7d7c94fc6afb6 100644 --- a/Source/WebCore/platform/graphics/win/ComplexTextControllerUniscribe.cpp +++ b/Source/WebCore/platform/graphics/win/ComplexTextControllerUniscribe.cpp @@ -169,6 +169,33 @@ static Vector stringIndicesFromClusters(const Vector& clusters, @@ -7031,7 +7023,7 @@ index eb9710f7d61121f2414c8aa6734dc27653e292bb..9c0c7b350a6140681242ce36a180d686 // Determine the string for this item. const UChar* str = cp.data() + items[i].iCharPos; diff --git a/Source/WebCore/platform/gtk/PlatformKeyboardEventGtk.cpp b/Source/WebCore/platform/gtk/PlatformKeyboardEventGtk.cpp -index 979ec06ecd698b60066dc6775bf1b647624baa56..1b3056aada9f352cc558f85fea0fd6c494b5201f 100644 +index 2b7d3dc70fdfec767d8caa13966c4051ee73aead..7fa8e155bef817c837042c8d6c4dcb84864232bc 100644 --- a/Source/WebCore/platform/gtk/PlatformKeyboardEventGtk.cpp +++ b/Source/WebCore/platform/gtk/PlatformKeyboardEventGtk.cpp @@ -37,8 +37,10 @@ @@ -7889,10 +7881,10 @@ index 64afe805b4418d9e57cc7a2704498a97162b93ab..86c385359352853d2884226f478168f8 Vector PlatformPasteboard::typesSafeForDOMToReadAndWrite(const String&) const diff --git a/Source/WebCore/platform/network/HTTPHeaderMap.cpp b/Source/WebCore/platform/network/HTTPHeaderMap.cpp -index d22cc965746c1b55ed9242af878a590a487ecae5..2c7649e3fa5bd13e456e1e1d90da37a813a75aca 100644 +index 1178c8fb001994bc9e6166376a367d9bc148913c..fcc6534568cad6b42a819a435f84ba2b9baae6f8 100644 --- a/Source/WebCore/platform/network/HTTPHeaderMap.cpp +++ b/Source/WebCore/platform/network/HTTPHeaderMap.cpp -@@ -234,8 +234,11 @@ void HTTPHeaderMap::add(HTTPHeaderName name, const String& value) +@@ -237,8 +237,11 @@ void HTTPHeaderMap::add(HTTPHeaderName name, const String& value) auto index = m_commonHeaders.findIf([&](auto& header) { return header.key == name; }); @@ -7906,10 +7898,10 @@ index d22cc965746c1b55ed9242af878a590a487ecae5..2c7649e3fa5bd13e456e1e1d90da37a8 m_commonHeaders.append(CommonHeader { name, value }); } diff --git a/Source/WebCore/platform/network/NetworkStorageSession.h b/Source/WebCore/platform/network/NetworkStorageSession.h -index 00d37bb9aac7aa0db5a7cc7acdff5611a44e4aaa..6e23adbdb9035bb4698232b2086b4ac0fcff7dea 100644 +index f14a54120d571c14bb7a721a377a57131760cfca..832b6710f726d4d8a8ccaa35b2f634a7d5604ccb 100644 --- a/Source/WebCore/platform/network/NetworkStorageSession.h +++ b/Source/WebCore/platform/network/NetworkStorageSession.h -@@ -184,6 +184,7 @@ public: +@@ -195,6 +195,7 @@ public: NetworkingContext* context() const; #endif @@ -7999,10 +7991,10 @@ index ec38706084d826ae14aefc6febba137d3e51f1a6..01a916a312e99e405d3098b3df78ee00 ResourceResponseBase::Source source; ResourceResponseBase::Type type; diff --git a/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm b/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm -index b101c64297f845dd72c80a28893c6a3f4e4d8c05..72e289b9fbeb40f11c161b0c0b1b743e173cf849 100644 +index 52c078b497e11adc41e2e31a09ebf2f052b6f272..051b5fe3f42eb72ff478693b1d9a74b251332840 100644 --- a/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm +++ b/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm -@@ -493,6 +493,22 @@ bool NetworkStorageSession::setCookieFromDOM(const URL& firstParty, const SameSi +@@ -536,6 +536,22 @@ bool NetworkStorageSession::setCookieFromDOM(const URL& firstParty, const SameSi return false; } @@ -8136,7 +8128,7 @@ index 7567442a6bdccbe755b2cf5e3fa42265a065a9e1..4886cf0b5a6bc0b8a270d763ad481f5b { switch (cookieDatabase().acceptPolicy()) { diff --git a/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp b/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp -index 09ab1320beacc41ae92399f3320aaf805d9d81d1..e1caf6e7ebd61151439a9c86350e57122784af0b 100644 +index 98285739dff7050e61611a23075599dcbe259d6a..b05dd64c53accd98dbb9e9e467aae3e07de7b974 100644 --- a/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp +++ b/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp @@ -424,6 +424,26 @@ void NetworkStorageSession::replaceCookies(const Vector& cookies) @@ -8167,7 +8159,7 @@ index 09ab1320beacc41ae92399f3320aaf805d9d81d1..e1caf6e7ebd61151439a9c86350e5712 { GUniquePtr targetCookie(cookie.toSoupCookie()); diff --git a/Source/WebCore/platform/win/ClipboardUtilitiesWin.cpp b/Source/WebCore/platform/win/ClipboardUtilitiesWin.cpp -index fd2a8e09edb5e076d8c436c69c41660bcd4f312e..455e9c4881744a86fdeaf29ebe50b303f7535825 100644 +index 9af57876ef4adddcf713392a3946efc30e75d3b7..956859daed43591ee52b20b2dfa6d381b812fbda 100644 --- a/Source/WebCore/platform/win/ClipboardUtilitiesWin.cpp +++ b/Source/WebCore/platform/win/ClipboardUtilitiesWin.cpp @@ -40,6 +40,7 @@ @@ -8178,7 +8170,7 @@ index fd2a8e09edb5e076d8c436c69c41660bcd4f312e..455e9c4881744a86fdeaf29ebe50b303 namespace WebCore { -@@ -690,7 +691,10 @@ template void getStringData(IDataObject* data, FORMATETC* format, Ve +@@ -691,7 +692,10 @@ template void getStringData(IDataObject* data, FORMATETC* format, Ve STGMEDIUM store; if (FAILED(data->GetData(format, &store))) return; @@ -8255,10 +8247,10 @@ index d450bf9d0fd1f0bf8f28db483ac9d3d60fa9d114..72a59403a0b5493aea4a8e28eb15eac2 OptionSet PlatformKeyboardEvent::currentStateOfModifierKeys() diff --git a/Source/WebCore/platform/win/PasteboardWin.cpp b/Source/WebCore/platform/win/PasteboardWin.cpp -index ec0b9f28cd41d15acb6feaa2132f08afb8a92b6b..496f5ec6733e72c28a55a748983dd868a0ef863b 100644 +index 8aab5ddd1dc749ecdd02ac59eb81f16294d67235..31cfdfb8dd2e174f39470421c59d9e520ddf84de 100644 --- a/Source/WebCore/platform/win/PasteboardWin.cpp +++ b/Source/WebCore/platform/win/PasteboardWin.cpp -@@ -1138,7 +1138,21 @@ void Pasteboard::writeCustomData(const Vector& data) +@@ -1142,7 +1142,21 @@ void Pasteboard::writeCustomData(const Vector& data) } clear(); @@ -8280,7 +8272,7 @@ index ec0b9f28cd41d15acb6feaa2132f08afb8a92b6b..496f5ec6733e72c28a55a748983dd868 if (::OpenClipboard(m_owner)) { const auto& customData = data.first(); customData.forEachPlatformStringOrBuffer([](auto& type, auto& stringOrBuffer) { -@@ -1177,4 +1191,25 @@ void Pasteboard::write(const Color&) +@@ -1181,4 +1195,25 @@ void Pasteboard::write(const Color&) { } @@ -8751,10 +8743,10 @@ index 0000000000000000000000000000000000000000..a76b583a1e65cd6999fab4784c22dd9c + +} // namespace WebCore diff --git a/Source/WebCore/rendering/RenderTextControl.cpp b/Source/WebCore/rendering/RenderTextControl.cpp -index 02afb718cfae6a4314ab704fbe6a70d88a530312..ed32870de0571317a6527d89a14a6a51b7acfd33 100644 +index 9d3de8e13762a270bc60d4201e8f35b62c908cbd..0e3eb8955cb8c751a600a0cce7690504899cbea8 100644 --- a/Source/WebCore/rendering/RenderTextControl.cpp +++ b/Source/WebCore/rendering/RenderTextControl.cpp -@@ -225,13 +225,13 @@ void RenderTextControl::layoutExcludedChildren(bool relayoutChildren) +@@ -223,13 +223,13 @@ void RenderTextControl::layoutExcludedChildren(bool relayoutChildren) } } @@ -8808,7 +8800,7 @@ index db95c8273bd0deb3f903a45d02fc07bbbd8ab305..bf88228b4c838b90d11d430cc9429d51 WorkerOrWorkletGlobalScope& m_globalScope; }; diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp -index c677a1dda62afcad62a41f1b8b8ff886ce7412ee..1df6de27593cab0e5f96c9d906a45f55003e1a66 100644 +index fe493f26a5a49b6ec9404105e8012291e3c37aab..9dbd5fcbac6d48fe92e5f7d9174192517e31a015 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp @@ -96,6 +96,8 @@ @@ -8820,7 +8812,7 @@ index c677a1dda62afcad62a41f1b8b8ff886ce7412ee..1df6de27593cab0e5f96c9d906a45f55 #endif #if ENABLE(APPLE_PAY_REMOTE_UI) -@@ -1130,6 +1132,14 @@ void NetworkConnectionToWebProcess::clearPageSpecificData(PageIdentifier pageID) +@@ -1148,6 +1150,14 @@ void NetworkConnectionToWebProcess::clearPageSpecificData(PageIdentifier pageID) storageSession->clearPageSpecificDataForResourceLoadStatistics(pageID); } @@ -8836,10 +8828,10 @@ index c677a1dda62afcad62a41f1b8b8ff886ce7412ee..1df6de27593cab0e5f96c9d906a45f55 { if (auto* storageSession = protectedNetworkProcess()->storageSession(m_sessionID)) diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h -index 590065cea0e5ed1167f6f8fc1a747c2d32a23c01..2807fb69297332011f38b5c3a27973ca53754c0a 100644 +index 7d2ad64026a920e5007965c2096d202ad611efa5..db7aa5bc9aa34ba43e5254b72d2d2bcf4eafeacc 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h -@@ -374,6 +374,8 @@ private: +@@ -380,6 +380,8 @@ private: void clearPageSpecificData(WebCore::PageIdentifier); @@ -8849,10 +8841,10 @@ index 590065cea0e5ed1167f6f8fc1a747c2d32a23c01..2807fb69297332011f38b5c3a27973ca void logUserInteraction(RegistrableDomain&&); diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in -index c493d8e359dfdd393cee8ab77d25fc08e942ba77..4934c6b5038953ec1f1662b03400f6d1f8fec9d7 100644 +index 580195a8f0e1fc690ecab8903bca002496a8822f..ce9ec7f6f668d46f6a14889f081dfc485a56e215 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in -@@ -79,6 +79,8 @@ messages -> NetworkConnectionToWebProcess WantsDispatchMessage { +@@ -80,6 +80,8 @@ messages -> NetworkConnectionToWebProcess WantsDispatchMessage { ClearPageSpecificData(WebCore::PageIdentifier pageID); @@ -8862,10 +8854,10 @@ index c493d8e359dfdd393cee8ab77d25fc08e942ba77..4934c6b5038953ec1f1662b03400f6d1 LogUserInteraction(WebCore::RegistrableDomain domain) ResourceLoadStatisticsUpdated(Vector statistics) -> () diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.cpp b/Source/WebKit/NetworkProcess/NetworkProcess.cpp -index 239ba1501c57b46b28f7e6442ae9a65935b7fcf0..819e8c69ddc28abbac2a82ced2c80ad41db9a1c3 100644 +index d0fd9b84a4bd5ba0e81fde94d5f2200cf664d278..3696082965d7b51ac5404f4411ed9d2fb1b30a7e 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.cpp +++ b/Source/WebKit/NetworkProcess/NetworkProcess.cpp -@@ -648,6 +648,12 @@ void NetworkProcess::registrableDomainsExemptFromWebsiteDataDeletion(PAL::Sessio +@@ -645,6 +645,12 @@ void NetworkProcess::registrableDomainsExemptFromWebsiteDataDeletion(PAL::Sessio completionHandler({ }); } @@ -8879,7 +8871,7 @@ index 239ba1501c57b46b28f7e6442ae9a65935b7fcf0..819e8c69ddc28abbac2a82ced2c80ad4 { if (auto* session = networkSession(sessionID)) { diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.h b/Source/WebKit/NetworkProcess/NetworkProcess.h -index a4ff8274229c85548135766cd1623d65813d9a12..6d500eeae356757850cfd55d62d6ec75ffe280d1 100644 +index 2f73648e4ddbf622b5ed52e25cbd6835fa706048..d0f354db52d964f75cf20767d29549fa0bdfbff9 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.h +++ b/Source/WebKit/NetworkProcess/NetworkProcess.h @@ -84,6 +84,7 @@ class SessionID; @@ -8901,10 +8893,10 @@ index a4ff8274229c85548135766cd1623d65813d9a12..6d500eeae356757850cfd55d62d6ec75 void clearUserInteraction(PAL::SessionID, RegistrableDomain&&, CompletionHandler&&); void deleteAndRestrictWebsiteDataForRegistrableDomains(PAL::SessionID, OptionSet, RegistrableDomainsToDeleteOrRestrictWebsiteDataFor&&, CompletionHandler&&)>&&); diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in -index 07286a774824c1ebab411668c173450aaa3d8db0..4a424aa025202517aa5392b969cfe50552628f14 100644 +index ef4f18038deef8bbed0d24507048050a19e6351a..b2961f2ac65cc44505e7ea6d191ab3b5ec8165db 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in +++ b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in -@@ -85,6 +85,8 @@ messages -> NetworkProcess : AuxiliaryProcess WantsAsyncDispatchMessage { +@@ -86,6 +86,8 @@ messages -> NetworkProcess : AuxiliaryProcess WantsAsyncDispatchMessage { SetInspectionForServiceWorkersAllowed(PAL::SessionID sessionID, bool inspectable) @@ -8914,10 +8906,10 @@ index 07286a774824c1ebab411668c173450aaa3d8db0..4a424aa025202517aa5392b969cfe505 ClearUserInteraction(PAL::SessionID sessionID, WebCore::RegistrableDomain resourceDomain) -> () DumpResourceLoadStatistics(PAL::SessionID sessionID) -> (String dumpedStatistics) diff --git a/Source/WebKit/NetworkProcess/NetworkSession.h b/Source/WebKit/NetworkProcess/NetworkSession.h -index e04e1ab157e39b042af9a9a02866ad871264a496..7ba4f9bba80d8c8af7bb1a6383b36bb436ce26c4 100644 +index 53acfd4c7c13b7595a7be3f13f5edac01f82b891..319386e3c6a1f760d548385859c2f0410f2727a5 100644 --- a/Source/WebKit/NetworkProcess/NetworkSession.h +++ b/Source/WebKit/NetworkProcess/NetworkSession.h -@@ -204,6 +204,9 @@ public: +@@ -205,6 +205,9 @@ public: void lowMemoryHandler(WTF::Critical); @@ -8927,7 +8919,7 @@ index e04e1ab157e39b042af9a9a02866ad871264a496..7ba4f9bba80d8c8af7bb1a6383b36bb4 void removeSoftUpdateLoader(ServiceWorkerSoftUpdateLoader* loader) { m_softUpdateLoaders.remove(loader); } void addNavigationPreloaderTask(ServiceWorkerFetchTask&); ServiceWorkerFetchTask* navigationPreloaderTaskFromFetchIdentifier(WebCore::FetchIdentifier); -@@ -321,6 +324,7 @@ protected: +@@ -328,6 +331,7 @@ protected: bool m_privateClickMeasurementDebugModeEnabled { false }; std::optional m_ephemeralMeasurement; bool m_isRunningEphemeralMeasurementTest { false }; @@ -8936,10 +8928,10 @@ index e04e1ab157e39b042af9a9a02866ad871264a496..7ba4f9bba80d8c8af7bb1a6383b36bb4 HashSet> m_keptAliveLoads; diff --git a/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm b/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm -index 9525ea0ff6d7a3ae90ceb319a13600f682524c32..4461f24b5087cae6203b4c0f12db4edc0e2c2380 100644 +index 2a7bf5142aea077a0686c66d6fc0b2430be18c98..2640236a871e5a6455b32716d84711098802813b 100644 --- a/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm +++ b/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm -@@ -772,6 +772,8 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didRece +@@ -773,6 +773,8 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didRece if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { sessionCocoa->setClientAuditToken(challenge); @@ -8948,7 +8940,7 @@ index 9525ea0ff6d7a3ae90ceb319a13600f682524c32..4461f24b5087cae6203b4c0f12db4edc NSURLSessionTaskTransactionMetrics *metrics = task._incompleteTaskMetrics.transactionMetrics.lastObject; auto tlsVersion = (tls_protocol_version_t)metrics.negotiatedTLSProtocolVersion.unsignedShortValue; -@@ -1121,6 +1123,13 @@ - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)data +@@ -1124,6 +1126,13 @@ - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)data resourceResponse.setDeprecatedNetworkLoadMetrics(WebCore::copyTimingData(taskMetrics, networkDataTask->networkLoadMetrics())); @@ -9107,7 +9099,7 @@ index 49685c872d0fb042a401612201a7448af6f1ac8b..e98efc1c2e7e5a85980c8d39afcb600a void NetworkSessionCurl::didReceiveChallenge(WebSocketTask& webSocketTask, WebCore::AuthenticationChallenge&& challenge, CompletionHandler&& challengeCompletionHandler) diff --git a/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp b/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp -index 57da1a448cc75e4a24f0a2b3e7159452da8da2df..f64b446e074cb58c36be5f68ccb07e4584a38a1f 100644 +index 1853b717d021c5ec5c79abb61bec684460646a7a..625b921890a75c521bdf6fc3a5fd4bf3e9d74006 100644 --- a/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp +++ b/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp @@ -39,11 +39,12 @@ @@ -9244,10 +9236,10 @@ index 599c405513ee38c74da12c01dafc23c6ece86aa0..5af7dc9306d211a5cff1736013716b08 } diff --git a/Source/WebKit/PlatformGTK.cmake b/Source/WebKit/PlatformGTK.cmake -index 232378e3be5e4e1b4bdd9f97a722f518f8fdec33..fed6a3de75b889fa90e18cb95300ceecb3e80d40 100644 +index 945c0ce1def2b3ed580e2f497b2347a8b2cebbac..722b30d805b005229b38fe4ef2c53c06b8fb2f24 100644 --- a/Source/WebKit/PlatformGTK.cmake +++ b/Source/WebKit/PlatformGTK.cmake -@@ -327,6 +327,9 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES +@@ -328,6 +328,9 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES ${GSTREAMER_PBUTILS_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${LIBSOUP_INCLUDE_DIRS} @@ -9257,7 +9249,7 @@ index 232378e3be5e4e1b4bdd9f97a722f518f8fdec33..fed6a3de75b889fa90e18cb95300ceec ) list(APPEND WebKit_INTERFACE_INCLUDE_DIRECTORIES -@@ -363,6 +366,9 @@ if (USE_LIBWEBRTC) +@@ -364,6 +367,9 @@ if (USE_LIBWEBRTC) list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES "${THIRDPARTY_DIR}/libwebrtc/Source/" "${THIRDPARTY_DIR}/libwebrtc/Source/webrtc" @@ -9267,7 +9259,7 @@ index 232378e3be5e4e1b4bdd9f97a722f518f8fdec33..fed6a3de75b889fa90e18cb95300ceec ) endif () -@@ -414,6 +420,12 @@ else () +@@ -415,6 +421,12 @@ else () set(WebKitGTK_ENUM_HEADER_TEMPLATE ${WEBKIT_DIR}/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in) endif () @@ -9319,10 +9311,10 @@ index 3c5bdcf25c6f9c0c86d0c4550d5dc7486f99d703..259fce0cf15b4263148f6f6da5916100 list(APPEND WebKit_LIBRARIES WPE::libwpe diff --git a/Source/WebKit/PlatformWin.cmake b/Source/WebKit/PlatformWin.cmake -index d68c315379e227e41722991651c1c1285194bad6..401aa471b17032bf3fb3f3de8bc14f14fd304719 100644 +index e0e9b52c43ee0742f705159c1369f2938b9c4956..05fa7d93a721f200143e9d3ac45a75ce942afc88 100644 --- a/Source/WebKit/PlatformWin.cmake +++ b/Source/WebKit/PlatformWin.cmake -@@ -55,8 +55,13 @@ list(APPEND WebKit_SOURCES +@@ -54,8 +54,13 @@ list(APPEND WebKit_SOURCES UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp UIProcess/win/AutomationClientWin.cpp @@ -9336,7 +9328,7 @@ index d68c315379e227e41722991651c1c1285194bad6..401aa471b17032bf3fb3f3de8bc14f14 UIProcess/win/WebPageProxyWin.cpp UIProcess/win/WebPopupMenuProxyWin.cpp UIProcess/win/WebProcessPoolWin.cpp -@@ -72,6 +77,7 @@ list(APPEND WebKit_SOURCES +@@ -71,6 +76,7 @@ list(APPEND WebKit_SOURCES WebProcess/MediaCache/WebMediaKeyStorageManager.cpp WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp @@ -9344,7 +9336,7 @@ index d68c315379e227e41722991651c1c1285194bad6..401aa471b17032bf3fb3f3de8bc14f14 WebProcess/WebPage/AcceleratedSurface.cpp -@@ -117,8 +123,81 @@ list(APPEND WebKit_PUBLIC_FRAMEWORK_HEADERS +@@ -120,8 +126,81 @@ list(APPEND WebKit_PUBLIC_FRAMEWORK_HEADERS list(APPEND WebKit_PRIVATE_LIBRARIES comctl32 @@ -9426,6 +9418,19 @@ index d68c315379e227e41722991651c1c1285194bad6..401aa471b17032bf3fb3f3de8bc14f14 list(APPEND WebProcess_SOURCES WebProcess/EntryPoint/win/WebProcessMain.cpp +diff --git a/Source/WebKit/Scripts/generate-unified-sources.sh b/Source/WebKit/Scripts/generate-unified-sources.sh +index 666b9f0669ad6e7d9050ec5b7a7d67ac533be363..d50f0eb91074b6263be5805fd89818a3573cf0ef 100755 +--- a/Source/WebKit/Scripts/generate-unified-sources.sh ++++ b/Source/WebKit/Scripts/generate-unified-sources.sh +@@ -18,7 +18,7 @@ if [ $# -eq 0 ]; then + echo "Using unified source list files: Sources.txt, SourcesCocoa.txt, Platform/Sources.txt, Platform/SourcesCocoa.txt" + fi + +-UnifiedSourceCppFileCount=137 ++UnifiedSourceCppFileCount=139 + UnifiedSourceCFileCount=0 + UnifiedSourceMmFileCount=80 + diff --git a/Source/WebKit/Shared/AuxiliaryProcess.h b/Source/WebKit/Shared/AuxiliaryProcess.h index 4510beb0b7403138abef4c9b5e892271fe8beaab..dae8f31ef187d7b086dd84d7e356839dc2811154 100644 --- a/Source/WebKit/Shared/AuxiliaryProcess.h @@ -9546,10 +9551,10 @@ index ea1eb9f00feaaecf73bdddc37c904e88f43bfa85..8a631e5293a11abd650958baad4e9678 #endif }; diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -index 309c0b92bc4fbd53ba15c0f334f753a4ba5d4416..d6c03e6ff85c8107d8ba58b69572a85019dd91d9 100644 +index fda0fedd6538fa8d239775da0949d907f235be33..a8218678e5a0ffab6828529395bbd783b955b256 100644 --- a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in +++ b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -@@ -2769,6 +2769,9 @@ class WebCore::AuthenticationChallenge { +@@ -2764,6 +2764,9 @@ class WebCore::AuthenticationChallenge { class WebCore::DragData { #if PLATFORM(COCOA) String pasteboardName(); @@ -9559,7 +9564,7 @@ index 309c0b92bc4fbd53ba15c0f334f753a4ba5d4416..d6c03e6ff85c8107d8ba58b69572a850 #endif WebCore::IntPoint clientPosition(); WebCore::IntPoint globalPosition(); -@@ -3567,6 +3570,7 @@ enum class WebCore::WasPrivateRelayed : bool; +@@ -3562,6 +3565,7 @@ enum class WebCore::WasPrivateRelayed : bool; String httpStatusText; String httpVersion; WebCore::HTTPHeaderMap httpHeaderFields; @@ -9685,10 +9690,10 @@ index fd4722dd38df74f259d8add02025549022a0a205..e1c33f6d766707170935b3e77e81098c void setPosition(const WebCore::IntPoint& position) { m_position = position; } const WebCore::IntPoint& globalPosition() const { return m_globalPosition; } diff --git a/Source/WebKit/Shared/WebPageCreationParameters.h b/Source/WebKit/Shared/WebPageCreationParameters.h -index 4fe4a84a939e46607a2871fcbdd96b1357573915..4eb0e10f4c079cf3bc7e94f6c02afd09ffe5015c 100644 +index 8b5cedc5b433d8b7c1cdadf8206bd7b446ae7c21..9a8ac919d38ce51ffb1e0aeda9f23ce587736dd8 100644 --- a/Source/WebKit/Shared/WebPageCreationParameters.h +++ b/Source/WebKit/Shared/WebPageCreationParameters.h -@@ -303,6 +303,8 @@ struct WebPageCreationParameters { +@@ -306,6 +306,8 @@ struct WebPageCreationParameters { bool httpsUpgradeEnabled { true }; @@ -9698,10 +9703,10 @@ index 4fe4a84a939e46607a2871fcbdd96b1357573915..4eb0e10f4c079cf3bc7e94f6c02afd09 bool allowsDeprecatedSynchronousXMLHttpRequestDuringUnload { false }; #endif diff --git a/Source/WebKit/Shared/WebPageCreationParameters.serialization.in b/Source/WebKit/Shared/WebPageCreationParameters.serialization.in -index b819a2ee2af4b6d3e6eeabecf6ef770eaf988bbe..e43123a99d7c2fff6ea2875001631f2b52aa70c0 100644 +index bf9888a54cfe4fe5f2dee954b82fa9301498175b..85a2c43977be2751a61a9594c53270fb1bb26b4f 100644 --- a/Source/WebKit/Shared/WebPageCreationParameters.serialization.in +++ b/Source/WebKit/Shared/WebPageCreationParameters.serialization.in -@@ -227,6 +227,8 @@ enum class WebCore::UserInterfaceLayoutDirection : bool; +@@ -226,6 +226,8 @@ enum class WebCore::UserInterfaceLayoutDirection : bool; bool httpsUpgradeEnabled; @@ -9803,7 +9808,7 @@ index 0000000000000000000000000000000000000000..f4f09d171ebf9774b3f8744751d220d3 + bool canSmartReplace() +} diff --git a/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp b/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp -index b00e6ecd0deb54eed0c2f05ba54c75a37383a90e..df085b96df4c8f5c1cb8cc25db20d019ad20f67e 100644 +index f931d51a7b1818155729d5622038c442bba53cc0..d7c1ce87abca61fb5b72368376352ce93744a9a1 100644 --- a/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp +++ b/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp @@ -40,6 +40,15 @@ @@ -9862,7 +9867,7 @@ index a1044685ff596361f14f418a1d1f0b133dee385a..2916a6f8e0c370b860ea45106c34d8dd #endif // ENABLE(TOUCH_EVENTS) diff --git a/Source/WebKit/Sources.txt b/Source/WebKit/Sources.txt -index 3fd56653a93792ebde4b607e1f7157d5aa95b933..06108563862ca29350a62ba3ddf5186bd702706a 100644 +index 63be8e6480621c508443ba589342034a8cd64523..57b13efa8198ffa203510642b2db8aae526f5030 100644 --- a/Source/WebKit/Sources.txt +++ b/Source/WebKit/Sources.txt @@ -384,6 +384,7 @@ Shared/XR/XRDeviceProxy.cpp @@ -9916,10 +9921,10 @@ index 3fd56653a93792ebde4b607e1f7157d5aa95b933..06108563862ca29350a62ba3ddf5186b UIProcess/Media/AudioSessionRoutingArbitratorProxy.cpp UIProcess/Media/MediaUsageManager.cpp diff --git a/Source/WebKit/SourcesCocoa.txt b/Source/WebKit/SourcesCocoa.txt -index 691526c0539d33e3bf69a84d26eb24b1f5d8202a..1e195cc3f2fa96059f3293ce3aca9ad5d1a55258 100644 +index 703fed777c597c14e0794270747c771627118460..a521863925b7392e1172f62d818bde3e4d66850c 100644 --- a/Source/WebKit/SourcesCocoa.txt +++ b/Source/WebKit/SourcesCocoa.txt -@@ -269,6 +269,7 @@ UIProcess/API/Cocoa/_WKArchiveExclusionRule.mm +@@ -270,6 +270,7 @@ UIProcess/API/Cocoa/_WKArchiveExclusionRule.mm UIProcess/API/Cocoa/_WKAttachment.mm UIProcess/API/Cocoa/_WKAutomationSession.mm UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.mm @@ -9927,7 +9932,7 @@ index 691526c0539d33e3bf69a84d26eb24b1f5d8202a..1e195cc3f2fa96059f3293ce3aca9ad5 UIProcess/API/Cocoa/_WKContentRuleListAction.mm UIProcess/API/Cocoa/_WKContextMenuElementInfo.mm UIProcess/API/Cocoa/_WKCustomHeaderFields.mm @no-unify -@@ -463,6 +464,7 @@ UIProcess/Inspector/ios/WKInspectorHighlightView.mm +@@ -464,6 +465,7 @@ UIProcess/Inspector/ios/WKInspectorHighlightView.mm UIProcess/Inspector/ios/WKInspectorNodeSearchGestureRecognizer.mm UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm @@ -9936,7 +9941,7 @@ index 691526c0539d33e3bf69a84d26eb24b1f5d8202a..1e195cc3f2fa96059f3293ce3aca9ad5 UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm UIProcess/Inspector/mac/WKInspectorViewController.mm diff --git a/Source/WebKit/SourcesGTK.txt b/Source/WebKit/SourcesGTK.txt -index d72fbeaf135545416a2997d557fd0bead76dc486..a68862ac8f44c4a54d39483af518b99071a85c0f 100644 +index 39c4934ff42c3854a5c4acf379812d3f8d55832f..0fcdeea00c863c6b72469b3f4cd8561f0d7113c5 100644 --- a/Source/WebKit/SourcesGTK.txt +++ b/Source/WebKit/SourcesGTK.txt @@ -122,6 +122,7 @@ UIProcess/API/glib/WebKitAutomationSession.cpp @no-unify @@ -9947,7 +9952,7 @@ index d72fbeaf135545416a2997d557fd0bead76dc486..a68862ac8f44c4a54d39483af518b990 UIProcess/API/glib/WebKitContextMenuClient.cpp @no-unify UIProcess/API/glib/WebKitCookieManager.cpp @no-unify UIProcess/API/glib/WebKitCredential.cpp @no-unify -@@ -251,6 +252,7 @@ UIProcess/glib/DisplayVBlankMonitor.cpp +@@ -252,6 +253,7 @@ UIProcess/glib/DisplayVBlankMonitor.cpp UIProcess/glib/DisplayVBlankMonitorDRM.cpp UIProcess/glib/DisplayVBlankMonitorTimer.cpp UIProcess/glib/FenceMonitor.cpp @@ -9955,7 +9960,7 @@ index d72fbeaf135545416a2997d557fd0bead76dc486..a68862ac8f44c4a54d39483af518b990 UIProcess/glib/ScreenManager.cpp UIProcess/glib/SystemSettingsManagerProxy.cpp UIProcess/glib/WebPageProxyGLib.cpp -@@ -269,6 +271,7 @@ UIProcess/gtk/DisplayX11.cpp @no-unify +@@ -270,6 +272,7 @@ UIProcess/gtk/DisplayX11.cpp @no-unify UIProcess/gtk/DisplayWayland.cpp @no-unify UIProcess/gtk/WebDateTimePickerGtk.cpp UIProcess/gtk/HardwareAccelerationManager.cpp @@ -9963,7 +9968,7 @@ index d72fbeaf135545416a2997d557fd0bead76dc486..a68862ac8f44c4a54d39483af518b990 UIProcess/gtk/KeyBindingTranslator.cpp UIProcess/gtk/PointerLockManager.cpp @no-unify UIProcess/gtk/PointerLockManagerWayland.cpp @no-unify -@@ -282,6 +285,8 @@ UIProcess/gtk/ViewGestureControllerGtk.cpp +@@ -283,6 +286,8 @@ UIProcess/gtk/ViewGestureControllerGtk.cpp UIProcess/gtk/WebColorPickerGtk.cpp UIProcess/gtk/WebContextMenuProxyGtk.cpp UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp @@ -9973,7 +9978,7 @@ index d72fbeaf135545416a2997d557fd0bead76dc486..a68862ac8f44c4a54d39483af518b990 UIProcess/gtk/WebPasteboardProxyGtk.cpp UIProcess/gtk/WebPopupMenuProxyGtk.cpp diff --git a/Source/WebKit/SourcesWPE.txt b/Source/WebKit/SourcesWPE.txt -index f655188213595d7e990faa208258486a8e721bb1..88f81226b302ea9b190b3d72576992746531a882 100644 +index 3eaaa65a91fb381bd7366e36c147e0cba64358d4..645f0c98e248de12731c2bdf693eaef614535b3f 100644 --- a/Source/WebKit/SourcesWPE.txt +++ b/Source/WebKit/SourcesWPE.txt @@ -124,6 +124,7 @@ UIProcess/API/glib/WebKitAuthenticationRequest.cpp @no-unify @@ -10032,7 +10037,7 @@ index f655188213595d7e990faa208258486a8e721bb1..88f81226b302ea9b190b3d7257699274 WebProcess/WebPage/AcceleratedSurface.cpp diff --git a/Source/WebKit/UIProcess/API/APIPageConfiguration.cpp b/Source/WebKit/UIProcess/API/APIPageConfiguration.cpp -index c1a03ab72d496d65b1036a7227ad0e23d896f89f..a17ffd445f3070e579aa11fac24dca881585903b 100644 +index bbd1b64631ed858686e118c94a5b44ef2bacc3f8..491e888db9e696ac65528ebd05a38224d9140b2f 100644 --- a/Source/WebKit/UIProcess/API/APIPageConfiguration.cpp +++ b/Source/WebKit/UIProcess/API/APIPageConfiguration.cpp @@ -255,6 +255,11 @@ WebPageProxy* PageConfiguration::relatedPage() const @@ -10048,10 +10053,10 @@ index c1a03ab72d496d65b1036a7227ad0e23d896f89f..a17ffd445f3070e579aa11fac24dca88 { return m_data.pageToCloneSessionStorageFrom.get(); diff --git a/Source/WebKit/UIProcess/API/APIPageConfiguration.h b/Source/WebKit/UIProcess/API/APIPageConfiguration.h -index 8e7d7abc63f5740a0ad05c811470bd476219c93f..0c16acfa885b2d648c58ebf14f2babd5547d6571 100644 +index d4cc6c31b1cb6483cd1ac5d90762c4a2ad7c905a..2322900ab0c068d28f975bef27dac02b4469aef0 100644 --- a/Source/WebKit/UIProcess/API/APIPageConfiguration.h +++ b/Source/WebKit/UIProcess/API/APIPageConfiguration.h -@@ -155,6 +155,10 @@ public: +@@ -156,6 +156,10 @@ public: WebKit::WebPageProxy* relatedPage() const; void setRelatedPage(WeakPtr&& relatedPage) { m_data.relatedPage = WTFMove(relatedPage); } @@ -10062,7 +10067,7 @@ index 8e7d7abc63f5740a0ad05c811470bd476219c93f..0c16acfa885b2d648c58ebf14f2babd5 WebKit::WebPageProxy* pageToCloneSessionStorageFrom() const; void setPageToCloneSessionStorageFrom(WeakPtr&&); -@@ -510,6 +514,7 @@ private: +@@ -507,6 +511,7 @@ private: #endif RefPtr pageGroup; WeakPtr relatedPage; @@ -10071,7 +10076,7 @@ index 8e7d7abc63f5740a0ad05c811470bd476219c93f..0c16acfa885b2d648c58ebf14f2babd5 WebCore::Site openedSite; WTF::String openedMainFrameName; diff --git a/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp b/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp -index a08bd7c99393d04b0b377e404196bc2fda008038..9943de5d16474cf9a506f7c2b0daf555abdfc9cf 100644 +index e256b905bf9727aa7c8a48012237a6a6bc9acdbc..4e855c441af6f235f0fd8dfdd57b9bd6e4646492 100644 --- a/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp +++ b/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp @@ -52,6 +52,10 @@ Ref ProcessPoolConfiguration::copy() @@ -10086,7 +10091,7 @@ index a08bd7c99393d04b0b377e404196bc2fda008038..9943de5d16474cf9a506f7c2b0daf555 copy->m_shouldTakeUIBackgroundAssertion = this->m_shouldTakeUIBackgroundAssertion; copy->m_shouldCaptureDisplayInUIProcess = this->m_shouldCaptureDisplayInUIProcess; diff --git a/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h b/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h -index 1dd06677f5b6712abce52103c0209ef46a25ed77..869c2a1eec2797cd7fabee4ed7949cefb47ca361 100644 +index d2e8261c6db000aa41697b3bb50e2bea149edcdf..500c38b81d6804f64ff891e32b2c72ed98c9a629 100644 --- a/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h +++ b/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h @@ -96,6 +96,16 @@ public: @@ -10118,10 +10123,10 @@ index 1dd06677f5b6712abce52103c0209ef46a25ed77..869c2a1eec2797cd7fabee4ed7949cef bool m_shouldTakeUIBackgroundAssertion { true }; bool m_shouldCaptureDisplayInUIProcess { DEFAULT_CAPTURE_DISPLAY_IN_UI_PROCESS }; diff --git a/Source/WebKit/UIProcess/API/APIUIClient.h b/Source/WebKit/UIProcess/API/APIUIClient.h -index f7d8880ba2c010245a69e779f5a3d11f6af6b4e0..4ed7b422d72c8814aec0f1d9cbcf466dc464fe17 100644 +index 2972dde456001f5443142513711549297eff9b10..a71d47c77a1167863232f2e7d76381b3e87c4af3 100644 --- a/Source/WebKit/UIProcess/API/APIUIClient.h +++ b/Source/WebKit/UIProcess/API/APIUIClient.h -@@ -116,6 +116,7 @@ public: +@@ -115,6 +115,7 @@ public: virtual void runJavaScriptAlert(WebKit::WebPageProxy&, const WTF::String&, WebKit::WebFrameProxy*, WebKit::FrameInfoData&&, Function&& completionHandler) { completionHandler(); } virtual void runJavaScriptConfirm(WebKit::WebPageProxy&, const WTF::String&, WebKit::WebFrameProxy*, WebKit::FrameInfoData&&, Function&& completionHandler) { completionHandler(false); } virtual void runJavaScriptPrompt(WebKit::WebPageProxy&, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy*, WebKit::FrameInfoData&&, Function&& completionHandler) { completionHandler(WTF::String()); } @@ -10173,10 +10178,10 @@ index 026121d114c5fcad84c1396be8d692625beaa3bd..edd6e5cae033124c589959a42522fde0 } #endif diff --git a/Source/WebKit/UIProcess/API/C/WKPage.cpp b/Source/WebKit/UIProcess/API/C/WKPage.cpp -index 048cd54f4b349d48d023f5532e4606f96340bfc2..562ad6fc0cfc3a7082ef19ab2bf592718bb16fa6 100644 +index bae7c5eb3879237a34a1abb249bf312822d59569..f905369dec97083ce4d4d60b838a63e56be36d77 100644 --- a/Source/WebKit/UIProcess/API/C/WKPage.cpp +++ b/Source/WebKit/UIProcess/API/C/WKPage.cpp -@@ -1800,6 +1800,13 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient +@@ -1801,6 +1801,13 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient completionHandler(String()); } @@ -10190,7 +10195,7 @@ index 048cd54f4b349d48d023f5532e4606f96340bfc2..562ad6fc0cfc3a7082ef19ab2bf59271 void setStatusText(WebPageProxy* page, const String& text) final { if (!m_client.setStatusText) -@@ -1829,6 +1836,8 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient +@@ -1830,6 +1837,8 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient { if (!m_client.didNotHandleKeyEvent) return; @@ -10260,10 +10265,10 @@ index 1484f064ec89ee8c25c35df9f0a4462896699415..0622f4d5fc9144b9059395d9d0730a4a // Version 15. WKPageDecidePolicyForSpeechRecognitionPermissionRequestCallback decidePolicyForSpeechRecognitionPermissionRequest; diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm b/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm -index 6625fbd43fe223d7be556283e43abd70bb664d5b..9bbd46a892af196c32636d622d959aef1b6d14b3 100644 +index 93882c7e4c9873fce79af428ceaa73a4eca851cb..9d6f85a1ee633bdd6589fe9fae74d6f9ebff6e08 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm -@@ -697,6 +697,16 @@ - (void)_setMediaCaptureRequiresSecureConnection:(BOOL)requiresSecureConnection +@@ -712,6 +712,16 @@ - (void)_setMediaCaptureRequiresSecureConnection:(BOOL)requiresSecureConnection _preferences->setMediaCaptureRequiresSecureConnection(requiresSecureConnection); } @@ -10281,7 +10286,7 @@ index 6625fbd43fe223d7be556283e43abd70bb664d5b..9bbd46a892af196c32636d622d959aef { return _preferences->inactiveMediaCaptureStreamRepromptIntervalInMinutes(); diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h b/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h -index 07f25e73846777573709a8091fab19fe576e4282..e194073bc1a0dac8f2e2bf25f430c8624f2cb932 100644 +index 31de8ef3d986a5c391e1fb045268e95d5eefaf11..690cb85ab84d7ad2818ba4c362c8f0f25e25c1e1 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h +++ b/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h @@ -119,6 +119,7 @@ typedef NS_ENUM(NSInteger, _WKPitchCorrectionAlgorithm) { @@ -10293,7 +10298,7 @@ index 07f25e73846777573709a8091fab19fe576e4282..e194073bc1a0dac8f2e2bf25f430c862 @property (nonatomic, setter=_setICECandidateFilteringEnabled:) BOOL _iceCandidateFilteringEnabled WK_API_AVAILABLE(macos(10.13.4), ios(11.3)); @property (nonatomic, setter=_setInactiveMediaCaptureStreamRepromptIntervalInMinutes:) double _inactiveMediaCaptureStreamRepromptIntervalInMinutes WK_API_AVAILABLE(macos(10.13.4), ios(11.3)); diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKUIDelegate.h b/Source/WebKit/UIProcess/API/Cocoa/WKUIDelegate.h -index 11fd07547370723575352866358867b5dddb8a61..8d59d73717325a92e3eb892384daf35d8eb3fb17 100644 +index ef512c7ba09298b2291d0248988574163ff2e7c8..d42e7f9f7b66840b68e61ce46b4bbd6254518ef7 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKUIDelegate.h +++ b/Source/WebKit/UIProcess/API/Cocoa/WKUIDelegate.h @@ -149,6 +149,12 @@ WK_SWIFT_UI_ACTOR @@ -10323,7 +10328,7 @@ index eff4cf557033561ab20762d93a58c2d71f5505f0..9418e2c51e50190dee2b5d7c854eacea NS_ASSUME_NONNULL_END diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm -index 233c902323f43300cbe7a4a0a02f6afdb8c9dc1c..5484a2101a984612c1bde529250ad75c3ebcdfd2 100644 +index 29f1855ec5009fecf05e3c3fda2d38845973c085..279b05f40b2d446bb7bedbcab4239e2f72656cd2 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm @@ -55,6 +55,7 @@ @@ -10334,7 +10339,7 @@ index 233c902323f43300cbe7a4a0a02f6afdb8c9dc1c..5484a2101a984612c1bde529250ad75c #import #import #import -@@ -493,6 +494,11 @@ - (void)removeDataOfTypes:(NSSet *)dataTypes modifiedSince:(NSDate *)date comple +@@ -496,6 +497,11 @@ - (void)removeDataOfTypes:(NSSet *)dataTypes modifiedSince:(NSDate *)date comple }); } @@ -10474,7 +10479,7 @@ index 0000000000000000000000000000000000000000..69eb9c6aa30beb8ea21a0ef647e46304 +} +@end diff --git a/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h b/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h -index 6b3a806a282b8de4af64b0db7d04215a4321c924..f437ed7c7c6c1492f110141861aa7feeb8096246 100644 +index 426c7cbc897e22fd2e962dd3744959975d6ae6a0..f7a52359d7d42f970ef424b6c702b0ec1121a902 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h +++ b/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h @@ -67,6 +67,7 @@ WK_CLASS_AVAILABLE(macos(10.10), ios(8.0)) @@ -10486,7 +10491,7 @@ index 6b3a806a282b8de4af64b0db7d04215a4321c924..f437ed7c7c6c1492f110141861aa7fee @property (nonatomic) BOOL processSwapsOnNavigationWithinSameNonHTTPFamilyProtocol WK_API_AVAILABLE(macos(12.0), ios(15.0)); @property (nonatomic) BOOL prewarmsProcessesAutomatically WK_API_AVAILABLE(macos(10.14.4), ios(12.2)); diff --git a/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm b/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm -index 56d52f9a7c6a893b598daacbfa6d491a7ed22460..83fee0d877594f20eade4b963c1fff08171838e7 100644 +index 38b516d32edc4038508c664e0c4dc804cd477787..891dd8b2451ab771e451ea8ef74906d364e76007 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm @@ -241,6 +241,16 @@ - (BOOL)processSwapsOnNavigation @@ -10519,7 +10524,7 @@ index 4974e14214e2bb3e982325b885bab33e54f83998..cacdf8c71fab248d38d2faf03f7affdc typedef NS_ENUM(NSInteger, _WKUserStyleLevel) { _WKUserStyleUserLevel, diff --git a/Source/WebKit/UIProcess/API/Cocoa/_WKWebPushDaemonConnection.mm b/Source/WebKit/UIProcess/API/Cocoa/_WKWebPushDaemonConnection.mm -index 0a6086b000eb61013e49ce0c1cc5a26ec275bdc2..261bb8828df3e282fd6c4a2fa8ec8684342465a2 100644 +index 8cd456770de0cd073370e97155b90eda3e7480a5..8e3975ae1fe673bd39facbfe787f143b80e24fb6 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/_WKWebPushDaemonConnection.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/_WKWebPushDaemonConnection.mm @@ -32,6 +32,7 @@ @@ -10762,7 +10767,7 @@ index 9b6d8db85df969e609de036fac67374226ecd48e..2b293d5f24e562f06859432580f2cdfe bool canRunBeforeUnloadConfirmPanel() const final { return true; } diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp -index 49d382e0d469ca081754255feb71a70fca6acb13..2a5532502d0c34f1ad5e5d393ec12f52ad68ff7c 100644 +index b41b2938110b41a024b98215e2af31d960f1b936..502319020e384ee91b5367b10f48c71ff907560b 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp @@ -422,10 +422,19 @@ static void webkitWebContextSetProperty(GObject* object, guint propID, const GVa @@ -10831,10 +10836,10 @@ index c1945fbe717a42afc1f51d64a80c7de3fa9009ba..ab63fe19b00ecbd64c9421e6eecad3e2 #endif +int webkitWebContextExistingCount(); diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp -index 8fcb4462e8f0f25dc07498e3e62e36ca21e04d9c..9470855f7b233049b1b3b10ee1a47690f502a8eb 100644 +index 8f1821a8547e6f28032ba49a5f47344b916cd802..2dc19565002f98528b11b2d7a4fecd9ebb1a2b77 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp -@@ -35,6 +35,7 @@ +@@ -36,6 +36,7 @@ #include "WebContextMenuItem.h" #include "WebContextMenuItemData.h" #include "WebFrameProxy.h" @@ -10842,7 +10847,7 @@ index 8fcb4462e8f0f25dc07498e3e62e36ca21e04d9c..9470855f7b233049b1b3b10ee1a47690 #include "WebKitAuthenticationRequestPrivate.h" #include "WebKitBackForwardListPrivate.h" #include "WebKitContextMenuClient.h" -@@ -148,6 +149,7 @@ enum { +@@ -149,6 +150,7 @@ enum { CLOSE, SCRIPT_DIALOG, @@ -10850,7 +10855,7 @@ index 8fcb4462e8f0f25dc07498e3e62e36ca21e04d9c..9470855f7b233049b1b3b10ee1a47690 DECIDE_POLICY, PERMISSION_REQUEST, -@@ -516,6 +518,16 @@ GRefPtr WebKitWebViewClient::showOptionMenu(WebKitPopupMenu& p +@@ -517,6 +519,16 @@ GRefPtr WebKitWebViewClient::showOptionMenu(WebKitPopupMenu& p void WebKitWebViewClient::frameDisplayed(WKWPE::View&) { @@ -10867,7 +10872,7 @@ index 8fcb4462e8f0f25dc07498e3e62e36ca21e04d9c..9470855f7b233049b1b3b10ee1a47690 { SetForScope inFrameDisplayedGuard(m_webView->priv->inFrameDisplayed, true); for (const auto& callback : m_webView->priv->frameDisplayedCallbacks) { -@@ -532,6 +544,18 @@ void WebKitWebViewClient::frameDisplayed(WKWPE::View&) +@@ -533,6 +545,18 @@ void WebKitWebViewClient::frameDisplayed(WKWPE::View&) } } @@ -10886,7 +10891,7 @@ index 8fcb4462e8f0f25dc07498e3e62e36ca21e04d9c..9470855f7b233049b1b3b10ee1a47690 void WebKitWebViewClient::willStartLoad(WKWPE::View&) { webkitWebViewWillStartLoad(m_webView); -@@ -618,7 +642,7 @@ static gboolean webkitWebViewDecidePolicy(WebKitWebView*, WebKitPolicyDecision* +@@ -619,7 +643,7 @@ static gboolean webkitWebViewDecidePolicy(WebKitWebView*, WebKitPolicyDecision* static gboolean webkitWebViewPermissionRequest(WebKitWebView*, WebKitPermissionRequest* request) { @@ -10895,7 +10900,7 @@ index 8fcb4462e8f0f25dc07498e3e62e36ca21e04d9c..9470855f7b233049b1b3b10ee1a47690 if (WEBKIT_IS_POINTER_LOCK_PERMISSION_REQUEST(request)) { webkit_permission_request_allow(request); return TRUE; -@@ -941,6 +965,10 @@ static void webkitWebViewConstructed(GObject* object) +@@ -942,6 +966,10 @@ static void webkitWebViewConstructed(GObject* object) priv->websitePolicies = adoptGRef(webkit_website_policies_new()); Ref configuration = priv->relatedView && priv->relatedView->priv->configurationForNextRelatedView ? priv->relatedView->priv->configurationForNextRelatedView.releaseNonNull() : webkitWebViewCreatePageConfiguration(webView); @@ -10906,7 +10911,7 @@ index 8fcb4462e8f0f25dc07498e3e62e36ca21e04d9c..9470855f7b233049b1b3b10ee1a47690 webkitWebViewCreatePage(webView, WTFMove(configuration)); webkitWebContextWebViewCreated(priv->context.get(), webView); -@@ -1980,6 +2008,15 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) +@@ -1981,6 +2009,15 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) G_TYPE_BOOLEAN, 1, WEBKIT_TYPE_SCRIPT_DIALOG); @@ -10922,7 +10927,7 @@ index 8fcb4462e8f0f25dc07498e3e62e36ca21e04d9c..9470855f7b233049b1b3b10ee1a47690 /** * WebKitWebView::decide-policy: * @web_view: the #WebKitWebView on which the signal is emitted -@@ -2765,6 +2802,23 @@ void webkitWebViewRunJavaScriptBeforeUnloadConfirm(WebKitWebView* webView, const +@@ -2766,6 +2803,23 @@ void webkitWebViewRunJavaScriptBeforeUnloadConfirm(WebKitWebView* webView, const webkit_script_dialog_unref(webView->priv->currentScriptDialog); } @@ -10959,7 +10964,7 @@ index bf5b4c2bcca722e4d008f12194344c29c0db8824..ee6ee6b476ac28dee3a5983d03ba89ad bool webkitWebViewIsScriptDialogRunning(WebKitWebView*, WebKitScriptDialog*); String webkitWebViewGetCurrentScriptDialogMessage(WebKitWebView*); diff --git a/Source/WebKit/UIProcess/API/glib/webkit.h.in b/Source/WebKit/UIProcess/API/glib/webkit.h.in -index 805f9f638c1630b5e9310494ae2970262de001cc..add3e80896c2e82bdd12cee15c8014bf88391ee0 100644 +index 763cd55f7abca011ac8bc4fef7f233bf52854cda..bd43917b274bf19ff9f3d96b7e80e20710372cba 100644 --- a/Source/WebKit/UIProcess/API/glib/webkit.h.in +++ b/Source/WebKit/UIProcess/API/glib/webkit.h.in @@ -45,6 +45,7 @@ @@ -11109,10 +11114,10 @@ index 496079da90993ac37689b060b69ecd4a67c2b6a8..af30181ca922f16c0f6e245c70e5ce7d G_BEGIN_DECLS diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -index 4d4f62a1a5dfc153773c3fe7c37c4fd9c0cfa4b5..647fdfbf93889c966806d5f4285a1fc0724923cc 100644 +index 1d118b75a4be169d624ac18b50b13096bf7e1f36..29e48279f82dfaf83016c97349b284d054e1b956 100644 --- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp +++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -@@ -2902,6 +2902,11 @@ void webkitWebViewBaseResetClickCounter(WebKitWebViewBase* webkitWebViewBase) +@@ -2884,6 +2884,11 @@ void webkitWebViewBaseResetClickCounter(WebKitWebViewBase* webkitWebViewBase) #endif } @@ -11124,7 +11129,7 @@ index 4d4f62a1a5dfc153773c3fe7c37c4fd9c0cfa4b5..647fdfbf93889c966806d5f4285a1fc0 void webkitWebViewBaseEnterAcceleratedCompositingMode(WebKitWebViewBase* webkitWebViewBase, const LayerTreeContext& layerTreeContext) { ASSERT(webkitWebViewBase->priv->acceleratedBackingStore); -@@ -2958,12 +2963,12 @@ void webkitWebViewBasePageClosed(WebKitWebViewBase* webkitWebViewBase) +@@ -2940,12 +2945,12 @@ void webkitWebViewBasePageClosed(WebKitWebViewBase* webkitWebViewBase) webkitWebViewBase->priv->acceleratedBackingStore->update({ }); } @@ -11653,10 +11658,10 @@ index 2f1182cb91a00353eace0b71612df096391c2450..d71d7fc724b046fab41285bb8f390cb6 void didChangePageID(WKWPE::View&) override; void didReceiveUserMessage(WKWPE::View&, WebKit::UserMessage&&, CompletionHandler&&) override; diff --git a/Source/WebKit/UIProcess/Automation/WebAutomationSession.h b/Source/WebKit/UIProcess/Automation/WebAutomationSession.h -index 1eb1f76b903199f5af64d48cb5ce5b54c2c67571..3d25a50fd22352a7fc2d2e638eb559313c36966b 100644 +index 62250eac7b9d4e38b3d9ccad743daaf1627ff017..218f379aea078cfa27c0af5a963a2d3dcbcbc66a 100644 --- a/Source/WebKit/UIProcess/Automation/WebAutomationSession.h +++ b/Source/WebKit/UIProcess/Automation/WebAutomationSession.h -@@ -256,6 +256,8 @@ public: +@@ -270,6 +270,8 @@ public: void didDestroyFrame(WebCore::FrameIdentifier); @@ -11665,7 +11670,7 @@ index 1eb1f76b903199f5af64d48cb5ce5b54c2c67571..3d25a50fd22352a7fc2d2e638eb55931 private: RefPtr webPageProxyForHandle(const String&); String handleForWebPageProxy(const WebPageProxy&); -@@ -300,7 +302,6 @@ private: +@@ -320,7 +322,6 @@ private: // Get base64-encoded PNG data from a bitmap. static std::optional platformGetBase64EncodedPNGData(WebCore::ShareableBitmap::Handle&&); @@ -11674,10 +11679,10 @@ index 1eb1f76b903199f5af64d48cb5ce5b54c2c67571..3d25a50fd22352a7fc2d2e638eb55931 // Save base64-encoded file contents to a local file path and return the path. // This reuses the basename of the remote file path so that the filename exposed to DOM API remains the same. diff --git a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp -index 67b26803f31aed0690ffd4e0aa26a842edce5eea..61bb0a44b067847d3cb45ad397c9c3572e107a89 100644 +index 9d98e6bf5266ed4cafd77f646be8bdaeefc33cd3..c9a3288d9c0f6d3c735f6d79b70eb852f95602e8 100644 --- a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp +++ b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp -@@ -167,7 +167,11 @@ void AuxiliaryProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& lau +@@ -169,7 +169,11 @@ void AuxiliaryProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& lau launchOptions.processCmdPrefix = String::fromUTF8(processCmdPrefix); #endif // ENABLE(DEVELOPER_MODE) && (PLATFORM(GTK) || PLATFORM(WPE)) @@ -11867,7 +11872,7 @@ index 47da0ee168267f6a4a27602ea0c3cffdeb0a8a44..70eef746a34ebc037e56b4a81675e118 bool webViewRequestStorageAccessPanelForDomainUnderCurrentDomainForQuirkDomainsCompletionHandler : 1; bool webViewRunBeforeUnloadConfirmPanelWithMessageInitiatedByFrameCompletionHandler : 1; diff --git a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm -index 1994f291d7e492daaefecfe93b4aa24f3d89fdef..03410eb4546e23a9f5f6ac6a3dd809207cff31e4 100644 +index de8a55897d3fd5bcb31d15b4eec187ebeaac21e6..fb5855993c24d2d5c766660435bd545dd39a59b0 100644 --- a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm +++ b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm @@ -134,6 +134,7 @@ void UIDelegate::setDelegate(id delegate) @@ -11895,7 +11900,7 @@ index 1994f291d7e492daaefecfe93b4aa24f3d89fdef..03410eb4546e23a9f5f6ac6a3dd80920 { RefPtr uiDelegate = m_uiDelegate.get(); diff --git a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm -index 9c83bff69be2da80e51e91ce08cfbfcbcd7b3dd5..b70a8450fc3b69e2d27aff88474502cdc0bdc8f8 100644 +index 064f96db74bdf0df821846540d18e4792f3b2963..e4a0316168f739ef5b667006ceaf00ff30341e6c 100644 --- a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm +++ b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm @@ -42,7 +42,9 @@ @@ -11908,7 +11913,7 @@ index 9c83bff69be2da80e51e91ce08cfbfcbcd7b3dd5..b70a8450fc3b69e2d27aff88474502cd #import "PlatformXRSystem.h" #import "PlaybackSessionManagerProxy.h" #import "QuickLookThumbnailLoader.h" -@@ -317,11 +319,86 @@ bool WebPageProxy::scrollingUpdatesDisabledForTesting() +@@ -322,11 +324,86 @@ bool WebPageProxy::scrollingUpdatesDisabledForTesting() void WebPageProxy::startDrag(const DragItem& dragItem, ShareableBitmap::Handle&& dragImageHandle) { @@ -11997,10 +12002,10 @@ index 9c83bff69be2da80e51e91ce08cfbfcbcd7b3dd5..b70a8450fc3b69e2d27aff88474502cd #if ENABLE(ATTACHMENT_ELEMENT) diff --git a/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm b/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm -index 6eca9f4d7e1e1d54bc41a68f689ec1dcce54f354..7feb9b894f852d4a2c93ebeb580f7b6636da9670 100644 +index c16012314db5eee29263ea19d7627eaf3d9cfe79..7544eecb359d3263e2d3222658687fcfebb07af6 100644 --- a/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm +++ b/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm -@@ -435,7 +435,7 @@ ALLOW_DEPRECATED_DECLARATIONS_END +@@ -437,7 +437,7 @@ ALLOW_DEPRECATED_DECLARATIONS_END auto screenProperties = WebCore::collectScreenProperties(); parameters.screenProperties = WTFMove(screenProperties); #if PLATFORM(MAC) @@ -12009,7 +12014,7 @@ index 6eca9f4d7e1e1d54bc41a68f689ec1dcce54f354..7feb9b894f852d4a2c93ebeb580f7b66 #endif #if (PLATFORM(IOS) || PLATFORM(VISION)) && HAVE(AGX_COMPILER_SERVICE) -@@ -830,8 +830,8 @@ void WebProcessPool::registerNotificationObservers() +@@ -832,8 +832,8 @@ void WebProcessPool::registerNotificationObservers() }]; m_scrollerStyleNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSPreferredScrollerStyleDidChangeNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) { @@ -12021,7 +12026,7 @@ index 6eca9f4d7e1e1d54bc41a68f689ec1dcce54f354..7feb9b894f852d4a2c93ebeb580f7b66 m_activationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSApplicationDidBecomeActiveNotification object:NSApp queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) { diff --git a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp -index c09616b4b076136888cda95c3c74137cf2668a42..f2ee3ee1417f4716157f004ef53d441d94c7e1c3 100644 +index 9aeeff96ce40d58fe51124275b8fb60e8609d254..4840c7bb5c1ca1380205fd0167870b81bf3d873d 100644 --- a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp +++ b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp @@ -33,6 +33,7 @@ @@ -12115,7 +12120,7 @@ index c09616b4b076136888cda95c3c74137cf2668a42..f2ee3ee1417f4716157f004ef53d441d bool DrawingAreaProxyCoordinatedGraphics::alwaysUseCompositing() const { if (!m_webPageProxy) -@@ -300,6 +354,12 @@ void DrawingAreaProxyCoordinatedGraphics::didUpdateGeometry() +@@ -308,6 +362,12 @@ void DrawingAreaProxyCoordinatedGraphics::didUpdateGeometry() // we need to resend the new size here. if (m_lastSentSize != m_size) sendUpdateGeometry(); @@ -12129,7 +12134,7 @@ index c09616b4b076136888cda95c3c74137cf2668a42..f2ee3ee1417f4716157f004ef53d441d #if !PLATFORM(WPE) diff --git a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h -index 69f3479dd407e43d2cf3193b599c35d94d320aff..8b042dc992a1160b312d119cccee8c84b954eb15 100644 +index 9c2bde0db0e4032a32e6ae02dc45af335df92f7a..7ae72e6c791c264ea7e0db4c93a0422b5b699e19 100644 --- a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h +++ b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h @@ -29,6 +29,7 @@ @@ -12151,17 +12156,17 @@ index 69f3479dd407e43d2cf3193b599c35d94d320aff..8b042dc992a1160b312d119cccee8c84 void dispatchAfterEnsuringDrawing(CompletionHandler&&); -@@ -85,6 +90,9 @@ private: - void enterAcceleratedCompositingMode(uint64_t backingStoreStateID, const LayerTreeContext&) override; +@@ -86,6 +91,9 @@ private: void exitAcceleratedCompositingMode(uint64_t backingStoreStateID, UpdateInfo&&) override; void updateAcceleratedCompositingMode(uint64_t backingStoreStateID, const LayerTreeContext&) override; + void dispatchPresentationCallbacksAfterFlushingLayers(IPC::Connection&, Vector&&) override; +#if PLATFORM(WIN) + void didChangeAcceleratedCompositingMode(bool enabled) override; +#endif bool shouldSendWheelEventsToEventDispatcher() const override { return true; } -@@ -128,6 +136,7 @@ private: +@@ -129,6 +137,7 @@ private: // The last size we sent to the web process. WebCore::IntSize m_lastSentSize; @@ -12169,7 +12174,7 @@ index 69f3479dd407e43d2cf3193b599c35d94d320aff..8b042dc992a1160b312d119cccee8c84 #if !PLATFORM(WPE) bool m_isBackingStoreDiscardable { true }; -@@ -136,6 +145,10 @@ private: +@@ -137,6 +146,10 @@ private: RunLoop::Timer m_discardBackingStoreTimer; #endif std::unique_ptr m_drawingMonitor; @@ -12181,7 +12186,7 @@ index 69f3479dd407e43d2cf3193b599c35d94d320aff..8b042dc992a1160b312d119cccee8c84 } // namespace WebKit diff --git a/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp b/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp -index 1a6f1e5eae420cd6f792de69748be771e735d083..6c31ab3e5f8ed3327f52cf2e54e9055219b06cce 100644 +index 8fe224d8c374d0a7cabb1cbf02b678061e58bacf..89be23d0d8759097c0d6b2c9bf9df614ddc278a5 100644 --- a/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp +++ b/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp @@ -41,8 +41,10 @@ @@ -12206,9 +12211,9 @@ index 1a6f1e5eae420cd6f792de69748be771e735d083..6c31ab3e5f8ed3327f52cf2e54e90552 } DownloadProxy::~DownloadProxy() -@@ -85,12 +90,15 @@ static RefPtr createData(std::span data) - void DownloadProxy::cancel(CompletionHandler&& completionHandler) +@@ -86,12 +91,15 @@ void DownloadProxy::cancel(CompletionHandler&& completionHandl { + m_downloadIsCancelled = true; if (m_dataStore) { - protectedDataStore()->protectedNetworkProcess()->sendWithAsyncReply(Messages::NetworkProcess::CancelDownload(m_downloadID), [weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler)] (std::span resumeData) mutable { + auto* instrumentation = m_dataStore->downloadInstrumentation(); @@ -12223,7 +12228,7 @@ index 1a6f1e5eae420cd6f792de69748be771e735d083..6c31ab3e5f8ed3327f52cf2e54e90552 if (RefPtr downloadProxyMap = protectedThis->m_downloadProxyMap.get()) downloadProxyMap->downloadFinished(*protectedThis); }); -@@ -162,6 +170,33 @@ void DownloadProxy::decideDestinationWithSuggestedFilename(const WebCore::Resour +@@ -163,6 +171,33 @@ void DownloadProxy::decideDestinationWithSuggestedFilename(const WebCore::Resour suggestedFilename = m_suggestedFilename; suggestedFilename = MIMETypeRegistry::appendFileExtensionIfNecessary(suggestedFilename, response.mimeType()); @@ -12257,16 +12262,16 @@ index 1a6f1e5eae420cd6f792de69748be771e735d083..6c31ab3e5f8ed3327f52cf2e54e90552 protectedClient()->decideDestinationWithSuggestedFilename(*this, response, ResourceResponseBase::sanitizeSuggestedFilename(suggestedFilename), [this, protectedThis = Ref { *this }, completionHandler = WTFMove(completionHandler)] (AllowOverwrite allowOverwrite, String destination) mutable { SandboxExtension::Handle sandboxExtensionHandle; if (!destination.isNull()) { -@@ -224,6 +259,8 @@ void DownloadProxy::didFinish() - updateQuarantinePropertiesIfPossible(); - #endif +@@ -227,6 +262,8 @@ void DownloadProxy::didFinish() m_client->didFinish(*this); + if (m_downloadIsCancelled) + return; + if (auto* instrumentation = m_dataStore->downloadInstrumentation()) + instrumentation->downloadFinished(m_uuid, String()); // This can cause the DownloadProxy object to be deleted. if (RefPtr downloadProxyMap = m_downloadProxyMap.get()) -@@ -235,6 +272,8 @@ void DownloadProxy::didFail(const ResourceError& error, std::span +@@ -241,6 +278,8 @@ void DownloadProxy::didFail(const ResourceError& error, std::span m_legacyResumeData = createData(resumeData); m_client->didFail(*this, error, m_legacyResumeData.get()); @@ -12276,10 +12281,10 @@ index 1a6f1e5eae420cd6f792de69748be771e735d083..6c31ab3e5f8ed3327f52cf2e54e90552 // This can cause the DownloadProxy object to be deleted. if (RefPtr downloadProxyMap = m_downloadProxyMap.get()) diff --git a/Source/WebKit/UIProcess/Downloads/DownloadProxy.h b/Source/WebKit/UIProcess/Downloads/DownloadProxy.h -index c11230e2bdf0260db06b011a235d7687908d8943..015d84a1c1e3bc94ad11602879460256508313fa 100644 +index 5c48a4c5f1747687ef5dace933feae900b02991e..1e85682f2f4351d2c2da955dd36abf95303320a6 100644 --- a/Source/WebKit/UIProcess/Downloads/DownloadProxy.h +++ b/Source/WebKit/UIProcess/Downloads/DownloadProxy.h -@@ -165,6 +165,7 @@ private: +@@ -166,6 +166,7 @@ private: #if HAVE(MODERN_DOWNLOADPROGRESS) RefPtr m_assertion; #endif @@ -12288,10 +12293,10 @@ index c11230e2bdf0260db06b011a235d7687908d8943..015d84a1c1e3bc94ad11602879460256 } // namespace WebKit diff --git a/Source/WebKit/UIProcess/DrawingAreaProxy.h b/Source/WebKit/UIProcess/DrawingAreaProxy.h -index 575ef6907ad84bcedf75b5fe2fd205a70e4edfb3..12d06c53ff697feec8a4816d44368b7df81bc803 100644 +index e1f55b4a7fbc452ca1f2eb025b0c88ec9f4b845f..4e4238f4f656208c0f11822406172ea13a21e2d4 100644 --- a/Source/WebKit/UIProcess/DrawingAreaProxy.h +++ b/Source/WebKit/UIProcess/DrawingAreaProxy.h -@@ -91,6 +91,7 @@ public: +@@ -94,6 +94,7 @@ public: const WebCore::IntSize& size() const { return m_size; } bool setSize(const WebCore::IntSize&, const WebCore::IntSize& scrollOffset = { }); @@ -12299,7 +12304,7 @@ index 575ef6907ad84bcedf75b5fe2fd205a70e4edfb3..12d06c53ff697feec8a4816d44368b7d virtual void minimumSizeForAutoLayoutDidChange() { } virtual void sizeToContentAutoSizeMaximumSizeDidChange() { } -@@ -178,6 +179,10 @@ private: +@@ -181,6 +182,10 @@ private: virtual void update(uint64_t /* backingStoreStateID */, UpdateInfo&&) { } virtual void exitAcceleratedCompositingMode(uint64_t /* backingStoreStateID */, UpdateInfo&&) { } #endif @@ -12311,10 +12316,10 @@ index 575ef6907ad84bcedf75b5fe2fd205a70e4edfb3..12d06c53ff697feec8a4816d44368b7d } // namespace WebKit diff --git a/Source/WebKit/UIProcess/DrawingAreaProxy.messages.in b/Source/WebKit/UIProcess/DrawingAreaProxy.messages.in -index 4d19362fcc71426002d8aafdd7401c01077ef051..7a1ebc8b200d3214f7fd0c4b1d062890bc49995e 100644 +index b03ac2dcf12c771da4a2347b81e5ba93fbd5f6a4..b69c5d3244306e1d1c10206d499d9a833a3efeec 100644 --- a/Source/WebKit/UIProcess/DrawingAreaProxy.messages.in +++ b/Source/WebKit/UIProcess/DrawingAreaProxy.messages.in -@@ -30,4 +30,7 @@ messages -> DrawingAreaProxy { +@@ -35,4 +35,7 @@ messages -> DrawingAreaProxy { Update(uint64_t stateID, struct WebKit::UpdateInfo updateInfo) CanDispatchOutOfOrder ExitAcceleratedCompositingMode(uint64_t backingStoreStateID, struct WebKit::UpdateInfo updateInfo) #endif @@ -15870,10 +15875,10 @@ index 0000000000000000000000000000000000000000..e7a3dcc533294bb6e12f65d79b5b716b + +#endif // ENABLE(REMOTE_INSPECTOR) diff --git a/Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp b/Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp -index 348b454826ee9278e45ed6e265136a55296ee2d1..16575216af8c7b836c52f3747d73ce206b226855 100644 +index e0c2996d93c2fe483024e13fb5b50a93a4e38150..6af596bd81076961f4e7e750d18c8b9dfd84f467 100644 --- a/Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp +++ b/Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp -@@ -178,6 +178,13 @@ void ProcessLauncher::launchProcess() +@@ -168,6 +168,13 @@ void ProcessLauncher::launchProcess() nargs++; } #endif @@ -15887,7 +15892,7 @@ index 348b454826ee9278e45ed6e265136a55296ee2d1..16575216af8c7b836c52f3747d73ce20 WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN // GTK/WPE port -@@ -196,6 +203,10 @@ void ProcessLauncher::launchProcess() +@@ -186,6 +193,10 @@ void ProcessLauncher::launchProcess() if (configureJSCForTesting) argv[i++] = const_cast("--configure-jsc-for-testing"); #endif @@ -15926,7 +15931,7 @@ index fac881d7c3d44758591d7a9f392a3992ce9f9a72..35eba5a0b31fc6e2d6e5c05c9f866c03 BOOL result = ::CreateProcess(0, commandLine.data(), 0, 0, true, 0, 0, 0, &startupInfo, &processInformation); diff --git a/Source/WebKit/UIProcess/PageClient.h b/Source/WebKit/UIProcess/PageClient.h -index 06169e91f403da8cb53b1fe6b718b22eeb0a51fe..0162c16f55d6ef76c31887fdf48d184c54f38f18 100644 +index e978cabad88aeb44a8722f0df7eed9cff0320653..c1753b243bf51870aa4a1b3d3a1163bd8310596d 100644 --- a/Source/WebKit/UIProcess/PageClient.h +++ b/Source/WebKit/UIProcess/PageClient.h @@ -74,6 +74,11 @@ @@ -15954,7 +15959,7 @@ index 06169e91f403da8cb53b1fe6b718b22eeb0a51fe..0162c16f55d6ef76c31887fdf48d184c namespace API { class Attachment; class HitTestResult; -@@ -372,7 +383,20 @@ public: +@@ -373,7 +384,20 @@ public: virtual void selectionDidChange() = 0; #endif @@ -17185,10 +17190,10 @@ index 0000000000000000000000000000000000000000..26a2a3c0791c334f811ec99a630314f8 + +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp -index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02db2fc180e 100644 +index 963ca0b7a50c8ded555090c68aaa6acec526f7f9..0d9e4394824a664a35b10db392b913064f8ae471 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.cpp +++ b/Source/WebKit/UIProcess/WebPageProxy.cpp -@@ -197,12 +197,14 @@ +@@ -199,12 +199,14 @@ #include #include #include @@ -17203,7 +17208,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d #include #include #include -@@ -225,6 +227,7 @@ +@@ -227,6 +229,7 @@ #include #include #include @@ -17211,7 +17216,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d #include #include #include -@@ -232,11 +235,14 @@ +@@ -234,10 +237,13 @@ #include #include #include @@ -17220,13 +17225,12 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d #include #include #include ++#include +#include #include -+#include + #include #include - #include - #include -@@ -321,6 +327,9 @@ +@@ -324,6 +330,9 @@ #if USE(GBM) #include "AcceleratedBackingStoreDMABuf.h" #endif @@ -17236,7 +17240,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d #include #endif -@@ -445,6 +454,8 @@ static constexpr Seconds tryCloseTimeoutDelay = 50_ms; +@@ -452,6 +461,8 @@ static constexpr Seconds tryCloseTimeoutDelay = 50_ms; static constexpr Seconds audibleActivityClearDelay = 10_s; #endif @@ -17245,9 +17249,9 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, webPageProxyCounter, ("WebPageProxy")); #if PLATFORM(COCOA) -@@ -916,6 +927,10 @@ WebPageProxy::~WebPageProxy() - if (preferences->mediaSessionCoordinatorEnabled()) - GroupActivitiesSessionNotifier::singleton().removeWebPage(*this); +@@ -939,6 +950,10 @@ WebPageProxy::~WebPageProxy() + if (RefPtr gpuProcess = GPUProcessProxy::singletonIfCreated()) + gpuProcess->setPresentingApplicationAuditToken(m_legacyMainFrameProcess->coreProcessIdentifier(), m_webPageID, std::nullopt); #endif + +#if PLATFORM(COCOA) @@ -17256,7 +17260,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d } Ref WebPageProxy::Internals::protectedPage() const -@@ -1487,6 +1502,7 @@ void WebPageProxy::finishAttachingToWebProcess(const Site& site, ProcessLaunchRe +@@ -1515,6 +1530,7 @@ void WebPageProxy::finishAttachingToWebProcess(const Site& site, ProcessLaunchRe if (RefPtr pageClient = this->pageClient()) pageClient->didRelaunchProcess(); protectedPageLoadState()->didSwapWebProcesses(); @@ -17264,7 +17268,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d } void WebPageProxy::didAttachToRunningProcess() -@@ -1495,7 +1511,7 @@ void WebPageProxy::didAttachToRunningProcess() +@@ -1523,7 +1539,7 @@ void WebPageProxy::didAttachToRunningProcess() #if ENABLE(FULLSCREEN_API) ASSERT(!m_fullScreenManager); @@ -17273,7 +17277,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d #endif #if ENABLE(VIDEO_PRESENTATION_MODE) ASSERT(!m_playbackSessionManager); -@@ -1951,6 +1967,21 @@ Ref WebPageProxy::ensureProtectedRunningProcess() +@@ -1989,6 +2005,21 @@ Ref WebPageProxy::ensureProtectedRunningProcess() return ensureRunningProcess(); } @@ -17295,7 +17299,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d RefPtr WebPageProxy::loadRequest(WebCore::ResourceRequest&& request, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, IsPerformingHTTPFallback isPerformingHTTPFallback, std::unique_ptr&& lastNavigationAction, API::Object* userData) { if (m_isClosed) -@@ -2042,11 +2073,29 @@ void WebPageProxy::loadRequestWithNavigationShared(Ref&& proces +@@ -2086,11 +2117,29 @@ void WebPageProxy::loadRequestWithNavigationShared(Ref&& proces navigation->setIsLoadedWithNavigationShared(true); protectedProcess->markProcessAsRecentlyUsed(); @@ -17323,13 +17327,13 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d + if (protectedThis->m_inspectorController->shouldPauseLoadRequest()) + protectedThis->m_inspectorController->setContinueLoadingCallback(WTFMove(continuation)); else -- protectedProcess->send(Messages::WebPage::LoadRequestWaitingForProcessLaunch(WTFMove(loadParameters), protectedThis->internals().pageLoadState.resourceDirectoryURL(), protectedThis->identifier(), true), webPageID); +- protectedProcess->send(Messages::WebPage::LoadRequestWaitingForProcessLaunch(WTFMove(loadParameters), protectedThis->pageLoadState().resourceDirectoryURL(), protectedThis->identifier(), true), webPageID); - protectedProcess->startResponsivenessTimer(); + continuation(); }); } -@@ -2588,6 +2637,61 @@ void WebPageProxy::setControlledByAutomation(bool controlled) +@@ -2634,6 +2683,61 @@ void WebPageProxy::setControlledByAutomation(bool controlled) protectedWebsiteDataStore()->protectedNetworkProcess()->send(Messages::NetworkProcess::SetSessionIsControlledByAutomation(m_websiteDataStore->sessionID(), m_controlledByAutomation), 0); } @@ -17391,7 +17395,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d void WebPageProxy::createInspectorTarget(IPC::Connection& connection, const String& targetId, Inspector::InspectorTargetType type) { MESSAGE_CHECK_BASE(!targetId.isEmpty(), connection); -@@ -2837,6 +2941,24 @@ void WebPageProxy::updateActivityState(OptionSet flagsToUpdate) +@@ -2886,6 +2990,24 @@ void WebPageProxy::updateActivityState(OptionSet flagsToUpdate) bool wasVisible = isViewVisible(); RefPtr pageClient = this->pageClient(); internals().activityState.remove(flagsToUpdate); @@ -17416,7 +17420,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d if (flagsToUpdate & ActivityState::IsFocused && pageClient->isViewFocused()) internals().activityState.add(ActivityState::IsFocused); if (flagsToUpdate & ActivityState::WindowIsActive && pageClient->isViewWindowActive()) -@@ -3603,7 +3725,7 @@ void WebPageProxy::performDragOperation(DragData& dragData, const String& dragSt +@@ -3654,7 +3776,7 @@ void WebPageProxy::performDragOperation(DragData& dragData, const String& dragSt if (!hasRunningProcess()) return; @@ -17425,7 +17429,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d URL url { dragData.asURL() }; if (url.protocolIsFile()) protectedLegacyMainFrameProcess()->assumeReadAccessToBaseURL(*this, url.string(), [] { }); -@@ -3631,6 +3753,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag +@@ -3682,6 +3804,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag if (!hasRunningProcess()) return; @@ -17434,7 +17438,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d auto completionHandler = [this, protectedThis = Ref { *this }, action, dragData] (std::optional dragOperation, WebCore::DragHandlingMethod dragHandlingMethod, bool mouseIsOverFileInput, unsigned numberOfItemsToBeAccepted, const IntRect& insertionRect, const IntRect& editableElementRect, std::optional remoteUserInputEventData) mutable { if (!m_pageClient) return; -@@ -3642,7 +3766,7 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag +@@ -3693,7 +3817,7 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag dragData.setClientPosition(remoteUserInputEventData->transformedPoint); performDragControllerAction(action, dragData, remoteUserInputEventData->targetFrameID); }; @@ -17443,7 +17447,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d ASSERT(dragData.platformData()); sendWithAsyncReplyToProcessContainingFrame(frameID, Messages::WebPage::PerformDragControllerAction(action, dragData.clientPosition(), dragData.globalPosition(), dragData.draggingSourceOperationMask(), *dragData.platformData(), dragData.flags()), WTFMove(completionHandler)); #else -@@ -3676,14 +3800,35 @@ void WebPageProxy::didPerformDragControllerAction(std::optionalpageClient()) pageClient->didPerformDragControllerAction(); @@ -17483,7 +17487,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d } didStartDrag(); } -@@ -3705,6 +3850,24 @@ void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& glo +@@ -3757,6 +3902,24 @@ void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& glo setDragCaretRect({ }); } @@ -17508,7 +17512,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d void WebPageProxy::didStartDrag() { if (!hasRunningProcess()) -@@ -3712,6 +3875,26 @@ void WebPageProxy::didStartDrag() +@@ -3764,6 +3927,26 @@ void WebPageProxy::didStartDrag() discardQueuedMouseEvents(); send(Messages::WebPage::DidStartDrag()); @@ -17535,7 +17539,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d } void WebPageProxy::dragCancelled() -@@ -3859,26 +4042,47 @@ void WebPageProxy::processNextQueuedMouseEvent() +@@ -3911,26 +4094,47 @@ void WebPageProxy::processNextQueuedMouseEvent() process->startResponsivenessTimer(); } @@ -17595,16 +17599,16 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d } void WebPageProxy::doAfterProcessingAllPendingMouseEvents(WTF::Function&& action) -@@ -4047,6 +4251,8 @@ void WebPageProxy::wheelEventHandlingCompleted(bool wasHandled) +@@ -4099,6 +4303,8 @@ void WebPageProxy::wheelEventHandlingCompleted(bool wasHandled) - if (RefPtr automationSession = configuration().processPool().automationSession()) + if (RefPtr automationSession = protectedConfiguration()->processPool().automationSession()) automationSession->wheelEventsFlushedForPage(*this); + + m_inspectorController->didProcessAllPendingWheelEvents(); } void WebPageProxy::cacheWheelEventScrollingAccelerationCurve(const NativeWebWheelEvent& nativeWheelEvent) -@@ -4182,7 +4388,7 @@ static TrackingType mergeTrackingTypes(TrackingType a, TrackingType b) +@@ -4234,7 +4440,7 @@ static TrackingType mergeTrackingTypes(TrackingType a, TrackingType b) void WebPageProxy::updateTouchEventTracking(const WebTouchEvent& touchStartEvent) { @@ -17613,7 +17617,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d for (auto& touchPoint : touchStartEvent.touchPoints()) { auto location = touchPoint.locationInRootView(); auto update = [this, location](TrackingType& trackingType, EventTrackingRegions::EventType eventType) { -@@ -4804,6 +5010,7 @@ void WebPageProxy::receivedNavigationActionPolicyDecision(WebProcessProxy& proce +@@ -4861,6 +5067,7 @@ void WebPageProxy::receivedNavigationActionPolicyDecision(WebProcessProxy& proce void WebPageProxy::receivedPolicyDecision(PolicyAction action, API::Navigation* navigation, RefPtr&& websitePolicies, Ref&& navigationAction, WillContinueLoadInNewProcess willContinueLoadInNewProcess, std::optional sandboxExtensionHandle, std::optional&& consoleMessage, CompletionHandler&& completionHandler) { @@ -17621,7 +17625,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d if (!hasRunningProcess()) return completionHandler(PolicyDecision { }); -@@ -5790,6 +5997,7 @@ void WebPageProxy::viewScaleFactorDidChange(IPC::Connection& connection, double +@@ -5857,6 +6064,7 @@ void WebPageProxy::viewScaleFactorDidChange(IPC::Connection& connection, double MESSAGE_CHECK_BASE(scaleFactorIsValid(scaleFactor), connection); if (!legacyMainFrameProcess().hasConnection(connection)) return; @@ -17629,7 +17633,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d forEachWebContentProcess([&] (auto& process, auto pageID) { if (&process == &legacyMainFrameProcess()) -@@ -6436,6 +6644,7 @@ void WebPageProxy::didDestroyNavigationShared(Ref&& process, We +@@ -6518,6 +6726,7 @@ void WebPageProxy::didDestroyNavigationShared(Ref&& process, We RefPtr protectedPageClient { pageClient() }; protectedNavigationState()->didDestroyNavigation(process->coreProcessIdentifier(), navigationID); @@ -17637,7 +17641,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d } void WebPageProxy::didStartProvisionalLoadForFrame(FrameIdentifier frameID, FrameInfoData&& frameInfo, ResourceRequest&& request, std::optional navigationID, URL&& url, URL&& unreachableURL, const UserData& userData, WallTime timestamp) -@@ -6761,6 +6970,8 @@ void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref&& p +@@ -6852,6 +7061,8 @@ void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref&& p m_failingProvisionalLoadURL = { }; @@ -17646,7 +17650,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d // If the provisional page's load fails then we destroy the provisional page. if (m_provisionalPage && m_provisionalPage->mainFrame() == &frame && willContinueLoading == WillContinueLoading::No) m_provisionalPage = nullptr; -@@ -8151,8 +8362,9 @@ void WebPageProxy::createNewPage(IPC::Connection& connection, WindowFeatures&& w +@@ -8271,8 +8482,9 @@ void WebPageProxy::createNewPage(IPC::Connection& connection, WindowFeatures&& w if (RefPtr page = originatingFrameInfo->page()) openerAppInitiatedState = page->lastNavigationWasAppInitiated(); @@ -17657,7 +17661,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d auto completionHandler = [ this, protectedThis = Ref { *this }, -@@ -8221,6 +8433,7 @@ void WebPageProxy::createNewPage(IPC::Connection& connection, WindowFeatures&& w +@@ -8341,6 +8553,7 @@ void WebPageProxy::createNewPage(IPC::Connection& connection, WindowFeatures&& w configuration->setInitialSandboxFlags(effectiveSandboxFlags); configuration->setWindowFeatures(WTFMove(windowFeatures)); configuration->setOpenedMainFrameName(openedMainFrameName); @@ -17665,7 +17669,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d if (RefPtr openerFrame = WebFrameProxy::webFrame(originatingFrameInfoData.frameID); navigationActionData.hasOpener && openerFrame) { configuration->setRelatedPage(*this); -@@ -8245,6 +8458,7 @@ void WebPageProxy::createNewPage(IPC::Connection& connection, WindowFeatures&& w +@@ -8365,6 +8578,7 @@ void WebPageProxy::createNewPage(IPC::Connection& connection, WindowFeatures&& w void WebPageProxy::showPage() { m_uiClient->showPage(this); @@ -17673,7 +17677,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d } bool WebPageProxy::hasOpenedPage() const -@@ -8359,6 +8573,10 @@ void WebPageProxy::closePage() +@@ -8479,6 +8693,10 @@ void WebPageProxy::closePage() if (isClosed()) return; @@ -17684,7 +17688,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d WEBPAGEPROXY_RELEASE_LOG(Process, "closePage:"); if (RefPtr pageClient = this->pageClient()) pageClient->clearAllEditCommands(); -@@ -8396,6 +8614,8 @@ void WebPageProxy::runJavaScriptAlert(IPC::Connection& connection, FrameIdentifi +@@ -8517,6 +8735,8 @@ void WebPageProxy::runJavaScriptAlert(IPC::Connection& connection, FrameIdentifi } runModalJavaScriptDialog(WTFMove(frame), WTFMove(frameInfo), message, [reply = WTFMove(reply)](WebPageProxy& page, WebFrameProxy* frame, FrameInfoData&& frameInfo, const String& message, CompletionHandler&& completion) mutable { @@ -17693,7 +17697,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d page.m_uiClient->runJavaScriptAlert(page, message, frame, WTFMove(frameInfo), [reply = WTFMove(reply), completion = WTFMove(completion)]() mutable { reply(); completion(); -@@ -8417,6 +8637,8 @@ void WebPageProxy::runJavaScriptConfirm(IPC::Connection& connection, FrameIdenti +@@ -8539,6 +8759,8 @@ void WebPageProxy::runJavaScriptConfirm(IPC::Connection& connection, FrameIdenti if (RefPtr automationSession = configuration().processPool().automationSession()) automationSession->willShowJavaScriptDialog(*this); } @@ -17702,7 +17706,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d runModalJavaScriptDialog(WTFMove(frame), WTFMove(frameInfo), message, [reply = WTFMove(reply)](WebPageProxy& page, WebFrameProxy* frame, FrameInfoData&& frameInfo, const String& message, CompletionHandler&& completion) mutable { page.m_uiClient->runJavaScriptConfirm(page, message, frame, WTFMove(frameInfo), [reply = WTFMove(reply), completion = WTFMove(completion)](bool result) mutable { -@@ -8440,6 +8662,8 @@ void WebPageProxy::runJavaScriptPrompt(IPC::Connection& connection, FrameIdentif +@@ -8563,6 +8785,8 @@ void WebPageProxy::runJavaScriptPrompt(IPC::Connection& connection, FrameIdentif if (RefPtr automationSession = configuration().processPool().automationSession()) automationSession->willShowJavaScriptDialog(*this); } @@ -17711,7 +17715,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d runModalJavaScriptDialog(WTFMove(frame), WTFMove(frameInfo), message, [reply = WTFMove(reply), defaultValue](WebPageProxy& page, WebFrameProxy* frame, FrameInfoData&& frameInfo, const String& message, CompletionHandler&& completion) mutable { page.m_uiClient->runJavaScriptPrompt(page, message, defaultValue, frame, WTFMove(frameInfo), [reply = WTFMove(reply), completion = WTFMove(completion)](auto& result) mutable { -@@ -8568,6 +8792,8 @@ void WebPageProxy::runBeforeUnloadConfirmPanel(IPC::Connection& connection, Fram +@@ -8692,6 +8916,8 @@ void WebPageProxy::runBeforeUnloadConfirmPanel(IPC::Connection& connection, Fram return; } } @@ -17720,7 +17724,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d // Since runBeforeUnloadConfirmPanel() can spin a nested run loop we need to turn off the responsiveness timer and the tryClose timer. protectedLegacyMainFrameProcess()->stopResponsivenessTimer(); -@@ -9134,6 +9360,11 @@ void WebPageProxy::resourceLoadDidCompleteWithError(ResourceLoadInfo&& loadInfo, +@@ -9260,6 +9486,11 @@ void WebPageProxy::resourceLoadDidCompleteWithError(ResourceLoadInfo&& loadInfo, } #if ENABLE(FULLSCREEN_API) @@ -17732,7 +17736,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d WebFullScreenManagerProxy* WebPageProxy::fullScreenManager() { return m_fullScreenManager.get(); -@@ -9244,6 +9475,17 @@ void WebPageProxy::requestDOMPasteAccess(IPC::Connection& connection, DOMPasteAc +@@ -9370,6 +9601,17 @@ void WebPageProxy::requestDOMPasteAccess(IPC::Connection& connection, DOMPasteAc } } @@ -17750,7 +17754,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d m_pageClient->requestDOMPasteAccess(pasteAccessCategory, requiresInteraction, elementRect, originIdentifier, WTFMove(completionHandler)); } -@@ -10241,6 +10483,8 @@ void WebPageProxy::mouseEventHandlingCompleted(std::optional event +@@ -10400,6 +10642,8 @@ void WebPageProxy::mouseEventHandlingCompleted(std::optional event if (RefPtr automationSession = configuration().processPool().automationSession()) automationSession->mouseEventsFlushedForPage(*this); didFinishProcessingAllPendingMouseEvents(); @@ -17759,7 +17763,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d } } -@@ -10275,6 +10519,7 @@ void WebPageProxy::keyEventHandlingCompleted(std::optional eventTy +@@ -10434,6 +10678,7 @@ void WebPageProxy::keyEventHandlingCompleted(std::optional eventTy if (!canProcessMoreKeyEvents) { if (RefPtr automationSession = configuration().processPool().automationSession()) automationSession->keyboardEventsFlushedForPage(*this); @@ -17767,7 +17771,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d } } -@@ -10696,7 +10941,10 @@ void WebPageProxy::dispatchProcessDidTerminate(WebProcessProxy& process, Process +@@ -10857,7 +11102,10 @@ void WebPageProxy::dispatchProcessDidTerminate(WebProcessProxy& process, Process if (m_preferences->siteIsolationEnabled()) m_browsingContextGroup->processDidTerminate(*this, process); @@ -17779,7 +17783,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d if (m_loaderClient) handledByClient = reason != ProcessTerminationReason::RequestedByClient && m_loaderClient->processDidCrash(*this); else -@@ -11343,6 +11591,8 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc +@@ -11513,6 +11761,8 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc parameters.httpsUpgradeEnabled = preferences->upgradeKnownHostsToHTTPSEnabled() ? configuration->httpsUpgradeEnabled() : false; @@ -17788,7 +17792,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d #if PLATFORM(IOS) || PLATFORM(VISION) // FIXME: This is also being passed over the to WebProcess via the PreferencesStore. parameters.allowsDeprecatedSynchronousXMLHttpRequestDuringUnload = allowsDeprecatedSynchronousXMLHttpRequestDuringUnload(); -@@ -11502,8 +11752,42 @@ void WebPageProxy::allowGamepadAccess() +@@ -11676,8 +11926,42 @@ void WebPageProxy::allowGamepadAccess() #endif // ENABLE(GAMEPAD) @@ -17831,7 +17835,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d if (negotiatedLegacyTLS == NegotiatedLegacyTLS::Yes) { m_navigationClient->shouldAllowLegacyTLS(*this, authenticationChallenge.get(), [this, protectedThis = Ref { *this }, authenticationChallenge] (bool shouldAllowLegacyTLS) { if (shouldAllowLegacyTLS) -@@ -11597,6 +11881,12 @@ void WebPageProxy::requestGeolocationPermissionForFrame(IPC::Connection& connect +@@ -11772,6 +12056,12 @@ void WebPageProxy::requestGeolocationPermissionForFrame(IPC::Connection& connect request->deny(); }; @@ -17844,7 +17848,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d // FIXME: Once iOS migrates to the new WKUIDelegate SPI, clean this up // and make it one UIClient call that calls the completionHandler with false // if there is no delegate instead of returning the completionHandler -@@ -11659,6 +11949,12 @@ void WebPageProxy::queryPermission(const ClientOrigin& clientOrigin, const Permi +@@ -11834,6 +12124,12 @@ void WebPageProxy::queryPermission(const ClientOrigin& clientOrigin, const Permi shouldChangeDeniedToPrompt = false; if (sessionID().isEphemeral()) { @@ -17857,7 +17861,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d completionHandler(shouldChangeDeniedToPrompt ? PermissionState::Prompt : PermissionState::Denied); return; } -@@ -11673,6 +11969,12 @@ void WebPageProxy::queryPermission(const ClientOrigin& clientOrigin, const Permi +@@ -11848,6 +12144,12 @@ void WebPageProxy::queryPermission(const ClientOrigin& clientOrigin, const Permi return; } @@ -17871,7 +17875,7 @@ index d6d3a2ad0eca1473543f79daa4a4a6fbf8c0d2a9..0c38e87c731d802974780d4d84a3e02d completionHandler(shouldChangeDeniedToPrompt ? PermissionState::Prompt : PermissionState::Denied); return; diff --git a/Source/WebKit/UIProcess/WebPageProxy.h b/Source/WebKit/UIProcess/WebPageProxy.h -index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2f3d1430e 100644 +index b2c03a83961ca2dca8510461ab73693295f3c50a..94e859353dc61017f13d39227d256d6c97515422 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.h +++ b/Source/WebKit/UIProcess/WebPageProxy.h @@ -26,6 +26,7 @@ @@ -17880,9 +17884,9 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 #include "APIObject.h" +#include "APIWebsitePolicies.h" #include "MessageReceiver.h" + #include #include - #include -@@ -40,6 +41,20 @@ +@@ -42,6 +43,20 @@ #include #include #include @@ -17903,7 +17907,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 #if USE(DICTATION_ALTERNATIVES) #include -@@ -122,6 +137,7 @@ class DragData; +@@ -126,6 +141,7 @@ class DragData; class Exception; class FloatPoint; class FloatQuad; @@ -17911,7 +17915,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 class FloatRect; class FloatSize; class FontAttributeChanges; -@@ -467,6 +483,7 @@ class WebExtensionController; +@@ -474,6 +490,7 @@ class WebExtensionController; class WebFramePolicyListenerProxy; class WebFrameProxy; class WebFullScreenManagerProxy; @@ -17919,7 +17923,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 class WebInspectorUIProxy; class WebKeyboardEvent; class WebMouseEvent; -@@ -695,6 +712,8 @@ public: +@@ -707,6 +724,8 @@ public: void setControlledByAutomation(bool); WebPageInspectorController& inspectorController() { return *m_inspectorController; } @@ -17928,7 +17932,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 #if PLATFORM(IOS_FAMILY) void showInspectorIndication(); -@@ -728,6 +747,7 @@ public: +@@ -741,6 +760,7 @@ public: bool hasSleepDisabler() const; #if ENABLE(FULLSCREEN_API) @@ -17936,7 +17940,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 WebFullScreenManagerProxy* fullScreenManager(); API::FullscreenClient& fullscreenClient() const { return *m_fullscreenClient; } -@@ -817,6 +837,12 @@ public: +@@ -830,6 +850,12 @@ public: void setPageLoadStateObserver(RefPtr&&); @@ -17949,7 +17953,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 void initializeWebPage(const WebCore::Site&, WebCore::SandboxFlags); void setDrawingArea(RefPtr&&); -@@ -848,6 +874,8 @@ public: +@@ -861,6 +887,8 @@ public: RefPtr loadRequest(WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy, WebCore::IsPerformingHTTPFallback); RefPtr loadRequest(WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy, WebCore::IsPerformingHTTPFallback, std::unique_ptr&&, API::Object* userData = nullptr); @@ -17958,7 +17962,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 RefPtr loadFile(const String& fileURL, const String& resourceDirectoryURL, bool isAppInitiated = true, API::Object* userData = nullptr); RefPtr loadData(Ref&&, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData = nullptr); RefPtr loadData(Ref&&, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData, WebCore::ShouldOpenExternalURLsPolicy); -@@ -931,6 +959,7 @@ public: +@@ -944,6 +972,7 @@ public: PageClient* pageClient() const; RefPtr protectedPageClient() const; @@ -17966,7 +17970,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 void setViewNeedsDisplay(const WebCore::Region&); void requestScroll(const WebCore::FloatPoint& scrollPosition, const WebCore::IntPoint& scrollOrigin, WebCore::ScrollIsAnimated); -@@ -1556,14 +1585,20 @@ public: +@@ -1566,14 +1595,20 @@ public: void didStartDrag(); void dragCancelled(); void setDragCaretRect(const WebCore::IntRect&); @@ -17988,7 +17992,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 #endif void processDidBecomeUnresponsive(); -@@ -1808,6 +1843,7 @@ public: +@@ -1822,6 +1857,7 @@ public: void setViewportSizeForCSSViewportUnits(const WebCore::FloatSize&); WebCore::FloatSize viewportSizeForCSSViewportUnits() const; @@ -17996,7 +18000,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 void didReceiveAuthenticationChallengeProxy(Ref&&, NegotiatedLegacyTLS); void negotiatedLegacyTLS(); void didNegotiateModernTLS(const URL&); -@@ -1841,6 +1877,8 @@ public: +@@ -1855,6 +1891,8 @@ public: #if PLATFORM(COCOA) || PLATFORM(GTK) RefPtr takeViewSnapshot(std::optional&&); RefPtr takeViewSnapshot(std::optional&&, ForceSoftwareCapturingViewportSnapshot); @@ -18005,7 +18009,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 #endif void wrapCryptoKey(Vector&&, CompletionHandler>&&)>&&); -@@ -2805,6 +2843,7 @@ private: +@@ -2835,6 +2873,7 @@ private: RefPtr launchProcessForReload(); void requestNotificationPermission(const String& originString, CompletionHandler&&); @@ -18013,7 +18017,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 void didChangeContentSize(const WebCore::IntSize&); void didChangeIntrinsicContentSize(const WebCore::IntSize&); -@@ -3326,8 +3365,10 @@ private: +@@ -3362,8 +3401,10 @@ private: String m_openedMainFrameName; RefPtr m_inspector; @@ -18024,7 +18028,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 RefPtr m_fullScreenManager; std::unique_ptr m_fullscreenClient; #endif -@@ -3527,6 +3568,22 @@ private: +@@ -3562,6 +3603,22 @@ private: std::optional m_currentDragOperation; bool m_currentDragIsOverFileInput { false }; unsigned m_currentDragNumberOfFilesToBeAccepted { 0 }; @@ -18047,7 +18051,7 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 #endif bool m_mainFrameHasHorizontalScrollbar { false }; -@@ -3698,6 +3755,10 @@ private: +@@ -3735,6 +3792,10 @@ private: RefPtr messageBody; }; Vector m_pendingInjectedBundleMessages; @@ -18059,10 +18063,10 @@ index 304e437942e1269b0ada34b4f11789b84713b1b1..8e4f32d830657337e6451932bb1f75b2 #if PLATFORM(IOS_FAMILY) && ENABLE(DEVICE_ORIENTATION) RefPtr m_webDeviceOrientationUpdateProviderProxy; diff --git a/Source/WebKit/UIProcess/WebPageProxy.messages.in b/Source/WebKit/UIProcess/WebPageProxy.messages.in -index e28a28652ad75c4f4efe1b52868a10ab8ea4691b..218fe89bf5e342e496ccc986cc6bee750e23eb38 100644 +index 68e7c4024aa81d9339c4d62feae9f6270af46db8..c312f7c5d9d06893f2dad30c87968fe5dffd880d 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.messages.in +++ b/Source/WebKit/UIProcess/WebPageProxy.messages.in -@@ -34,6 +34,7 @@ messages -> WebPageProxy { +@@ -35,6 +35,7 @@ messages -> WebPageProxy { RunJavaScriptConfirm(WebCore::FrameIdentifier frameID, struct WebKit::FrameInfoData frameInfo, String message) -> (bool result) Synchronous RunJavaScriptPrompt(WebCore::FrameIdentifier frameID, struct WebKit::FrameInfoData frameInfo, String message, String defaultValue) -> (String result) Synchronous MouseDidMoveOverElement(struct WebKit::WebHitTestResultData hitTestResultData, OptionSet modifiers, WebKit::UserData userData) @@ -18070,7 +18074,7 @@ index e28a28652ad75c4f4efe1b52868a10ab8ea4691b..218fe89bf5e342e496ccc986cc6bee75 DidReceiveEvent(enum:uint8_t WebKit::WebEventType eventType, bool handled, struct std::optional remoteUserInputEventData) SetCursor(WebCore::Cursor cursor) -@@ -327,10 +328,14 @@ messages -> WebPageProxy { +@@ -330,10 +331,14 @@ messages -> WebPageProxy { StartDrag(struct WebCore::DragItem dragItem, WebCore::ShareableBitmapHandle dragImage) SetPromisedDataForImage(String pasteboardName, WebCore::SharedMemory::Handle imageHandle, String filename, String extension, String title, String url, String visibleURL, WebCore::SharedMemory::Handle archiveHandle, String originIdentifier) #endif @@ -18087,7 +18091,7 @@ index e28a28652ad75c4f4efe1b52868a10ab8ea4691b..218fe89bf5e342e496ccc986cc6bee75 DidHandleDragStartRequest(bool started) DidHandleAdditionalDragItemsRequest(bool added) diff --git a/Source/WebKit/UIProcess/WebProcessCache.cpp b/Source/WebKit/UIProcess/WebProcessCache.cpp -index a52ebc98999087f70ff74a3a21355409a1224f95..460b87c90611bbbbea5970d6a45aacb8c17be0f3 100644 +index 7211efa3028a16e070059251cd35cefa886f5d43..7aeab506c527d5ddcfa7f1e56749dca87ab7738e 100644 --- a/Source/WebKit/UIProcess/WebProcessCache.cpp +++ b/Source/WebKit/UIProcess/WebProcessCache.cpp @@ -92,6 +92,10 @@ bool WebProcessCache::canCacheProcess(WebProcessProxy& process) const @@ -18102,10 +18106,10 @@ index a52ebc98999087f70ff74a3a21355409a1224f95..460b87c90611bbbbea5970d6a45aacb8 } diff --git a/Source/WebKit/UIProcess/WebProcessPool.cpp b/Source/WebKit/UIProcess/WebProcessPool.cpp -index 640f3f891ef5fc07eb88dbe2d5c74430061bfbac..6bac8aa05755a9686002d35e47aa8eee648993ee 100644 +index ab6e3d2220d2f02cce66a47ab0e2432685d0ce94..d5ec0bdb2b92137222a58ae3afda1e2dc5caca6b 100644 --- a/Source/WebKit/UIProcess/WebProcessPool.cpp +++ b/Source/WebKit/UIProcess/WebProcessPool.cpp -@@ -438,10 +438,10 @@ void WebProcessPool::setAutomationClient(std::unique_ptr& +@@ -444,10 +444,10 @@ void WebProcessPool::setAutomationClient(std::unique_ptr& void WebProcessPool::setOverrideLanguages(Vector&& languages) { @@ -18118,7 +18122,7 @@ index 640f3f891ef5fc07eb88dbe2d5c74430061bfbac..6bac8aa05755a9686002d35e47aa8eee #if ENABLE(GPU_PROCESS) if (RefPtr gpuProcess = GPUProcessProxy::singletonIfCreated()) -@@ -449,9 +449,10 @@ void WebProcessPool::setOverrideLanguages(Vector&& languages) +@@ -455,9 +455,10 @@ void WebProcessPool::setOverrideLanguages(Vector&& languages) #endif #if USE(SOUP) for (Ref networkProcess : NetworkProcessProxy::allNetworkProcesses()) @@ -18130,7 +18134,7 @@ index 640f3f891ef5fc07eb88dbe2d5c74430061bfbac..6bac8aa05755a9686002d35e47aa8eee void WebProcessPool::fullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled) { -@@ -928,7 +929,7 @@ void WebProcessPool::initializeNewWebProcess(WebProcessProxy& process, WebsiteDa +@@ -943,7 +944,7 @@ void WebProcessPool::initializeNewWebProcess(WebProcessProxy& process, WebsiteDa #endif parameters.cacheModel = LegacyGlobalSettings::singleton().cacheModel(); @@ -18140,10 +18144,10 @@ index 640f3f891ef5fc07eb88dbe2d5c74430061bfbac..6bac8aa05755a9686002d35e47aa8eee parameters.urlSchemesRegisteredAsEmptyDocument = copyToVector(m_schemesToRegisterAsEmptyDocument); diff --git a/Source/WebKit/UIProcess/WebProcessProxy.cpp b/Source/WebKit/UIProcess/WebProcessProxy.cpp -index a9335579083e325126d2c1de5ca89108a5d9f4a8..c42e19f3f9aeca5202fbaf6cf88c922c3508d4bf 100644 +index 31270a744c84c7e818bf42637658cd98db30f2b9..9e26b56dc40aeedc4afbb6cbe7b01f4cbcb32d0b 100644 --- a/Source/WebKit/UIProcess/WebProcessProxy.cpp +++ b/Source/WebKit/UIProcess/WebProcessProxy.cpp -@@ -192,6 +192,11 @@ Vector> WebProcessProxy::allProcesses() +@@ -194,6 +194,11 @@ Vector> WebProcessProxy::allProcesses() }); } @@ -18155,7 +18159,7 @@ index a9335579083e325126d2c1de5ca89108a5d9f4a8..c42e19f3f9aeca5202fbaf6cf88c922c RefPtr WebProcessProxy::processForIdentifier(ProcessIdentifier identifier) { return allProcessMap().get(identifier); -@@ -554,6 +559,26 @@ void WebProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOpt +@@ -561,6 +566,26 @@ void WebProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOpt if (WebKit::isInspectorProcessPool(protectedProcessPool())) launchOptions.extraInitializationData.add("inspector-process"_s, "1"_s); @@ -18183,10 +18187,10 @@ index a9335579083e325126d2c1de5ca89108a5d9f4a8..c42e19f3f9aeca5202fbaf6cf88c922c if (isPrewarmed()) diff --git a/Source/WebKit/UIProcess/WebProcessProxy.h b/Source/WebKit/UIProcess/WebProcessProxy.h -index 7d9e93ea058e783f32ef1d0a6ca0182175da64c4..303655051c9b8f91868ebaaca74a61d851ddbd59 100644 +index ac12422e6b49f1c3b935e0c05ea569522d1a4206..555bd49e0fb59fd6fdc2cfd32dc7614a096b924f 100644 --- a/Source/WebKit/UIProcess/WebProcessProxy.h +++ b/Source/WebKit/UIProcess/WebProcessProxy.h -@@ -177,6 +177,7 @@ public: +@@ -180,6 +180,7 @@ public: static void forWebPagesWithOrigin(PAL::SessionID, const WebCore::SecurityOriginData&, const Function&); static Vector> allowedFirstPartiesForCookies(); @@ -18195,7 +18199,7 @@ index 7d9e93ea058e783f32ef1d0a6ca0182175da64c4..303655051c9b8f91868ebaaca74a61d8 void initializeWebProcess(WebProcessCreationParameters&&); diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp -index 069845674e159025683e063219431aa20e3a5a3e..8f3963b6316404bfb0c13305d1272cf15002b1f4 100644 +index 09058b732dd75484320bca2c939f139e5057c845..aa9ea426f635d768cd2c901cccda72e0bbd165c8 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp @@ -314,7 +314,8 @@ SOAuthorizationCoordinator& WebsiteDataStore::soAuthorizationCoordinator(const W @@ -18208,7 +18212,7 @@ index 069845674e159025683e063219431aa20e3a5a3e..8f3963b6316404bfb0c13305d1272cf1 if (sessionID.isEphemeral()) { // Reuse a previous persistent session network process for ephemeral sessions. for (auto& dataStore : allDataStores().values()) { -@@ -2343,6 +2344,12 @@ void WebsiteDataStore::originDirectoryForTesting(WebCore::ClientOrigin&& origin, +@@ -2354,6 +2355,12 @@ void WebsiteDataStore::originDirectoryForTesting(WebCore::ClientOrigin&& origin, protectedNetworkProcess()->websiteDataOriginDirectoryForTesting(m_sessionID, WTFMove(origin), type, WTFMove(completionHandler)); } @@ -18222,10 +18226,10 @@ index 069845674e159025683e063219431aa20e3a5a3e..8f3963b6316404bfb0c13305d1272cf1 void WebsiteDataStore::hasAppBoundSession(CompletionHandler&& completionHandler) const { diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h -index ca5511eaf8b0af08a20c44fa2350b3a1d94d46cb..9855dc78e84374042d3f28e980475b4dd639a8c6 100644 +index 903223f1276b9e5440ce66ba941255272209203f..c0b9b92f361cdca7bcfd3a8eb554c3bb015aac45 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h -@@ -97,6 +97,7 @@ class DeviceIdHashSaltStorage; +@@ -101,6 +101,7 @@ class DeviceIdHashSaltStorage; class DownloadProxy; class NetworkProcessProxy; class SOAuthorizationCoordinator; @@ -18233,7 +18237,7 @@ index ca5511eaf8b0af08a20c44fa2350b3a1d94d46cb..9855dc78e84374042d3f28e980475b4d class VirtualAuthenticatorManager; class WebPageProxy; class WebProcessPool; -@@ -112,12 +113,21 @@ enum class UnifiedOriginStorageLevel : uint8_t; +@@ -116,12 +117,21 @@ enum class UnifiedOriginStorageLevel : uint8_t; enum class WebsiteDataFetchOption : uint8_t; enum class WebsiteDataType : uint32_t; @@ -18255,7 +18259,7 @@ index ca5511eaf8b0af08a20c44fa2350b3a1d94d46cb..9855dc78e84374042d3f28e980475b4d class WebsiteDataStore : public API::ObjectImpl, public CanMakeWeakPtr { public: static Ref defaultDataStore(); -@@ -306,11 +316,13 @@ public: +@@ -310,11 +320,13 @@ public: const WebCore::CurlProxySettings& networkProxySettings() const { return m_proxySettings; } #endif @@ -18270,7 +18274,7 @@ index ca5511eaf8b0af08a20c44fa2350b3a1d94d46cb..9855dc78e84374042d3f28e980475b4d void setNetworkProxySettings(WebCore::SoupNetworkProxySettings&&); const WebCore::SoupNetworkProxySettings& networkProxySettings() const { return m_networkProxySettings; } void setCookiePersistentStorage(const String&, SoupCookiePersistentStorageType); -@@ -400,6 +412,12 @@ public: +@@ -404,6 +416,12 @@ public: static const String& defaultBaseDataDirectory(); #endif @@ -18283,7 +18287,7 @@ index ca5511eaf8b0af08a20c44fa2350b3a1d94d46cb..9855dc78e84374042d3f28e980475b4d void resetQuota(CompletionHandler&&); void resetStoragePersistedState(CompletionHandler&&); #if PLATFORM(IOS_FAMILY) -@@ -576,9 +594,11 @@ private: +@@ -589,9 +607,11 @@ private: WebCore::CurlProxySettings m_proxySettings; #endif @@ -18296,7 +18300,7 @@ index ca5511eaf8b0af08a20c44fa2350b3a1d94d46cb..9855dc78e84374042d3f28e980475b4d WebCore::SoupNetworkProxySettings m_networkProxySettings; String m_cookiePersistentStoragePath; SoupCookiePersistentStorageType m_cookiePersistentStorageType { SoupCookiePersistentStorageType::SQLite }; -@@ -605,6 +625,10 @@ private: +@@ -618,6 +638,10 @@ private: RefPtr m_cookieStore; RefPtr m_networkProcess; @@ -18624,7 +18628,7 @@ index 0000000000000000000000000000000000000000..441442d899e4088f5c24ae9f70c3e4ff + +#endif // ENABLE(REMOTE_INSPECTOR) diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h -index b2e2a636725674a1619f92d67c7846358374b9e3..7bc4914766b3b03e586c6662c6da33ceac466c0b 100644 +index 5529f52048b24290f424e877cd9dbfb890e02ffb..c2b76b6188dd9596c4a1f31c137daff7d7644c7f 100644 --- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h +++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.h @@ -32,6 +32,7 @@ @@ -18635,7 +18639,7 @@ index b2e2a636725674a1619f92d67c7846358374b9e3..7bc4914766b3b03e586c6662c6da33ce #if USE(GTK4) typedef struct _GdkSnapshot GdkSnapshot; -@@ -61,6 +62,8 @@ public: +@@ -62,6 +63,8 @@ public: #else virtual bool paint(cairo_t*, const WebCore::IntRect&) = 0; #endif @@ -18645,11 +18649,11 @@ index b2e2a636725674a1619f92d67c7846358374b9e3..7bc4914766b3b03e586c6662c6da33ce virtual void unrealize() { }; virtual int renderHostFileDescriptor() { return -1; } diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -index fc6a465e3518c6d9be65b9cb4677b9734b023741..431337fb8576c41e7a59440b2f867b0bebce9776 100644 +index 92d972eeef867b680ef0266d24f47827fe0d64b5..afb1e4d9dfae59be15692635e5334a5078bfef95 100644 --- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp +++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -@@ -729,4 +729,30 @@ RendererBufferFormat AcceleratedBackingStoreDMABuf::bufferFormat() const - return buffer ? buffer->format() : RendererBufferFormat { }; +@@ -811,4 +811,30 @@ RefPtr AcceleratedBackingStoreDMABuf::bufferAsNativeImageF + return m_committedBuffer->asNativeImageForTesting(); } +// Playwright begin @@ -18680,7 +18684,7 @@ index fc6a465e3518c6d9be65b9cb4677b9734b023741..431337fb8576c41e7a59440b2f867b0b + } // namespace WebKit diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h -index a208bbefafd88a3d95f6c2be35f7f700c86bda90..c603c7eb3501989e79ebc31b1c4eb6e1d2523ffe 100644 +index 87275e2c71e934f76c979e30375e78763a476814..5776d81c12e653404c1c637d4d7060e9123f12e5 100644 --- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h +++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h @@ -98,6 +98,7 @@ private: @@ -18691,7 +18695,7 @@ index a208bbefafd88a3d95f6c2be35f7f700c86bda90..c603c7eb3501989e79ebc31b1c4eb6e1 void unrealize() override; void update(const LayerTreeContext&) override; RendererBufferFormat bufferFormat() const override; -@@ -247,6 +248,9 @@ private: +@@ -253,6 +254,9 @@ private: RefPtr m_committedBuffer; WebCore::Region m_pendingDamageRegion; HashMap> m_buffers; @@ -19200,7 +19204,7 @@ index 0000000000000000000000000000000000000000..8adbd51bfecad2a273117588bf50f8f7 + +#endif diff --git a/Source/WebKit/UIProcess/mac/PageClientImplMac.h b/Source/WebKit/UIProcess/mac/PageClientImplMac.h -index 6d9f836ed08eb488e40831e8c93cfe7201ebdd9a..02f75742b4d473b7854e3792c6665c8c93d5687d 100644 +index c8ec967cdc8b32e7b9349460794c35b2c6b45d7f..a8ccc70d9f0defd9ac4e8c8f45064bc3b2b4bfac 100644 --- a/Source/WebKit/UIProcess/mac/PageClientImplMac.h +++ b/Source/WebKit/UIProcess/mac/PageClientImplMac.h @@ -60,6 +60,8 @@ class PageClientImpl final : public PageClientImplCocoa @@ -19234,7 +19238,7 @@ index 6d9f836ed08eb488e40831e8c93cfe7201ebdd9a..02f75742b4d473b7854e3792c6665c8c void navigationGestureWillEnd(bool willNavigate, WebBackForwardListItem&) override; void navigationGestureDidEnd(bool willNavigate, WebBackForwardListItem&) override; diff --git a/Source/WebKit/UIProcess/mac/PageClientImplMac.mm b/Source/WebKit/UIProcess/mac/PageClientImplMac.mm -index 5f6008cd5d0bd76c7d3731a36f9d3605710c7c19..eac8caf9b5cd8ff2cdd41dd84a07413bab7badc3 100644 +index dba9aae7c29f59127a80461aedc8ac10cc1cef66..addadd854c4fa5c999eb1ae865c8e31d2e37b03f 100644 --- a/Source/WebKit/UIProcess/mac/PageClientImplMac.mm +++ b/Source/WebKit/UIProcess/mac/PageClientImplMac.mm @@ -110,6 +110,13 @@ namespace WebKit { @@ -19336,7 +19340,7 @@ index 5f6008cd5d0bd76c7d3731a36f9d3605710c7c19..eac8caf9b5cd8ff2cdd41dd84a07413b void PageClientImpl::navigationGestureDidBegin() { m_impl->dismissContentRelativeChildWindowsWithAnimation(true); -@@ -1016,6 +1050,9 @@ void PageClientImpl::requestScrollToRect(const WebCore::FloatRect& targetRect, c +@@ -1011,6 +1045,9 @@ void PageClientImpl::requestScrollToRect(const WebCore::FloatRect& targetRect, c bool PageClientImpl::windowIsFrontWindowUnderMouse(const NativeWebMouseEvent& event) { @@ -19347,14 +19351,15 @@ index 5f6008cd5d0bd76c7d3731a36f9d3605710c7c19..eac8caf9b5cd8ff2cdd41dd84a07413b } diff --git a/Source/WebKit/UIProcess/mac/SecItemShimProxy.messages.in b/Source/WebKit/UIProcess/mac/SecItemShimProxy.messages.in -index 5ddabc8529a1d7c8121d834289aa0e70a5dcd7d7..0bec72101447def53facd42881358e4cb34b656e 100644 +index e0a61ae15b79e32701b2f4a2a6de6c105fb39446..1792da3491e88ee76a501f271938592de19f7ae4 100644 --- a/Source/WebKit/UIProcess/mac/SecItemShimProxy.messages.in +++ b/Source/WebKit/UIProcess/mac/SecItemShimProxy.messages.in -@@ -20,11 +20,11 @@ +@@ -20,12 +20,12 @@ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +#if ENABLE(SEC_ITEM_SHIM) + [ExceptionForEnabledBy] messages -> SecItemShimProxy { -#if ENABLE(SEC_ITEM_SHIM) @@ -19365,10 +19370,10 @@ index 5ddabc8529a1d7c8121d834289aa0e70a5dcd7d7..0bec72101447def53facd42881358e4c } +#endif diff --git a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h b/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h -index e34faa8ae2933154efdbf0492a2f17af7a46f83b..54b509837bb767ac3ab28d1d7059462ca7a1170b 100644 +index b668c229f2e8bd077b19a8a6344416098895f8a0..e9b67c72cfc91fec86887941a760f6899696624f 100644 --- a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h +++ b/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h -@@ -78,6 +78,7 @@ private: +@@ -80,6 +80,7 @@ private: void show() override; void showContextMenuWithItems(Vector>&&) override; void useContextMenuItems(Vector>&&) override; @@ -19377,10 +19382,10 @@ index e34faa8ae2933154efdbf0492a2f17af7a46f83b..54b509837bb767ac3ab28d1d7059462c bool showAfterPostProcessingContextData(); diff --git a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm b/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm -index 590e689455e912c35642b9fbafa6cd9a34041eac..27ff44679509d9e82fb4ad556ace0cf7368206e4 100644 +index 4abfcf22cbdce49e3e15993b07700866fa8e97f9..2a90b5d222ccdec8725c64f3102bebd870360fa9 100644 --- a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm +++ b/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm -@@ -460,6 +460,12 @@ void WebContextMenuProxyMac::getShareMenuItem(CompletionHandler WebContextMenuProxyMac::createShareMenuItem(ShareMenuItemT } #endif @@ -19585,10 +19590,10 @@ index 0000000000000000000000000000000000000000..dd52991f936aa1c046b404801ee97237 + +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/mac/WebViewImpl.h b/Source/WebKit/UIProcess/mac/WebViewImpl.h -index 547682903b486e6f4fe814239d445c6ab26243b0..115255726211d7ff82475caf70516677f243afd3 100644 +index f519288e2a405f48d9224599eb678c919ff77af1..cc151e7b828536e9509bcb5fa23d19b4f2efc10f 100644 --- a/Source/WebKit/UIProcess/mac/WebViewImpl.h +++ b/Source/WebKit/UIProcess/mac/WebViewImpl.h -@@ -544,6 +544,9 @@ public: +@@ -543,6 +543,9 @@ public: void provideDataForPasteboard(NSPasteboard *, NSString *type); NSArray *namesOfPromisedFilesDroppedAtDestination(NSURL *dropDestination); @@ -19599,7 +19604,7 @@ index 547682903b486e6f4fe814239d445c6ab26243b0..115255726211d7ff82475caf70516677 RefPtr takeViewSnapshot(ForceSoftwareCapturingViewportSnapshot); void saveBackForwardSnapshotForCurrentItem(); diff --git a/Source/WebKit/UIProcess/mac/WebViewImpl.mm b/Source/WebKit/UIProcess/mac/WebViewImpl.mm -index 926d93ba3cab0bec3396dc044921e2337a331836..3857bfd5d010ce1ee443f10f96730f084f38984e 100644 +index 032961f58ab7990c8b353c0fcc849e8d03c145ac..04866658cbfbcf8dad31e51f94d0419a1466e62a 100644 --- a/Source/WebKit/UIProcess/mac/WebViewImpl.mm +++ b/Source/WebKit/UIProcess/mac/WebViewImpl.mm @@ -2390,6 +2390,11 @@ WebCore::DestinationColorSpace WebViewImpl::colorSpace() @@ -20421,11 +20426,24 @@ index 9b688ad328317fea4fd96ce66e9714bad8f0f937..402a36a9c565e13ec298aa7f014f0d92 } } // namespace WebKit +diff --git a/Source/WebKit/UnifiedSources-output.xcfilelist b/Source/WebKit/UnifiedSources-output.xcfilelist +index c103a90e720933a10b736194139973f16c33551a..d0985c9258b3e19701498f7cbf4d0add3c584b8c 100644 +--- a/Source/WebKit/UnifiedSources-output.xcfilelist ++++ b/Source/WebKit/UnifiedSources-output.xcfilelist +@@ -55,6 +55,8 @@ $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/unified-sources/UnifiedSource134.cpp + $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/unified-sources/UnifiedSource135.cpp + $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/unified-sources/UnifiedSource136.cpp + $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/unified-sources/UnifiedSource137.cpp ++$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/unified-sources/UnifiedSource138.cpp ++$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/unified-sources/UnifiedSource139.cpp + $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/unified-sources/UnifiedSource14-mm.mm + $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/unified-sources/UnifiedSource14.cpp + $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/unified-sources/UnifiedSource15-mm.mm diff --git a/Source/WebKit/WebKit.xcodeproj/project.pbxproj b/Source/WebKit/WebKit.xcodeproj/project.pbxproj -index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae76ffc6613 100644 +index 02610cb75b88760c441c0532a97fb0cb2eb838c6..01b5efc4a8013bef8e6bad79a0bb277f06450ee9 100644 --- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj +++ b/Source/WebKit/WebKit.xcodeproj/project.pbxproj -@@ -1577,6 +1577,7 @@ +@@ -1527,6 +1527,7 @@ 5CABDC8722C40FED001EDE8E /* APIMessageListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CABDC8322C40FA7001EDE8E /* APIMessageListener.h */; }; 5CADDE05215046BD0067D309 /* WKWebProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C74300E21500492004BFA17 /* WKWebProcess.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5CAECB6627465AE400AB78D0 /* UnifiedSource115.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CAECB5E27465AE300AB78D0 /* UnifiedSource115.cpp */; }; @@ -20433,7 +20451,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 5CAF7AA726F93AB00003F19E /* adattributiond.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CAF7AA526F93A950003F19E /* adattributiond.cpp */; }; 5CAFDE452130846300B1F7E1 /* _WKInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CAFDE422130843500B1F7E1 /* _WKInspector.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5CAFDE472130846A00B1F7E1 /* _WKInspectorInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CAFDE442130843600B1F7E1 /* _WKInspectorInternal.h */; }; -@@ -2388,6 +2389,18 @@ +@@ -2301,6 +2302,18 @@ DF0C5F28252ECB8E00D921DB /* WKDownload.h in Headers */ = {isa = PBXBuildFile; fileRef = DF0C5F24252ECB8D00D921DB /* WKDownload.h */; settings = {ATTRIBUTES = (Public, ); }; }; DF0C5F2A252ECB8E00D921DB /* WKDownloadDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = DF0C5F26252ECB8E00D921DB /* WKDownloadDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; DF0C5F2B252ED44000D921DB /* WKDownloadInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = DF0C5F25252ECB8E00D921DB /* WKDownloadInternal.h */; }; @@ -20452,7 +20470,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 DF462E0F23F22F5500EFF35F /* WKHTTPCookieStorePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = DF462E0E23F22F5300EFF35F /* WKHTTPCookieStorePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; DF462E1223F338BE00EFF35F /* WKContentWorldPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = DF462E1123F338AD00EFF35F /* WKContentWorldPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; DF7A231C291B088D00B98DF3 /* WKSnapshotConfigurationPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = DF7A231B291B088D00B98DF3 /* WKSnapshotConfigurationPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; -@@ -2481,6 +2494,8 @@ +@@ -2392,6 +2405,8 @@ E5BEF6822130C48000F31111 /* WebDataListSuggestionsDropdownIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = E5BEF6802130C47F00F31111 /* WebDataListSuggestionsDropdownIOS.h */; }; E5CB07DC20E1678F0022C183 /* WKFormColorControl.h in Headers */ = {isa = PBXBuildFile; fileRef = E5CB07DA20E1678F0022C183 /* WKFormColorControl.h */; }; E5CBA76427A318E100DF7858 /* UnifiedSource120.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E5CBA75F27A3187800DF7858 /* UnifiedSource120.cpp */; }; @@ -20461,7 +20479,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 E5CBA76527A318E100DF7858 /* UnifiedSource118.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E5CBA76127A3187900DF7858 /* UnifiedSource118.cpp */; }; E5CBA76627A318E100DF7858 /* UnifiedSource116.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E5CBA76327A3187B00DF7858 /* UnifiedSource116.cpp */; }; E5CBA76727A318E100DF7858 /* UnifiedSource119.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E5CBA76027A3187900DF7858 /* UnifiedSource119.cpp */; }; -@@ -2504,6 +2519,9 @@ +@@ -2415,6 +2430,9 @@ EBA8D3B727A5E33F00CB7900 /* PushServiceConnection.mm in Sources */ = {isa = PBXBuildFile; fileRef = EBA8D3B127A5E33F00CB7900 /* PushServiceConnection.mm */; }; EBDF51D12C8FBC4700EA1376 /* WebsitePushAndNotificationsEnabledPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = EBDF51CF2C8FBC4700EA1376 /* WebsitePushAndNotificationsEnabledPolicy.h */; }; ED82A7F2128C6FAF004477B3 /* WKBundlePageOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A22F0FF1289FCD90085E74F /* WKBundlePageOverlay.h */; settings = {ATTRIBUTES = (Private, ); }; }; @@ -20471,7 +20489,16 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 F409BA181E6E64BC009DA28E /* WKDragDestinationAction.h in Headers */ = {isa = PBXBuildFile; fileRef = F409BA171E6E64B3009DA28E /* WKDragDestinationAction.h */; settings = {ATTRIBUTES = (Private, ); }; }; F40C3B712AB401C5007A3567 /* WKDatePickerPopoverController.h in Headers */ = {isa = PBXBuildFile; fileRef = F40C3B6F2AB40167007A3567 /* WKDatePickerPopoverController.h */; }; F41145682CD939E0004CDBD1 /* _WKTouchEventGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = F41145652CD939E0004CDBD1 /* _WKTouchEventGenerator.h */; settings = {ATTRIBUTES = (Private, ); }; }; -@@ -6282,6 +6300,7 @@ +@@ -2518,6 +2536,8 @@ + FAE61CE82D0A5608000D238D /* UnifiedSource136.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAE61CE12D0A5606000D238D /* UnifiedSource136.cpp */; }; + FAE61CE92D0A5608000D238D /* UnifiedSource133.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAE61CE22D0A5607000D238D /* UnifiedSource133.cpp */; }; + FAE61CEA2D0A5608000D238D /* UnifiedSource137.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAE61CE32D0A5607000D238D /* UnifiedSource137.cpp */; }; ++ FAE61CED2D0A5608000D238D /* UnifiedSource138.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAE61CE62D0A5607000D238D /* UnifiedSource138.cpp */; }; ++ FAE61CEE2D0A5608000D238D /* UnifiedSource139.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAE61CE72D0A5607000D238D /* UnifiedSource139.cpp */; }; + FAE61CEB2D0A5608000D238D /* UnifiedSource135.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAE61CE42D0A5607000D238D /* UnifiedSource135.cpp */; }; + FAE61CEC2D0A5608000D238D /* UnifiedSource131.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAE61CE52D0A5607000D238D /* UnifiedSource131.cpp */; }; + FAF27D302D2851EB00F1F0BB /* CoreIPCPKSecureElementPass.mm in Sources */ = {isa = PBXBuildFile; fileRef = FAF27D2F2D2850D400F1F0BB /* CoreIPCPKSecureElementPass.mm */; }; +@@ -6228,6 +6248,7 @@ 5CABDC8522C40FCC001EDE8E /* WKMessageListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKMessageListener.h; sourceTree = ""; }; 5CABE07A28F60E8A00D83FD9 /* WebPushMessage.serialization.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebPushMessage.serialization.in; sourceTree = ""; }; 5CADDE0D2151AA010067D309 /* AuthenticationChallengeDisposition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AuthenticationChallengeDisposition.h; sourceTree = ""; }; @@ -20479,7 +20506,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 5CAECB5E27465AE300AB78D0 /* UnifiedSource115.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = UnifiedSource115.cpp; sourceTree = ""; }; 5CAF7AA426F93A750003F19E /* adattributiond */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = adattributiond; sourceTree = BUILT_PRODUCTS_DIR; }; 5CAF7AA526F93A950003F19E /* adattributiond.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = adattributiond.cpp; sourceTree = ""; }; -@@ -7977,6 +7996,19 @@ +@@ -7926,6 +7947,19 @@ DF0C5F24252ECB8D00D921DB /* WKDownload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDownload.h; sourceTree = ""; }; DF0C5F25252ECB8E00D921DB /* WKDownloadInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDownloadInternal.h; sourceTree = ""; }; DF0C5F26252ECB8E00D921DB /* WKDownloadDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDownloadDelegate.h; sourceTree = ""; }; @@ -20499,7 +20526,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 DF462E0E23F22F5300EFF35F /* WKHTTPCookieStorePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKHTTPCookieStorePrivate.h; sourceTree = ""; }; DF462E1123F338AD00EFF35F /* WKContentWorldPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKContentWorldPrivate.h; sourceTree = ""; }; DF58C6311371AC5800F9A37C /* NativeWebWheelEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NativeWebWheelEvent.h; sourceTree = ""; }; -@@ -8137,6 +8169,8 @@ +@@ -8091,6 +8125,8 @@ E5CBA76127A3187900DF7858 /* UnifiedSource118.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = UnifiedSource118.cpp; sourceTree = ""; }; E5CBA76227A3187900DF7858 /* UnifiedSource117.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = UnifiedSource117.cpp; sourceTree = ""; }; E5CBA76327A3187B00DF7858 /* UnifiedSource116.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = UnifiedSource116.cpp; sourceTree = ""; }; @@ -20508,7 +20535,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 E5DEFA6726F8F42600AB68DB /* PhotosUISPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PhotosUISPI.h; sourceTree = ""; }; EB0D312D275AE13300863D8F /* com.apple.webkit.webpushd.mac.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = com.apple.webkit.webpushd.mac.plist; sourceTree = ""; }; EB0D312E275AE13300863D8F /* com.apple.webkit.webpushd.ios.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = com.apple.webkit.webpushd.ios.plist; sourceTree = ""; }; -@@ -8170,6 +8204,14 @@ +@@ -8124,6 +8160,14 @@ ECA680D31E6904B500731D20 /* ExtraPrivateSymbolsForTAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExtraPrivateSymbolsForTAPI.h; sourceTree = ""; }; ECBFC1DB1E6A4D66000300C7 /* ExtraPublicSymbolsForTAPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExtraPublicSymbolsForTAPI.h; sourceTree = ""; }; F036978715F4BF0500C3A80E /* WebColorPicker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebColorPicker.cpp; sourceTree = ""; }; @@ -20523,7 +20550,16 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 F409BA171E6E64B3009DA28E /* WKDragDestinationAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDragDestinationAction.h; sourceTree = ""; }; F40C3B6F2AB40167007A3567 /* WKDatePickerPopoverController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WKDatePickerPopoverController.h; path = ios/forms/WKDatePickerPopoverController.h; sourceTree = ""; }; F40C3B702AB40167007A3567 /* WKDatePickerPopoverController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = WKDatePickerPopoverController.mm; path = ios/forms/WKDatePickerPopoverController.mm; sourceTree = ""; }; -@@ -8503,6 +8545,7 @@ +@@ -8351,6 +8395,8 @@ + FAE61CE32D0A5607000D238D /* UnifiedSource137.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UnifiedSource137.cpp; sourceTree = ""; }; + FAE61CE42D0A5607000D238D /* UnifiedSource135.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UnifiedSource135.cpp; sourceTree = ""; }; + FAE61CE52D0A5607000D238D /* UnifiedSource131.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UnifiedSource131.cpp; sourceTree = ""; }; ++ FAE61CE62D0A5607000D238D /* UnifiedSource138.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource138.cpp; sourceTree = ""; }; ++ FAE61CE72D0A5607000D238D /* UnifiedSource139.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource139.cpp; sourceTree = ""; }; + FAF27D2E2D2850D400F1F0BB /* CoreIPCPKSecureElementPass.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CoreIPCPKSecureElementPass.h; sourceTree = ""; }; + FAF27D2F2D2850D400F1F0BB /* CoreIPCPKSecureElementPass.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = CoreIPCPKSecureElementPass.mm; sourceTree = ""; }; + FED3C1DA1B447AE800E0EB7F /* APISerializedScriptValueCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = APISerializedScriptValueCocoa.mm; sourceTree = ""; }; +@@ -8467,6 +8513,7 @@ 3766F9EE189A1241003CF19B /* JavaScriptCore.framework in Frameworks */, 3766F9F1189A1254003CF19B /* libicucore.dylib in Frameworks */, 7B9FC5BB28A5233B007570E7 /* libWebKitPlatform.a in Frameworks */, @@ -20531,7 +20567,16 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 3766F9EF189A1244003CF19B /* QuartzCore.framework in Frameworks */, 37694525184FC6B600CDE21F /* Security.framework in Frameworks */, 37BEC4DD1948FC6A008B4286 /* WebCore.framework in Frameworks */, -@@ -11507,6 +11550,7 @@ +@@ -11055,6 +11102,8 @@ + FAE61CE42D0A5607000D238D /* UnifiedSource135.cpp */, + FAE61CE12D0A5606000D238D /* UnifiedSource136.cpp */, + FAE61CE32D0A5607000D238D /* UnifiedSource137.cpp */, ++ FAE61CE62D0A5607000D238D /* UnifiedSource138.cpp */, ++ FAE61CE72D0A5607000D238D /* UnifiedSource139.cpp */, + ); + path = "unified-sources"; + sourceTree = ""; +@@ -11516,6 +11565,7 @@ 99788ACA1F421DCA00C08000 /* _WKAutomationSessionConfiguration.mm */, 990D28A81C6404B000986977 /* _WKAutomationSessionDelegate.h */, 990D28AF1C65203900986977 /* _WKAutomationSessionInternal.h */, @@ -20539,7 +20584,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 5C4609E222430E4C009943C2 /* _WKContentRuleListAction.h */, 5C4609E322430E4D009943C2 /* _WKContentRuleListAction.mm */, 5C4609E422430E4D009943C2 /* _WKContentRuleListActionInternal.h */, -@@ -12853,6 +12897,7 @@ +@@ -12864,6 +12914,7 @@ E34B110C27C46BC6006D2F2E /* libWebCoreTestShim.dylib */, E34B110F27C46D09006D2F2E /* libWebCoreTestSupport.dylib */, DDE992F4278D06D900F60D26 /* libWebKitAdditions.a */, @@ -20547,7 +20592,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 57A9FF15252C6AEF006A2040 /* libWTF.a */, 5750F32A2032D4E500389347 /* LocalAuthentication.framework */, 570DAAB0230273D200E8FC04 /* NearField.framework */, -@@ -13426,6 +13471,12 @@ +@@ -13437,6 +13488,12 @@ children = ( 9197940423DBC4BB00257892 /* InspectorBrowserAgent.cpp */, 9197940323DBC4BB00257892 /* InspectorBrowserAgent.h */, @@ -20560,7 +20605,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 ); path = Agents; sourceTree = ""; -@@ -13434,6 +13485,7 @@ +@@ -13445,6 +13502,7 @@ isa = PBXGroup; children = ( A5D3504D1D78F0D2005124A9 /* RemoteWebInspectorUIProxyMac.mm */, @@ -20568,7 +20613,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 1CA8B935127C774E00576C2B /* WebInspectorUIProxyMac.mm */, 99A7ACE326012919006D57FD /* WKInspectorResourceURLSchemeHandler.h */, 99A7ACE42601291A006D57FD /* WKInspectorResourceURLSchemeHandler.mm */, -@@ -14151,6 +14203,7 @@ +@@ -14162,6 +14220,7 @@ E1513C65166EABB200149FCB /* AuxiliaryProcessProxy.h */, 46A2B6061E5675A200C3DEDA /* BackgroundProcessResponsivenessTimer.cpp */, 46A2B6071E5675A200C3DEDA /* BackgroundProcessResponsivenessTimer.h */, @@ -20576,7 +20621,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 5C6D69352AC3935D0099BDAF /* BrowsingContextGroup.cpp */, 5C6D69362AC3935D0099BDAF /* BrowsingContextGroup.h */, 5CA98549210BEB5A0057EB6B /* BrowsingWarning.h */, -@@ -14175,6 +14228,8 @@ +@@ -14186,6 +14245,8 @@ BC06F43912DBCCFB002D78DE /* GeolocationPermissionRequestProxy.cpp */, BC06F43812DBCCFB002D78DE /* GeolocationPermissionRequestProxy.h */, 2DD5A72A1EBF09A7009BA597 /* HiddenPageThrottlingAutoIncreasesCounter.h */, @@ -20585,7 +20630,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 5CEABA2B2333251400797797 /* LegacyGlobalSettings.cpp */, 5CEABA2A2333247700797797 /* LegacyGlobalSettings.h */, 31607F3819627002009B87DA /* LegacySessionStateCoding.h */, -@@ -14208,6 +14263,7 @@ +@@ -14219,6 +14280,7 @@ 1A0C227D2451130A00ED614D /* QuickLookThumbnailingSoftLink.mm */, 1AEE57232409F142002005D6 /* QuickLookThumbnailLoader.h */, 1AEE57242409F142002005D6 /* QuickLookThumbnailLoader.mm */, @@ -20593,7 +20638,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 5CCB54DC2A4FEA6A0005FAA8 /* RemotePageDrawingAreaProxy.cpp */, 5CCB54DB2A4FEA6A0005FAA8 /* RemotePageDrawingAreaProxy.h */, 5C907E9A294D507100B3402D /* RemotePageProxy.cpp */, -@@ -14308,6 +14364,8 @@ +@@ -14319,6 +14381,8 @@ BC7B6204129A0A6700D174A4 /* WebPageGroup.h */, 2D9EA3101A96D9EB002D2807 /* WebPageInjectedBundleClient.cpp */, 2D9EA30E1A96CBFF002D2807 /* WebPageInjectedBundleClient.h */, @@ -20602,7 +20647,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 9B7F8A502C785725000057F3 /* WebPageLoadTiming.h */, BC111B0B112F5E4F00337BAB /* WebPageProxy.cpp */, BC032DCB10F4389F0058C15A /* WebPageProxy.h */, -@@ -14486,6 +14544,7 @@ +@@ -14497,6 +14561,7 @@ BC646C1911DD399F006455B0 /* WKBackForwardListItemRef.h */, BC646C1611DD399F006455B0 /* WKBackForwardListRef.cpp */, BC646C1711DD399F006455B0 /* WKBackForwardListRef.h */, @@ -20610,7 +20655,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 BCB9E24A1120E15C00A137E0 /* WKContext.cpp */, BCB9E2491120E15C00A137E0 /* WKContext.h */, 1AE52F9319201F6B00A1FA37 /* WKContextConfigurationRef.cpp */, -@@ -15060,6 +15119,9 @@ +@@ -15074,6 +15139,9 @@ 07EF07592745A8160066EA04 /* DisplayCaptureSessionManager.h */, 07EF07582745A8160066EA04 /* DisplayCaptureSessionManager.mm */, 7AFA6F682A9F57C50055322A /* DisplayLinkMac.cpp */, @@ -20620,7 +20665,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 1AFDE65B1954E8D500C48FFA /* LegacySessionStateCoding.cpp */, 0FCB4E5818BBE3D9000FCFC9 /* PageClientImplMac.h */, 0FCB4E5918BBE3D9000FCFC9 /* PageClientImplMac.mm */, -@@ -15083,6 +15145,8 @@ +@@ -15097,6 +15165,8 @@ E568B92120A3AC6A00E3C856 /* WebDataListSuggestionsDropdownMac.mm */, E55CD20124D09F1F0042DB9C /* WebDateTimePickerMac.h */, E55CD20224D09F1F0042DB9C /* WebDateTimePickerMac.mm */, @@ -20629,7 +20674,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 BC857E8512B71EBB00EDEB2E /* WebPageProxyMac.mm */, BC5750951268F3C6006F0F12 /* WebPopupMenuProxyMac.h */, BC5750961268F3C6006F0F12 /* WebPopupMenuProxyMac.mm */, -@@ -16142,6 +16206,7 @@ +@@ -16161,6 +16231,7 @@ 99788ACB1F421DDA00C08000 /* _WKAutomationSessionConfiguration.h in Headers */, 990D28AC1C6420CF00986977 /* _WKAutomationSessionDelegate.h in Headers */, 990D28B11C65208D00986977 /* _WKAutomationSessionInternal.h in Headers */, @@ -20637,7 +20682,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 5C4609E7224317B4009943C2 /* _WKContentRuleListAction.h in Headers */, 5C4609E8224317BB009943C2 /* _WKContentRuleListActionInternal.h in Headers */, 9B4CE9512CD99B7C00351173 /* _WKContentWorldConfiguration.h in Headers */, -@@ -16451,6 +16516,7 @@ +@@ -16470,6 +16541,7 @@ E170876C16D6CA6900F99226 /* BlobRegistryProxy.h in Headers */, 4F601432155C5AA2001FBDE0 /* BlockingResponseMap.h in Headers */, 1A5705111BE410E600874AF1 /* BlockSPI.h in Headers */, @@ -20645,7 +20690,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 5CA9854A210BEB640057EB6B /* BrowsingWarning.h in Headers */, A7E69BCC2B2117A100D43D3F /* BufferAndBackendInfo.h in Headers */, BC3065FA1259344E00E71278 /* CacheModel.h in Headers */, -@@ -16634,7 +16700,11 @@ +@@ -16654,7 +16726,11 @@ BC14DF77120B5B7900826C0C /* InjectedBundleScriptWorld.h in Headers */, CE550E152283752200D28791 /* InsertTextOptions.h in Headers */, 9197940523DBC4BB00257892 /* InspectorBrowserAgent.h in Headers */, @@ -20657,7 +20702,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 A5E391FD2183C1F800C8FB31 /* InspectorTargetProxy.h in Headers */, C5BCE5DF1C50766A00CDE3FA /* InteractionInformationAtPosition.h in Headers */, 2D4D2C811DF60BF3002EB10C /* InteractionInformationRequest.h in Headers */, -@@ -16894,6 +16964,7 @@ +@@ -16915,6 +16991,7 @@ 0F6E7C532C4C386800F1DB85 /* RemoteDisplayListRecorderMessages.h in Headers */, F451C0FE2703B263002BA03B /* RemoteDisplayListRecorderProxy.h in Headers */, A78A5FE42B0EB39E005036D3 /* RemoteImageBufferSetIdentifier.h in Headers */, @@ -20665,7 +20710,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 2D47B56D1810714E003A3AEE /* RemoteLayerBackingStore.h in Headers */, 2DDF731518E95060004F5A66 /* RemoteLayerBackingStoreCollection.h in Headers */, 1AB16AEA164B3A8800290D62 /* RemoteLayerTreeContext.h in Headers */, -@@ -16947,6 +17018,7 @@ +@@ -16970,6 +17047,7 @@ E1E552C516AE065F004ED653 /* SandboxInitializationParameters.h in Headers */, E36FF00327F36FBD004BE21A /* SandboxStateVariables.h in Headers */, 7BAB111025DD02B3008FC479 /* ScopedActiveMessageReceiveQueue.h in Headers */, @@ -20673,7 +20718,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 463BB93A2B9D08D80098C5C3 /* ScriptMessageHandlerIdentifier.h in Headers */, F4E28A362C923814008120DD /* ScriptTelemetry.h in Headers */, E4D54D0421F1D72D007E3C36 /* ScrollingTreeFrameScrollingNodeRemoteIOS.h in Headers */, -@@ -17299,6 +17371,8 @@ +@@ -17323,6 +17401,8 @@ 939EF87029D112EE00F23AEE /* WebPageInlines.h in Headers */, 9197940823DBC4CB00257892 /* WebPageInspectorAgentBase.h in Headers */, A513F5402154A5D700662841 /* WebPageInspectorController.h in Headers */, @@ -20682,7 +20727,7 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 A543E30C215C8A8D00279CD9 /* WebPageInspectorTarget.h in Headers */, A543E30D215C8A9000279CD9 /* WebPageInspectorTargetController.h in Headers */, A543E307215AD13700279CD9 /* WebPageInspectorTargetFrontendChannel.h in Headers */, -@@ -19739,7 +19813,43 @@ +@@ -19761,7 +19841,43 @@ 522F792928D50EBB0069B45B /* HidService.mm in Sources */, 2749F6442146561B008380BF /* InjectedBundleNodeHandle.cpp in Sources */, 2749F6452146561E008380BF /* InjectedBundleRangeHandle.cpp in Sources */, @@ -20726,20 +20771,29 @@ index cf7270a1be953c9ceea9b62e3c0c1d4b60e3ad42..2500ac12bcfb21dd8f2a4371fd5e9ae7 1C5DC45F2909B05A0061EC62 /* JSWebExtensionWrapperCocoa.mm in Sources */, C14D37FE24ACE086007FF014 /* LaunchServicesDatabaseManager.mm in Sources */, C1710CF724AA643200D7C112 /* LaunchServicesDatabaseObserver.mm in Sources */, -@@ -20162,6 +20272,8 @@ - 074E87E12CF8EA3D0059E469 /* WebPage+NavigationDeciding.swift in Sources */, +@@ -20010,6 +20126,8 @@ + FAE61CEB2D0A5608000D238D /* UnifiedSource135.cpp in Sources */, + FAE61CE82D0A5608000D238D /* UnifiedSource136.cpp in Sources */, + FAE61CEA2D0A5608000D238D /* UnifiedSource137.cpp in Sources */, ++ FAE61CED2D0A5608000D238D /* UnifiedSource138.cpp in Sources */, ++ FAE61CEE2D0A5608000D238D /* UnifiedSource139.cpp in Sources */, + 078B04442CF1149200B453A6 /* URLSchemeHandler.swift in Sources */, + 078B04B62CF2B4D300B453A6 /* View+WebViewModifiers.swift in Sources */, + 52CDC5C62731DA0D00A3E3EB /* VirtualAuthenticatorManager.cpp in Sources */, +@@ -20117,6 +20235,8 @@ 078B04A02CF18EAB00B453A6 /* WebPage+NavigationPreferences.swift in Sources */, + 07A58C882D068CAE00CAB4ED /* WebPage+SwiftUI.swift in Sources */, 07CB79962CE9435700199C49 /* WebPage.swift in Sources */, + D79902B1236E9404005D6F7E /* WebPageInspectorEmulationAgentMac.mm in Sources */, + D79902B3236E9404005D6F7E /* WebPageInspectorInputAgentMac.mm in Sources */, - C0CE72A01247E71D00BC0EC4 /* WebPageMessageReceiver.cpp in Sources */, - BCBD3914125BB1A800D2C29F /* WebPageProxyMessageReceiver.cpp in Sources */, - C0CE72A01B47E71D00BC0EC4 /* WebPageTestingMessageReceiver.cpp in Sources */, + 7CE9CE101FA0767A000177DE /* WebPageUpdatePreferences.cpp in Sources */, + 7CEB00DD1FA69ABE0065473B /* WebPreferencesFeatures.cpp in Sources */, + 7CF1907125338F3800ABE183 /* WebPreferencesGetterSetters.cpp in Sources */, diff --git a/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp b/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp -index cd28fa2f67ccd957ae04d59a86506f1c83659112..e66d60a8bf55b96c16a5582cd19939f3baa80a97 100644 +index 0037482f26f39ef4404dd660091b9be1c92c7b91..ae3523342a8cc44d9add5358171141b2d994a878 100644 --- a/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp +++ b/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp -@@ -245,6 +245,11 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou +@@ -248,6 +248,11 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou } #endif @@ -20751,7 +20805,7 @@ index cd28fa2f67ccd957ae04d59a86506f1c83659112..e66d60a8bf55b96c16a5582cd19939f3 #if ENABLE(PDFJS) if (tryLoadingUsingPDFJSHandler(resourceLoader, trackingParameters)) return; -@@ -254,12 +259,16 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou +@@ -257,12 +262,16 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou return; if (InspectorInstrumentationWebKit::shouldInterceptRequest(resourceLoader)) { @@ -20773,8 +20827,8 @@ index cd28fa2f67ccd957ae04d59a86506f1c83659112..e66d60a8bf55b96c16a5582cd19939f3 + } } - WEBLOADERSTRATEGY_RELEASE_LOG("scheduleLoad: URL will be scheduled with the NetworkProcess"); -@@ -379,7 +388,8 @@ static void addParametersShared(const LocalFrame* frame, NetworkResourceLoadPara + WEBLOADERSTRATEGY_RELEASE_LOG_FORWARDABLE(WEBLOADERSTRATEGY_SCHEDULELOAD); +@@ -382,7 +391,8 @@ static void addParametersShared(const LocalFrame* frame, NetworkResourceLoadPara parameters.linkPreconnectEarlyHintsEnabled = mainFrame->settings().linkPreconnectEarlyHintsEnabled(); } @@ -20784,7 +20838,7 @@ index cd28fa2f67ccd957ae04d59a86506f1c83659112..e66d60a8bf55b96c16a5582cd19939f3 { auto identifier = *resourceLoader.identifier(); -@@ -394,7 +404,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -397,7 +407,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL RunLoop::main().dispatch([resourceLoader = Ref { resourceLoader }, error = blockedError(request)] { resourceLoader->didFail(error); }); @@ -20793,7 +20847,7 @@ index cd28fa2f67ccd957ae04d59a86506f1c83659112..e66d60a8bf55b96c16a5582cd19939f3 } } -@@ -404,7 +414,6 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -407,7 +417,6 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be scheduled with the NetworkProcess with priority %d, storedCredentialsPolicy %i", resourceLoader.url().string().latin1().data(), static_cast(resourceLoader.request().priority()), (int)storedCredentialsPolicy); @@ -20801,7 +20855,7 @@ index cd28fa2f67ccd957ae04d59a86506f1c83659112..e66d60a8bf55b96c16a5582cd19939f3 loadParameters.identifier = identifier; loadParameters.webPageProxyID = trackingParameters.webPageProxyID; loadParameters.webPageID = trackingParameters.pageID; -@@ -494,14 +503,11 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -497,14 +506,11 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL if (loadParameters.options.mode != FetchOptions::Mode::Navigate) { ASSERT(loadParameters.sourceOrigin); @@ -20819,7 +20873,7 @@ index cd28fa2f67ccd957ae04d59a86506f1c83659112..e66d60a8bf55b96c16a5582cd19939f3 loadParameters.isMainFrameNavigation = isMainFrameNavigation; if (loadParameters.isMainFrameNavigation && document) -@@ -542,6 +548,17 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -545,6 +551,17 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL } ASSERT((loadParameters.webPageID && loadParameters.webFrameID) || loadParameters.clientCredentialPolicy == ClientCredentialPolicy::CannotAskClientForCredentials); @@ -20837,7 +20891,7 @@ index cd28fa2f67ccd957ae04d59a86506f1c83659112..e66d60a8bf55b96c16a5582cd19939f3 std::optional existingNetworkResourceLoadIdentifierToResume; if (loadParameters.isMainFrameNavigation) -@@ -557,7 +574,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -560,7 +577,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL } auto loader = WebResourceLoader::create(resourceLoader, trackingParameters); @@ -20846,7 +20900,7 @@ index cd28fa2f67ccd957ae04d59a86506f1c83659112..e66d60a8bf55b96c16a5582cd19939f3 } void WebLoaderStrategy::scheduleInternallyFailedLoad(WebCore::ResourceLoader& resourceLoader) -@@ -967,7 +984,7 @@ void WebLoaderStrategy::didFinishPreconnection(WebCore::ResourceLoaderIdentifier +@@ -970,7 +987,7 @@ void WebLoaderStrategy::didFinishPreconnection(WebCore::ResourceLoaderIdentifier bool WebLoaderStrategy::isOnLine() const { @@ -20855,7 +20909,7 @@ index cd28fa2f67ccd957ae04d59a86506f1c83659112..e66d60a8bf55b96c16a5582cd19939f3 } void WebLoaderStrategy::addOnlineStateChangeListener(Function&& listener) -@@ -994,6 +1011,11 @@ void WebLoaderStrategy::isResourceLoadFinished(CachedResource& resource, Complet +@@ -997,6 +1014,11 @@ void WebLoaderStrategy::isResourceLoadFinished(CachedResource& resource, Complet void WebLoaderStrategy::setOnLineState(bool isOnLine) { @@ -20867,7 +20921,7 @@ index cd28fa2f67ccd957ae04d59a86506f1c83659112..e66d60a8bf55b96c16a5582cd19939f3 if (m_isOnLine == isOnLine) return; -@@ -1002,6 +1024,12 @@ void WebLoaderStrategy::setOnLineState(bool isOnLine) +@@ -1005,6 +1027,12 @@ void WebLoaderStrategy::setOnLineState(bool isOnLine) listener(isOnLine); } @@ -20911,7 +20965,7 @@ index a835521fae8043c1c3d6202288b0c3a9f92aa81b..0c8bee6c0a02e6adb1b9e56d77613253 } // namespace WebKit diff --git a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp -index 752ac70125786e40d4976059f2f9c55982e746d7..adcbfb36714703e202f7e11a9113a2df03e399dc 100644 +index 069e870734e40672966b7ee5853a5469de826c40..ddeca40ad670d397f07d9064cfe90caefcdaaa5a 100644 --- a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp +++ b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp @@ -188,9 +188,6 @@ void WebResourceLoader::didReceiveResponse(ResourceResponse&& response, PrivateR @@ -20934,7 +20988,7 @@ index 752ac70125786e40d4976059f2f9c55982e746d7..adcbfb36714703e202f7e11a9113a2df } diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp -index b2f4f1e2978f3bcd72a2c7af6705028af47e9300..f334bfa826c49ee7bc09a9042329dbe27479b27c 100644 +index 5806d017fb7aedd8c6540c7868440f18994e6239..779ab16cd8004f47348c7e5acf6b18eeeefd7141 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp +++ b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp @@ -481,6 +481,8 @@ void WebChromeClient::addMessageToConsole(MessageSource source, MessageLevel lev @@ -21100,7 +21154,7 @@ index 0000000000000000000000000000000000000000..226b3bf6bd83d2606a0aeb627ae9302f + +#endif // ENABLE(DRAG_SUPPORT) diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp -index ac4b96234c1c2a32dbeae20431c83152dcede91c..6a3c70a9fd2d2f4f413f0e3e925280fb261c4d2c 100644 +index 85e70183ddc4805c835b4ffc5daf40ca930536de..2483f638a31d96345993f824a3b5967379bab103 100644 --- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp +++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp @@ -39,6 +39,7 @@ @@ -21111,7 +21165,7 @@ index ac4b96234c1c2a32dbeae20431c83152dcede91c..6a3c70a9fd2d2f4f413f0e3e925280fb #include #include #include -@@ -557,6 +558,11 @@ void DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode(GraphicsLay +@@ -565,6 +566,11 @@ void DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode(GraphicsLay m_scrollOffset = IntSize(); m_displayTimer.stop(); m_isWaitingForDidUpdate = false; @@ -21123,7 +21177,7 @@ index ac4b96234c1c2a32dbeae20431c83152dcede91c..6a3c70a9fd2d2f4f413f0e3e925280fb } void DrawingAreaCoordinatedGraphics::sendEnterAcceleratedCompositingModeIfNeeded() -@@ -614,6 +620,11 @@ void DrawingAreaCoordinatedGraphics::exitAcceleratedCompositingMode() +@@ -622,6 +628,11 @@ void DrawingAreaCoordinatedGraphics::exitAcceleratedCompositingMode() // UI process, we still need to let it know about the new contents, so send an Update message. send(Messages::DrawingAreaProxy::Update(0, WTFMove(updateInfo))); } @@ -21136,17 +21190,35 @@ index ac4b96234c1c2a32dbeae20431c83152dcede91c..6a3c70a9fd2d2f4f413f0e3e925280fb void DrawingAreaCoordinatedGraphics::scheduleDisplay() diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h -index 1d62e85762b73fa351384ba79ae5f48df02193b3..e8f8c2186a2dd87d01dcff19ebbb0fd74f500fb4 100644 +index 815e10e285c0f88d7bc3a70fe71f07106873cb30..75cd3642c43c506afd814014f5d31dff8c260578 100644 --- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h +++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h -@@ -138,6 +138,7 @@ public: +@@ -135,6 +135,7 @@ public: #if PLATFORM(WPE) && USE(GBM) && ENABLE(WPE_PLATFORM) void preferredBufferFormatsDidChange(); #endif + private: - void layerFlushTimerFired(); - void flushLayers(); + void updateRootLayer(); + WebCore::FloatRect visibleContentsRect() const; +diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.cpp +index 99cecc2252ea05a81acf42281225c7000cda0509..91c967238b6b359e1c96663d95550c5ba7728386 100644 +--- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.cpp ++++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.cpp +@@ -296,7 +296,13 @@ void ThreadedCompositor::renderLayerTree() + // and similarly all GL operations are done inside that specific scope. + + if (needsResize) ++#if PLATFORM(WPE) ++ RunLoop::main().dispatch([this, protectedThis = Ref { *this }, viewportSize] { ++ m_surface->clientResize(viewportSize); ++ }); ++#else + m_surface->clientResize(viewportSize); ++#endif + + m_surface->willRenderFrame(); + RunLoop::main().dispatch([this, protectedThis = Ref { *this }] { diff --git a/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp b/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp index 428e10e8311dfb3201439688f5ad35a4d609b95c..b03ccee5c7057875092607d01b72265d63a2cfd9 100644 --- a/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp @@ -21174,7 +21246,7 @@ index 428e10e8311dfb3201439688f5ad35a4d609b95c..b03ccee5c7057875092607d01b72265d { if (m_hasRemovedMessageReceiver) diff --git a/Source/WebKit/WebProcess/WebPage/DrawingArea.h b/Source/WebKit/WebProcess/WebPage/DrawingArea.h -index c641cf97ccc4b954ac699c0b1bdda10444abbe5c..a4f9198d9dd588cc872473b5502405d131bfe6be 100644 +index a124c32b48b43f4f6b3d4e95f4a7ca6906412026..5583b767ff16f3af735ee0e657a816c0ccb2e298 100644 --- a/Source/WebKit/WebProcess/WebPage/DrawingArea.h +++ b/Source/WebKit/WebProcess/WebPage/DrawingArea.h @@ -166,6 +166,9 @@ public: @@ -21188,7 +21260,7 @@ index c641cf97ccc4b954ac699c0b1bdda10444abbe5c..a4f9198d9dd588cc872473b5502405d1 #if PLATFORM(WPE) && USE(GBM) && ENABLE(WPE_PLATFORM) virtual void preferredBufferFormatsDidChange() { } diff --git a/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp b/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp -index a31872554bb37f3335ea48866461107b32556ba3..d7bbe179a3b16db259062eac7cb65de2aac8afa9 100644 +index 0fec14223997c3f22758e78bda6640dfa1865c65..31161fdf651dbacd18e9789218d797e0140ca781 100644 --- a/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp @@ -44,6 +44,7 @@ @@ -21213,10 +21285,10 @@ index a31872554bb37f3335ea48866461107b32556ba3..d7bbe179a3b16db259062eac7cb65de2 String WebCookieJar::cookiesInPartitionedCookieStorage(const WebCore::Document&, const URL&, const WebCore::SameSiteInfo&) const diff --git a/Source/WebKit/WebProcess/WebPage/WebCookieJar.h b/Source/WebKit/WebProcess/WebPage/WebCookieJar.h -index c25dbee9c0202246efaaedd9f3206d246cfc734c..94da3d92a2b6b1ec468c7db3bb19cae79ec29bd6 100644 +index 001207c6c6a651707aa91899536b5cf715047e3f..afe3874d9c6b41f19af4144597557e2abd309f71 100644 --- a/Source/WebKit/WebProcess/WebPage/WebCookieJar.h +++ b/Source/WebKit/WebProcess/WebPage/WebCookieJar.h -@@ -75,6 +75,8 @@ public: +@@ -76,6 +76,8 @@ public: void clearCache() final; @@ -21226,10 +21298,10 @@ index c25dbee9c0202246efaaedd9f3206d246cfc734c..94da3d92a2b6b1ec468c7db3bb19cae7 WebCookieJar(); diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -index a3cef9a9f48791fdd86c039ef76b0a23e1301d8a..9a79ae8681499c0ff76b856add6d5efd084f3b62 100644 +index ad8d14f45c5b0719836f8d7faae07bfcac3823b8..50c20d09b7465b218ee3154377a0306c1cb279fe 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -@@ -237,6 +237,7 @@ +@@ -239,6 +239,7 @@ #include #include #include @@ -21237,7 +21309,7 @@ index a3cef9a9f48791fdd86c039ef76b0a23e1301d8a..9a79ae8681499c0ff76b856add6d5efd #include #include #include -@@ -1117,6 +1118,12 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) +@@ -1137,6 +1138,12 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) setLinkDecorationFilteringData(WTFMove(parameters.linkDecorationFilteringData)); setAllowedQueryParametersForAdvancedPrivacyProtections(WTFMove(parameters.allowedQueryParametersForAdvancedPrivacyProtections)); #endif @@ -21250,7 +21322,7 @@ index a3cef9a9f48791fdd86c039ef76b0a23e1301d8a..9a79ae8681499c0ff76b856add6d5efd if (parameters.windowFeatures) { m_page->applyWindowFeatures(*parameters.windowFeatures); m_page->chrome().show(); -@@ -2074,6 +2081,22 @@ void WebPage::loadDidCommitInAnotherProcess(WebCore::FrameIdentifier frameID, st +@@ -2098,6 +2105,22 @@ void WebPage::loadDidCommitInAnotherProcess(WebCore::FrameIdentifier frameID, st frame->loadDidCommitInAnotherProcess(layerHostingContextIdentifier); } @@ -21273,7 +21345,7 @@ index a3cef9a9f48791fdd86c039ef76b0a23e1301d8a..9a79ae8681499c0ff76b856add6d5efd void WebPage::loadRequest(LoadParameters&& loadParameters) { WEBPAGE_RELEASE_LOG(Loading, "loadRequest: navigationID=%" PRIu64 ", shouldTreatAsContinuingLoad=%u, lastNavigationWasAppInitiated=%d, existingNetworkResourceLoadIdentifierToResume=%" PRIu64, loadParameters.navigationID ? loadParameters.navigationID->toUInt64() : 0, static_cast(loadParameters.shouldTreatAsContinuingLoad), loadParameters.request.isAppInitiated(), loadParameters.existingNetworkResourceLoadIdentifierToResume ? loadParameters.existingNetworkResourceLoadIdentifierToResume->toUInt64() : 0); -@@ -2269,7 +2292,9 @@ void WebPage::stopLoading() +@@ -2293,7 +2316,9 @@ void WebPage::stopLoading() void WebPage::stopLoadingDueToProcessSwap() { SetForScope isStoppingLoadingDueToProcessSwap(m_isStoppingLoadingDueToProcessSwap, true); @@ -21283,30 +21355,16 @@ index a3cef9a9f48791fdd86c039ef76b0a23e1301d8a..9a79ae8681499c0ff76b856add6d5efd } bool WebPage::defersLoading() const -@@ -2860,6 +2885,22 @@ void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArgum - #else - UNUSED_PARAM(viewportArguments); - #endif -+ -+ // Playwright begin -+ RefPtr localMainFrame = dynamicDowncast(m_page->mainFrame()); -+ RefPtr view = localMainFrame ? localMainFrame->view() : nullptr; -+ if (view && view->useFixedLayout()) { -+ if (m_viewSize.isEmpty()) -+ return; -+ Settings& settings = m_page->settings(); -+ int deviceWidth = (settings.deviceWidth() > 0) ? settings.deviceWidth() : m_viewSize.width(); -+ int deviceHeight = (settings.deviceHeight() > 0) ? settings.deviceHeight() : m_viewSize.height(); -+ int minimumLayoutFallbackWidth = std::max(settings.layoutFallbackWidth(), m_viewSize.width()); -+ ViewportAttributes attr = computeViewportAttributes(viewportArguments, minimumLayoutFallbackWidth, deviceWidth, deviceHeight, 1, m_viewSize); -+ setFixedLayoutSize(roundedIntSize(attr.layoutSize)); -+ scaleView(deviceWidth / attr.layoutSize.width()); -+ } -+ // Playwright end - } - - #if !PLATFORM(IOS_FAMILY) -@@ -3617,6 +3658,13 @@ void WebPage::flushDeferredScrollEvents() +@@ -2879,7 +2904,7 @@ void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArgum + #if PLATFORM(IOS_FAMILY) + if (m_viewportConfiguration.setViewportArguments(viewportArguments)) + viewportConfigurationChanged(); +-#elif PLATFORM(GTK) || PLATFORM(WPE) ++#elif PLATFORM(GTK) || PLATFORM(WPE) || PLATFORM(WIN) || PLATFORM(MAC) + // Adjust view dimensions when using fixed layout. + RefPtr localMainFrame = this->localMainFrame(); + RefPtr view = localMainFrame ? localMainFrame->view() : nullptr; +@@ -3657,6 +3682,13 @@ void WebPage::flushDeferredScrollEvents() corePage()->flushDeferredScrollEvents(); } @@ -21320,7 +21378,7 @@ index a3cef9a9f48791fdd86c039ef76b0a23e1301d8a..9a79ae8681499c0ff76b856add6d5efd void WebPage::flushDeferredDidReceiveMouseEvent() { if (auto info = std::exchange(m_deferredDidReceiveMouseEvent, std::nullopt)) -@@ -3876,6 +3924,97 @@ void WebPage::touchEvent(const WebTouchEvent& touchEvent, CompletionHandlersendMessageToTargetBackend(targetId, message); } @@ -21435,7 +21493,7 @@ index a3cef9a9f48791fdd86c039ef76b0a23e1301d8a..9a79ae8681499c0ff76b856add6d5efd void WebPage::insertNewlineInQuotedContent() { RefPtr frame = m_page->checkedFocusController()->focusedOrMainFrame(); -@@ -4205,6 +4354,7 @@ void WebPage::didCompletePageTransition() +@@ -4247,6 +4380,7 @@ void WebPage::didCompletePageTransition() void WebPage::show() { send(Messages::WebPageProxy::ShowPage()); @@ -21443,7 +21501,7 @@ index a3cef9a9f48791fdd86c039ef76b0a23e1301d8a..9a79ae8681499c0ff76b856add6d5efd } void WebPage::setIsTakingSnapshotsForApplicationSuspension(bool isTakingSnapshotsForApplicationSuspension) -@@ -5365,7 +5515,7 @@ NotificationPermissionRequestManager* WebPage::notificationPermissionRequestMana +@@ -5417,7 +5551,7 @@ NotificationPermissionRequestManager* WebPage::notificationPermissionRequestMana #if ENABLE(DRAG_SUPPORT) @@ -21452,7 +21510,7 @@ index a3cef9a9f48791fdd86c039ef76b0a23e1301d8a..9a79ae8681499c0ff76b856add6d5efd void WebPage::performDragControllerAction(DragControllerAction action, const IntPoint& clientPosition, const IntPoint& globalPosition, OptionSet draggingSourceOperationMask, SelectionData&& selectionData, OptionSet flags, CompletionHandler, DragHandlingMethod, bool, unsigned, IntRect, IntRect, std::optional)>&& completionHandler) { if (!m_page) -@@ -7788,6 +7938,10 @@ void WebPage::didCommitLoad(WebFrame* frame) +@@ -7879,6 +8013,10 @@ void WebPage::didCommitLoad(WebFrame* frame) #endif flushDeferredDidReceiveMouseEvent(); @@ -21463,9 +21521,9 @@ index a3cef9a9f48791fdd86c039ef76b0a23e1301d8a..9a79ae8681499c0ff76b856add6d5efd } void WebPage::didFinishDocumentLoad(WebFrame& frame) -@@ -8090,6 +8244,9 @@ Ref WebPage::createDocumentLoader(LocalFrame& frame, const Resou - WebsitePoliciesData::applyToDocumentLoader(WTFMove(*m_pendingWebsitePolicies), documentLoader); - m_pendingWebsitePolicies = std::nullopt; +@@ -8186,6 +8324,9 @@ Ref WebPage::createDocumentLoader(LocalFrame& frame, const Resou + WebsitePoliciesData::applyToDocumentLoader(WTFMove(*m_internals->pendingWebsitePolicies), documentLoader); + m_internals->pendingWebsitePolicies = std::nullopt; } + } else if (m_pendingFrameNavigationID) { + documentLoader->setNavigationID(*m_pendingFrameNavigationID); @@ -21474,10 +21532,10 @@ index a3cef9a9f48791fdd86c039ef76b0a23e1301d8a..9a79ae8681499c0ff76b856add6d5efd return documentLoader; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.h b/Source/WebKit/WebProcess/WebPage/WebPage.h -index 06525fa5fec204ac72bb3c2f4b7f37d83ab17105..ef1ed29cb9d74b7f4293ed3f498d13a8a343ffd6 100644 +index 931473cc7600a2600b0c002f8bd8ae823399691c..3955fa4feb65a8f622b4ebecb0edd56489a1a465 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.h +++ b/Source/WebKit/WebProcess/WebPage/WebPage.h -@@ -65,6 +65,7 @@ +@@ -42,6 +42,7 @@ #include #include #include @@ -21485,7 +21543,7 @@ index 06525fa5fec204ac72bb3c2f4b7f37d83ab17105..ef1ed29cb9d74b7f4293ed3f498d13a8 #include #include #include -@@ -1234,11 +1235,11 @@ public: +@@ -1265,11 +1266,11 @@ public: void clearSelection(); void restoreSelectionInFocusedEditableElement(); @@ -21499,7 +21557,7 @@ index 06525fa5fec204ac72bb3c2f4b7f37d83ab17105..ef1ed29cb9d74b7f4293ed3f498d13a8 void performDragControllerAction(std::optional, DragControllerAction, WebCore::DragData&&, CompletionHandler, WebCore::DragHandlingMethod, bool, unsigned, WebCore::IntRect, WebCore::IntRect, std::optional)>&&); void performDragOperation(WebCore::DragData&&, SandboxExtensionHandle&&, Vector&&, CompletionHandler&&); #endif -@@ -1253,6 +1254,9 @@ public: +@@ -1284,6 +1285,9 @@ public: void didStartDrag(); void dragCancelled(); OptionSet allowedDragSourceActions() const { return m_allowedDragSourceActions; } @@ -21509,7 +21567,7 @@ index 06525fa5fec204ac72bb3c2f4b7f37d83ab17105..ef1ed29cb9d74b7f4293ed3f498d13a8 #endif void beginPrinting(WebCore::FrameIdentifier, const PrintInfo&); -@@ -1328,8 +1332,11 @@ public: +@@ -1359,8 +1363,11 @@ public: void gestureEvent(WebCore::FrameIdentifier, const WebGestureEvent&); #endif @@ -21522,7 +21580,7 @@ index 06525fa5fec204ac72bb3c2f4b7f37d83ab17105..ef1ed29cb9d74b7f4293ed3f498d13a8 void dynamicViewportSizeUpdate(const DynamicViewportSizeUpdate&); bool scaleWasSetByUIProcess() const { return m_scaleWasSetByUIProcess; } void willStartUserTriggeredZooming(); -@@ -1479,6 +1486,8 @@ public: +@@ -1510,6 +1517,8 @@ public: void connectInspector(const String& targetId, Inspector::FrontendChannel::ConnectionType); void disconnectInspector(const String& targetId); void sendMessageToTargetBackend(const String& targetId, const String& message); @@ -21531,7 +21589,7 @@ index 06525fa5fec204ac72bb3c2f4b7f37d83ab17105..ef1ed29cb9d74b7f4293ed3f498d13a8 void insertNewlineInQuotedContent(); -@@ -1889,6 +1898,7 @@ public: +@@ -1920,6 +1929,7 @@ public: void showContextMenuFromFrame(const WebCore::FrameIdentifier&, const ContextMenuContextData&, const UserData&); #endif void loadRequest(LoadParameters&&); @@ -21539,7 +21597,7 @@ index 06525fa5fec204ac72bb3c2f4b7f37d83ab17105..ef1ed29cb9d74b7f4293ed3f498d13a8 void setTopContentInset(float); -@@ -2065,6 +2075,7 @@ private: +@@ -2105,6 +2115,7 @@ private: void updatePotentialTapSecurityOrigin(const WebTouchEvent&, bool wasHandled); #elif ENABLE(TOUCH_EVENTS) void touchEvent(const WebTouchEvent&, CompletionHandler, bool)>&&); @@ -21547,19 +21605,19 @@ index 06525fa5fec204ac72bb3c2f4b7f37d83ab17105..ef1ed29cb9d74b7f4293ed3f498d13a8 #endif void cancelPointer(WebCore::PointerID, const WebCore::IntPoint&); -@@ -2829,6 +2840,7 @@ private: +@@ -2863,6 +2874,7 @@ private: UserActivity m_userActivity; Markable m_pendingNavigationID; + Markable m_pendingFrameNavigationID; - std::optional m_pendingWebsitePolicies; bool m_mainFrameProgressCompleted { false }; + bool m_shouldDispatchFakeMouseMoveEvents { true }; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.messages.in b/Source/WebKit/WebProcess/WebPage/WebPage.messages.in -index 5840247c1e8c94462c5106d385a7674ff023dbf3..02147c2cf05c35fdef280b08bceee1bd35cda79d 100644 +index 46c172ccd69d88d6dbc5d9cd946cd0e2045c69dd..26b47e43a543100a5d952120091726aae3661357 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.messages.in +++ b/Source/WebKit/WebProcess/WebPage/WebPage.messages.in -@@ -53,10 +53,13 @@ messages -> WebPage WantsAsyncDispatchMessage { +@@ -57,10 +57,13 @@ messages -> WebPage WantsAsyncDispatchMessage { MouseEvent(WebCore::FrameIdentifier frameID, WebKit::WebMouseEvent event, std::optional> sandboxExtensions) SetLastKnownMousePosition(WebCore::FrameIdentifier frameID, WebCore::IntPoint eventPoint, WebCore::IntPoint globalPoint); @@ -21574,7 +21632,7 @@ index 5840247c1e8c94462c5106d385a7674ff023dbf3..02147c2cf05c35fdef280b08bceee1bd SetOverrideViewportArguments(std::optional arguments) DynamicViewportSizeUpdate(struct WebKit::DynamicViewportSizeUpdate target) -@@ -147,6 +150,7 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -152,6 +155,7 @@ messages -> WebPage WantsAsyncDispatchMessage { ConnectInspector(String targetId, Inspector::FrontendChannel::ConnectionType connectionType) DisconnectInspector(String targetId) SendMessageToTargetBackend(String targetId, String message) @@ -21582,7 +21640,7 @@ index 5840247c1e8c94462c5106d385a7674ff023dbf3..02147c2cf05c35fdef280b08bceee1bd #if ENABLE(REMOTE_INSPECTOR) SetIndicating(bool indicating); -@@ -157,6 +161,7 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -162,6 +166,7 @@ messages -> WebPage WantsAsyncDispatchMessage { #endif #if !ENABLE(IOS_TOUCH_EVENTS) && ENABLE(TOUCH_EVENTS) TouchEvent(WebKit::WebTouchEvent event) -> (std::optional eventType, bool handled) @@ -21590,7 +21648,7 @@ index 5840247c1e8c94462c5106d385a7674ff023dbf3..02147c2cf05c35fdef280b08bceee1bd #endif CancelPointer(WebCore::PointerID pointerId, WebCore::IntPoint documentPoint) -@@ -190,6 +195,7 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -195,6 +200,7 @@ messages -> WebPage WantsAsyncDispatchMessage { CreateProvisionalFrame(struct WebKit::ProvisionalFrameCreationParameters creationParameters, WebCore::FrameIdentifier frameID) DestroyProvisionalFrame(WebCore::FrameIdentifier frameID); LoadDidCommitInAnotherProcess(WebCore::FrameIdentifier frameID, std::optional layerHostingContextIdentifier) @@ -21598,7 +21656,7 @@ index 5840247c1e8c94462c5106d385a7674ff023dbf3..02147c2cf05c35fdef280b08bceee1bd LoadRequestWaitingForProcessLaunch(struct WebKit::LoadParameters loadParameters, URL resourceDirectoryURL, WebKit::WebPageProxyIdentifier pageID, bool checkAssumedReadAccessToResourceURL) LoadData(struct WebKit::LoadParameters loadParameters) LoadSimulatedRequestAndResponse(struct WebKit::LoadParameters loadParameters, WebCore::ResourceResponse simulatedResponse) -@@ -355,10 +361,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -361,10 +367,10 @@ messages -> WebPage WantsAsyncDispatchMessage { RemoveLayerForFindOverlay() -> () # Drag and drop. @@ -21611,7 +21669,7 @@ index 5840247c1e8c94462c5106d385a7674ff023dbf3..02147c2cf05c35fdef280b08bceee1bd PerformDragControllerAction(std::optional frameID, enum:uint8_t WebKit::DragControllerAction action, WebCore::DragData dragData) -> (std::optional dragOperation, enum:uint8_t WebCore::DragHandlingMethod dragHandlingMethod, bool mouseIsOverFileInput, unsigned numberOfItemsToBeAccepted, WebCore::IntRect insertionRect, WebCore::IntRect editableElementRect, struct std::optional remoteUserInputEventData) PerformDragOperation(WebCore::DragData dragData, WebKit::SandboxExtensionHandle sandboxExtensionHandle, Vector sandboxExtensionsForUpload) -> (bool handled) #endif -@@ -368,6 +374,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -374,6 +380,10 @@ messages -> WebPage WantsAsyncDispatchMessage { DragCancelled() #endif @@ -21623,10 +21681,10 @@ index 5840247c1e8c94462c5106d385a7674ff023dbf3..02147c2cf05c35fdef280b08bceee1bd RequestDragStart(WebCore::IntPoint clientPosition, WebCore::IntPoint globalPosition, OptionSet allowedActionsMask) RequestAdditionalItemsForDragSession(WebCore::IntPoint clientPosition, WebCore::IntPoint globalPosition, OptionSet allowedActionsMask) diff --git a/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm b/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm -index 6aac070297286654160c9cc5a5cf7de58dd1db87..4eddcc5c72784ca51ea87f2a9abb2504edfdbca7 100644 +index 0b583e682f64d0164def139cbd5c34597ce98db5..306263b5b96515100ecd6639b2566977958b0dea 100644 --- a/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm +++ b/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm -@@ -800,21 +800,37 @@ String WebPage::platformUserAgent(const URL&) const +@@ -798,21 +798,37 @@ String WebPage::platformUserAgent(const URL&) const bool WebPage::hoverSupportedByPrimaryPointingDevice() const { @@ -21715,10 +21773,10 @@ index f17f5d719d892309ed9c7093384945866b5117b9..1dba47bbf0dbd0362548423a74b38034 } diff --git a/Source/WebKit/WebProcess/WebProcess.cpp b/Source/WebKit/WebProcess/WebProcess.cpp -index 94ec05dfede5cdb951323424a7776048ceb20921..4982962fd12f9bab1df21f855289b110b9aa8511 100644 +index 2aa5f4a4491d2ba9bae275308b3d669d9d0b3dfa..3e09cd6d639634ee368bfd699f5c597af9367707 100644 --- a/Source/WebKit/WebProcess/WebProcess.cpp +++ b/Source/WebKit/WebProcess/WebProcess.cpp -@@ -90,6 +90,7 @@ +@@ -91,6 +91,7 @@ #include "WebsiteData.h" #include "WebsiteDataStoreParameters.h" #include "WebsiteDataType.h" @@ -21726,7 +21784,7 @@ index 94ec05dfede5cdb951323424a7776048ceb20921..4982962fd12f9bab1df21f855289b110 #include #include #include -@@ -370,6 +371,14 @@ void WebProcess::initializeProcess(const AuxiliaryProcessInitializationParameter +@@ -376,6 +377,14 @@ void WebProcess::initializeProcess(const AuxiliaryProcessInitializationParameter { JSC::Options::AllowUnfinalizedAccessScope scope; JSC::Options::allowNonSPTagging() = false; @@ -21741,7 +21799,7 @@ index 94ec05dfede5cdb951323424a7776048ceb20921..4982962fd12f9bab1df21f855289b110 JSC::Options::notifyOptionsChanged(); } -@@ -377,6 +386,8 @@ void WebProcess::initializeProcess(const AuxiliaryProcessInitializationParameter +@@ -383,6 +392,8 @@ void WebProcess::initializeProcess(const AuxiliaryProcessInitializationParameter platformInitializeProcess(parameters); updateCPULimit(); @@ -21750,7 +21808,7 @@ index 94ec05dfede5cdb951323424a7776048ceb20921..4982962fd12f9bab1df21f855289b110 } void WebProcess::initializeConnection(IPC::Connection* connection) -@@ -931,6 +942,7 @@ void WebProcess::createWebPage(PageIdentifier pageID, WebPageCreationParameters& +@@ -937,6 +948,7 @@ void WebProcess::createWebPage(PageIdentifier pageID, WebPageCreationParameters& accessibilityRelayProcessSuspended(false); } ASSERT(result.iterator->value); @@ -21772,7 +21830,7 @@ index 64e9b56bbc644c8ed1583cdbf41878738860292d..fe83a85ccf53ee33f5a6a7461b40078d - (void)touch:(WebEvent *)event { diff --git a/Source/WebKitLegacy/mac/WebView/WebView.mm b/Source/WebKitLegacy/mac/WebView/WebView.mm -index e1ecaa50847e76f2a02c62f5534a2e07f3df4fcd..2e79ce45b739517a03a464f223850aa0690d56d3 100644 +index 0a91e3dcd2071893d4a3f0bb42d43f1435c2d04b..be0037d7284f88c2fbd42070da4d6058408db3c4 100644 --- a/Source/WebKitLegacy/mac/WebView/WebView.mm +++ b/Source/WebKitLegacy/mac/WebView/WebView.mm @@ -3986,7 +3986,7 @@ + (void)_doNotStartObservingNetworkReachability @@ -21825,7 +21883,7 @@ index 0000000000000000000000000000000000000000..dd6a53e2d57318489b7e49dd7373706d + LIBVPX_LIBRARIES +) diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake -index 55aa3aea78f8286b04421f052f9e422e05f676a0..98ffe458294436b4c9224c412275e32fb61cd4ae 100644 +index 22894830f9eb1be8e2fd3d4fc04711aa49eca6a7..e49dcaf62241f53baf3911e2c40f07c96eb9f0db 100644 --- a/Source/cmake/OptionsGTK.cmake +++ b/Source/cmake/OptionsGTK.cmake @@ -7,6 +7,9 @@ SET_PROJECT_VERSION(2 47 2) @@ -21849,7 +21907,7 @@ index 55aa3aea78f8286b04421f052f9e422e05f676a0..98ffe458294436b4c9224c412275e32f include(GStreamerDefinitions) include(FindGLibCompileResources) -@@ -67,6 +74,10 @@ WEBKIT_OPTION_DEFINE(USE_SYSTEM_UNIFDEF "Whether to use a system-provided unifde +@@ -69,6 +76,10 @@ WEBKIT_OPTION_DEFINE(USE_SYSTEM_UNIFDEF "Whether to use a system-provided unifde WEBKIT_OPTION_DEPEND(USE_SYSTEM_SYSPROF_CAPTURE USE_SYSPROF_CAPTURE) @@ -21860,7 +21918,7 @@ index 55aa3aea78f8286b04421f052f9e422e05f676a0..98ffe458294436b4c9224c412275e32f SET_AND_EXPOSE_TO_BUILD(ENABLE_DEVELOPER_MODE ${DEVELOPER_MODE}) if (DEVELOPER_MODE) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_API_TESTS PRIVATE ON) -@@ -153,6 +164,20 @@ endif () +@@ -155,6 +166,20 @@ endif () WEBKIT_OPTION_DEPEND(ENABLE_GPU_PROCESS USE_GBM) @@ -21882,7 +21940,7 @@ index 55aa3aea78f8286b04421f052f9e422e05f676a0..98ffe458294436b4c9224c412275e32f # Finalize the value for all options. Do not attempt to use an option before diff --git a/Source/cmake/OptionsWPE.cmake b/Source/cmake/OptionsWPE.cmake -index 18252cd9598ad7554ece3a8a3f02435aa75e7737..311430134a2f44deaaf19e40b0f7ab393c898ccb 100644 +index c9b3bcd943d9df19f1b240b8b3704d51c5398411..51c1615a4caedc67675d0c6d49db4ef35f0ad403 100644 --- a/Source/cmake/OptionsWPE.cmake +++ b/Source/cmake/OptionsWPE.cmake @@ -21,6 +21,9 @@ find_package(WebP REQUIRED COMPONENTS demux) @@ -21895,7 +21953,7 @@ index 18252cd9598ad7554ece3a8a3f02435aa75e7737..311430134a2f44deaaf19e40b0f7ab39 WEBKIT_OPTION_BEGIN() SET_AND_EXPOSE_TO_BUILD(ENABLE_DEVELOPER_MODE ${DEVELOPER_MODE}) -@@ -83,6 +86,29 @@ if (WPE_VERSION VERSION_GREATER_EQUAL 1.13.90) +@@ -84,6 +87,29 @@ if (WPE_VERSION VERSION_GREATER_EQUAL 1.13.90) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD PUBLIC ON) endif () @@ -21925,8 +21983,8 @@ index 18252cd9598ad7554ece3a8a3f02435aa75e7737..311430134a2f44deaaf19e40b0f7ab39 # Public options specific to the WPE port. Do not add any options here unless # there is a strong reason we should support changing the value of the option, # and the option is not relevant to other WebKit ports. -@@ -116,6 +142,11 @@ WEBKIT_OPTION_DEPEND(ENABLE_DOCUMENTATION ENABLE_INTROSPECTION) - WEBKIT_OPTION_DEPEND(USE_QT6 ENABLE_WPE_PLATFORM) +@@ -119,6 +145,11 @@ WEBKIT_OPTION_DEPEND(USE_QT6 ENABLE_WPE_PLATFORM) + WEBKIT_OPTION_DEPEND(USE_SKIA_OPENTYPE_SVG USE_SKIA) WEBKIT_OPTION_DEPEND(USE_SYSTEM_SYSPROF_CAPTURE USE_SYSPROF_CAPTURE) +# Playwright begin. @@ -21938,7 +21996,7 @@ index 18252cd9598ad7554ece3a8a3f02435aa75e7737..311430134a2f44deaaf19e40b0f7ab39 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BUBBLEWRAP_SANDBOX PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEMORY_SAMPLER PRIVATE ON) diff --git a/Source/cmake/OptionsWin.cmake b/Source/cmake/OptionsWin.cmake -index a61f5b5b7c2a193365eadc1996179e2b6f845c0f..94d6772b86429ef5c66f7b7f69fa04bbfc20eebe 100644 +index 82a672f6ab17b20b1f2ce373cb627905ada281b2..e72eb75475bc09eeb92bd0b8a207e704674ff5a5 100644 --- a/Source/cmake/OptionsWin.cmake +++ b/Source/cmake/OptionsWin.cmake @@ -76,6 +76,27 @@ find_package(ZLIB 1.2.11 REQUIRED) @@ -22748,7 +22806,7 @@ index 9e53f459e444b9c10fc5248f0e8059df6c1e0041..c17c875a7dd3ca05c4489578ab32378b "${WebKitTestRunner_DIR}/InjectedBundle/Bindings/AccessibilityController.idl" "${WebKitTestRunner_DIR}/InjectedBundle/Bindings/AccessibilityTextMarker.idl" diff --git a/Tools/WebKitTestRunner/TestController.cpp b/Tools/WebKitTestRunner/TestController.cpp -index 1e020026255e1904c5b80d5232de7c1899f894bc..3a74de8ff4f615b86755e18c3414b24f185c17c8 100644 +index a6dc6170c6cb9a6a21fc9abb11b90e3ca1ac3ebc..960d9432d52d5cabe75aca2bc036de248a149681 100644 --- a/Tools/WebKitTestRunner/TestController.cpp +++ b/Tools/WebKitTestRunner/TestController.cpp @@ -984,6 +984,7 @@ void TestController::createWebViewWithOptions(const TestOptions& options) @@ -22816,9 +22874,31 @@ index c1381b06b378a5121be926b1dfda3e5509bcd051..773e5882b6f2269201ca49433d0b6986 + } // namespace WTR diff --git a/Tools/jhbuild/jhbuild-minimal.modules b/Tools/jhbuild/jhbuild-minimal.modules -index 3a0b7425900b14ce2aa0d48aa914cd69bff1f332..918dc2a3ac6716708ee372278f74877324abee3d 100644 +index 3a0b7425900b14ce2aa0d48aa914cd69bff1f332..22fb1ab2ea76e1e253c79ba1fa3fa448f7584b43 100644 --- a/Tools/jhbuild/jhbuild-minimal.modules +++ b/Tools/jhbuild/jhbuild-minimal.modules +@@ -67,8 +67,8 @@ + + ++ version="1.16.0" ++ hash="sha256:c7f3a3c6b3d006790d486dc7cceda2b6d2e329de07f33bc47dfc53f00f334b2a"/> + + + +@@ -77,8 +77,8 @@ + + ++ version="1.14.3" ++ hash="sha256:10121842595a850291db3e82f3db0b9984df079022d386ce42c2b8508159dc6c"> + + + @@ -186,7 +186,6 @@ diff --git a/browser_patches/winldd/BUILD_NUMBER b/browser_patches/winldd/BUILD_NUMBER index 9540e56f97..fb35a14c02 100644 --- a/browser_patches/winldd/BUILD_NUMBER +++ b/browser_patches/winldd/BUILD_NUMBER @@ -1 +1 @@ -1006 +1007 diff --git a/browser_patches/winldd/EXPECTED_BUILDS b/browser_patches/winldd/EXPECTED_BUILDS index cdead62b4c..349b4249b6 100644 --- a/browser_patches/winldd/EXPECTED_BUILDS +++ b/browser_patches/winldd/EXPECTED_BUILDS @@ -1 +1,2 @@ winldd-win64.zip +winldd-win64.tar.br diff --git a/browser_patches/winldd/buildwin.bat b/browser_patches/winldd/buildwin.bat index 51e2f839da..b20447214a 100644 --- a/browser_patches/winldd/buildwin.bat +++ b/browser_patches/winldd/buildwin.bat @@ -1,3 +1,5 @@ SET /p BUILD_NUMBER=