diff --git a/browser_patches/firefox/UPSTREAM_CONFIG.sh b/browser_patches/firefox/UPSTREAM_CONFIG.sh index c62a7938ed..d68e6b9ec0 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="2e53a31c9263494236e6ed0fc9707f8650bb9f67" +BASE_REVISION="7177c1fee2d0ae258241aa9f0f332aae8daf87e7" diff --git a/browser_patches/firefox/juggler/Helper.js b/browser_patches/firefox/juggler/Helper.js index 64286a6322..797acd4627 100644 --- a/browser_patches/firefox/juggler/Helper.js +++ b/browser_patches/firefox/juggler/Helper.js @@ -46,7 +46,7 @@ class Helper { } catch (e) { // This could fail when window has navigated cross-process // and we remove the listener from WindowProxy. - dump(`WARNING: removeEventListener throws ${e} at ${new Error().stack}\n`); + // Nothing we can do here - so ignore the error. } }; } diff --git a/browser_patches/firefox/juggler/TargetRegistry.js b/browser_patches/firefox/juggler/TargetRegistry.js index 18be67ac2f..c739c0d306 100644 --- a/browser_patches/firefox/juggler/TargetRegistry.js +++ b/browser_patches/firefox/juggler/TargetRegistry.js @@ -515,8 +515,9 @@ class PageTarget { this._linkedBrowser.closest('.browserStack').style.setProperty('scrollbar-width', 'none'); this._linkedBrowser.browsingContext.inRDMPane = true; - const rect = this._linkedBrowser.getBoundingClientRect(); - this._window.resizeTo(rect.x + rect.width, rect.y + rect.height); + const stackRect = this._linkedBrowser.closest('.browserStack').getBoundingClientRect(); + const toolbarTop = stackRect.y; + this._window.resizeBy(width - this._window.innerWidth, height + toolbarTop - this._window.innerHeight); await this._channel.connect('').send('awaitViewportDimensions', { width, height }); } else { diff --git a/browser_patches/firefox/juggler/content/FrameTree.js b/browser_patches/firefox/juggler/content/FrameTree.js index d85f8cd846..0d35854a53 100644 --- a/browser_patches/firefox/juggler/content/FrameTree.js +++ b/browser_patches/firefox/juggler/content/FrameTree.js @@ -266,8 +266,8 @@ class FrameTree { return; } if (frame._pendingNavigationId) { - const url = docShell.domWindow ? docShell.domWindow.location.href : 'about:blank'; - this._frameNavigationCommitted(frame, url); + docShell.QueryInterface(Ci.nsIWebNavigation); + this._frameNavigationCommitted(frame, docShell.currentURI.spec); } if (frame === this._mainFrame) { diff --git a/browser_patches/firefox/juggler/protocol/BrowserHandler.js b/browser_patches/firefox/juggler/protocol/BrowserHandler.js index 360649da90..df32c10bb6 100644 --- a/browser_patches/firefox/juggler/protocol/BrowserHandler.js +++ b/browser_patches/firefox/juggler/protocol/BrowserHandler.js @@ -27,13 +27,24 @@ class BrowserHandler { this._startCompletePromise = startCompletePromise; } - async ['Browser.enable']({attachToDefaultContext}) { + async ['Browser.enable']({attachToDefaultContext, userPrefs = []}) { if (this._enabled) return; await this._startCompletePromise; this._enabled = true; this._attachToDefaultContext = attachToDefaultContext; + for (const { name, value } of userPrefs) { + if (value === true || value === false) + Services.prefs.setBoolPref(name, value); + else if (typeof value === 'string') + Services.prefs.setStringPref(name, value); + else if (typeof value === 'number') + Services.prefs.setIntPref(name, value); + else + throw new Error(`Preference "${name}" has unsupported value: ${JSON.stringify(value)}`); + } + this._eventListeners = [ helper.on(this._targetRegistry, TargetRegistry.Events.TargetCreated, this._onTargetCreated.bind(this)), helper.on(this._targetRegistry, TargetRegistry.Events.TargetDestroyed, this._onTargetDestroyed.bind(this)), diff --git a/browser_patches/firefox/juggler/protocol/PageHandler.js b/browser_patches/firefox/juggler/protocol/PageHandler.js index 8edd35e3bb..407ad8c6c7 100644 --- a/browser_patches/firefox/juggler/protocol/PageHandler.js +++ b/browser_patches/firefox/juggler/protocol/PageHandler.js @@ -315,7 +315,7 @@ class PageHandler { return await this._contentPage.send('adoptNode', options); } - async ['Page.screenshot']({ mimeType, clip, omitDeviceScaleFactor }) { + async ['Page.screenshot']({ mimeType, clip, omitDeviceScaleFactor, quality = 80}) { const rect = new DOMRect(clip.x, clip.y, clip.width, clip.height); const browsingContext = this._pageTarget.linkedBrowser().browsingContext; @@ -358,7 +358,15 @@ class PageHandler { let ctx = canvas.getContext('2d'); ctx.drawImage(snapshot, 0, 0); snapshot.close(); - const dataURL = canvas.toDataURL(mimeType); + + if (mimeType === 'image/jpeg') { + if (quality < 0 || quality > 100) + throw new Error('Quality must be an integer value between 0 and 100; received ' + quality); + quality /= 100; + } else { + quality = undefined; + } + const dataURL = canvas.toDataURL(mimeType, quality); return { data: dataURL.substring(dataURL.indexOf(',') + 1) }; } @@ -513,6 +521,34 @@ class PageHandler { // 2. We receive an ack from the renderer for the dispatched event. await this._pageTarget.activateAndRun(async () => { this._pageTarget.ensureContextMenuClosed(); + // If someone asks us to dispatch mouse event outside of viewport, then we normally would drop it. + const boundingBox = this._pageTarget._linkedBrowser.getBoundingClientRect(); + if (x < 0 || y < 0 || x > boundingBox.width || y > boundingBox.height) { + if (type !== 'mousemove') + return; + + // A special hack: if someone tries to do `mousemove` outside of + // viewport coordinates, then move the mouse off from the Web Content. + // This way we can eliminate all the hover effects. + // NOTE: since this won't go inside the renderer, there's no need to wait for ACK. + win.windowUtils.sendMouseEvent( + 'mousemove', + 0 /* x */, + 0 /* y */, + button, + clickCount, + modifiers, + false /* aIgnoreRootScrollFrame */, + 0.0 /* pressure */, + 0 /* inputSource */, + true /* isDOMEventSynthesized */, + false /* isWidgetEventSynthesized */, + buttons, + win.windowUtils.DEFAULT_MOUSE_POINTER_ID /* pointerIdentifier */, + false /* disablePointerEvent */ + ); + return; + } if (type === 'mousedown') { if (this._isDragging) diff --git a/browser_patches/firefox/juggler/protocol/Protocol.js b/browser_patches/firefox/juggler/protocol/Protocol.js index 834f390bee..5cd9e84330 100644 --- a/browser_patches/firefox/juggler/protocol/Protocol.js +++ b/browser_patches/firefox/juggler/protocol/Protocol.js @@ -15,6 +15,11 @@ browserTypes.TargetInfo = { openerId: t.Optional(t.String), }; +browserTypes.UserPreference = { + name: t.String, + value: t.Any, +}; + browserTypes.CookieOptions = { name: t.String, value: t.String, @@ -246,6 +251,7 @@ const Browser = { 'enable': { params: { attachToDefaultContext: t.Boolean, + userPrefs: t.Optional(t.Array(browserTypes.UserPreference)), }, }, 'createBrowserContext': { @@ -860,6 +866,7 @@ const Page = { params: { mimeType: t.Enum(['image/png', 'image/jpeg']), clip: pageTypes.Clip, + quality: t.Optional(t.Number), omitDeviceScaleFactor: t.Optional(t.Boolean), }, returns: { diff --git a/browser_patches/firefox/patches/bootstrap.diff b/browser_patches/firefox/patches/bootstrap.diff index bf4061fac4..955f27c406 100644 --- a/browser_patches/firefox/patches/bootstrap.diff +++ b/browser_patches/firefox/patches/bootstrap.diff @@ -1,8 +1,8 @@ diff --git a/accessible/base/NotificationController.h b/accessible/base/NotificationController.h -index 2f0428b53d5e1fc4fd97cbc6c0619edbe425e7bd..8e72e1b3d0f69ab613eb95bc1d4676dcaec5c6a9 100644 +index bc1a692c23d8599512a5ce956d99998640347c46..4e77897aa4a84ce88445ba45f1ba3b5b2dde9e23 100644 --- a/accessible/base/NotificationController.h +++ b/accessible/base/NotificationController.h -@@ -245,6 +245,8 @@ class NotificationController final : public EventQueue, +@@ -244,6 +244,8 @@ class NotificationController final : public EventQueue, } #endif @@ -169,7 +169,7 @@ index a32156978aacd7c8cbe9001250bfa1516dbc360f..ff03ff48b505ef8a9117671bf21e8b0e const transportProvider = { setListener(upgradeListener) { diff --git a/docshell/base/BrowsingContext.cpp b/docshell/base/BrowsingContext.cpp -index b270badc02ec47c3995fda5c7e6ef2b81fe86150..6027542882ced5ffc55f2cc888cab161774bf90e 100644 +index 70191dfea28fb10c9f663f88b8cb9ce1ed240baf..b8eb68fca242e4cbe760545456e957cade24fbcb 100644 --- a/docshell/base/BrowsingContext.cpp +++ b/docshell/base/BrowsingContext.cpp @@ -112,6 +112,20 @@ struct ParamTraits @@ -193,7 +193,7 @@ index b270badc02ec47c3995fda5c7e6ef2b81fe86150..6027542882ced5ffc55f2cc888cab161 template <> struct ParamTraits : public ContiguousEnumSerializer< -@@ -2857,6 +2871,40 @@ void BrowsingContext::DidSet(FieldIndex, +@@ -2728,6 +2742,40 @@ void BrowsingContext::DidSet(FieldIndex, PresContextAffectingFieldChanged(); } @@ -235,10 +235,10 @@ index b270badc02ec47c3995fda5c7e6ef2b81fe86150..6027542882ced5ffc55f2cc888cab161 nsString&& aOldValue) { MOZ_ASSERT(IsTop()); diff --git a/docshell/base/BrowsingContext.h b/docshell/base/BrowsingContext.h -index 9fc591e0981d587b47f51d9a7c94e3ab8e54d06e..1d05700dc98422e7aed7236e6e5922e0e3501f24 100644 +index 9fd16974c089f6ad6eedc19c95a8a7d7af65cdf2..ed5296df0c78e57e5f00e0d339e9376c140c6ab0 100644 --- a/docshell/base/BrowsingContext.h +++ b/docshell/base/BrowsingContext.h -@@ -190,10 +190,10 @@ struct EmbedderColorSchemes { +@@ -198,10 +198,10 @@ struct EmbedderColorSchemes { FIELD(GVInaudibleAutoplayRequestStatus, GVAutoplayRequestStatus) \ /* ScreenOrientation-related APIs */ \ FIELD(CurrentOrientationAngle, float) \ @@ -251,7 +251,7 @@ index 9fc591e0981d587b47f51d9a7c94e3ab8e54d06e..1d05700dc98422e7aed7236e6e5922e0 FIELD(EmbedderElementType, Maybe) \ FIELD(MessageManagerGroup, nsString) \ FIELD(MaxTouchPointsOverride, uint8_t) \ -@@ -231,6 +231,10 @@ struct EmbedderColorSchemes { +@@ -239,6 +239,10 @@ struct EmbedderColorSchemes { * embedder element. */ \ FIELD(EmbedderColorSchemes, EmbedderColorSchemes) \ FIELD(DisplayMode, dom::DisplayMode) \ @@ -262,7 +262,7 @@ index 9fc591e0981d587b47f51d9a7c94e3ab8e54d06e..1d05700dc98422e7aed7236e6e5922e0 /* The number of entries added to the session history because of this \ * browsing context. */ \ FIELD(HistoryEntryCount, uint32_t) \ -@@ -343,6 +347,10 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { +@@ -351,6 +355,10 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { bool IsOwnedByProcess() const; @@ -273,7 +273,7 @@ index 9fc591e0981d587b47f51d9a7c94e3ab8e54d06e..1d05700dc98422e7aed7236e6e5922e0 bool CanHaveRemoteOuterProxies() const { return !mIsInProcess || mDanglingRemoteOuterProxies; } -@@ -922,6 +930,14 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { +@@ -921,6 +929,14 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { return GetPrefersColorSchemeOverride(); } @@ -288,7 +288,7 @@ index 9fc591e0981d587b47f51d9a7c94e3ab8e54d06e..1d05700dc98422e7aed7236e6e5922e0 bool IsInBFCache() const; bool AllowJavascript() const { return GetAllowJavascript(); } -@@ -1081,6 +1097,23 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { +@@ -1078,6 +1094,23 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { void WalkPresContexts(Callback&&); void PresContextAffectingFieldChanged(); @@ -313,10 +313,10 @@ index 9fc591e0981d587b47f51d9a7c94e3ab8e54d06e..1d05700dc98422e7aed7236e6e5922e0 bool CanSet(FieldIndex, bool, ContentParent*) { diff --git a/docshell/base/CanonicalBrowsingContext.cpp b/docshell/base/CanonicalBrowsingContext.cpp -index fef6ea286b5a7c1f7756f1265b74ad27bd8c9917..2697e73023217314fbfaed8f8e5d204232d45cb6 100644 +index 9a2d3ea4b9aa5689dcc0c8f54ce395cc33ddcddf..054419bc63364ab3b8c4c0596597df56a3f3d48a 100644 --- a/docshell/base/CanonicalBrowsingContext.cpp +++ b/docshell/base/CanonicalBrowsingContext.cpp -@@ -1447,6 +1447,12 @@ void CanonicalBrowsingContext::LoadURI(nsIURI* aURI, +@@ -1448,6 +1448,12 @@ void CanonicalBrowsingContext::LoadURI(nsIURI* aURI, return; } @@ -330,7 +330,7 @@ index fef6ea286b5a7c1f7756f1265b74ad27bd8c9917..2697e73023217314fbfaed8f8e5d2042 } diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp -index 132ed5c9a9e89cf023a76e7280e2d471475bfc87..7f5a21b0087a823190c2049d165c7fc7dea6c956 100644 +index 8b71aa6dff85bb12de087285ed980849289b2d80..6be5d6c2e141080492de281c3eb6423b374579e0 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -15,6 +15,12 @@ @@ -393,7 +393,7 @@ index 132ed5c9a9e89cf023a76e7280e2d471475bfc87..7f5a21b0087a823190c2049d165c7fc7 mAllowAuth(mItemType == typeContent), mAllowKeywordFixup(false), mDisableMetaRefreshWhenInactive(false), -@@ -3246,6 +3264,234 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) { +@@ -3186,6 +3204,234 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) { return NS_OK; } @@ -628,7 +628,7 @@ index 132ed5c9a9e89cf023a76e7280e2d471475bfc87..7f5a21b0087a823190c2049d165c7fc7 NS_IMETHODIMP nsDocShell::GetIsNavigating(bool* aOut) { *aOut = mIsNavigating; -@@ -4945,7 +5191,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { +@@ -4865,7 +5111,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { } void nsDocShell::ActivenessMaybeChanged() { @@ -637,7 +637,7 @@ index 132ed5c9a9e89cf023a76e7280e2d471475bfc87..7f5a21b0087a823190c2049d165c7fc7 if (RefPtr presShell = GetPresShell()) { presShell->ActivenessMaybeChanged(); } -@@ -6890,6 +7136,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, +@@ -6798,6 +7044,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, return false; // no entry to save into } @@ -648,7 +648,7 @@ index 132ed5c9a9e89cf023a76e7280e2d471475bfc87..7f5a21b0087a823190c2049d165c7fc7 MOZ_ASSERT(!mozilla::SessionHistoryInParent(), "mOSHE cannot be non-null with SHIP"); nsCOMPtr viewer = mOSHE->GetContentViewer(); -@@ -8667,6 +8917,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { +@@ -8579,6 +8829,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { true, // aForceNoOpener getter_AddRefs(newBC)); MOZ_ASSERT(!newBC); @@ -661,7 +661,7 @@ index 132ed5c9a9e89cf023a76e7280e2d471475bfc87..7f5a21b0087a823190c2049d165c7fc7 return rv; } -@@ -9697,6 +9953,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, +@@ -9611,6 +9867,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, nsINetworkPredictor::PREDICT_LOAD, attrs, nullptr); nsCOMPtr req; @@ -678,7 +678,7 @@ index 132ed5c9a9e89cf023a76e7280e2d471475bfc87..7f5a21b0087a823190c2049d165c7fc7 rv = DoURILoad(aLoadState, aCacheKey, getter_AddRefs(req)); if (NS_SUCCEEDED(rv)) { -@@ -12861,6 +13127,9 @@ class OnLinkClickEvent : public Runnable { +@@ -12775,6 +13041,9 @@ class OnLinkClickEvent : public Runnable { mHandler->OnLinkClickSync(mContent, mLoadState, mNoOpenerImplied, mTriggeringPrincipal); } @@ -688,7 +688,7 @@ index 132ed5c9a9e89cf023a76e7280e2d471475bfc87..7f5a21b0087a823190c2049d165c7fc7 return NS_OK; } -@@ -12940,6 +13209,8 @@ nsresult nsDocShell::OnLinkClick( +@@ -12854,6 +13123,8 @@ nsresult nsDocShell::OnLinkClick( nsCOMPtr ev = new OnLinkClickEvent(this, aContent, loadState, noOpenerImplied, aIsTrusted, aTriggeringPrincipal); @@ -698,7 +698,7 @@ index 132ed5c9a9e89cf023a76e7280e2d471475bfc87..7f5a21b0087a823190c2049d165c7fc7 } diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h -index 40bc4a21e789e2ee7f241f4adc410e1915105906..31f5574adcace75af6b184a3859e621022671a8a 100644 +index 7eb46fa817eeaab7264afa408e091dab54e3a4c9..66fd36a03a0eb130eb631644be73a0083dfeb5e3 100644 --- a/docshell/base/nsDocShell.h +++ b/docshell/base/nsDocShell.h @@ -16,6 +16,7 @@ @@ -733,7 +733,7 @@ index 40bc4a21e789e2ee7f241f4adc410e1915105906..31f5574adcace75af6b184a3859e6210 // Create a content viewer within this nsDocShell for the given // `WindowGlobalChild` actor. nsresult CreateContentViewerForActor( -@@ -1028,6 +1039,8 @@ class nsDocShell final : public nsDocLoader, +@@ -1023,6 +1034,8 @@ class nsDocShell final : public nsDocLoader, bool CSSErrorReportingEnabled() const { return mCSSErrorReportingEnabled; } @@ -742,7 +742,7 @@ index 40bc4a21e789e2ee7f241f4adc410e1915105906..31f5574adcace75af6b184a3859e6210 // 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 -@@ -1317,6 +1330,17 @@ class nsDocShell final : public nsDocLoader, +@@ -1312,6 +1325,17 @@ class nsDocShell final : public nsDocLoader, bool mAllowDNSPrefetch : 1; bool mAllowWindowControl : 1; bool mCSSErrorReportingEnabled : 1; @@ -761,7 +761,7 @@ index 40bc4a21e789e2ee7f241f4adc410e1915105906..31f5574adcace75af6b184a3859e6210 bool mAllowKeywordFixup : 1; bool mDisableMetaRefreshWhenInactive : 1; diff --git a/docshell/base/nsIDocShell.idl b/docshell/base/nsIDocShell.idl -index cc34ebbe0e8706888e26148f507180a1ebba1326..c0e6a5612beba81c3382839303e3e7a10ded8f05 100644 +index 68f32e968c7e1bc1d0b2b2894320a177a9ae44d2..9e61465ffad927d7b3e972f753940196fc986156 100644 --- a/docshell/base/nsIDocShell.idl +++ b/docshell/base/nsIDocShell.idl @@ -44,6 +44,7 @@ interface nsIURI; @@ -772,7 +772,7 @@ index cc34ebbe0e8706888e26148f507180a1ebba1326..c0e6a5612beba81c3382839303e3e7a1 interface nsIEditor; interface nsIEditingSession; interface nsIInputStream; -@@ -803,6 +804,43 @@ interface nsIDocShell : nsIDocShellTreeItem +@@ -784,6 +785,43 @@ interface nsIDocShell : nsIDocShellTreeItem */ void synchronizeLayoutHistoryState(); @@ -817,10 +817,10 @@ index cc34ebbe0e8706888e26148f507180a1ebba1326..c0e6a5612beba81c3382839303e3e7a1 * 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 fb54b0ebfb2e910546feb8b4d5b7ab69528c162c..865296d65fed772a5a551935fd3423b7c43f5c5a 100644 +index 20571949675bbdcf16749767fab7f3a53c3f7a7e..9ae8a32fe69bb4863049faa870af04db85e84f11 100644 --- a/dom/base/Document.cpp +++ b/dom/base/Document.cpp -@@ -3645,6 +3645,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { +@@ -3643,6 +3643,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { } void Document::ApplySettingsFromCSP(bool aSpeculative) { @@ -830,7 +830,7 @@ index fb54b0ebfb2e910546feb8b4d5b7ab69528c162c..865296d65fed772a5a551935fd3423b7 nsresult rv = NS_OK; if (!aSpeculative) { // 1) apply settings from regular CSP -@@ -3702,6 +3705,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { +@@ -3700,6 +3703,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { MOZ_ASSERT(!mScriptGlobalObject, "CSP must be initialized before mScriptGlobalObject is set!"); @@ -842,7 +842,7 @@ index fb54b0ebfb2e910546feb8b4d5b7ab69528c162c..865296d65fed772a5a551935fd3423b7 // If this is a data document - no need to set CSP. if (mLoadedAsData) { return NS_OK; -@@ -4525,6 +4533,10 @@ bool Document::HasFocus(ErrorResult& rv) const { +@@ -4533,6 +4541,10 @@ bool Document::HasFocus(ErrorResult& rv) const { return false; } @@ -853,7 +853,7 @@ index fb54b0ebfb2e910546feb8b4d5b7ab69528c162c..865296d65fed772a5a551935fd3423b7 if (!fm->IsInActiveWindow(bc)) { return false; } -@@ -18029,6 +18041,71 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { +@@ -18172,6 +18184,71 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { return LookAndFeel::PreferredColorSchemeForContent(); } @@ -926,10 +926,10 @@ index fb54b0ebfb2e910546feb8b4d5b7ab69528c162c..865296d65fed772a5a551935fd3423b7 if (!sLoadingForegroundTopLevelContentDocument) { return false; diff --git a/dom/base/Document.h b/dom/base/Document.h -index 5cee4a31e29a15809e604473e4c80cbbf763b3d9..23a2165b3aefd4b1e84d3035b7ac8ac9edf45535 100644 +index 0224108e91636624250054308d57ef101f80078d..02d64d601fdc542319f4ce29b71581a9eb192005 100644 --- a/dom/base/Document.h +++ b/dom/base/Document.h -@@ -4074,6 +4074,9 @@ class Document : public nsINode, +@@ -4102,6 +4102,9 @@ class Document : public nsINode, // color-scheme meta tag. ColorScheme DefaultColorScheme() const; @@ -1008,10 +1008,10 @@ index 9f6b85ecfac7196cc57c1b1979313403a41d4a6c..0fe045f38c36eb0284bb7c1fb6d33463 dom::MediaCapabilities* MediaCapabilities(); dom::MediaSession* MediaSession(); diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp -index 1b5573d5b8508775a4b0f608183b2a6911614e97..a4b7f7e0459b9762848244ce6813e757890bacc1 100644 +index e0458cc3e4534f6e63d00ccb2cc64cd7fc50d7dc..7e60d9134fa4816ee6e0781393be81bba069d5b3 100644 --- a/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp -@@ -8432,7 +8432,8 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8445,7 +8445,8 @@ nsresult nsContentUtils::SendMouseEvent( bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, PreventDefaultResult* aPreventDefault, bool aIsDOMEventSynthesized, @@ -1021,7 +1021,7 @@ index 1b5573d5b8508775a4b0f608183b2a6911614e97..a4b7f7e0459b9762848244ce6813e757 nsPoint offset; nsCOMPtr widget = GetWidget(aPresShell, &offset); if (!widget) return NS_ERROR_FAILURE; -@@ -8440,6 +8441,7 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8453,6 +8454,7 @@ nsresult nsContentUtils::SendMouseEvent( EventMessage msg; Maybe exitFrom; bool contextMenuKey = false; @@ -1029,7 +1029,7 @@ index 1b5573d5b8508775a4b0f608183b2a6911614e97..a4b7f7e0459b9762848244ce6813e757 if (aType.EqualsLiteral("mousedown")) { msg = eMouseDown; } else if (aType.EqualsLiteral("mouseup")) { -@@ -8464,6 +8466,12 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8477,6 +8479,12 @@ nsresult nsContentUtils::SendMouseEvent( msg = eMouseHitTest; } else if (aType.EqualsLiteral("MozMouseExploreByTouch")) { msg = eMouseExploreByTouch; @@ -1042,7 +1042,7 @@ index 1b5573d5b8508775a4b0f608183b2a6911614e97..a4b7f7e0459b9762848244ce6813e757 } else { return NS_ERROR_FAILURE; } -@@ -8472,12 +8480,21 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8485,12 +8493,21 @@ nsresult nsContentUtils::SendMouseEvent( aInputSourceArg = MouseEvent_Binding::MOZ_SOURCE_MOUSE; } @@ -1066,7 +1066,7 @@ index 1b5573d5b8508775a4b0f608183b2a6911614e97..a4b7f7e0459b9762848244ce6813e757 event.pointerId = aIdentifier; event.mModifiers = GetWidgetModifiers(aModifiers); event.mButton = aButton; -@@ -8488,8 +8505,10 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8501,8 +8518,10 @@ nsresult nsContentUtils::SendMouseEvent( event.mPressure = aPressure; event.mInputSource = aInputSourceArg; event.mClickCount = aClickCount; @@ -1078,10 +1078,10 @@ index 1b5573d5b8508775a4b0f608183b2a6911614e97..a4b7f7e0459b9762848244ce6813e757 nsPresContext* presContext = aPresShell->GetPresContext(); if (!presContext) return NS_ERROR_FAILURE; diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h -index dd455bb3617fce75a94b3312894441ddc7d464d6..2637d4b7c523f90d7df96dc0468d581694852f9c 100644 +index fc0eb7adef330cddedd9f30c7085426bee2e4a19..5b37ed6ef5c9cbe41d99fd8c179d3cd68503b700 100644 --- a/dom/base/nsContentUtils.h +++ b/dom/base/nsContentUtils.h -@@ -2911,7 +2911,8 @@ class nsContentUtils { +@@ -2921,7 +2921,8 @@ class nsContentUtils { int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, mozilla::PreventDefaultResult* aPreventDefault, @@ -1092,10 +1092,10 @@ index dd455bb3617fce75a94b3312894441ddc7d464d6..2637d4b7c523f90d7df96dc0468d5816 static void FirePageShowEventForFrameLoaderSwap( nsIDocShellTreeItem* aItem, diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp -index 007bcf54ca784d49655f1d9d56243dedc8dcafb4..a9ce0d07ffdd362cda194a8485aa8690a3c6ad4a 100644 +index 5ab2b4524c9ed06cac614102b93431a80834ebf6..426d7ec6e8652d273f19bf30be32ae76c5f9ceb2 100644 --- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp -@@ -675,6 +675,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) { +@@ -683,6 +683,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) { return NS_ERROR_FAILURE; } @@ -1122,7 +1122,7 @@ index 007bcf54ca784d49655f1d9d56243dedc8dcafb4..a9ce0d07ffdd362cda194a8485aa8690 NS_IMETHODIMP nsDOMWindowUtils::SendMouseEvent( const nsAString& aType, float aX, float aY, int32_t aButton, -@@ -689,7 +709,7 @@ nsDOMWindowUtils::SendMouseEvent( +@@ -697,7 +717,7 @@ nsDOMWindowUtils::SendMouseEvent( aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, false, aPreventDefault, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true, aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false, @@ -1131,7 +1131,7 @@ index 007bcf54ca784d49655f1d9d56243dedc8dcafb4..a9ce0d07ffdd362cda194a8485aa8690 } NS_IMETHODIMP -@@ -707,7 +727,7 @@ nsDOMWindowUtils::SendMouseEventToWindow( +@@ -715,7 +735,7 @@ nsDOMWindowUtils::SendMouseEventToWindow( aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, true, nullptr, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true, aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false, @@ -1140,7 +1140,7 @@ index 007bcf54ca784d49655f1d9d56243dedc8dcafb4..a9ce0d07ffdd362cda194a8485aa8690 } NS_IMETHODIMP -@@ -716,13 +736,13 @@ nsDOMWindowUtils::SendMouseEventCommon( +@@ -724,13 +744,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, @@ -1170,7 +1170,7 @@ index 63968c9b7a4e418e4c0de6e7a75fa215a36a9105..decf3ea3833ccdffd49a7aded2d600f9 MOZ_CAN_RUN_SCRIPT nsresult SendTouchEventCommon( diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp -index 415e941727187a9ec21aded76857e3d61c32c39b..aad2c96bcba8229b1cda3d578369af62692cf382 100644 +index 2b5f95d4c68d0a854d65471bdf9fff2dd166f73e..b5c5cb37c662a91536ce0ab6a2e10e8e6d93712b 100644 --- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp @@ -1656,6 +1656,10 @@ Maybe nsFocusManager::SetFocusInner(Element* aNewContent, @@ -1196,10 +1196,10 @@ index 415e941727187a9ec21aded76857e3d61c32c39b..aad2c96bcba8229b1cda3d578369af62 // 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 7a5df6943c7652d33f2b4ed773679fd6062023b5..786d50ddec3456dda59e36959fc9ec814770f6f1 100644 +index 9ac866bf9e6dc753088ce6d6b7d474075a3adfb1..52ca8ef4e9324a974fa7cd6d101d050e3d61eabc 100644 --- a/dom/base/nsGlobalWindowOuter.cpp +++ b/dom/base/nsGlobalWindowOuter.cpp -@@ -2481,7 +2481,7 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, +@@ -2483,7 +2483,7 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, &nsGlobalWindowInner::FireOnNewGlobalObject)); } @@ -1208,7 +1208,7 @@ index 7a5df6943c7652d33f2b4ed773679fd6062023b5..786d50ddec3456dda59e36959fc9ec81 // We should probably notify. However if this is the, arguably bad, // situation when we're creating a temporary non-chrome-about-blank // document in a chrome docshell, don't notify just yet. Instead wait -@@ -2500,10 +2500,16 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, +@@ -2502,10 +2502,16 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, }(); if (!isContentAboutBlankInChromeDocshell) { @@ -1229,7 +1229,7 @@ index 7a5df6943c7652d33f2b4ed773679fd6062023b5..786d50ddec3456dda59e36959fc9ec81 } } -@@ -2624,6 +2630,19 @@ void nsGlobalWindowOuter::DispatchDOMWindowCreated() { +@@ -2626,6 +2632,19 @@ void nsGlobalWindowOuter::DispatchDOMWindowCreated() { } } @@ -1250,10 +1250,10 @@ index 7a5df6943c7652d33f2b4ed773679fd6062023b5..786d50ddec3456dda59e36959fc9ec81 void nsGlobalWindowOuter::SetDocShell(nsDocShell* aDocShell) { diff --git a/dom/base/nsGlobalWindowOuter.h b/dom/base/nsGlobalWindowOuter.h -index 5d2a162dce39170b66595de3f99d83afedfae287..a98c01bb6ce1971e41c0398900bf8060542663c9 100644 +index d74c8c066a6005583f06821de8be1e96f94edc04..357bbc5b34ee7c6868f8e5f8e8367623f3868bd1 100644 --- a/dom/base/nsGlobalWindowOuter.h +++ b/dom/base/nsGlobalWindowOuter.h -@@ -333,6 +333,7 @@ class nsGlobalWindowOuter final : public mozilla::dom::EventTarget, +@@ -334,6 +334,7 @@ class nsGlobalWindowOuter final : public mozilla::dom::EventTarget, // Outer windows only. void DispatchDOMWindowCreated(); @@ -1262,10 +1262,10 @@ index 5d2a162dce39170b66595de3f99d83afedfae287..a98c01bb6ce1971e41c0398900bf8060 // Outer windows only. virtual void EnsureSizeAndPositionUpToDate() override; diff --git a/dom/base/nsINode.cpp b/dom/base/nsINode.cpp -index 6a28c0f314e573373114b9c973f7b9087824cf34..bca53a40f213ba1f7f273ae000609749816f6786 100644 +index 9f9a6d7c5fb6868a5eba3eaea9964850ba135729..727dbc65f00289a01d270ac5ebee5b96d03e3a00 100644 --- a/dom/base/nsINode.cpp +++ b/dom/base/nsINode.cpp -@@ -1340,6 +1340,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, +@@ -1348,6 +1348,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, mozilla::GetBoxQuadsFromWindowOrigin(this, aOptions, aResult, aRv); } @@ -1328,10 +1328,10 @@ index 6a28c0f314e573373114b9c973f7b9087824cf34..bca53a40f213ba1f7f273ae000609749 DOMQuad& aQuad, const GeometryNode& aFrom, const ConvertCoordinateOptions& aOptions, CallerType aCallerType, diff --git a/dom/base/nsINode.h b/dom/base/nsINode.h -index 1245cb9bd967d27cc95ba710999181d90a3531fd..a6c74c4ced45117f97874e0675c43ce04d22212e 100644 +index a168cd34eaa0baf6b79e8903c5475ace70d2dc17..5ec87aa5ac57724b332ce728924979177d247907 100644 --- a/dom/base/nsINode.h +++ b/dom/base/nsINode.h -@@ -2150,6 +2150,10 @@ class nsINode : public mozilla::dom::EventTarget { +@@ -2181,6 +2181,10 @@ class nsINode : public mozilla::dom::EventTarget { nsTArray>& aResult, ErrorResult& aRv); @@ -1343,7 +1343,7 @@ index 1245cb9bd967d27cc95ba710999181d90a3531fd..a6c74c4ced45117f97874e0675c43ce0 DOMQuad& aQuad, const TextOrElementOrDocument& aFrom, const ConvertCoordinateOptions& aOptions, CallerType aCallerType, diff --git a/dom/base/nsJSUtils.cpp b/dom/base/nsJSUtils.cpp -index 1da84501bf3ce25b932ec3693f247cdb1a4fdf21..2305a1730e18ba7293a41772b9b7495b5aa66210 100644 +index 86fe04583c34bd84f7239c3515c9f335d84f48a2..b6705bc48f216e856b556349d206756a0cf91867 100644 --- a/dom/base/nsJSUtils.cpp +++ b/dom/base/nsJSUtils.cpp @@ -169,6 +169,11 @@ bool nsJSUtils::GetScopeChainForElement( @@ -1359,7 +1359,7 @@ index 1da84501bf3ce25b932ec3693f247cdb1a4fdf21..2305a1730e18ba7293a41772b9b7495b void nsJSUtils::ResetTimeZone() { JS::ResetTimeZone(); } diff --git a/dom/base/nsJSUtils.h b/dom/base/nsJSUtils.h -index 85a21e459305f556933f4dc0fa7441d8f9ed95a9..d7cb86479ba2ed06542307349d6d86dfd026d55d 100644 +index 67682173f45c6a83cbad176c2922263d4f7dece9..7dd97f27bdf07673289fce62aaebe3b96492a2eb 100644 --- a/dom/base/nsJSUtils.h +++ b/dom/base/nsJSUtils.h @@ -78,6 +78,7 @@ class nsJSUtils { @@ -1371,10 +1371,10 @@ index 85a21e459305f556933f4dc0fa7441d8f9ed95a9..d7cb86479ba2ed06542307349d6d86df static bool DumpEnabled(); diff --git a/dom/chrome-webidl/BrowsingContext.webidl b/dom/chrome-webidl/BrowsingContext.webidl -index 369da91c6e31dbffe63fcd5044622bb8ca6150d5..aa874d57145261f14fe93e18e398c95eb63b8af5 100644 +index 51e8ede57dc8432335e5038cd35fe6395c3b65dd..b9383fbd5828c93221942dbe5664e9348ddcc82d 100644 --- a/dom/chrome-webidl/BrowsingContext.webidl +++ b/dom/chrome-webidl/BrowsingContext.webidl -@@ -52,6 +52,24 @@ enum PrefersColorSchemeOverride { +@@ -53,6 +53,24 @@ enum PrefersColorSchemeOverride { "dark", }; @@ -1399,7 +1399,7 @@ index 369da91c6e31dbffe63fcd5044622bb8ca6150d5..aa874d57145261f14fe93e18e398c95e /** * Allowed overrides of platform/pref default behaviour for touch events. */ -@@ -188,6 +206,12 @@ interface BrowsingContext { +@@ -199,6 +217,12 @@ interface BrowsingContext { // Color-scheme simulation, for DevTools. [SetterThrows] attribute PrefersColorSchemeOverride prefersColorSchemeOverride; @@ -1412,7 +1412,7 @@ index 369da91c6e31dbffe63fcd5044622bb8ca6150d5..aa874d57145261f14fe93e18e398c95e /** * A unique identifier for the browser element that is hosting this * BrowsingContext tree. Every BrowsingContext in the element's tree will -@@ -246,6 +270,8 @@ interface BrowsingContext { +@@ -257,6 +281,8 @@ interface BrowsingContext { undefined resetLocationChangeRateLimit(); readonly attribute long childOffset; @@ -1521,7 +1521,7 @@ index 7e1af00d05fbafa2d828e2c7e4dcc5c82d115f5b..e85af9718d064e4d2865bc944e9d4ba1 ~Geolocation(); diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp -index cb486a7b1270083498be997b31a6e29a206fc320..4387fe0a72463c3759eff30ee9e96e850ed39bc9 100644 +index 3f7e20e43a9b048c1e24e41b79fa0da08ba68ac4..f9b58311ff73ce69f2f24cad75ad9632c5490fce 100644 --- a/dom/html/HTMLInputElement.cpp +++ b/dom/html/HTMLInputElement.cpp @@ -58,6 +58,7 @@ @@ -1577,7 +1577,7 @@ index 25633e4ed848996efb790f4d462d00cbffa13f6d..dc21dcafe7561c3bf226d5190670a1f9 * touchstart, touchend, touchmove, and touchcancel * diff --git a/dom/ipc/BrowserChild.cpp b/dom/ipc/BrowserChild.cpp -index 4d21d631a523e012acbb15fe6f274db67f462484..9f86f994acb494a49403ef313e48658d9cdd5232 100644 +index 591128fe5f76f0a1bbe5091a67ae7ac6d2364b68..4b23faa0eeb5262ddf233efd8dd1c899eb7c8e02 100644 --- a/dom/ipc/BrowserChild.cpp +++ b/dom/ipc/BrowserChild.cpp @@ -1678,6 +1678,21 @@ void BrowserChild::HandleRealMouseButtonEvent(const WidgetMouseEvent& aEvent, @@ -1838,7 +1838,7 @@ index 1f2d92bcb5d989bf9ecc044f8c51006f991b0007..9cf5dd885e658e0fe5e7ab75e7fc1f97 return aGlobalOrNull; diff --git a/dom/security/nsCSPUtils.cpp b/dom/security/nsCSPUtils.cpp -index 5f9156ce2e70eb64653db72eb9dd1afddcec5633..af9efd55cf62b06ba9291bdc3af6819cc75be105 100644 +index 2bc6c66de3e470786d33cf46ae14f9e20465a9fd..ce4a35adf82fc99e5a12181c06f2b9f97880ea74 100644 --- a/dom/security/nsCSPUtils.cpp +++ b/dom/security/nsCSPUtils.cpp @@ -127,6 +127,11 @@ void CSP_ApplyMetaCSPToDoc(mozilla::dom::Document& aDoc, @@ -1877,10 +1877,10 @@ 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 ecafc907fa17f16561d6bd43061aacf5eb8c3076..b90c50fdbc7186702959a2f1cc12d82dd11d9ac3 100644 +index 499a2c1ef35bc7c610b4b329b9923ffee4af999a..e91fb8202ed4e2f7a0a59351d427c6dfdcb65b5e 100644 --- a/dom/workers/RuntimeService.cpp +++ b/dom/workers/RuntimeService.cpp -@@ -982,7 +982,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) { +@@ -989,7 +989,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) { AssertIsOnMainThread(); nsTArray languages; @@ -1889,7 +1889,7 @@ index ecafc907fa17f16561d6bd43061aacf5eb8c3076..b90c50fdbc7186702959a2f1cc12d82d RuntimeService* runtime = RuntimeService::GetService(); if (runtime) { -@@ -1184,8 +1184,7 @@ bool RuntimeService::RegisterWorker(WorkerPrivate& aWorkerPrivate) { +@@ -1191,8 +1191,7 @@ bool RuntimeService::RegisterWorker(WorkerPrivate& aWorkerPrivate) { } // The navigator overridden properties should have already been read. @@ -1899,7 +1899,7 @@ index ecafc907fa17f16561d6bd43061aacf5eb8c3076..b90c50fdbc7186702959a2f1cc12d82d mNavigatorPropertiesLoaded = true; } -@@ -1783,6 +1782,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted( +@@ -1808,6 +1807,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted( } } @@ -1913,7 +1913,7 @@ index ecafc907fa17f16561d6bd43061aacf5eb8c3076..b90c50fdbc7186702959a2f1cc12d82d template void RuntimeService::BroadcastAllWorkers(const Func& aFunc) { AssertIsOnMainThread(); -@@ -2210,6 +2216,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers( +@@ -2329,6 +2335,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers( } } @@ -1929,7 +1929,7 @@ index ecafc907fa17f16561d6bd43061aacf5eb8c3076..b90c50fdbc7186702959a2f1cc12d82d MOZ_ASSERT(!NS_IsMainThread()); MOZ_ASSERT(aCx); diff --git a/dom/workers/RuntimeService.h b/dom/workers/RuntimeService.h -index d1a44a19e865fb76cf2b7bfe5e1fbd9c64ec0465..1a44fee6508ea0ef3f48700b83b1185565778cc8 100644 +index a770d7330edb2f99483ab0363211817ae40028b0..f677f14e2ac42c94483726bac8538b52129615cc 100644 --- a/dom/workers/RuntimeService.h +++ b/dom/workers/RuntimeService.h @@ -110,6 +110,8 @@ class RuntimeService final : public nsIObserver { @@ -1955,10 +1955,10 @@ index d10dabb5c5ff8e17851edf2bd2efc08e74584d8e..53c4070c5fde43b27fb8fbfdcf4c23d8 bool IsWorkerGlobal(JSObject* global); diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp -index a5c7f0eb41e83353916819c8c75aec475249356b..706d8501be1f1cb194648950a7e62ea0621febba 100644 +index 1fc14724bc6f3fcf485e51f677c13ba328e385f7..363868b75703e29c5b0f924edac4cd927a06f97f 100644 --- a/dom/workers/WorkerPrivate.cpp +++ b/dom/workers/WorkerPrivate.cpp -@@ -703,6 +703,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { +@@ -704,6 +704,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { } }; @@ -1977,7 +1977,7 @@ index a5c7f0eb41e83353916819c8c75aec475249356b..706d8501be1f1cb194648950a7e62ea0 class UpdateLanguagesRunnable final : public WorkerRunnable { nsTArray mLanguages; -@@ -1974,6 +1986,16 @@ void WorkerPrivate::UpdateContextOptions( +@@ -1982,6 +1994,16 @@ void WorkerPrivate::UpdateContextOptions( } } @@ -1994,7 +1994,7 @@ index a5c7f0eb41e83353916819c8c75aec475249356b..706d8501be1f1cb194648950a7e62ea0 void WorkerPrivate::UpdateLanguages(const nsTArray& aLanguages) { AssertIsOnParentThread(); -@@ -5287,6 +5309,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( +@@ -5289,6 +5311,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( } } @@ -2011,10 +2011,10 @@ index a5c7f0eb41e83353916819c8c75aec475249356b..706d8501be1f1cb194648950a7e62ea0 const nsTArray& aLanguages) { WorkerGlobalScope* globalScope = GlobalScope(); diff --git a/dom/workers/WorkerPrivate.h b/dom/workers/WorkerPrivate.h -index bc6e31d0aecf437e22f758cc1b1485712bd507fd..5a6b1213ea1a81205894ccc78571be0978cf6ecc 100644 +index c9a7175a4da4ebb841a4a85d8c1a8b2c1f52f542..9105f4d737b991145c52f585a3932281b6abf049 100644 --- a/dom/workers/WorkerPrivate.h +++ b/dom/workers/WorkerPrivate.h -@@ -340,6 +340,8 @@ class WorkerPrivate final +@@ -414,6 +414,8 @@ class WorkerPrivate final void UpdateContextOptionsInternal(JSContext* aCx, const JS::ContextOptions& aContextOptions); @@ -2023,7 +2023,7 @@ index bc6e31d0aecf437e22f758cc1b1485712bd507fd..5a6b1213ea1a81205894ccc78571be09 void UpdateLanguagesInternal(const nsTArray& aLanguages); void UpdateJSWorkerMemoryParameterInternal(JSContext* aCx, JSGCParamKey key, -@@ -961,6 +963,8 @@ class WorkerPrivate final +@@ -1032,6 +1034,8 @@ class WorkerPrivate final void UpdateContextOptions(const JS::ContextOptions& aContextOptions); @@ -2059,10 +2059,10 @@ index 145dd3f07112c2390325de50f8eae674484adfe6..8cb3787e1b6bb25c6a58f1d910ae7dbc Span aTimeZone) { #if MOZ_INTL_USE_ICU_CPP_TIMEZONE diff --git a/intl/components/src/TimeZone.h b/intl/components/src/TimeZone.h -index 180092bd3fc0b70462cc6ba67e72946e4c4c7604..bcaecb9fcd7b630c75289581a887cc6894733168 100644 +index 364cb45c2fafe9e419b415ee456b3411d5c38dea..ae119db52d55c3100df3d88f10c91d59b3fc07e8 100644 --- a/intl/components/src/TimeZone.h +++ b/intl/components/src/TimeZone.h -@@ -154,6 +154,8 @@ class TimeZone final { +@@ -155,6 +155,8 @@ class TimeZone final { return FillBufferWithICUCall(aBuffer, ucal_getHostTimeZone); } @@ -2072,7 +2072,7 @@ index 180092bd3fc0b70462cc6ba67e72946e4c4c7604..bcaecb9fcd7b630c75289581a887cc68 * Set the default time zone. */ diff --git a/js/public/Date.h b/js/public/Date.h -index cd641a54d9f968b4f5ac62aff701576e63a29439..27067c68a74a5578b8b5e6bbef3a4b4876897eb1 100644 +index 45c6a88602e078cb872d49a2f50b30a994f76d8e..90989ff259ef19af094bc6ddfabe7552b80d84f3 100644 --- a/js/public/Date.h +++ b/js/public/Date.h @@ -53,6 +53,8 @@ namespace JS { @@ -2085,10 +2085,10 @@ index cd641a54d9f968b4f5ac62aff701576e63a29439..27067c68a74a5578b8b5e6bbef3a4b48 inline ClippedTime TimeClip(double time); diff --git a/js/src/debugger/Object.cpp b/js/src/debugger/Object.cpp -index 893542410468e2a999d49a826614fcba94576ccd..ff4daddfbbaa239cf12a05907f6f33b8a3be0bab 100644 +index 2ffac9f9d5fd369d5b66e7ae84da7085acd0c540..d531bd62f2599411b9395e1dd2b4f2a147e255ee 100644 --- a/js/src/debugger/Object.cpp +++ b/js/src/debugger/Object.cpp -@@ -2421,7 +2421,11 @@ Maybe DebuggerObject::call(JSContext* cx, +@@ -2431,7 +2431,11 @@ Maybe DebuggerObject::call(JSContext* cx, invokeArgs[i].set(args2[i]); } @@ -2101,10 +2101,10 @@ index 893542410468e2a999d49a826614fcba94576ccd..ff4daddfbbaa239cf12a05907f6f33b8 } diff --git a/js/src/vm/DateTime.cpp b/js/src/vm/DateTime.cpp -index cb3d1288c8b3f40fbcb40429381306c230960d76..7ec3f6c4e6d037aadd798f891ecfca0b5a83678a 100644 +index 0dd93e00a1d206d7117e4404240b49a2f49bb415..6d6b394c5acf7bbd02475694661230758d0ca942 100644 --- a/js/src/vm/DateTime.cpp +++ b/js/src/vm/DateTime.cpp -@@ -179,6 +179,11 @@ void js::DateTimeInfo::internalResetTimeZone(ResetTimeZoneMode mode) { +@@ -187,6 +187,11 @@ void js::DateTimeInfo::internalResetTimeZone(ResetTimeZoneMode mode) { } } @@ -2116,7 +2116,7 @@ index cb3d1288c8b3f40fbcb40429381306c230960d76..7ec3f6c4e6d037aadd798f891ecfca0b void js::DateTimeInfo::updateTimeZone() { MOZ_ASSERT(timeZoneStatus_ != TimeZoneStatus::Valid); -@@ -510,10 +515,24 @@ void js::ResetTimeZoneInternal(ResetTimeZoneMode mode) { +@@ -529,10 +534,24 @@ void js::ResetTimeZoneInternal(ResetTimeZoneMode mode) { js::DateTimeInfo::resetTimeZone(mode); } @@ -2141,7 +2141,7 @@ index cb3d1288c8b3f40fbcb40429381306c230960d76..7ec3f6c4e6d037aadd798f891ecfca0b #if JS_HAS_INTL_API # if defined(XP_WIN) static bool IsOlsonCompatibleWindowsTimeZoneId(std::string_view tz) { -@@ -735,9 +754,17 @@ void js::ResyncICUDefaultTimeZone() { +@@ -750,6 +769,15 @@ static bool ReadTimeZoneLink(std::string_view tz, void js::DateTimeInfo::internalResyncICUDefaultTimeZone() { #if JS_HAS_INTL_API @@ -2154,6 +2154,11 @@ index cb3d1288c8b3f40fbcb40429381306c230960d76..7ec3f6c4e6d037aadd798f891ecfca0b + return; + } + + // In the future we should not be setting a default ICU time zone at all, + // instead all accesses should go through the appropriate DateTimeInfo + // instance depending on the resist fingerprinting status. For now we return +@@ -761,7 +789,6 @@ void js::DateTimeInfo::internalResyncICUDefaultTimeZone() { + if (const char* tzenv = std::getenv("TZ")) { std::string_view tz(tzenv); - @@ -2161,27 +2166,27 @@ index cb3d1288c8b3f40fbcb40429381306c230960d76..7ec3f6c4e6d037aadd798f891ecfca0b # if defined(XP_WIN) diff --git a/js/src/vm/DateTime.h b/js/src/vm/DateTime.h -index b70e4e0ae25947daed0079334956b8cabd5c52b7..38750b81cf82749d5cc6aaa72aa037bc466468f4 100644 +index 20feae33a82f1cd1262aa3679ad23aa75aaf0b38..4dbb75c0ee2d5079de7dcf04a3505e0dee2719f7 100644 --- a/js/src/vm/DateTime.h +++ b/js/src/vm/DateTime.h -@@ -62,6 +62,8 @@ enum class ResetTimeZoneMode : bool { +@@ -65,6 +65,8 @@ enum class ResetTimeZoneMode : bool { */ extern void ResetTimeZoneInternal(ResetTimeZoneMode mode); +extern void SetTimeZoneOverrideInternal(std::string timeZone); + /** - * ICU's default time zone, used for various date/time formatting operations - * that include the local time in the representation, is allowed to go stale -@@ -201,6 +203,7 @@ class DateTimeInfo { - // and js::ResyncICUDefaultTimeZone(). + * Stores date/time information, particularly concerning the current local + * time zone, and implements a small cache for daylight saving time offset +@@ -226,6 +228,7 @@ class DateTimeInfo { + private: + // The method below should only be called via js::ResetTimeZoneInternal(). friend void js::ResetTimeZoneInternal(ResetTimeZoneMode); - friend void js::ResyncICUDefaultTimeZone(); + friend void js::SetTimeZoneOverrideInternal(std::string); static void resetTimeZone(ResetTimeZoneMode mode) { - auto guard = instance->lock(); -@@ -292,6 +295,8 @@ class DateTimeInfo { + { +@@ -322,6 +325,8 @@ class DateTimeInfo { JS::UniqueChars locale_; JS::UniqueTwoByteChars standardName_; JS::UniqueTwoByteChars daylightSavingsName_; @@ -2190,7 +2195,7 @@ index b70e4e0ae25947daed0079334956b8cabd5c52b7..38750b81cf82749d5cc6aaa72aa037bc #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 -@@ -307,6 +312,8 @@ class DateTimeInfo { +@@ -337,6 +342,8 @@ class DateTimeInfo { void internalResetTimeZone(ResetTimeZoneMode mode); @@ -2250,10 +2255,10 @@ index dac899f7558b26d6848da8b98ed8a93555c8751a..2a07d67fa1c2840b25085566e84dc3b2 // No boxes to return return; diff --git a/layout/base/PresShell.cpp b/layout/base/PresShell.cpp -index 4b16430f9d713428c9df5607d3b25b9c2d777647..4f42913c7ecee91921e1f528d0198cf3591eb3a2 100644 +index ab8ddd3ed55f9f1d7997611abd0fc99c1a2c2d7a..224b2bc9752f52951ceb80ebae9cd3bbb08b7d33 100644 --- a/layout/base/PresShell.cpp +++ b/layout/base/PresShell.cpp -@@ -10901,7 +10901,9 @@ auto PresShell::ComputeActiveness() const -> Activeness { +@@ -10904,7 +10904,9 @@ auto PresShell::ComputeActiveness() const -> Activeness { if (!browserChild->IsVisible()) { MOZ_LOG(gLog, LogLevel::Debug, (" > BrowserChild %p is not visible", browserChild)); @@ -2265,19 +2270,19 @@ index 4b16430f9d713428c9df5607d3b25b9c2d777647..4f42913c7ecee91921e1f528d0198cf3 // If the browser is visible but just due to be preserving layers diff --git a/layout/style/GeckoBindings.h b/layout/style/GeckoBindings.h -index 171a524cf42b2ca9304a709401f77d12c952c8c4..7b5f0a93c06738927e34de183fa7b28dc5d8e16a 100644 +index a131977e3367527596c525243a3f68cfa72d6e36..32adec9f433d9c74e78af1f32d54f6f2af1a9a4e 100644 --- a/layout/style/GeckoBindings.h +++ b/layout/style/GeckoBindings.h -@@ -630,6 +630,7 @@ void Gecko_MediaFeatures_GetDeviceSize(const mozilla::dom::Document*, - - float Gecko_MediaFeatures_GetResolution(const mozilla::dom::Document*); +@@ -632,6 +632,7 @@ float Gecko_MediaFeatures_GetResolution(const mozilla::dom::Document*); bool Gecko_MediaFeatures_PrefersReducedMotion(const mozilla::dom::Document*); + bool Gecko_MediaFeatures_PrefersReducedTransparency( + const mozilla::dom::Document*); +bool Gecko_MediaFeatures_ForcedColors(const mozilla::dom::Document*); mozilla::StylePrefersContrast Gecko_MediaFeatures_PrefersContrast( const mozilla::dom::Document*); mozilla::StylePrefersColorScheme Gecko_MediaFeatures_PrefersColorScheme( diff --git a/layout/style/nsMediaFeatures.cpp b/layout/style/nsMediaFeatures.cpp -index 3e1201e8877dd3a2bd1897f8b50732c8579b27f4..d27139a4926c12b9e389f45ad7de8f59fb421f4b 100644 +index 3fdb9e7c1ad6f3c7a641c6bfd9d4daca26f4a45b..f920aa3710a13e247e8b3a7a5fba4d1afe37266a 100644 --- a/layout/style/nsMediaFeatures.cpp +++ b/layout/style/nsMediaFeatures.cpp @@ -277,10 +277,11 @@ bool Gecko_MediaFeatures_MatchesPlatform(StylePlatform aPlatform) { @@ -2295,12 +2300,12 @@ index 3e1201e8877dd3a2bd1897f8b50732c8579b27f4..d27139a4926c12b9e389f45ad7de8f59 + return aDocument->ForcedColors(); } - StylePrefersColorScheme Gecko_MediaFeatures_PrefersColorScheme( + bool Gecko_MediaFeatures_PrefersReducedTransparency(const Document* aDocument) { diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js -index 22a15d306b807902c93dede5855007705237bdbd..65c70243944c87b6894d3e654fd0e4f971cfea70 100644 +index d256c66f4d77d0342e8e0db3f2fd45f21cb2331e..edc5a33bf367c9d45354e352c51688fe28347c01 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js -@@ -4113,7 +4113,9 @@ pref("devtools.experiment.f12.shortcut_disabled", false); +@@ -4107,7 +4107,9 @@ pref("devtools.experiment.f12.shortcut_disabled", false); // doesn't provide a way to lock the pref pref("dom.postMessage.sharedArrayBuffer.bypassCOOP_COEP.insecure.enabled", false); #else @@ -2362,10 +2367,10 @@ index 735b3a134a8c7104909ff9424eff74eab80c4830..a31e8b68e201dbf238d80ab32d46d465 if (mPump && mLoadFlags & LOAD_CALL_CONTENT_SNIFFERS) { mPump->PeekStream(CallTypeSniffers, static_cast(this)); diff --git a/parser/html/nsHtml5TreeOpExecutor.cpp b/parser/html/nsHtml5TreeOpExecutor.cpp -index da570e5b6dbaffb9a7ba8bffcf14dd9e180d5215..3782a2d47b1feca7897924bff46ac4a0b0a383df 100644 +index 0908642956b66e867be59c5777f26e4c9f95d5ec..3d7677c454c5a0d2169686c2abad7b332f2413ce 100644 --- a/parser/html/nsHtml5TreeOpExecutor.cpp +++ b/parser/html/nsHtml5TreeOpExecutor.cpp -@@ -1371,6 +1371,10 @@ void nsHtml5TreeOpExecutor::UpdateReferrerInfoFromMeta( +@@ -1372,6 +1372,10 @@ void nsHtml5TreeOpExecutor::UpdateReferrerInfoFromMeta( void nsHtml5TreeOpExecutor::AddSpeculationCSP(const nsAString& aCSP) { NS_ASSERTION(NS_IsMainThread(), "Wrong thread!"); @@ -2377,10 +2382,10 @@ index da570e5b6dbaffb9a7ba8bffcf14dd9e180d5215..3782a2d47b1feca7897924bff46ac4a0 nsCOMPtr preloadCsp = mDocument->GetPreloadCsp(); if (!preloadCsp) { diff --git a/security/manager/ssl/nsCertOverrideService.cpp b/security/manager/ssl/nsCertOverrideService.cpp -index 4f2f595fb14c7c7244d5fe9a3da2eadc0c3b3adc..3ca0b4a3b9f4bdf21c1107a1e5ea3f0f58050f51 100644 +index 4ccd48215ea8500de02fbe54d79962b4d6bcfc57..57ca7a8bb78a680362f0b3b05cb10219494fcdf8 100644 --- a/security/manager/ssl/nsCertOverrideService.cpp +++ b/security/manager/ssl/nsCertOverrideService.cpp -@@ -472,7 +472,12 @@ nsCertOverrideService::HasMatchingOverride( +@@ -473,7 +473,12 @@ nsCertOverrideService::HasMatchingOverride( bool disableAllSecurityCheck = false; { MutexAutoLock lock(mMutex); @@ -2394,7 +2399,7 @@ index 4f2f595fb14c7c7244d5fe9a3da2eadc0c3b3adc..3ca0b4a3b9f4bdf21c1107a1e5ea3f0f } if (disableAllSecurityCheck) { *aIsTemporary = false; -@@ -689,14 +694,24 @@ static bool IsDebugger() { +@@ -690,14 +695,24 @@ static bool IsDebugger() { NS_IMETHODIMP nsCertOverrideService:: @@ -2423,10 +2428,10 @@ index 4f2f595fb14c7c7244d5fe9a3da2eadc0c3b3adc..3ca0b4a3b9f4bdf21c1107a1e5ea3f0f nsCOMPtr nss(do_GetService(PSM_COMPONENT_CONTRACTID)); diff --git a/security/manager/ssl/nsCertOverrideService.h b/security/manager/ssl/nsCertOverrideService.h -index 42760f8ec675af22bdf27a07954b1d3b600d29ab..aad868ef636dbb743f3268d662db7914a2418588 100644 +index f9d81c962aec06ccb7681d124d826f83eca743ec..aa85277808a150d766faa2130f8546cd1d6223c3 100644 --- a/security/manager/ssl/nsCertOverrideService.h +++ b/security/manager/ssl/nsCertOverrideService.h -@@ -119,6 +119,7 @@ class nsCertOverrideService final : public nsICertOverrideService, +@@ -120,6 +120,7 @@ class nsCertOverrideService final : public nsICertOverrideService, mozilla::Mutex mMutex; bool mDisableAllSecurityCheck MOZ_GUARDED_BY(mMutex); @@ -2463,10 +2468,10 @@ index 94f47133802fd47a8a2bb800bdda8382d7ee82e5..2aa50e24dc1cb39012ed1d2b3b370cce : AppConstants.REMOTE_SETTINGS_SERVER_URL; }, diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs -index e2ba9f62f0fc8ab83a1d810f74f17d6dd195d6c2..23e268b300475b9372a31e836e52240f5b84852a 100644 +index ca59d311ef91d66e829dc3186bacc07f251d4f00..008c3c0390262010c47513565e46982b826430de 100644 --- a/servo/components/style/gecko/media_features.rs +++ b/servo/components/style/gecko/media_features.rs -@@ -265,10 +265,15 @@ pub enum ForcedColors { +@@ -290,10 +290,15 @@ pub enum ForcedColors { /// https://drafts.csswg.org/mediaqueries-5/#forced-colors fn eval_forced_colors(context: &Context, query_value: Option) -> bool { @@ -2485,6 +2490,19 @@ index e2ba9f62f0fc8ab83a1d810f74f17d6dd195d6c2..23e268b300475b9372a31e836e52240f } } +diff --git a/taskcluster/ci/toolchain/macos-sdk.yml b/taskcluster/ci/toolchain/macos-sdk.yml +index a446e90c26de1c55c57d6479cd2cf3df0ecaf508..c1880ff0dae136c66d1a91ddfc9343ed82f1ac78 100644 +--- a/taskcluster/ci/toolchain/macos-sdk.yml ++++ b/taskcluster/ci/toolchain/macos-sdk.yml +@@ -43,7 +43,7 @@ macosx64-sdk-13.0: + run: + script: unpack-sdk.py + arguments: +- - https://swdist.apple.com/content/downloads/38/50/012-70652-A_2ZHIRHCHLN/f8b81s6tzlzrj0z67ynydjx4x1lwhr08ab/CLTools_macOSNMOS_SDK.pkg ++ - https://swcdn.apple.com/content/downloads/38/50/012-70652-A_2ZHIRHCHLN/f8b81s6tzlzrj0z67ynydjx4x1lwhr08ab/CLTools_macOSNMOS_SDK.pkg + - 06f4a045854c456a553a5ee6acf678fbe26c06296fc68054ae918c206134aa20 + - Library/Developer/CommandLineTools/SDKs/MacOSX13.0.sdk + toolchain-artifact: project/gecko/mac-sdk/MacOSX13.0.sdk.tar.zst diff --git a/toolkit/components/browser/nsIWebBrowserChrome.idl b/toolkit/components/browser/nsIWebBrowserChrome.idl index 54de3abab5757dd706e3d909ccef6a0bed5deacc..f5c5480cd052ede0c76e5eec733dbb9283389045 100644 --- a/toolkit/components/browser/nsIWebBrowserChrome.idl @@ -2500,10 +2518,10 @@ index 54de3abab5757dd706e3d909ccef6a0bed5deacc..f5c5480cd052ede0c76e5eec733dbb92 // ignored for Linux. const unsigned long CHROME_SUPPRESS_ANIMATION = 0x01000000; diff --git a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs -index 0fad0ee2916098af5923f5ad0fc8a479f8ec706a..4b5586f7213919e871c085cb8b07f80f5a7d893f 100644 +index 0a0c9601be5cd028cf8894d2e8e32edff8e610a6..e13c1d643a941120e4bd0d2c87f8df7400020598 100644 --- a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs +++ b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs -@@ -113,6 +113,12 @@ EnterprisePoliciesManager.prototype = { +@@ -110,6 +110,12 @@ EnterprisePoliciesManager.prototype = { Services.prefs.clearUserPref(PREF_POLICIES_APPLIED); } @@ -2545,10 +2563,10 @@ index 654903fadb709be976b72f36f155e23bc0622152..815b3dc24c9fda6b1db6c4666ac68904 int32_t aMaxSelfProgress, int32_t aCurTotalProgress, diff --git a/toolkit/components/windowwatcher/nsWindowWatcher.cpp b/toolkit/components/windowwatcher/nsWindowWatcher.cpp -index 6d6a91821e0df64e12e576d8c9e5b3d2e6aade27..1a8b8ff82586cca439dafc5e13e8c46adadd6ecc 100644 +index d21b1fa97755260f09d92c0cac10e1d5233c65dd..948e4ce62d4d03ed29ecac48e04bd13eea80f8b3 100644 --- a/toolkit/components/windowwatcher/nsWindowWatcher.cpp +++ b/toolkit/components/windowwatcher/nsWindowWatcher.cpp -@@ -1854,7 +1854,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent( +@@ -1877,7 +1877,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent( // Open a minimal popup. *aIsPopupRequested = true; @@ -2561,15 +2579,15 @@ index 6d6a91821e0df64e12e576d8c9e5b3d2e6aade27..1a8b8ff82586cca439dafc5e13e8c46a } /** -diff --git a/toolkit/mozapps/update/UpdateService.jsm b/toolkit/mozapps/update/UpdateService.jsm -index b6257a954787a9f4015c4d55836c70865edeb5a4..ea2eb94efea166aa90993217871c3c80c6d247fc 100644 ---- a/toolkit/mozapps/update/UpdateService.jsm -+++ b/toolkit/mozapps/update/UpdateService.jsm -@@ -3864,6 +3864,8 @@ UpdateService.prototype = { +diff --git a/toolkit/mozapps/update/UpdateService.sys.mjs b/toolkit/mozapps/update/UpdateService.sys.mjs +index b42661ca23cbfc53808f6f7dca4bbe8e9a4e3a5a..24aed9cd6c3f3281b0222c8ec40f5bd7b8984db1 100644 +--- a/toolkit/mozapps/update/UpdateService.sys.mjs ++++ b/toolkit/mozapps/update/UpdateService.sys.mjs +@@ -3855,6 +3855,8 @@ UpdateService.prototype = { }, get disabledForTesting() { -+ /* for playwright */ ++ /* playwright */ + return true; return ( (Cu.isInAutomation || @@ -3107,10 +3125,10 @@ index facd2bc65afab8ec1aa322faa20a67464964dfb9..d6dea95472bec6006411753c3dfdab2e } // namespace widget diff --git a/widget/headless/HeadlessWidget.cpp b/widget/headless/HeadlessWidget.cpp -index bb369eb0a5e1118d363c5a2fc35984b7d6c2aa28..3e9a6d31558c2720c2c6eef6a8de258bfa422a80 100644 +index 083d026d3c019cb76fff2b8f605f3d6ef8dd578f..84c049709ead92c980b86230513a634bf6337085 100644 --- a/widget/headless/HeadlessWidget.cpp +++ b/widget/headless/HeadlessWidget.cpp -@@ -110,6 +110,8 @@ void HeadlessWidget::Destroy() { +@@ -111,6 +111,8 @@ void HeadlessWidget::Destroy() { } } diff --git a/browser_patches/webkit/UPSTREAM_CONFIG.sh b/browser_patches/webkit/UPSTREAM_CONFIG.sh index 98c0d6d63b..f58de56822 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="973843664d25524ba050bd37cabe2e44ffc0c512" +BASE_REVISION="b18feb6f416c7054880a920af213f6dfa864eb7a" diff --git a/browser_patches/webkit/embedder/Playwright/mac/BrowserWindowController.m b/browser_patches/webkit/embedder/Playwright/mac/BrowserWindowController.m index cebb042874..05f37a98d0 100644 --- a/browser_patches/webkit/embedder/Playwright/mac/BrowserWindowController.m +++ b/browser_patches/webkit/embedder/Playwright/mac/BrowserWindowController.m @@ -724,7 +724,7 @@ static BOOL areEssentiallyEqual(double a, double b) [_webView loadHTMLString:HTMLString baseURL:nil]; } -static NSSet *dataTypes() +static NSSet *dataTypes(void) { return [WKWebsiteDataStore allWebsiteDataTypes]; } diff --git a/browser_patches/webkit/patches/bootstrap.diff b/browser_patches/webkit/patches/bootstrap.diff index 720015ac07..cfe960294f 100644 --- a/browser_patches/webkit/patches/bootstrap.diff +++ b/browser_patches/webkit/patches/bootstrap.diff @@ -1,8 +1,8 @@ diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt -index b4fe2e7aa8c1b89667c5e52e4320f433e6d15bd0..2c81e6493c7e8aa8fa084ab941546c47c67dc73e 100644 +index 522a3aeb15fb3148c4b55c287bbca1e9ef801594..c888f78cebf0dfa148ebc0259edeb5fba369ba7a 100644 --- a/Source/JavaScriptCore/CMakeLists.txt +++ b/Source/JavaScriptCore/CMakeLists.txt -@@ -1393,22 +1393,27 @@ set(JavaScriptCore_INSPECTOR_DOMAINS +@@ -1392,22 +1392,27 @@ set(JavaScriptCore_INSPECTOR_DOMAINS ${JAVASCRIPTCORE_DIR}/inspector/protocol/CSS.json ${JAVASCRIPTCORE_DIR}/inspector/protocol/Canvas.json ${JAVASCRIPTCORE_DIR}/inspector/protocol/Console.json @@ -62,22 +62,6 @@ index e3f99308f7066a980fe75d717bd90a0a5b354b98..d7cd13f5f2a33e9d0fd3bce673244bd0 $(JavaScriptCore)/inspector/protocol/Security.json \ $(JavaScriptCore)/inspector/protocol/ServiceWorker.json \ $(JavaScriptCore)/inspector/protocol/Target.json \ -diff --git a/Source/JavaScriptCore/bindings/ScriptValue.cpp b/Source/JavaScriptCore/bindings/ScriptValue.cpp -index d28bffd30f21910bb63f515efc6fa9c7749825a4..498ea4b88e0befb9b526c188e079bb5b9882b374 100644 ---- a/Source/JavaScriptCore/bindings/ScriptValue.cpp -+++ b/Source/JavaScriptCore/bindings/ScriptValue.cpp -@@ -79,7 +79,10 @@ static RefPtr jsToInspectorValue(JSGlobalObject* globalObject, JSVa - PropertyNameArray propertyNames(vm, PropertyNameMode::Strings, PrivateSymbolMode::Exclude); - object.methodTable()->getOwnPropertyNames(&object, globalObject, propertyNames, DontEnumPropertiesMode::Exclude); - for (auto& name : propertyNames) { -- auto inspectorValue = jsToInspectorValue(globalObject, object.get(globalObject, name), maxDepth); -+ JSValue childValue = object.get(globalObject, name); -+ if (childValue.isUndefined()) -+ continue; -+ auto inspectorValue = jsToInspectorValue(globalObject, childValue, maxDepth); - if (!inspectorValue) - return nullptr; - inspectorObject->setValue(name.string(), inspectorValue.releaseNonNull()); diff --git a/Source/JavaScriptCore/inspector/IdentifiersFactory.cpp b/Source/JavaScriptCore/inspector/IdentifiersFactory.cpp index 528cceee66a1b1c91a0d0e59d5f1a1770a050c17..0f3a341056f429ff282abcab22be4843c60f546c 100644 --- a/Source/JavaScriptCore/inspector/IdentifiersFactory.cpp @@ -118,19 +102,19 @@ index eb25aedee4cd9ebe007e06c2515b37ee095b06f4..badf6559595c8377db1089ca3c25008e static String requestId(unsigned long identifier); }; diff --git a/Source/JavaScriptCore/inspector/InjectedScript.cpp b/Source/JavaScriptCore/inspector/InjectedScript.cpp -index 8b290faebc1865519b0e7c514f497585dfc0bbda..53c68bca057c85c94201ef8e9870f0cb9e4cef6f 100644 +index 4ce807389f1643cdd6249c645f581641ec3a5c71..555fef137b2ff085089f9e4cbd150dc7555da926 100644 --- a/Source/JavaScriptCore/inspector/InjectedScript.cpp +++ b/Source/JavaScriptCore/inspector/InjectedScript.cpp -@@ -91,7 +91,7 @@ void InjectedScript::awaitPromise(const String& promiseObjectId, bool returnByVa +@@ -90,7 +90,7 @@ void InjectedScript::awaitPromise(const String& promiseObjectId, bool returnByVa makeAsyncCall(function, WTFMove(callback)); } -void InjectedScript::callFunctionOn(Protocol::ErrorString& errorString, const String& objectId, const String& expression, const String& arguments, bool returnByValue, bool generatePreview, RefPtr& result, std::optional& wasThrown) +void InjectedScript::callFunctionOn(const String& objectId, const String& expression, const String& arguments, bool returnByValue, bool generatePreview, bool awaitPromise, AsyncCallCallback&& callback) { - Deprecated::ScriptFunctionCall function(injectedScriptObject(), "callFunctionOn"_s, inspectorEnvironment()->functionCallHandler()); + ScriptFunctionCall function(globalObject(), injectedScriptObject(), "callFunctionOn"_s, inspectorEnvironment()->functionCallHandler()); function.appendArgument(objectId); -@@ -99,10 +99,8 @@ void InjectedScript::callFunctionOn(Protocol::ErrorString& errorString, const St +@@ -98,10 +98,8 @@ void InjectedScript::callFunctionOn(Protocol::ErrorString& errorString, const St function.appendArgument(arguments); function.appendArgument(returnByValue); function.appendArgument(generatePreview); @@ -143,7 +127,7 @@ index 8b290faebc1865519b0e7c514f497585dfc0bbda..53c68bca057c85c94201ef8e9870f0cb } void InjectedScript::evaluateOnCallFrame(Protocol::ErrorString& errorString, JSC::JSValue callFrames, const String& callFrameId, const String& expression, const String& objectGroup, bool includeCommandLineAPI, bool returnByValue, bool generatePreview, bool saveResult, RefPtr& result, std::optional& wasThrown, std::optional& savedResultIndex) -@@ -289,6 +287,10 @@ RefPtr InjectedScript::wrapObject(JSC::JSValue +@@ -288,6 +286,10 @@ RefPtr InjectedScript::wrapObject(JSC::JSValue auto callResult = callFunctionWithEvalEnabled(wrapFunction); if (!callResult) return nullptr; @@ -155,7 +139,7 @@ index 8b290faebc1865519b0e7c514f497585dfc0bbda..53c68bca057c85c94201ef8e9870f0cb auto resultValue = toInspectorValue(globalObject(), callResult.value()); if (!resultValue) diff --git a/Source/JavaScriptCore/inspector/InjectedScript.h b/Source/JavaScriptCore/inspector/InjectedScript.h -index e6b24967273095ae424ac9b3fe5e081ee8999ab7..9f7b72259ab79504b8bfcc24d35abe70d7372065 100644 +index f09e489283ebf688f73d1e740c3102306173017b..954c8cef9e9a2d3b7c0f128899fa0b2292258186 100644 --- a/Source/JavaScriptCore/inspector/InjectedScript.h +++ b/Source/JavaScriptCore/inspector/InjectedScript.h @@ -64,7 +64,7 @@ public: @@ -167,8 +151,24 @@ index e6b24967273095ae424ac9b3fe5e081ee8999ab7..9f7b72259ab79504b8bfcc24d35abe70 void getFunctionDetails(Protocol::ErrorString&, const String& functionId, RefPtr& result); void functionDetails(Protocol::ErrorString&, JSC::JSValue, RefPtr& result); void getPreview(Protocol::ErrorString&, const String& objectId, RefPtr& result); +diff --git a/Source/JavaScriptCore/inspector/InjectedScriptBase.cpp b/Source/JavaScriptCore/inspector/InjectedScriptBase.cpp +index 14585eabd64a109573bed2336643f4c52e11f180..a1c34d3891405f1c8f6148a031f5045d2fa4d079 100644 +--- a/Source/JavaScriptCore/inspector/InjectedScriptBase.cpp ++++ b/Source/JavaScriptCore/inspector/InjectedScriptBase.cpp +@@ -84,7 +84,10 @@ static RefPtr jsToInspectorValue(JSC::JSGlobalObject* globalObject, + JSC::PropertyNameArray propertyNames(vm, JSC::PropertyNameMode::Strings, JSC::PrivateSymbolMode::Exclude); + object.methodTable()->getOwnPropertyNames(&object, globalObject, propertyNames, JSC::DontEnumPropertiesMode::Exclude); + for (auto& name : propertyNames) { +- auto inspectorValue = jsToInspectorValue(globalObject, object.get(globalObject, name), maxDepth); ++ JSC::JSValue childValue = object.get(globalObject, name); ++ if (childValue.isUndefined()) ++ continue; ++ auto inspectorValue = jsToInspectorValue(globalObject, childValue, maxDepth); + if (!inspectorValue) + return nullptr; + inspectorObject->setValue(name.string(), inspectorValue.releaseNonNull()); diff --git a/Source/JavaScriptCore/inspector/InjectedScriptSource.js b/Source/JavaScriptCore/inspector/InjectedScriptSource.js -index 26acd0e88787100e12e72bbca29cfeb7a086919c..cab3831dbcfee9bd03d0d9b476b40180ee5ea13d 100644 +index a665049c589ad59f92b147ef2e9e058eb72bb67c..71f4db75938e830e5d8e201c291c17da3aaff6c9 100644 --- a/Source/JavaScriptCore/inspector/InjectedScriptSource.js +++ b/Source/JavaScriptCore/inspector/InjectedScriptSource.js @@ -172,7 +172,7 @@ let InjectedScript = class InjectedScript extends PrototypelessObjectBase @@ -985,13 +985,13 @@ index 96af27ece2ac200e11c4311b3ca0d9d3b5a048da..3168f7806fcbdabec07acc5e304bae1e ], "events": [ diff --git a/Source/JavaScriptCore/inspector/protocol/Page.json b/Source/JavaScriptCore/inspector/protocol/Page.json -index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411e8bc8933 100644 +index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..83ac8c3cbc4a57a27e99a48323fe61a936c10a8b 100644 --- a/Source/JavaScriptCore/inspector/protocol/Page.json +++ b/Source/JavaScriptCore/inspector/protocol/Page.json -@@ -21,7 +21,14 @@ +@@ -20,7 +20,14 @@ + "ScriptEnabled", "ShowDebugBorders", "ShowRepaintCounter", - "WebRTCEncryptionEnabled", - "WebSecurityEnabled" + "WebSecurityEnabled", + "DeviceOrientationEventEnabled", @@ -1004,7 +1004,7 @@ index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411 ] }, { -@@ -63,6 +70,12 @@ +@@ -62,6 +69,12 @@ "enum": ["None", "Lax", "Strict"], "description": "Same-Site policy of a cookie." }, @@ -1017,7 +1017,7 @@ index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411 { "id": "Frame", "type": "object", -@@ -126,6 +139,51 @@ +@@ -125,6 +138,51 @@ { "name": "secure", "type": "boolean", "description": "True if cookie is secure." }, { "name": "sameSite", "$ref": "CookieSameSitePolicy", "description": "Cookie Same-Site policy." } ] @@ -1069,7 +1069,7 @@ index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411 } ], "commands": [ -@@ -145,6 +203,14 @@ +@@ -144,6 +202,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)." } ] }, @@ -1084,7 +1084,7 @@ index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411 { "name": "navigate", "description": "Navigates current page to the given URL.", -@@ -161,6 +227,14 @@ +@@ -160,6 +226,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." } ] }, @@ -1099,7 +1099,7 @@ index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411 { "name": "overrideSetting", "description": "Allows the frontend to override the inspected page's settings.", -@@ -227,7 +301,8 @@ +@@ -226,7 +300,8 @@ "name": "setBootstrapScript", "targetTypes": ["page"], "parameters": [ @@ -1109,7 +1109,7 @@ index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411 ] }, { -@@ -284,6 +359,28 @@ +@@ -283,6 +358,28 @@ { "name": "media", "type": "string", "description": "Media type to emulate. Empty string disables the override." } ] }, @@ -1138,7 +1138,7 @@ index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411 { "name": "snapshotNode", "description": "Capture a snapshot of the specified node that does not include unrelated layers.", -@@ -304,7 +401,8 @@ +@@ -303,7 +400,8 @@ { "name": "y", "type": "integer", "description": "Y coordinate" }, { "name": "width", "type": "integer", "description": "Rectangle width" }, { "name": "height", "type": "integer", "description": "Rectangle height" }, @@ -1148,7 +1148,7 @@ index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411 ], "returns": [ { "name": "dataURL", "type": "string", "description": "Base64-encoded image data (PNG)." } -@@ -322,12 +420,92 @@ +@@ -321,12 +419,92 @@ { "name": "setScreenSizeOverride", "description": "Overrides screen size exposed to DOM and used in media queries for testing with provided values.", @@ -1242,7 +1242,7 @@ index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411 } ], "events": [ -@@ -335,14 +513,16 @@ +@@ -334,14 +512,16 @@ "name": "domContentEventFired", "targetTypes": ["page"], "parameters": [ @@ -1261,7 +1261,7 @@ index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411 ] }, { -@@ -352,6 +532,14 @@ +@@ -351,6 +531,14 @@ { "name": "frame", "$ref": "Frame", "description": "Frame object." } ] }, @@ -1276,7 +1276,7 @@ index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411 { "name": "frameDetached", "description": "Fired when frame has been detached from its parent.", -@@ -380,7 +568,8 @@ +@@ -379,7 +567,8 @@ "targetTypes": ["page"], "parameters": [ { "name": "frameId", "$ref": "Network.FrameId", "description": "Id of the frame that has scheduled a navigation." }, @@ -1286,7 +1286,7 @@ index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411 ] }, { -@@ -391,6 +580,22 @@ +@@ -390,6 +579,22 @@ { "name": "frameId", "$ref": "Network.FrameId", "description": "Id of the frame that has cleared its scheduled navigation." } ] }, @@ -1309,7 +1309,7 @@ index 0752749468843c52d3a86fae5660a5182b1f0df7..65845910c80877dc1529d77d8d6d7411 { "name": "defaultUserPreferencesDidChange", "description": "Fired when the default value of a user preference changes at the system level.", -@@ -398,6 +603,42 @@ +@@ -397,6 +602,42 @@ "parameters": [ { "name": "preferences", "type": "array", "items": { "$ref": "UserPreference" }, "description": "List of user preferences that can be overriden and their new system (default) values." } ] @@ -1644,7 +1644,7 @@ index 0000000000000000000000000000000000000000..7f0cca1ec49681971d7dd81b8f29b50a + ] +} diff --git a/Source/JavaScriptCore/inspector/protocol/Runtime.json b/Source/JavaScriptCore/inspector/protocol/Runtime.json -index 3abd2c55aed68dc1f27ec93951233a6e1c082000..f922c41a1a71d5657750780f9c69e6140a84ea75 100644 +index dfbe4eece1af3748408b5fd968331799aa9e1d30..0e2ae5d96b3cdcc20ecc95ddc7b49538dcb3c302 100644 --- a/Source/JavaScriptCore/inspector/protocol/Runtime.json +++ b/Source/JavaScriptCore/inspector/protocol/Runtime.json @@ -263,12 +263,21 @@ @@ -1865,10 +1865,10 @@ index 026a804a74555ba7dbb13a0e0b84d9953424d85c..952162341951ca3a7713324305f41dd5 Source/third_party/libyuv/include Source/third_party/opus/src/celt Source/third_party/opus/src/include -diff --git a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp +diff --git a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp index 626efe5d02febd3d80066d2013dd479ecec29471..4c05722dfc3fe885968a69b64adc6f0a0470bcb1 100644 ---- a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp -+++ b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp +--- a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp ++++ b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp @@ -376,3 +376,24 @@ __ZN6webrtc20VideoFrameBufferPoolC1Ebm __ZN6webrtc20VideoFrameBufferPoolD1Ev __ZTVN6webrtc12VideoDecoderE @@ -1895,10 +1895,10 @@ index 626efe5d02febd3d80066d2013dd479ecec29471..4c05722dfc3fe885968a69b64adc6f0a +_vpx_codec_version_str +_vpx_codec_vp8_cx diff --git a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig -index bfb84feb38067b09cc799d299e6fd7439782a120..be49c5853776a0077b073808db3b4cfdaf6e653d 100644 +index 39ddbe721ba57835c45a4e590726c7a7c99022c4..4020e136c002c0b768f266d87f656585e748d498 100644 --- a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig +++ b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig -@@ -41,7 +41,7 @@ DYLIB_INSTALL_NAME_BASE_WK_RELOCATABLE_FRAMEWORKS_ = $(NORMAL_UMBRELLA_FRAMEWORK +@@ -37,7 +37,7 @@ DYLIB_INSTALL_NAME_BASE_WK_RELOCATABLE_FRAMEWORKS_ = $(NORMAL_UMBRELLA_FRAMEWORK DYLIB_INSTALL_NAME_BASE_WK_RELOCATABLE_FRAMEWORKS_YES = @loader_path/../../../; GCC_WARN_64_TO_32_BIT_CONVERSION = NO; @@ -1908,7 +1908,7 @@ index bfb84feb38067b09cc799d299e6fd7439782a120..be49c5853776a0077b073808db3b4cfd PUBLIC_HEADERS_FOLDER_PREFIX = $(WK_LIBRARY_HEADERS_FOLDER_PATH); INSTALL_PUBLIC_HEADER_PREFIX = $(INSTALL_PATH_PREFIX)$(PUBLIC_HEADERS_FOLDER_PREFIX); diff --git a/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj b/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj -index 82eb8252b613cd3fe29530285d4ab2748c7be484..736a3d3a82dc35cf631b5ee9cbb4721843fb4ab7 100644 +index 3156829ef03b1c4d565a9decde0fa36a93736b2c..52f3a7e7ca8287ec2d1b2341f5f24f1e9171ed9d 100644 --- a/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj +++ b/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj @@ -6,6 +6,20 @@ @@ -1956,7 +1956,7 @@ index 82eb8252b613cd3fe29530285d4ab2748c7be484..736a3d3a82dc35cf631b5ee9cbb47218 /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ -@@ -10849,6 +10873,9 @@ +@@ -10848,6 +10872,9 @@ DDF30D9027C5C725006A526F /* receive_side_congestion_controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = receive_side_congestion_controller.h; sourceTree = ""; }; DDF30D9327C5C756006A526F /* bwe_defines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bwe_defines.h; sourceTree = ""; }; DDF30D9427C5C756006A526F /* remote_bitrate_estimator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remote_bitrate_estimator.h; sourceTree = ""; }; @@ -1966,7 +1966,7 @@ index 82eb8252b613cd3fe29530285d4ab2748c7be484..736a3d3a82dc35cf631b5ee9cbb47218 FB39D0D11200F0E300088E69 /* libwebrtc.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libwebrtc.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ -@@ -19276,6 +19303,7 @@ +@@ -19274,6 +19301,7 @@ isa = PBXGroup; children = ( CDFD2F9224C4B2F90048DAC3 /* common */, @@ -1974,7 +1974,7 @@ index 82eb8252b613cd3fe29530285d4ab2748c7be484..736a3d3a82dc35cf631b5ee9cbb47218 CDEBB19224C0191800ADBD44 /* webm_parser */, ); path = libwebm; -@@ -19738,6 +19766,16 @@ +@@ -19736,6 +19764,16 @@ path = include; sourceTree = ""; }; @@ -1991,7 +1991,7 @@ index 82eb8252b613cd3fe29530285d4ab2748c7be484..736a3d3a82dc35cf631b5ee9cbb47218 FB39D06E1200ED9200088E69 = { isa = PBXGroup; children = ( -@@ -22694,6 +22732,7 @@ +@@ -22693,6 +22731,7 @@ ); dependencies = ( 410B3827292B73E90003E515 /* PBXTargetDependency */, @@ -1999,7 +1999,7 @@ index 82eb8252b613cd3fe29530285d4ab2748c7be484..736a3d3a82dc35cf631b5ee9cbb47218 DD2E76E827C6B69A00F2A74C /* PBXTargetDependency */, CDEBB4CC24C01AB400ADBD44 /* PBXTargetDependency */, 411ED040212E0811004320BA /* PBXTargetDependency */, -@@ -22753,6 +22792,7 @@ +@@ -22752,6 +22791,7 @@ CDEBB11824C0187400ADBD44 /* webm */, DDEBB11824C0187400ADBD44 /* aom */, DDF30D0527C5C003006A526F /* absl */, @@ -2007,7 +2007,7 @@ index 82eb8252b613cd3fe29530285d4ab2748c7be484..736a3d3a82dc35cf631b5ee9cbb47218 ); }; /* End PBXProject section */ -@@ -22813,6 +22853,23 @@ +@@ -22833,6 +22873,23 @@ shellPath = /bin/sh; shellScript = "\"${SRCROOT}/Scripts/create-symlink-to-altroot.sh\"\n"; }; @@ -2031,7 +2031,7 @@ index 82eb8252b613cd3fe29530285d4ab2748c7be484..736a3d3a82dc35cf631b5ee9cbb47218 /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ -@@ -24616,6 +24673,9 @@ +@@ -24636,6 +24693,9 @@ 5CDD865E1E43B8B500621E92 /* min_max_operations.c in Sources */, 4189395B242A71F5007FDC41 /* min_video_bitrate_experiment.cc in Sources */, 41B8D8FB28CB85CB00E5FA37 /* missing_mandatory_parameter_cause.cc in Sources */, @@ -2041,7 +2041,7 @@ index 82eb8252b613cd3fe29530285d4ab2748c7be484..736a3d3a82dc35cf631b5ee9cbb47218 4131C387234B957D0028A615 /* moving_average.cc in Sources */, 41FCBB1521B1F7AA00A5DF27 /* moving_average.cc in Sources */, 5CD286101E6A64C90094FDC8 /* moving_max.cc in Sources */, -@@ -25340,6 +25400,11 @@ +@@ -25360,6 +25420,11 @@ target = DDF30D0527C5C003006A526F /* absl */; targetProxy = DD2E76E727C6B69A00F2A74C /* PBXContainerItemProxy */; }; @@ -2053,7 +2053,7 @@ index 82eb8252b613cd3fe29530285d4ab2748c7be484..736a3d3a82dc35cf631b5ee9cbb47218 /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ -@@ -25567,6 +25632,27 @@ +@@ -25587,6 +25652,27 @@ }; name = Production; }; @@ -2081,7 +2081,7 @@ index 82eb8252b613cd3fe29530285d4ab2748c7be484..736a3d3a82dc35cf631b5ee9cbb47218 FB39D0711200ED9200088E69 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 5D7C59C71208C68B001C873E /* DebugRelease.xcconfig */; -@@ -25699,6 +25785,16 @@ +@@ -25719,6 +25805,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Production; }; @@ -2099,10 +2099,10 @@ index 82eb8252b613cd3fe29530285d4ab2748c7be484..736a3d3a82dc35cf631b5ee9cbb47218 isa = XCConfigurationList; buildConfigurations = ( diff --git a/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml b/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml -index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a318642f44c131 100644 +index b8eae87efa5548a716e68bc4e14f79574cd2fc79..701f2f038b8b74c6bf586f68d8f6dfe47f523edb 100644 --- a/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml +++ b/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml -@@ -562,6 +562,7 @@ AspectRatioOfImgFromWidthAndHeightEnabled: +@@ -576,6 +576,7 @@ AspectRatioOfImgFromWidthAndHeightEnabled: default: true # FIXME: This is on by default in WebKit2 PLATFORM(COCOA). Perhaps we should consider turning it on for WebKitLegacy as well. @@ -2110,7 +2110,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 AsyncClipboardAPIEnabled: type: bool status: mature -@@ -572,7 +573,7 @@ AsyncClipboardAPIEnabled: +@@ -586,7 +587,7 @@ AsyncClipboardAPIEnabled: default: false WebKit: "PLATFORM(COCOA) || PLATFORM(GTK)" : true @@ -2119,7 +2119,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 WebCore: default: false -@@ -1718,6 +1719,7 @@ CrossOriginEmbedderPolicyEnabled: +@@ -1775,6 +1776,7 @@ CrossOriginEmbedderPolicyEnabled: WebCore: default: false @@ -2127,7 +2127,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 CrossOriginOpenerPolicyEnabled: type: bool status: stable -@@ -1728,7 +1730,7 @@ CrossOriginOpenerPolicyEnabled: +@@ -1785,7 +1787,7 @@ CrossOriginOpenerPolicyEnabled: WebKitLegacy: default: false WebKit: @@ -2136,7 +2136,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 WebCore: default: false -@@ -1758,7 +1760,7 @@ CustomPasteboardDataEnabled: +@@ -1815,7 +1817,7 @@ CustomPasteboardDataEnabled: WebKitLegacy: default: false WebKit: @@ -2145,7 +2145,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 default: false DNSPrefetchingEnabled: -@@ -1803,6 +1805,7 @@ DOMAudioSessionFullEnabled: +@@ -1860,6 +1862,7 @@ DOMAudioSessionFullEnabled: WebCore: default: false @@ -2153,7 +2153,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 DOMPasteAccessRequestsEnabled: type: bool status: internal -@@ -1814,7 +1817,7 @@ DOMPasteAccessRequestsEnabled: +@@ -1871,7 +1874,7 @@ DOMPasteAccessRequestsEnabled: default: false WebKit: "PLATFORM(IOS) || PLATFORM(MAC) || PLATFORM(GTK)": true @@ -2162,7 +2162,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 WebCore: default: false -@@ -3170,6 +3173,7 @@ InspectorAttachmentSide: +@@ -3229,6 +3232,7 @@ InspectorAttachmentSide: WebKit: default: 0 @@ -2170,7 +2170,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 InspectorStartsAttached: type: bool status: embedder -@@ -3177,7 +3181,7 @@ InspectorStartsAttached: +@@ -3236,7 +3240,7 @@ InspectorStartsAttached: exposed: [ WebKit ] defaultValue: WebKit: @@ -2179,7 +2179,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 InspectorWindowFrame: type: String -@@ -3546,6 +3550,7 @@ LayoutViewportHeightExpansionFactor: +@@ -3605,6 +3609,7 @@ LayoutViewportHeightExpansionFactor: WebCore: default: 0 @@ -2187,7 +2187,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 LazyIframeLoadingEnabled: type: bool status: stable -@@ -3556,10 +3561,11 @@ LazyIframeLoadingEnabled: +@@ -3615,9 +3620,9 @@ LazyIframeLoadingEnabled: WebKitLegacy: default: true WebKit: @@ -2197,20 +2197,9 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 - default: true + default: false -+# Playwright: disable setting. LazyImageLoadingEnabled: type: bool - status: stable -@@ -3570,7 +3576,7 @@ LazyImageLoadingEnabled: - WebKitLegacy: - default: false - WebKit: -- default: true -+ default: false - WebCore: - default: false - -@@ -4896,6 +4902,19 @@ PluginsEnabled: +@@ -4971,6 +4976,19 @@ PluginsEnabled: WebCore: default: false @@ -2230,7 +2219,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 PopoverAttributeEnabled: type: bool status: stable -@@ -6519,6 +6538,7 @@ UseCGDisplayListsForDOMRendering: +@@ -6620,6 +6638,7 @@ UseCGDisplayListsForDOMRendering: WebKit: default: true @@ -2238,7 +2227,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 UseGPUProcessForCanvasRenderingEnabled: type: bool status: stable -@@ -6531,7 +6551,7 @@ UseGPUProcessForCanvasRenderingEnabled: +@@ -6632,7 +6651,7 @@ UseGPUProcessForCanvasRenderingEnabled: defaultValue: WebKit: "ENABLE(GPU_PROCESS_BY_DEFAULT)": true @@ -2247,7 +2236,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 default: false UseGPUProcessForDOMRenderingEnabled: -@@ -6575,6 +6595,7 @@ UseGPUProcessForMediaEnabled: +@@ -6674,6 +6693,7 @@ UseGPUProcessForMediaEnabled: "ENABLE(GPU_PROCESS_BY_DEFAULT)": true default: false @@ -2255,7 +2244,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 UseGPUProcessForWebGLEnabled: type: bool status: internal -@@ -6586,7 +6607,7 @@ UseGPUProcessForWebGLEnabled: +@@ -6685,7 +6705,7 @@ UseGPUProcessForWebGLEnabled: default: false WebKit: "ENABLE(GPU_PROCESS_BY_DEFAULT) && ENABLE(GPU_PROCESS_WEBGL_BY_DEFAULT)": true @@ -2265,7 +2254,7 @@ index 5415b62f60ba865ab836c540678e070eaae0691d..330c152eb4f1cf86c846021f61a31864 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 3fdacb7ba417ae4df1e10ee3a22a1970309ff506..374625de2805d1b4e2eff00c88377497ee65b869 100644 +index f5f9888057a27c7cb98a5e27e8d79df3044a16f8..621dc90e4003145f61d8c9eb7b4a4569d5c1f1b1 100644 --- a/Source/WTF/wtf/PlatformEnable.h +++ b/Source/WTF/wtf/PlatformEnable.h @@ -412,7 +412,7 @@ @@ -2286,21 +2275,8 @@ index 3fdacb7ba417ae4df1e10ee3a22a1970309ff506..374625de2805d1b4e2eff00c88377497 #endif #if !defined(ENABLE_TOUCH_ACTION_REGIONS) -diff --git a/Source/WTF/wtf/PlatformEnableCocoa.h b/Source/WTF/wtf/PlatformEnableCocoa.h -index c860de841fca370eaeb07bdc95a5f2d80eb86acc..218f860610c18dbd4fab07dc52ab1061c20a58b0 100644 ---- a/Source/WTF/wtf/PlatformEnableCocoa.h -+++ b/Source/WTF/wtf/PlatformEnableCocoa.h -@@ -267,7 +267,7 @@ - #define ENABLE_DATA_DETECTION 1 - #endif - --#if !defined(ENABLE_DEVICE_ORIENTATION) && !PLATFORM(MAC) && !PLATFORM(MACCATALYST) -+#if !defined(ENABLE_DEVICE_ORIENTATION) && !PLATFORM(MACCATALYST) - #define ENABLE_DEVICE_ORIENTATION 1 - #endif - diff --git a/Source/WTF/wtf/PlatformHave.h b/Source/WTF/wtf/PlatformHave.h -index a4d2098b0bd73ab414aa83047257857d5290ceea..0bd10e4823bb64f6dd022eb0bbb5f6bd9040fe98 100644 +index 9465006787c3d98cfac6777dc70eaec84cc3e57e..30e9482570993f847fb0cec3a4fa8403c6903a9f 100644 --- a/Source/WTF/wtf/PlatformHave.h +++ b/Source/WTF/wtf/PlatformHave.h @@ -422,7 +422,7 @@ @@ -2312,7 +2288,7 @@ index a4d2098b0bd73ab414aa83047257857d5290ceea..0bd10e4823bb64f6dd022eb0bbb5f6bd #define HAVE_OS_DARK_MODE_SUPPORT 1 #endif -@@ -1327,7 +1327,8 @@ +@@ -1328,7 +1328,8 @@ #endif #if PLATFORM(MAC) @@ -2323,7 +2299,7 @@ index a4d2098b0bd73ab414aa83047257857d5290ceea..0bd10e4823bb64f6dd022eb0bbb5f6bd #if (!defined(HAVE_LOCKDOWN_MODE_PDF_ADDITIONS) && \ diff --git a/Source/WebCore/DerivedSources.make b/Source/WebCore/DerivedSources.make -index 0330b0ee15e0f53943bb14ad4cd5186820ee71fa..6fcdb1c18555970c3d06b7299d8c5cfbfa00756a 100644 +index f4c0f3bf7d49dc3e28295a352193db668bb2ca01..09bf179b35afafaa4372fd9f99e769fa965afb87 100644 --- a/Source/WebCore/DerivedSources.make +++ b/Source/WebCore/DerivedSources.make @@ -1063,6 +1063,10 @@ JS_BINDING_IDLS := \ @@ -2411,7 +2387,7 @@ index e8647e7b05931395f7b497bfb16408331c278ebf..1aceec655433e68c7829c8b1df3c06f1 set(CSS_VALUE_PLATFORM_DEFINES "HAVE_OS_DARK_MODE_SUPPORT=1") diff --git a/Source/WebCore/SourcesCocoa.txt b/Source/WebCore/SourcesCocoa.txt -index 29c478932d3730ea8c07d47209463a40dcc120eb..98833213b5c6ab625ebec259fe228777ffb20091 100644 +index 73659fb63491ffb4e3b13f6f0e1be05a4ab7d5bd..9dfbac4c044116073c953b251af186abab67d660 100644 --- a/Source/WebCore/SourcesCocoa.txt +++ b/Source/WebCore/SourcesCocoa.txt @@ -692,3 +692,9 @@ platform/graphics/angle/GraphicsContextGLANGLE.cpp @no-unify @@ -2425,7 +2401,7 @@ index 29c478932d3730ea8c07d47209463a40dcc120eb..98833213b5c6ab625ebec259fe228777 +JSTouchList.cpp +// Playwright end diff --git a/Source/WebCore/SourcesGTK.txt b/Source/WebCore/SourcesGTK.txt -index 1223ea836df4813f3f4928007473a1a4ad485964..f1eb990ce678d3434201cd0586e8d4a13c108089 100644 +index 7df855a40eb3a6d436344f62be590ae6b04dd075..d361e813dec0bc71bb88ee720f31d00b4202c5e9 100644 --- a/Source/WebCore/SourcesGTK.txt +++ b/Source/WebCore/SourcesGTK.txt @@ -127,3 +127,10 @@ platform/text/hyphen/HyphenationLibHyphen.cpp @@ -2440,10 +2416,10 @@ index 1223ea836df4813f3f4928007473a1a4ad485964..f1eb990ce678d3434201cd0586e8d4a1 +JSSpeechSynthesisEventInit.cpp +// Playwright: end. diff --git a/Source/WebCore/SourcesWPE.txt b/Source/WebCore/SourcesWPE.txt -index c0a24730da1761953388be96319d6691df126b9d..89841bdd23c06f5f8d3223596f15e29ed06ddf28 100644 +index 59835e77a29bb8f7de658f64e2a3665dd46f40c4..950ccf859147d92c79f110525a28263163c35d54 100644 --- a/Source/WebCore/SourcesWPE.txt +++ b/Source/WebCore/SourcesWPE.txt -@@ -43,6 +43,8 @@ editing/libwpe/EditorLibWPE.cpp +@@ -45,6 +45,8 @@ editing/libwpe/EditorLibWPE.cpp loader/soup/ResourceLoaderSoup.cpp @@ -2452,7 +2428,7 @@ index c0a24730da1761953388be96319d6691df126b9d..89841bdd23c06f5f8d3223596f15e29e page/linux/ResourceUsageOverlayLinux.cpp page/linux/ResourceUsageThreadLinux.cpp -@@ -89,6 +91,17 @@ platform/text/LocaleICU.cpp +@@ -91,6 +93,17 @@ platform/text/LocaleICU.cpp platform/unix/LoggingUnix.cpp @@ -2471,10 +2447,10 @@ index c0a24730da1761953388be96319d6691df126b9d..89841bdd23c06f5f8d3223596f15e29e +JSSpeechSynthesisEventInit.cpp +// Playwright: end. diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj -index a406bd8ad9653fab38976b458a49d400b4b66e30..d08880a50b58e16d0684183b0174a4c41ab4375f 100644 +index 1d29265b3d4c2d9f27f0b0e9abbadef62f5b5b39..26760067772988145a752952c3112256ddd05f8b 100644 --- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj +++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj -@@ -5858,6 +5858,13 @@ +@@ -5885,6 +5885,13 @@ EDE3A5000C7A430600956A37 /* ColorMac.h in Headers */ = {isa = PBXBuildFile; fileRef = EDE3A4FF0C7A430600956A37 /* ColorMac.h */; settings = {ATTRIBUTES = (Private, ); }; }; EDEC98030AED7E170059137F /* WebCorePrefix.h in Headers */ = {isa = PBXBuildFile; fileRef = EDEC98020AED7E170059137F /* WebCorePrefix.h */; }; EFCC6C8F20FE914400A2321B /* CanvasActivityRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = EFCC6C8D20FE914000A2321B /* CanvasActivityRecord.h */; settings = {ATTRIBUTES = (Private, ); }; }; @@ -2488,7 +2464,7 @@ index a406bd8ad9653fab38976b458a49d400b4b66e30..d08880a50b58e16d0684183b0174a4c4 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, ); }; }; -@@ -19017,6 +19024,14 @@ +@@ -19086,6 +19093,14 @@ EDEC98020AED7E170059137F /* WebCorePrefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WebCorePrefix.h; sourceTree = ""; tabWidth = 4; usesTabs = 0; }; 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 = ""; }; @@ -2503,7 +2479,7 @@ index a406bd8ad9653fab38976b458a49d400b4b66e30..d08880a50b58e16d0684183b0174a4c4 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 = ""; }; -@@ -26143,6 +26158,11 @@ +@@ -26228,6 +26243,11 @@ BC4A5324256055590028C592 /* TextDirectionSubmenuInclusionBehavior.h */, 2D4F96F11A1ECC240098BF88 /* TextIndicator.cpp */, 2D4F96F21A1ECC240098BF88 /* TextIndicator.h */, @@ -2515,7 +2491,7 @@ index a406bd8ad9653fab38976b458a49d400b4b66e30..d08880a50b58e16d0684183b0174a4c4 F48570A42644C76D00C05F71 /* TranslationContextMenuInfo.h */, F4E1965F21F26E4E00285078 /* UndoItem.cpp */, 2ECDBAD521D8906300F00ECD /* UndoItem.h */, -@@ -32251,6 +32271,8 @@ +@@ -32347,6 +32367,8 @@ 29E4D8DF16B0940F00C84704 /* PlatformSpeechSynthesizer.h */, 1AD8F81A11CAB9E900E93E54 /* PlatformStrategies.cpp */, 1AD8F81911CAB9E900E93E54 /* PlatformStrategies.h */, @@ -2524,7 +2500,7 @@ index a406bd8ad9653fab38976b458a49d400b4b66e30..d08880a50b58e16d0684183b0174a4c4 0FD7C21D23CE41E30096D102 /* PlatformWheelEvent.cpp */, 935C476A09AC4D4F00A6AAB4 /* PlatformWheelEvent.h */, BCBB8AB513F1AFB000734DF0 /* PODInterval.h */, -@@ -34754,6 +34776,7 @@ +@@ -34870,6 +34892,7 @@ AD6E71AB1668899D00320C13 /* DocumentSharedObjectPool.h */, 6BDB5DC1227BD3B800919770 /* DocumentStorageAccess.cpp */, 6BDB5DC0227BD3B800919770 /* DocumentStorageAccess.h */, @@ -2532,7 +2508,7 @@ index a406bd8ad9653fab38976b458a49d400b4b66e30..d08880a50b58e16d0684183b0174a4c4 7CE7FA5B1EF882300060C9D6 /* DocumentTouch.cpp */, 7CE7FA591EF882300060C9D6 /* DocumentTouch.h */, A8185F3209765765005826D9 /* DocumentType.cpp */, -@@ -39237,6 +39260,8 @@ +@@ -39370,6 +39393,8 @@ 1AD8F81B11CAB9E900E93E54 /* PlatformStrategies.h in Headers */, 0F7D07331884C56C00B4AF86 /* PlatformTextTrack.h in Headers */, 074E82BB18A69F0E007EF54C /* PlatformTimeRanges.h in Headers */, @@ -2541,7 +2517,7 @@ index a406bd8ad9653fab38976b458a49d400b4b66e30..d08880a50b58e16d0684183b0174a4c4 CDD08ABD277E542600EA3755 /* PlatformTrackConfiguration.h in Headers */, CD1F9B022700323D00617EB6 /* PlatformVideoColorPrimaries.h in Headers */, CD1F9B01270020B700617EB6 /* PlatformVideoColorSpace.h in Headers */, -@@ -40452,6 +40477,7 @@ +@@ -40599,6 +40624,7 @@ 0F54DD081881D5F5003EEDBB /* Touch.h in Headers */, 71B7EE0D21B5C6870031C1EF /* TouchAction.h in Headers */, 0F54DD091881D5F5003EEDBB /* TouchEvent.h in Headers */, @@ -2549,7 +2525,7 @@ index a406bd8ad9653fab38976b458a49d400b4b66e30..d08880a50b58e16d0684183b0174a4c4 0F54DD0A1881D5F5003EEDBB /* TouchList.h in Headers */, 070334D71459FFD5008D8D45 /* TrackBase.h in Headers */, BE88E0C21715CE2600658D98 /* TrackListBase.h in Headers */, -@@ -41424,6 +41450,9 @@ +@@ -41555,6 +41581,9 @@ 1ABA76CA11D20E50004C201C /* CSSPropertyNames.cpp in Sources */, 2D22830323A8470700364B7E /* CursorMac.mm in Sources */, 5CBD59592280E926002B22AA /* CustomHeaderFields.cpp in Sources */, @@ -2559,7 +2535,7 @@ index a406bd8ad9653fab38976b458a49d400b4b66e30..d08880a50b58e16d0684183b0174a4c4 7CE6CBFD187F394900D46BF5 /* FormatConverter.cpp in Sources */, 4667EA3E2968D9DA00BAB1E2 /* GameControllerHapticEffect.mm in Sources */, 46FE73D32968E52000B8064C /* GameControllerHapticEngines.mm in Sources */, -@@ -41501,6 +41530,9 @@ +@@ -41632,6 +41661,9 @@ CE88EE262414467B007F29C2 /* TextAlternativeWithRange.mm in Sources */, BE39137129B267F500FA5D4F /* TextTransformCocoa.cpp in Sources */, 51DF6D800B92A18E00C2DC85 /* ThreadCheck.mm in Sources */, @@ -2570,7 +2546,7 @@ index a406bd8ad9653fab38976b458a49d400b4b66e30..d08880a50b58e16d0684183b0174a4c4 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 82fbb139ecf1c1f273d1420169910ec437a361a5..50ed86d58da2974e1d8f9e33839656746a9edd08 100644 +index d03040fc82d17e0dff9bd6c158354911a9471238..923713dce16b4fa848b9404cf5390c255d103406 100644 --- a/Source/WebCore/accessibility/AccessibilityObject.cpp +++ b/Source/WebCore/accessibility/AccessibilityObject.cpp @@ -64,6 +64,7 @@ @@ -2581,7 +2557,7 @@ index 82fbb139ecf1c1f273d1420169910ec437a361a5..50ed86d58da2974e1d8f9e3383965674 #include "LocalFrame.h" #include "LocalizedStrings.h" #include "MathMLNames.h" -@@ -3833,9 +3834,14 @@ AccessibilityObjectInclusion AccessibilityObject::defaultObjectInclusion() const +@@ -3861,9 +3862,14 @@ AccessibilityObjectInclusion AccessibilityObject::defaultObjectInclusion() const if (roleValue() == AccessibilityRole::ApplicationDialog) return AccessibilityObjectInclusion::IncludeObject; @@ -2598,11 +2574,24 @@ index 82fbb139ecf1c1f273d1420169910ec437a361a5..50ed86d58da2974e1d8f9e3383965674 bool AccessibilityObject::accessibilityIsIgnored() const { AXComputedObjectAttributeCache* attributeCache = nullptr; +diff --git a/Source/WebCore/bindings/js/IDBBindingUtilities.cpp b/Source/WebCore/bindings/js/IDBBindingUtilities.cpp +index 22b679d638964ee52e822e01d4e597db82692ff0..b98d1de7f7905c63983032cf436e641ae0e42cbe 100644 +--- a/Source/WebCore/bindings/js/IDBBindingUtilities.cpp ++++ b/Source/WebCore/bindings/js/IDBBindingUtilities.cpp +@@ -475,7 +475,7 @@ static IndexKey::Data createKeyPathArray(JSGlobalObject& lexicalGlobalObject, JS + void generateIndexKeyForValue(JSGlobalObject& lexicalGlobalObject, const IDBIndexInfo& info, JSValue value, IndexKey& outKey, const std::optional& objectStoreKeyPath, const IDBKeyData& objectStoreKey) + { + auto keyDatas = createKeyPathArray(lexicalGlobalObject, value, info, objectStoreKeyPath, objectStoreKey); +- if (std::holds_alternative(keyDatas)) ++ if (std::holds_alternative(keyDatas)) + return; + + outKey = IndexKey(WTFMove(keyDatas)); diff --git a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h -index 1fea6ba934a6e4b8ab61ba48ec3cbd6e5773ffba..789fde9658c334993929d35990381a5ffaed165a 100644 +index 2db24fbae41f43e8f31e0560e9aaf422f7e45997..cd033ed79b1049302cc180ff105733b3a859b285 100644 --- a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h +++ b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h -@@ -168,6 +168,8 @@ namespace WebCore { +@@ -169,6 +169,8 @@ namespace WebCore { macro(DecompressionStreamTransform) \ macro(DelayNode) \ macro(DeprecationReportBody) \ @@ -2612,10 +2601,10 @@ index 1fea6ba934a6e4b8ab61ba48ec3cbd6e5773ffba..789fde9658c334993929d35990381a5f macro(DynamicsCompressorNode) \ macro(ElementInternals) \ diff --git a/Source/WebCore/css/query/MediaQueryFeatures.cpp b/Source/WebCore/css/query/MediaQueryFeatures.cpp -index f2215273a421de9a02e5310d520e7c4249efbe92..21cfcd0aee3655f585faa71c594aa5615216e45e 100644 +index b40c3214248cebffe812e2291c338c2a90e02c7a..5978fb6fa188d0ff0f6487f8b36914182359e0b8 100644 --- a/Source/WebCore/css/query/MediaQueryFeatures.cpp +++ b/Source/WebCore/css/query/MediaQueryFeatures.cpp -@@ -368,7 +368,11 @@ const FeatureSchema& forcedColors() +@@ -369,7 +369,11 @@ const FeatureSchema& forcedColors() static MainThreadNeverDestroyed schema { "forced-colors"_s, Vector { CSSValueNone, CSSValueActive }, @@ -2628,7 +2617,7 @@ index f2215273a421de9a02e5310d520e7c4249efbe92..21cfcd0aee3655f585faa71c594aa561 return MatchingIdentifiers { CSSValueNone }; } }; -@@ -551,6 +555,9 @@ const FeatureSchema& prefersReducedMotion() +@@ -552,6 +556,9 @@ const FeatureSchema& prefersReducedMotion() [](auto& context) { bool userPrefersReducedMotion = [&] { auto& frame = *context.document.frame(); @@ -2732,14 +2721,22 @@ index f27718c1e2b8cd0a8075e556d4cdba7d9ae8fc54..2b61721594e5435845f3151e0de345e9 ] partial interface Element { undefined requestPointerLock(); diff --git a/Source/WebCore/dom/PointerEvent.cpp b/Source/WebCore/dom/PointerEvent.cpp -index 936f9913c28269fa1a425b87f8458328e1a7d715..3e7bb61930d8f0f2f46b881968ff04d7bc6b32f1 100644 +index 936f9913c28269fa1a425b87f8458328e1a7d715..c979965716db643209daae81d14b334a94c2523d 100644 --- a/Source/WebCore/dom/PointerEvent.cpp +++ b/Source/WebCore/dom/PointerEvent.cpp -@@ -116,4 +116,61 @@ EventInterface PointerEvent::eventInterface() const +@@ -28,6 +28,7 @@ + + #include "EventNames.h" + #include "Node.h" ++#include "PlatformTouchEvent.h" + #include + + namespace WebCore { +@@ -116,4 +117,63 @@ EventInterface PointerEvent::eventInterface() const return PointerEventInterfaceType; } -+#if ENABLE(TOUCH_EVENTS) && !PLATFORM(IOS_FAMILY) ++#if ENABLE(TOUCH_EVENTS) && !PLATFORM(IOS_FAMILY) && !PLATFORM(WPE) + +static const AtomString& pointerEventType(PlatformTouchPoint::State state) +{ @@ -2769,23 +2766,25 @@ index 936f9913c28269fa1a425b87f8458328e1a7d715..3e7bb61930d8f0f2f46b881968ff04d7 +static unsigned short buttonsForType(const AtomString& type) +{ + // We have contact with the touch surface for most events except when we've released the touch or canceled it. -+ return (type == eventNames().pointerupEvent || type == eventNames().pointeroutEvent || type == eventNames().pointerleaveEvent || type == eventNames().pointercancelEvent) ? 0 : 1; ++ auto& eventNames = WebCore::eventNames(); ++ return (type == eventNames.pointerupEvent || type == eventNames.pointeroutEvent || type == eventNames.pointerleaveEvent || type == eventNames.pointercancelEvent) ? 0 : 1; +} + -+Ref PointerEvent::create(const PlatformTouchEvent& event, unsigned index, bool isPrimary, Ref&& view) ++Ref PointerEvent::create(const PlatformTouchEvent& event, unsigned index, bool isPrimary, Ref&& view, const IntPoint& touchDelta) +{ + const auto& type = pointerEventType(event.touchPoints().at(index).state()); -+ return adoptRef(*new PointerEvent(type, event, typeIsCancelable(type), index, isPrimary, WTFMove(view))); ++ return adoptRef(*new PointerEvent(type, event, typeIsCancelable(type), index, isPrimary, WTFMove(view), touchDelta)); +} + -+Ref PointerEvent::create(const AtomString& type, const PlatformTouchEvent& event, unsigned index, bool isPrimary, Ref&& view) ++Ref PointerEvent::create(const AtomString& type, const PlatformTouchEvent& event, unsigned index, bool isPrimary, Ref&& view, const IntPoint& touchDelta) +{ -+ return adoptRef(*new PointerEvent(type, event, typeIsCancelable(type), index, isPrimary, WTFMove(view))); ++ return adoptRef(*new PointerEvent(type, event, typeIsCancelable(type), index, isPrimary, WTFMove(view), touchDelta)); +} + -+PointerEvent::PointerEvent(const AtomString& type, const PlatformTouchEvent& event, IsCancelable isCancelable, unsigned index, bool isPrimary, Ref&& view) -+ : MouseEvent(type, typeCanBubble(type), isCancelable, typeIsComposed(type), event.timestamp().approximateMonotonicTime(), WTFMove(view), 0, event.touchPoints().at(index).pos(), event.touchPoints().at(index).pos(), 0, 0, event.modifiers(), buttonForType(type), buttonsForType(type), nullptr, 0, 0, IsSimulated::No, IsTrusted::Yes) -+ , m_pointerId(2) ++PointerEvent::PointerEvent(const AtomString& type, const PlatformTouchEvent& event, IsCancelable isCancelable, unsigned index, bool isPrimary, Ref&& view, const IntPoint& touchDelta) ++ : MouseEvent(type, typeCanBubble(type), isCancelable, typeIsComposed(type), event.timestamp().approximateMonotonicTime(), WTFMove(view), 0, ++ event.touchPoints().at(index).pos(), event.touchPoints().at(index).pos(), touchDelta.x(), touchDelta.y(), event.modifiers(), buttonForType(type), buttonsForType(type), nullptr, 0, 0, IsSimulated::No, IsTrusted::Yes) ++ , m_pointerId(event.touchPoints().at(index).id()) + , m_width(2 * event.touchPoints().at(index).radiusX()) + , m_height(2 * event.touchPoints().at(index).radiusY()) + , m_pressure(event.touchPoints().at(index).force()) @@ -2798,7 +2797,7 @@ index 936f9913c28269fa1a425b87f8458328e1a7d715..3e7bb61930d8f0f2f46b881968ff04d7 + } // namespace WebCore diff --git a/Source/WebCore/dom/PointerEvent.h b/Source/WebCore/dom/PointerEvent.h -index c5d7bac078c966c1eb1a645b05a9a1bd35c5b413..2b6cab2f67371d82b1c2b83d78b56f603fb4cf24 100644 +index 17784dfc482c3033ea0e3ce7fdcf75b2eb4fc9d7..956c05246b5c1368e2c5257b347848d1dab4b969 100644 --- a/Source/WebCore/dom/PointerEvent.h +++ b/Source/WebCore/dom/PointerEvent.h @@ -33,6 +33,8 @@ @@ -2809,23 +2808,23 @@ index c5d7bac078c966c1eb1a645b05a9a1bd35c5b413..2b6cab2f67371d82b1c2b83d78b56f60 +#include "PlatformTouchEvent.h" #endif - namespace WebCore { -@@ -81,7 +83,7 @@ public: + #if ENABLE(TOUCH_EVENTS) && PLATFORM(WPE) +@@ -85,7 +87,7 @@ public: static Ref create(const AtomString& type, short button, const MouseEvent&, PointerID, const String& pointerType); static Ref create(const AtomString& type, PointerID, const String& pointerType, IsPrimary = IsPrimary::No); --#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS_FAMILY) +-#if ENABLE(TOUCH_EVENTS) && (PLATFORM(IOS_FAMILY) || PLATFORM(WPE)) +#if ENABLE(TOUCH_EVENTS) - static Ref create(const PlatformTouchEvent&, unsigned touchIndex, bool isPrimary, Ref&&); - static Ref create(const AtomString& type, const PlatformTouchEvent&, unsigned touchIndex, bool isPrimary, Ref&&); + static Ref create(const PlatformTouchEvent&, unsigned touchIndex, bool isPrimary, Ref&&, const IntPoint& touchDelta = { }); + static Ref create(const AtomString& type, const PlatformTouchEvent&, unsigned touchIndex, bool isPrimary, Ref&&, const IntPoint& touchDelta = { }); #endif -@@ -121,7 +123,7 @@ private: +@@ -134,7 +136,7 @@ private: PointerEvent(const AtomString&, Init&&); PointerEvent(const AtomString& type, short button, const MouseEvent&, PointerID, const String& pointerType); PointerEvent(const AtomString& type, PointerID, const String& pointerType, IsPrimary); --#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS_FAMILY) +-#if ENABLE(TOUCH_EVENTS) && (PLATFORM(IOS_FAMILY) || PLATFORM(WPE)) +#if ENABLE(TOUCH_EVENTS) - PointerEvent(const AtomString& type, const PlatformTouchEvent&, IsCancelable isCancelable, unsigned touchIndex, bool isPrimary, Ref&&); + PointerEvent(const AtomString& type, const PlatformTouchEvent&, IsCancelable isCancelable, unsigned touchIndex, bool isPrimary, Ref&&, const IntPoint& touchDelta = { }); #endif diff --git a/Source/WebCore/editing/libwpe/EditorLibWPE.cpp b/Source/WebCore/editing/libwpe/EditorLibWPE.cpp @@ -2972,7 +2971,7 @@ index 3a981b5bf5ca0bbf4d1c9f0b125564742cd8cad9..f8fc2ca6700461627933f149c5837075 } // namespace WebCore diff --git a/Source/WebCore/inspector/InspectorInstrumentation.cpp b/Source/WebCore/inspector/InspectorInstrumentation.cpp -index 37b3806ccad3419e617cbd3f697105d68f0b2208..581ba5372f44144e68991b242a9561c4f63d1126 100644 +index e3d0e7fc02ff131196a62f6469194e1e19b14182..398f9bc4f7ee3d85cb424218246ec72449b0fcaf 100644 --- a/Source/WebCore/inspector/InspectorInstrumentation.cpp +++ b/Source/WebCore/inspector/InspectorInstrumentation.cpp @@ -601,6 +601,12 @@ void InspectorInstrumentation::applyUserAgentOverrideImpl(InstrumentingAgents& i @@ -3038,20 +3037,20 @@ index 37b3806ccad3419e617cbd3f697105d68f0b2208..581ba5372f44144e68991b242a9561c4 void InspectorInstrumentation::frameStartedLoadingImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) { if (frame.isMainFrame()) { -@@ -842,10 +845,10 @@ void InspectorInstrumentation::frameStoppedLoadingImpl(InstrumentingAgents& inst +@@ -848,10 +851,10 @@ void InspectorInstrumentation::frameStoppedLoadingImpl(InstrumentingAgents& inst inspectorPageAgent->frameStoppedLoading(frame); } --void InspectorInstrumentation::frameScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame, Seconds delay) -+void InspectorInstrumentation::frameScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame, Seconds delay, bool targetIsCurrentFrame) +-void InspectorInstrumentation::frameScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, Seconds delay) ++void InspectorInstrumentation::frameScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, Seconds delay, bool targetIsCurrentFrame) { if (auto* inspectorPageAgent = instrumentingAgents.enabledPageAgent()) - inspectorPageAgent->frameScheduledNavigation(frame, delay); + inspectorPageAgent->frameScheduledNavigation(frame, delay, targetIsCurrentFrame); } - void InspectorInstrumentation::frameClearedScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) -@@ -860,6 +863,12 @@ void InspectorInstrumentation::accessibilitySettingsDidChangeImpl(InstrumentingA + void InspectorInstrumentation::frameClearedScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) +@@ -866,6 +869,12 @@ void InspectorInstrumentation::accessibilitySettingsDidChangeImpl(InstrumentingA inspectorPageAgent->accessibilitySettingsDidChange(); } @@ -3064,7 +3063,7 @@ index 37b3806ccad3419e617cbd3f697105d68f0b2208..581ba5372f44144e68991b242a9561c4 #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) void InspectorInstrumentation::defaultAppearanceDidChangeImpl(InstrumentingAgents& instrumentingAgents) { -@@ -1042,6 +1051,12 @@ void InspectorInstrumentation::consoleStopRecordingCanvasImpl(InstrumentingAgent +@@ -1048,6 +1057,12 @@ void InspectorInstrumentation::consoleStopRecordingCanvasImpl(InstrumentingAgent canvasAgent->consoleStopRecordingCanvas(context); } @@ -3077,7 +3076,7 @@ index 37b3806ccad3419e617cbd3f697105d68f0b2208..581ba5372f44144e68991b242a9561c4 void InspectorInstrumentation::didOpenDatabaseImpl(InstrumentingAgents& instrumentingAgents, Database& database) { if (auto* databaseAgent = instrumentingAgents.enabledDatabaseAgent()) -@@ -1342,6 +1357,36 @@ void InspectorInstrumentation::renderLayerDestroyedImpl(InstrumentingAgents& ins +@@ -1348,6 +1363,36 @@ void InspectorInstrumentation::renderLayerDestroyedImpl(InstrumentingAgents& ins layerTreeAgent->renderLayerDestroyed(renderLayer); } @@ -3114,7 +3113,7 @@ index 37b3806ccad3419e617cbd3f697105d68f0b2208..581ba5372f44144e68991b242a9561c4 InstrumentingAgents& InspectorInstrumentation::instrumentingAgents(WorkerOrWorkletGlobalScope& globalScope) { return globalScope.inspectorController().m_instrumentingAgents; -@@ -1353,6 +1398,13 @@ InstrumentingAgents& InspectorInstrumentation::instrumentingAgents(Page& page) +@@ -1359,6 +1404,13 @@ InstrumentingAgents& InspectorInstrumentation::instrumentingAgents(Page& page) return page.inspectorController().m_instrumentingAgents.get(); } @@ -3129,7 +3128,7 @@ index 37b3806ccad3419e617cbd3f697105d68f0b2208..581ba5372f44144e68991b242a9561c4 { if (is(context)) diff --git a/Source/WebCore/inspector/InspectorInstrumentation.h b/Source/WebCore/inspector/InspectorInstrumentation.h -index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f991fcdf6d 100644 +index f4579829b5ba02e407b9265a26e3360f9a3a4daa..d7b46ccce46c4191b286af05db70993996d4cb9a 100644 --- a/Source/WebCore/inspector/InspectorInstrumentation.h +++ b/Source/WebCore/inspector/InspectorInstrumentation.h @@ -31,6 +31,7 @@ @@ -3172,22 +3171,23 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 static void willSendRequest(WorkerOrWorkletGlobalScope&, ResourceLoaderIdentifier, ResourceRequest&); static void didReceiveResourceResponse(WorkerOrWorkletGlobalScope&, ResourceLoaderIdentifier, const ResourceResponse&); -@@ -230,12 +235,12 @@ public: +@@ -230,13 +235,13 @@ public: static void frameDetachedFromParent(LocalFrame&); static void didCommitLoad(LocalFrame&, DocumentLoader*); static void frameDocumentUpdated(LocalFrame&); - static void loaderDetachedFromFrame(LocalFrame&, DocumentLoader&); static void frameStartedLoading(LocalFrame&); static void frameStoppedLoading(LocalFrame&); -- static void frameScheduledNavigation(LocalFrame&, Seconds delay); -+ static void frameScheduledNavigation(LocalFrame&, Seconds delay, bool targetIsCurrentFrame); - static void frameClearedScheduledNavigation(LocalFrame&); + static void didCompleteRenderingFrame(LocalFrame&); +- static void frameScheduledNavigation(Frame&, Seconds delay); ++ static void frameScheduledNavigation(Frame&, Seconds delay, bool targetIsCurrentFrame); + static void frameClearedScheduledNavigation(Frame&); static void accessibilitySettingsDidChange(Page&); + static void didNavigateWithinPage(LocalFrame&); #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) static void defaultAppearanceDidChange(Page&); #endif -@@ -267,6 +272,7 @@ public: +@@ -268,6 +273,7 @@ public: static void stopProfiling(Page&, JSC::JSGlobalObject*, const String& title); static void consoleStartRecordingCanvas(CanvasRenderingContext&, JSC::JSGlobalObject&, JSC::JSObject* options); static void consoleStopRecordingCanvas(CanvasRenderingContext&); @@ -3195,7 +3195,7 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 static void didRequestAnimationFrame(Document&, int callbackId); static void didCancelAnimationFrame(Document&, int callbackId); -@@ -322,6 +328,12 @@ public: +@@ -323,6 +329,12 @@ public: static void layerTreeDidChange(Page*); static void renderLayerDestroyed(Page*, const RenderLayer&); @@ -3208,7 +3208,7 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 static void frontendCreated(); static void frontendDeleted(); static bool hasFrontends() { return InspectorInstrumentationPublic::hasFrontends(); } -@@ -338,6 +350,8 @@ public: +@@ -339,6 +351,8 @@ public: static void registerInstrumentingAgents(InstrumentingAgents&); static void unregisterInstrumentingAgents(InstrumentingAgents&); @@ -3217,7 +3217,7 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 private: static void didClearWindowObjectInWorldImpl(InstrumentingAgents&, LocalFrame&, DOMWrapperWorld&); static bool isDebuggerPausedImpl(InstrumentingAgents&); -@@ -417,6 +431,7 @@ private: +@@ -418,6 +432,7 @@ private: static void didRecalculateStyleImpl(InstrumentingAgents&); static void didScheduleStyleRecalculationImpl(InstrumentingAgents&, Document&); static void applyUserAgentOverrideImpl(InstrumentingAgents&, String&); @@ -3225,7 +3225,7 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 static void applyEmulatedMediaImpl(InstrumentingAgents&, AtomString&); static void flexibleBoxRendererBeganLayoutImpl(InstrumentingAgents&, const RenderObject&); -@@ -431,6 +446,7 @@ private: +@@ -432,6 +447,7 @@ private: static void didReceiveDataImpl(InstrumentingAgents&, ResourceLoaderIdentifier, const SharedBuffer*, int encodedDataLength); static void didFinishLoadingImpl(InstrumentingAgents&, ResourceLoaderIdentifier, DocumentLoader*, const NetworkLoadMetrics&, ResourceLoader*); static void didFailLoadingImpl(InstrumentingAgents&, ResourceLoaderIdentifier, DocumentLoader*, const ResourceError&); @@ -3233,22 +3233,23 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 static void willLoadXHRSynchronouslyImpl(InstrumentingAgents&); static void didLoadXHRSynchronouslyImpl(InstrumentingAgents&); static void scriptImportedImpl(InstrumentingAgents&, ResourceLoaderIdentifier, const String& sourceString); -@@ -441,12 +457,12 @@ private: +@@ -442,13 +458,13 @@ private: static void frameDetachedFromParentImpl(InstrumentingAgents&, LocalFrame&); static void didCommitLoadImpl(InstrumentingAgents&, LocalFrame&, DocumentLoader*); static void frameDocumentUpdatedImpl(InstrumentingAgents&, LocalFrame&); - static void loaderDetachedFromFrameImpl(InstrumentingAgents&, DocumentLoader&); static void frameStartedLoadingImpl(InstrumentingAgents&, LocalFrame&); + static void didCompleteRenderingFrameImpl(InstrumentingAgents&); static void frameStoppedLoadingImpl(InstrumentingAgents&, LocalFrame&); -- static void frameScheduledNavigationImpl(InstrumentingAgents&, LocalFrame&, Seconds delay); -+ static void frameScheduledNavigationImpl(InstrumentingAgents&, LocalFrame&, Seconds delay, bool targetIsCurrentFrame); - static void frameClearedScheduledNavigationImpl(InstrumentingAgents&, LocalFrame&); +- static void frameScheduledNavigationImpl(InstrumentingAgents&, Frame&, Seconds delay); ++ static void frameScheduledNavigationImpl(InstrumentingAgents&, Frame&, Seconds delay, bool targetIsCurrentFrame); + static void frameClearedScheduledNavigationImpl(InstrumentingAgents&, Frame&); static void accessibilitySettingsDidChangeImpl(InstrumentingAgents&); + static void didNavigateWithinPageImpl(InstrumentingAgents&, LocalFrame&); #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) static void defaultAppearanceDidChangeImpl(InstrumentingAgents&); #endif -@@ -473,6 +489,7 @@ private: +@@ -475,6 +491,7 @@ private: static void stopProfilingImpl(InstrumentingAgents&, JSC::JSGlobalObject*, const String& title); static void consoleStartRecordingCanvasImpl(InstrumentingAgents&, CanvasRenderingContext&, JSC::JSGlobalObject&, JSC::JSObject* options); static void consoleStopRecordingCanvasImpl(InstrumentingAgents&, CanvasRenderingContext&); @@ -3256,7 +3257,7 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 static void didRequestAnimationFrameImpl(InstrumentingAgents&, int callbackId, Document&); static void didCancelAnimationFrameImpl(InstrumentingAgents&, int callbackId, Document&); -@@ -528,6 +545,12 @@ private: +@@ -530,6 +547,12 @@ private: static void layerTreeDidChangeImpl(InstrumentingAgents&); static void renderLayerDestroyedImpl(InstrumentingAgents&, const RenderLayer&); @@ -3269,7 +3270,7 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 static InstrumentingAgents& instrumentingAgents(Page&); static InstrumentingAgents& instrumentingAgents(WorkerOrWorkletGlobalScope&); -@@ -1061,6 +1084,13 @@ inline void InspectorInstrumentation::applyUserAgentOverride(LocalFrame& frame, +@@ -1063,6 +1086,13 @@ inline void InspectorInstrumentation::applyUserAgentOverride(LocalFrame& frame, applyUserAgentOverrideImpl(*agents, userAgent); } @@ -3283,7 +3284,7 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 inline void InspectorInstrumentation::applyEmulatedMedia(LocalFrame& frame, AtomString& media) { FAST_RETURN_IF_NO_FRONTENDS(void()); -@@ -1163,6 +1193,13 @@ inline void InspectorInstrumentation::didFailLoading(WorkerOrWorkletGlobalScope& +@@ -1165,6 +1195,13 @@ inline void InspectorInstrumentation::didFailLoading(WorkerOrWorkletGlobalScope& didFailLoadingImpl(instrumentingAgents(globalScope), identifier, nullptr, error); } @@ -3297,7 +3298,7 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 inline void InspectorInstrumentation::continueAfterXFrameOptionsDenied(LocalFrame& frame, ResourceLoaderIdentifier identifier, DocumentLoader& loader, const ResourceResponse& response) { // Treat the same as didReceiveResponse. -@@ -1253,13 +1290,6 @@ inline void InspectorInstrumentation::frameDocumentUpdated(LocalFrame& frame) +@@ -1255,13 +1292,6 @@ inline void InspectorInstrumentation::frameDocumentUpdated(LocalFrame& frame) frameDocumentUpdatedImpl(*agents, frame); } @@ -3311,12 +3312,12 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 inline void InspectorInstrumentation::frameStartedLoading(LocalFrame& frame) { FAST_RETURN_IF_NO_FRONTENDS(void()); -@@ -1274,11 +1304,11 @@ inline void InspectorInstrumentation::frameStoppedLoading(LocalFrame& frame) +@@ -1283,11 +1313,11 @@ inline void InspectorInstrumentation::frameStoppedLoading(LocalFrame& frame) frameStoppedLoadingImpl(*agents, frame); } --inline void InspectorInstrumentation::frameScheduledNavigation(LocalFrame& frame, Seconds delay) -+inline void InspectorInstrumentation::frameScheduledNavigation(LocalFrame& frame, Seconds delay, bool targetIsCurrentFrame) +-inline void InspectorInstrumentation::frameScheduledNavigation(Frame& frame, Seconds delay) ++inline void InspectorInstrumentation::frameScheduledNavigation(Frame& frame, Seconds delay, bool targetIsCurrentFrame) { FAST_RETURN_IF_NO_FRONTENDS(void()); if (auto* agents = instrumentingAgents(frame)) @@ -3324,8 +3325,8 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 + frameScheduledNavigationImpl(*agents, frame, delay, targetIsCurrentFrame); } - inline void InspectorInstrumentation::frameClearedScheduledNavigation(LocalFrame& frame) -@@ -1294,6 +1324,13 @@ inline void InspectorInstrumentation::accessibilitySettingsDidChange(Page& page) + inline void InspectorInstrumentation::frameClearedScheduledNavigation(Frame& frame) +@@ -1303,6 +1333,13 @@ inline void InspectorInstrumentation::accessibilitySettingsDidChange(Page& page) accessibilitySettingsDidChangeImpl(instrumentingAgents(page)); } @@ -3339,7 +3340,7 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) inline void InspectorInstrumentation::defaultAppearanceDidChange(Page& page) { -@@ -1668,6 +1705,11 @@ inline void InspectorInstrumentation::consoleStopRecordingCanvas(CanvasRendering +@@ -1677,6 +1714,11 @@ inline void InspectorInstrumentation::consoleStopRecordingCanvas(CanvasRendering consoleStopRecordingCanvasImpl(*agents, context); } @@ -3351,7 +3352,7 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 inline void InspectorInstrumentation::didRequestAnimationFrame(Document& document, int callbackId) { FAST_RETURN_IF_NO_FRONTENDS(void()); -@@ -1724,6 +1766,42 @@ inline void InspectorInstrumentation::renderLayerDestroyed(Page* page, const Ren +@@ -1733,6 +1775,42 @@ inline void InspectorInstrumentation::renderLayerDestroyed(Page* page, const Ren renderLayerDestroyedImpl(*agents, renderLayer); } @@ -3395,7 +3396,7 @@ index faefe2007ad1ef81c2181d4553b4c8338e870ab1..47f2a7de873d792a8970a7d9608067f9 { return context ? instrumentingAgents(*context) : nullptr; diff --git a/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp b/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp -index ec49cdff4281d43f28957ccaaa53ed13e8bf2218..feb1332ed98d4f57a96114f5302b34ea137a608b 100644 +index eb23c60fabfd012bd3e41d9f55a3c015ea6fbdae..57225822f7354c0f44c3d9ba282ac12502d0f27a 100644 --- a/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp @@ -61,10 +61,14 @@ @@ -3666,7 +3667,7 @@ index ec49cdff4281d43f28957ccaaa53ed13e8bf2218..feb1332ed98d4f57a96114f5302b34ea if (!object) return makeUnexpected("Missing injected script for given nodeId"_s); -@@ -3063,7 +3229,7 @@ Protocol::ErrorStringOr InspectorDOMAgent::pushNodeByPath +@@ -3062,7 +3228,7 @@ Protocol::ErrorStringOr InspectorDOMAgent::pushNodeByPath return makeUnexpected("Missing node for given path"_s); } @@ -3675,7 +3676,7 @@ index ec49cdff4281d43f28957ccaaa53ed13e8bf2218..feb1332ed98d4f57a96114f5302b34ea { Document* document = &node->document(); if (auto* templateHost = document->templateDocumentHost()) -@@ -3072,12 +3238,18 @@ RefPtr InspectorDOMAgent::resolveNode(Node* nod +@@ -3071,12 +3237,18 @@ RefPtr InspectorDOMAgent::resolveNode(Node* nod if (!frame) return nullptr; @@ -3697,7 +3698,7 @@ index ec49cdff4281d43f28957ccaaa53ed13e8bf2218..feb1332ed98d4f57a96114f5302b34ea } Node* InspectorDOMAgent::scriptValueAsNode(JSC::JSValue value) -@@ -3100,4 +3272,57 @@ Protocol::ErrorStringOr InspectorDOMAgent::setAllowEditingUserAgentShadowT +@@ -3099,4 +3271,57 @@ Protocol::ErrorStringOr InspectorDOMAgent::setAllowEditingUserAgentShadowT return { }; } @@ -3829,7 +3830,7 @@ index 9cd98d4bfb8e3b15c995e8968f0052d498b8dff8..bd6d6930a71ce2f23f18f9ee096c86be void discardBindings(); diff --git a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp -index 958e55d7ab1dd3503301a65d9a73f4086d61cca2..48d10584bcd3ce499d512894bfea845db6f5ab7d 100644 +index 958e55d7ab1dd3503301a65d9a73f4086d61cca2..ef1d8212902787f8933ae8a8a34578521431e591 100644 --- a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp @@ -59,6 +59,7 @@ @@ -3860,7 +3861,61 @@ index 958e55d7ab1dd3503301a65d9a73f4086d61cca2..48d10584bcd3ce499d512894bfea845d if (resourceLoader) { auto* metrics = response.deprecatedNetworkLoadMetricsOrNull(); responseObject->setTiming(buildObjectForTiming(metrics ? *metrics : NetworkLoadMetrics::emptyMetrics(), *resourceLoader)); -@@ -956,6 +959,7 @@ void InspectorNetworkAgent::continuePendingResponses() +@@ -471,22 +474,6 @@ void InspectorNetworkAgent::willSendRequest(ResourceLoaderIdentifier identifier, + auto loaderId = loaderIdentifier(loader); + String targetId = request.initiatorIdentifier(); + +- if (type == InspectorPageAgent::OtherResource) { +- if (m_loadingXHRSynchronously || request.requester() == ResourceRequestRequester::XHR) +- type = InspectorPageAgent::XHRResource; +- else if (request.requester() == ResourceRequestRequester::Fetch) +- type = InspectorPageAgent::FetchResource; +- else if (loader && equalIgnoringFragmentIdentifier(request.url(), loader->url()) && !loader->isCommitted()) +- type = InspectorPageAgent::DocumentResource; +- else if (loader) { +- for (auto& linkIcon : loader->linkIcons()) { +- if (equalIgnoringFragmentIdentifier(request.url(), linkIcon.url)) { +- type = InspectorPageAgent::ImageResource; +- break; +- } +- } +- } +- } + + m_resourcesData->resourceCreated(requestId, loaderId, type); + +@@ -528,9 +515,27 @@ static InspectorPageAgent::ResourceType resourceTypeForLoadType(InspectorInstrum + + void InspectorNetworkAgent::willSendRequest(ResourceLoaderIdentifier identifier, DocumentLoader* loader, ResourceRequest& request, const ResourceResponse& redirectResponse, const CachedResource* cachedResource, ResourceLoader* resourceLoader) + { +- if (!cachedResource && loader) +- cachedResource = InspectorPageAgent::cachedResource(loader->frame(), request.url()); +- willSendRequest(identifier, loader, request, redirectResponse, resourceTypeForCachedResource(cachedResource), resourceLoader); ++ InspectorPageAgent::ResourceType type = InspectorPageAgent::OtherResource; ++ if (m_loadingXHRSynchronously || request.requester() == ResourceRequestRequester::XHR) ++ type = InspectorPageAgent::XHRResource; ++ else if (request.requester() == ResourceRequestRequester::Fetch) ++ type = InspectorPageAgent::FetchResource; ++ else if (loader && equalIgnoringFragmentIdentifier(request.url(), loader->url()) && !loader->isCommitted()) ++ type = InspectorPageAgent::DocumentResource; ++ else if (loader) { ++ for (auto& linkIcon : loader->linkIcons()) { ++ if (equalIgnoringFragmentIdentifier(request.url(), linkIcon.url)) { ++ type = InspectorPageAgent::ImageResource; ++ break; ++ } ++ } ++ } ++ if (type == InspectorPageAgent::OtherResource) { ++ if (!cachedResource && loader) ++ cachedResource = InspectorPageAgent::cachedResource(loader->frame(), request.url()); ++ type = resourceTypeForCachedResource(cachedResource); ++ } ++ willSendRequest(identifier, loader, request, redirectResponse, type, resourceLoader); + } + + void InspectorNetworkAgent::willSendRequestOfType(ResourceLoaderIdentifier identifier, DocumentLoader* loader, ResourceRequest& request, InspectorInstrumentation::LoadType loadType) +@@ -956,6 +961,7 @@ void InspectorNetworkAgent::continuePendingResponses() Protocol::ErrorStringOr InspectorNetworkAgent::setExtraHTTPHeaders(Ref&& headers) { @@ -3868,7 +3923,7 @@ index 958e55d7ab1dd3503301a65d9a73f4086d61cca2..48d10584bcd3ce499d512894bfea845d for (auto& entry : headers.get()) { auto stringValue = entry.value->asString(); if (!!stringValue) -@@ -1236,6 +1240,9 @@ Protocol::ErrorStringOr InspectorNetworkAgent::interceptWithRequest(const +@@ -1236,6 +1242,9 @@ Protocol::ErrorStringOr InspectorNetworkAgent::interceptWithRequest(const return makeUnexpected("Missing pending intercept request for given requestId"_s); auto& loader = *pendingRequest->m_loader; @@ -3878,7 +3933,7 @@ index 958e55d7ab1dd3503301a65d9a73f4086d61cca2..48d10584bcd3ce499d512894bfea845d ResourceRequest request = loader.request(); if (!!url) request.setURL(URL({ }, url)); -@@ -1335,14 +1342,23 @@ Protocol::ErrorStringOr InspectorNetworkAgent::interceptRequestWithRespons +@@ -1335,14 +1344,23 @@ Protocol::ErrorStringOr InspectorNetworkAgent::interceptRequestWithRespons response.setHTTPStatusCode(status); response.setHTTPStatusText(AtomString { statusText }); HTTPHeaderMap explicitHeaders; @@ -3904,7 +3959,7 @@ index 958e55d7ab1dd3503301a65d9a73f4086d61cca2..48d10584bcd3ce499d512894bfea845d if (loader->reachedTerminalState()) return; -@@ -1405,6 +1421,12 @@ Protocol::ErrorStringOr InspectorNetworkAgent::setEmulatedConditions(std:: +@@ -1405,6 +1423,12 @@ Protocol::ErrorStringOr InspectorNetworkAgent::setEmulatedConditions(std:: #endif // ENABLE(INSPECTOR_NETWORK_THROTTLING) @@ -3939,7 +3994,7 @@ index c6ebcc9d7e399a35f71350c9374df0f2107c518b..3bfa03ae7f27d9128fe207c1de1bfea9 // InspectorInstrumentation void willRecalculateStyle(); diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp -index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f5f7878ef 100644 +index 2c8fa3981b36f9bd53320791c278c67049f9fae8..ed99c1104190d497bf57f300e3119a7d10ac4963 100644 --- a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp @@ -32,19 +32,27 @@ @@ -4050,7 +4105,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f setShowPaintRects(false); #if !PLATFORM(IOS_FAMILY) -@@ -421,6 +452,22 @@ Protocol::ErrorStringOr InspectorPageAgent::reload(std::optional&& i +@@ -420,6 +451,22 @@ Protocol::ErrorStringOr InspectorPageAgent::reload(std::optional&& i return { }; } @@ -4073,7 +4128,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f Protocol::ErrorStringOr InspectorPageAgent::navigate(const String& url) { auto* localMainFrame = dynamicDowncast(m_inspectedPage.mainFrame()); -@@ -444,6 +491,13 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideUserAgent(const String +@@ -443,6 +490,13 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideUserAgent(const String return { }; } @@ -4087,7 +4142,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page::Setting setting, std::optional&& value) { auto& inspectedPageSettings = m_inspectedPage.settings(); -@@ -457,6 +511,12 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page +@@ -456,6 +510,12 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page inspectedPageSettings.setAuthorAndUserStylesEnabledInspectorOverride(value); return { }; @@ -4100,7 +4155,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f case Protocol::Page::Setting::ICECandidateFilteringEnabled: inspectedPageSettings.setICECandidateFilteringEnabledInspectorOverride(value); return { }; -@@ -482,6 +542,38 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page +@@ -481,6 +541,38 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page inspectedPageSettings.setNeedsSiteSpecificQuirksInspectorOverride(value); return { }; @@ -4139,7 +4194,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f case Protocol::Page::Setting::ScriptEnabled: inspectedPageSettings.setScriptEnabledInspectorOverride(value); return { }; -@@ -494,6 +586,12 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page +@@ -493,6 +585,12 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page inspectedPageSettings.setShowRepaintCounterInspectorOverride(value); return { }; @@ -4149,10 +4204,10 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f + return { }; +#endif + - case Protocol::Page::Setting::WebRTCEncryptionEnabled: - inspectedPageSettings.setWebRTCEncryptionEnabledInspectorOverride(value); + case Protocol::Page::Setting::WebSecurityEnabled: + inspectedPageSettings.setWebSecurityEnabledInspectorOverride(value); return { }; -@@ -790,9 +888,13 @@ Protocol::ErrorStringOr> InspectorP +@@ -785,9 +883,13 @@ Protocol::ErrorStringOr> InspectorP return { { content, base64Encoded } }; } @@ -4168,7 +4223,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f return { }; } -@@ -898,15 +1000,16 @@ Protocol::ErrorStringOr InspectorPageAgent::setShowPaintRects(bool show) +@@ -893,15 +995,16 @@ Protocol::ErrorStringOr InspectorPageAgent::setShowPaintRects(bool show) return { }; } @@ -4190,7 +4245,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f } void InspectorPageAgent::frameNavigated(LocalFrame& frame) -@@ -914,13 +1017,23 @@ void InspectorPageAgent::frameNavigated(LocalFrame& frame) +@@ -909,13 +1012,25 @@ void InspectorPageAgent::frameNavigated(LocalFrame& frame) m_frontendDispatcher->frameNavigated(buildObjectForFrame(&frame)); } @@ -4199,14 +4254,16 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f + return makeString(processID.toUInt64(), ".", frameID.object().toUInt64()); +} + -+static String globalIDForFrame(LocalFrame& frame) ++static String globalIDForFrame(Frame& frame) +{ -+ return InspectorPageAgent::makeFrameID(Process::identifier(), frame.loader().frameID()); ++ // TODO(playwright): for OOPIF we have to use id of the web process where the frame is hosted. ++ // Working at the moment because OOPIF is diabled. ++ return InspectorPageAgent::makeFrameID(Process::identifier(), frame.frameID()); +} + void InspectorPageAgent::frameDetached(LocalFrame& frame) { -- auto identifier = m_frameToIdentifier.take(&frame); +- auto identifier = m_frameToIdentifier.take(frame); - if (identifier.isNull()) + String identifier = globalIDForFrame(frame); + if (!m_identifierToFrame.take(identifier)) @@ -4216,12 +4273,12 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f - m_identifierToFrame.remove(identifier); } - LocalFrame* InspectorPageAgent::frameForId(const Protocol::Network::FrameId& frameId) -@@ -932,20 +1045,17 @@ String InspectorPageAgent::frameId(LocalFrame* frame) + Frame* InspectorPageAgent::frameForId(const Protocol::Network::FrameId& frameId) +@@ -927,20 +1042,17 @@ String InspectorPageAgent::frameId(Frame* frame) { if (!frame) return emptyString(); -- return m_frameToIdentifier.ensure(frame, [this, frame] { +- return m_frameToIdentifier.ensure(*frame, [this, frame] { - auto identifier = IdentifiersFactory::createIdentifier(); - m_identifierToFrame.set(identifier, frame); - return identifier; @@ -4243,7 +4300,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f } LocalFrame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, const Protocol::Network::FrameId& frameId) -@@ -956,11 +1066,6 @@ LocalFrame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, +@@ -951,11 +1063,6 @@ LocalFrame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, return frame; } @@ -4255,19 +4312,19 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f void InspectorPageAgent::frameStartedLoading(LocalFrame& frame) { m_frontendDispatcher->frameStartedLoading(frameId(&frame)); -@@ -971,9 +1076,9 @@ void InspectorPageAgent::frameStoppedLoading(LocalFrame& frame) +@@ -966,9 +1073,9 @@ void InspectorPageAgent::frameStoppedLoading(LocalFrame& frame) m_frontendDispatcher->frameStoppedLoading(frameId(&frame)); } --void InspectorPageAgent::frameScheduledNavigation(LocalFrame& frame, Seconds delay) -+void InspectorPageAgent::frameScheduledNavigation(LocalFrame& frame, Seconds delay, bool targetIsCurrentFrame) +-void InspectorPageAgent::frameScheduledNavigation(Frame& frame, Seconds delay) ++void InspectorPageAgent::frameScheduledNavigation(Frame& frame, Seconds delay, bool targetIsCurrentFrame) { - m_frontendDispatcher->frameScheduledNavigation(frameId(&frame), delay.value()); + m_frontendDispatcher->frameScheduledNavigation(frameId(&frame), delay.value(), targetIsCurrentFrame); } - void InspectorPageAgent::frameClearedScheduledNavigation(LocalFrame& frame) -@@ -1028,6 +1133,12 @@ void InspectorPageAgent::defaultUserPreferencesDidChange() + void InspectorPageAgent::frameClearedScheduledNavigation(Frame& frame) +@@ -1023,6 +1130,12 @@ void InspectorPageAgent::defaultUserPreferencesDidChange() m_frontendDispatcher->defaultUserPreferencesDidChange(WTFMove(defaultUserPreferences)); } @@ -4280,7 +4337,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) void InspectorPageAgent::defaultAppearanceDidChange() { -@@ -1037,13 +1148,22 @@ void InspectorPageAgent::defaultAppearanceDidChange() +@@ -1032,13 +1145,22 @@ void InspectorPageAgent::defaultAppearanceDidChange() void InspectorPageAgent::didClearWindowObjectInWorld(LocalFrame& frame, DOMWrapperWorld& world) { @@ -4306,7 +4363,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f } void InspectorPageAgent::didPaint(RenderObject& renderer, const LayoutRect& rect) -@@ -1091,6 +1211,51 @@ void InspectorPageAgent::didRecalculateStyle() +@@ -1086,6 +1208,51 @@ void InspectorPageAgent::didRecalculateStyle() m_overlay->update(); } @@ -4358,7 +4415,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f Ref InspectorPageAgent::buildObjectForFrame(LocalFrame* frame) { ASSERT_ARG(frame, frame); -@@ -1188,6 +1353,12 @@ void InspectorPageAgent::applyUserAgentOverride(String& userAgent) +@@ -1183,6 +1350,12 @@ void InspectorPageAgent::applyUserAgentOverride(String& userAgent) userAgent = m_userAgentOverride; } @@ -4371,7 +4428,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f void InspectorPageAgent::applyEmulatedMedia(AtomString& media) { if (!m_emulatedMedia.isEmpty()) -@@ -1215,11 +1386,13 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotNode(Protocol::DOM:: +@@ -1210,11 +1383,13 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotNode(Protocol::DOM:: return snapshot->toDataURL("image/png"_s, std::nullopt, PreserveResolution::Yes); } @@ -4386,7 +4443,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f IntRect rectangle(x, y, width, height); auto* localMainFrame = dynamicDowncast(m_inspectedPage.mainFrame()); -@@ -1233,6 +1406,43 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int x, int y, i +@@ -1228,6 +1403,43 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int x, int y, i return snapshot->toDataURL("image/png"_s, std::nullopt, PreserveResolution::Yes); } @@ -4430,7 +4487,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f #if ENABLE(WEB_ARCHIVE) && USE(CF) Protocol::ErrorStringOr InspectorPageAgent::archive() { -@@ -1249,7 +1459,6 @@ Protocol::ErrorStringOr InspectorPageAgent::archive() +@@ -1244,7 +1456,6 @@ Protocol::ErrorStringOr InspectorPageAgent::archive() } #endif @@ -4438,7 +4495,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::optional&& width, std::optional&& height) { if (width.has_value() != height.has_value()) -@@ -1267,6 +1476,643 @@ Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::opt +@@ -1262,6 +1473,629 @@ Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::opt localMainFrame->setOverrideScreenSize(FloatSize(width.value_or(0), height.value_or(0))); return { }; } @@ -4452,7 +4509,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f + frame.editor().confirmComposition(text); + } else { + Document* focusedDocument = frame.document(); -+ TypingCommand::insertText(*focusedDocument, text, 0); ++ TypingCommand::insertText(*focusedDocument, text, { }); + } + return { }; +} @@ -4846,20 +4903,6 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f + break; + } + } -+ if (axObject->supportsPressed()) { -+ AccessibilityButtonState checkedState = axObject->checkboxOrRadioValue(); -+ switch (checkedState) { -+ case AccessibilityButtonState::On: -+ axNode->setPressed(Inspector::Protocol::Page::AXNode::Pressed::True); -+ break; -+ case AccessibilityButtonState::Off: -+ axNode->setPressed(Inspector::Protocol::Page::AXNode::Pressed::False); -+ break; -+ case AccessibilityButtonState::Mixed: -+ axNode->setPressed(Inspector::Protocol::Page::AXNode::Pressed::Mixed); -+ break; -+ } -+ } + unsigned level = axObject->hierarchicalLevel() ? axObject->hierarchicalLevel() : axObject->headingLevel(); + if (level) + axNode->setLevel(level); @@ -5083,7 +5126,7 @@ index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f } // namespace WebCore diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.h b/Source/WebCore/inspector/agents/InspectorPageAgent.h -index 4284cde361e5e693dd28b2fa71d18be4d508d415..efd4c00fb36a2072aea6d075d5c6d6baf635124f 100644 +index f270cb7c3bcc1b5d7d646d9c6e6bda7063cf82e3..5f80d34d6476250a2495ccd4871aed1c2ef13ccc 100644 --- a/Source/WebCore/inspector/agents/InspectorPageAgent.h +++ b/Source/WebCore/inspector/agents/InspectorPageAgent.h @@ -32,8 +32,10 @@ @@ -5097,7 +5140,7 @@ index 4284cde361e5e693dd28b2fa71d18be4d508d415..efd4c00fb36a2072aea6d075d5c6d6ba #include #include #include -@@ -41,10 +43,15 @@ +@@ -41,11 +43,16 @@ #include #include @@ -5109,11 +5152,12 @@ index 4284cde361e5e693dd28b2fa71d18be4d508d415..efd4c00fb36a2072aea6d075d5c6d6ba class DOMWrapperWorld; class DocumentLoader; + class Frame; +class HTMLInputElement; class InspectorClient; class InspectorOverlay; class LocalFrame; -@@ -77,6 +84,7 @@ public: +@@ -78,6 +85,7 @@ public: OtherResource, }; @@ -5121,7 +5165,7 @@ index 4284cde361e5e693dd28b2fa71d18be4d508d415..efd4c00fb36a2072aea6d075d5c6d6ba static bool sharedBufferContent(RefPtr&&, const String& textEncodingName, bool withBase64Encode, String* result); static Vector cachedResourcesForFrame(LocalFrame*); static void resourceContent(Inspector::Protocol::ErrorString&, LocalFrame*, const URL&, String* result, bool* base64Encoded); -@@ -97,8 +105,11 @@ public: +@@ -98,8 +106,11 @@ public: Inspector::Protocol::ErrorStringOr enable(); Inspector::Protocol::ErrorStringOr disable(); Inspector::Protocol::ErrorStringOr reload(std::optional&& ignoreCache, std::optional&& revalidateAllResources); @@ -5133,7 +5177,7 @@ index 4284cde361e5e693dd28b2fa71d18be4d508d415..efd4c00fb36a2072aea6d075d5c6d6ba Inspector::Protocol::ErrorStringOr overrideSetting(Inspector::Protocol::Page::Setting, std::optional&& value); Inspector::Protocol::ErrorStringOr overrideUserPreference(Inspector::Protocol::Page::UserPreferenceName, std::optional&&); Inspector::Protocol::ErrorStringOr>> getCookies(); -@@ -106,7 +117,7 @@ public: +@@ -107,7 +118,7 @@ public: Inspector::Protocol::ErrorStringOr deleteCookie(const String& cookieName, const String& url); Inspector::Protocol::ErrorStringOr> getResourceTree(); Inspector::Protocol::ErrorStringOr> getResourceContent(const Inspector::Protocol::Network::FrameId&, const String& url); @@ -5142,7 +5186,7 @@ index 4284cde361e5e693dd28b2fa71d18be4d508d415..efd4c00fb36a2072aea6d075d5c6d6ba Inspector::Protocol::ErrorStringOr>> searchInResource(const Inspector::Protocol::Network::FrameId&, const String& url, const String& query, std::optional&& caseSensitive, std::optional&& isRegex, const Inspector::Protocol::Network::RequestId&); Inspector::Protocol::ErrorStringOr>> searchInResources(const String&, std::optional&& caseSensitive, std::optional&& isRegex); #if !PLATFORM(IOS_FAMILY) -@@ -114,37 +125,57 @@ public: +@@ -115,37 +126,57 @@ public: #endif Inspector::Protocol::ErrorStringOr setShowPaintRects(bool); Inspector::Protocol::ErrorStringOr setEmulatedMedia(const String&); @@ -5181,9 +5225,9 @@ index 4284cde361e5e693dd28b2fa71d18be4d508d415..efd4c00fb36a2072aea6d075d5c6d6ba - void loaderDetachedFromFrame(DocumentLoader&); void frameStartedLoading(LocalFrame&); void frameStoppedLoading(LocalFrame&); -- void frameScheduledNavigation(LocalFrame&, Seconds delay); -+ void frameScheduledNavigation(LocalFrame&, Seconds delay, bool targetIsCurrentFrame); - void frameClearedScheduledNavigation(LocalFrame&); +- void frameScheduledNavigation(Frame&, Seconds delay); ++ void frameScheduledNavigation(Frame&, Seconds delay, bool targetIsCurrentFrame); + void frameClearedScheduledNavigation(Frame&); void accessibilitySettingsDidChange(); void defaultUserPreferencesDidChange(); + void didNavigateWithinPage(LocalFrame&); @@ -5205,9 +5249,9 @@ index 4284cde361e5e693dd28b2fa71d18be4d508d415..efd4c00fb36a2072aea6d075d5c6d6ba + void didCheckNavigationPolicy(LocalFrame&, bool cancel); + bool doingAccessibilitySnapshot() const { return m_doingAccessibilitySnapshot; }; - LocalFrame* frameForId(const Inspector::Protocol::Network::FrameId&); - WEBCORE_EXPORT String frameId(LocalFrame*); -@@ -153,6 +184,7 @@ public: + Frame* frameForId(const Inspector::Protocol::Network::FrameId&); + WEBCORE_EXPORT String frameId(Frame*); +@@ -154,6 +185,7 @@ public: private: double timestamp(); @@ -5215,7 +5259,7 @@ index 4284cde361e5e693dd28b2fa71d18be4d508d415..efd4c00fb36a2072aea6d075d5c6d6ba static bool mainResourceContent(LocalFrame*, bool withBase64Encode, String* result); static bool dataContent(const uint8_t* data, unsigned size, const String& textEncodingName, bool withBase64Encode, String* result); -@@ -168,18 +200,21 @@ private: +@@ -169,17 +201,21 @@ private: RefPtr m_backendDispatcher; Page& m_inspectedPage; @@ -5223,9 +5267,8 @@ index 4284cde361e5e693dd28b2fa71d18be4d508d415..efd4c00fb36a2072aea6d075d5c6d6ba InspectorClient* m_client { nullptr }; InspectorOverlay* m_overlay { nullptr }; -- // FIXME: Make a WeakHashMap and use it for m_frameToIdentifier and m_loaderToIdentifier. -- HashMap m_frameToIdentifier; - MemoryCompactRobinHoodHashMap> m_identifierToFrame; +- WeakHashMap m_frameToIdentifier; + MemoryCompactRobinHoodHashMap> m_identifierToFrame; - HashMap m_loaderToIdentifier; + HashMap m_worldNameToBootstrapScript; String m_userAgentOverride; @@ -5291,7 +5334,7 @@ index 242aea89da38d22a2c2b314f337e6aa4f3becdb8..51f978caae1a6a76fb1833fbfef76837 } diff --git a/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp b/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp -index 3e728e1c3e9c694877e20b5fb0223d92f3879247..3c7d5dffe56bec952940ddedffd5193ab6667e66 100644 +index 77b093ba149993094dc059d6cf8348095500bcb7..dc0a611a9da1ae4ffb54f1b57bba6ea290a57f48 100644 --- a/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp +++ b/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp @@ -34,6 +34,7 @@ @@ -5359,7 +5402,7 @@ index 3e728e1c3e9c694877e20b5fb0223d92f3879247..3c7d5dffe56bec952940ddedffd5193a + return {}; + + m_inspectedPage.forEachFrame([&](LocalFrame& frame) { -+ if (!frame.script().canExecuteScripts(NotAboutToExecuteScript)) ++ if (!frame.script().canExecuteScripts(ReasonForCallingCanExecuteScripts::NotAboutToExecuteScript)) + return; + + addBindingToFrame(frame, name); @@ -5406,7 +5449,7 @@ index 3e728e1c3e9c694877e20b5fb0223d92f3879247..3c7d5dffe56bec952940ddedffd5193a return; m_inspectedPage.forEachFrame([&](LocalFrame& frame) { -- if (!frame.script().canExecuteScripts(NotAboutToExecuteScript)) +- if (!frame.script().canExecuteScripts(ReasonForCallingCanExecuteScripts::NotAboutToExecuteScript)) - return; - auto frameId = pageAgent->frameId(&frame); @@ -5518,10 +5561,10 @@ index 21e33e46bdb1af8434527747e3c308cbe53f60f0..c17c4de17f439c04d27caa532771934c protected: static SameSiteInfo sameSiteInfo(const Document&, IsForDOMCookieAccess = IsForDOMCookieAccess::No); diff --git a/Source/WebCore/loader/DocumentLoader.cpp b/Source/WebCore/loader/DocumentLoader.cpp -index 295259c6b68405a7670d9ee906311345ed04f961..2fec16d22fb78364ebbd6e454880e6b453163341 100644 +index e2fbec049e671fe51adb60a83150e1d23e674088..0e4c1f2133fc506686dd039c0f12d5c8db607069 100644 --- a/Source/WebCore/loader/DocumentLoader.cpp +++ b/Source/WebCore/loader/DocumentLoader.cpp -@@ -742,8 +742,10 @@ void DocumentLoader::willSendRequest(ResourceRequest&& newRequest, const Resourc +@@ -743,8 +743,10 @@ void DocumentLoader::willSendRequest(ResourceRequest&& newRequest, const Resourc if (!didReceiveRedirectResponse) return completionHandler(WTFMove(newRequest)); @@ -5532,7 +5575,7 @@ index 295259c6b68405a7670d9ee906311345ed04f961..2fec16d22fb78364ebbd6e454880e6b4 switch (navigationPolicyDecision) { case NavigationPolicyDecision::IgnoreLoad: case NavigationPolicyDecision::StopAllLoads: -@@ -1520,8 +1522,6 @@ void DocumentLoader::detachFromFrame() +@@ -1521,8 +1523,6 @@ void DocumentLoader::detachFromFrame() if (!m_frame) return; @@ -5542,7 +5585,7 @@ index 295259c6b68405a7670d9ee906311345ed04f961..2fec16d22fb78364ebbd6e454880e6b4 } diff --git a/Source/WebCore/loader/DocumentLoader.h b/Source/WebCore/loader/DocumentLoader.h -index cce87a07505d599b48d887b50f00c47369dc49f2..ee95d1632b92e54ed41a726ca14eeb08eacfd110 100644 +index 9453e1ca4c6662090a08bf837db24e044a09226a..3f6a5700229b5ae4fb16303645da0e74259cac02 100644 --- a/Source/WebCore/loader/DocumentLoader.h +++ b/Source/WebCore/loader/DocumentLoader.h @@ -187,9 +187,13 @@ public: @@ -5560,10 +5603,10 @@ index cce87a07505d599b48d887b50f00c47369dc49f2..ee95d1632b92e54ed41a726ca14eeb08 DocumentWriter& writer() const { return m_writer; } diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp -index 16787ba6ca7555c97e19ae1b04579e19cd161761..2d36c6923d6db2dde019bc8a7759a02d968f53d1 100644 +index dabfc8188950af6cf2eb67fff5817ed8efd6de82..fa7e24e7d278307ea3c543ad0284bb5b3a638b11 100644 --- a/Source/WebCore/loader/FrameLoader.cpp +++ b/Source/WebCore/loader/FrameLoader.cpp -@@ -1223,6 +1223,7 @@ void FrameLoader::loadInSameDocument(URL url, RefPtr stat +@@ -1214,6 +1214,7 @@ void FrameLoader::loadInSameDocument(URL url, RefPtr stat } m_client->dispatchDidNavigateWithinPage(); @@ -5571,7 +5614,7 @@ index 16787ba6ca7555c97e19ae1b04579e19cd161761..2d36c6923d6db2dde019bc8a7759a02d m_frame.document()->statePopped(stateObject ? stateObject.releaseNonNull() : SerializedScriptValue::nullValue()); m_client->dispatchDidPopStateWithinPage(); -@@ -1676,6 +1677,8 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t +@@ -1660,6 +1661,8 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t const String& httpMethod = loader->request().httpMethod(); if (shouldPerformFragmentNavigation(isFormSubmission, httpMethod, policyChecker().loadType(), newURL)) { @@ -5580,7 +5623,7 @@ index 16787ba6ca7555c97e19ae1b04579e19cd161761..2d36c6923d6db2dde019bc8a7759a02d RefPtr oldDocumentLoader = m_documentLoader; NavigationAction action { *m_frame.document(), loader->request(), InitiatedByMainFrame::Unknown, policyChecker().loadType(), isFormSubmission }; action.setIsRequestFromClientOrUserInput(loader->isRequestFromClientOrUserInput()); -@@ -1708,7 +1711,9 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t +@@ -1692,7 +1695,9 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t } RELEASE_ASSERT(!isBackForwardLoadType(policyChecker().loadType()) || history().provisionalItem()); @@ -5590,7 +5633,7 @@ index 16787ba6ca7555c97e19ae1b04579e19cd161761..2d36c6923d6db2dde019bc8a7759a02d continueLoadAfterNavigationPolicy(request, formState.get(), navigationPolicyDecision, allowNavigationToInvalidURL); completionHandler(); }, PolicyDecisionMode::Asynchronous); -@@ -2935,14 +2940,19 @@ String FrameLoader::userAgent(const URL& url) const +@@ -2945,14 +2950,19 @@ String FrameLoader::userAgent(const URL& url) const String FrameLoader::navigatorPlatform() const { @@ -5612,7 +5655,7 @@ index 16787ba6ca7555c97e19ae1b04579e19cd161761..2d36c6923d6db2dde019bc8a7759a02d } void FrameLoader::dispatchOnloadEvents() -@@ -3362,6 +3372,8 @@ void FrameLoader::receivedMainResourceError(const ResourceError& error) +@@ -3374,6 +3384,8 @@ void FrameLoader::receivedMainResourceError(const ResourceError& error) checkCompleted(); if (m_frame.page()) checkLoadComplete(); @@ -5621,24 +5664,24 @@ index 16787ba6ca7555c97e19ae1b04579e19cd161761..2d36c6923d6db2dde019bc8a7759a02d } void FrameLoader::continueFragmentScrollAfterNavigationPolicy(const ResourceRequest& request, const SecurityOrigin* requesterOrigin, bool shouldContinue) -@@ -4189,9 +4201,6 @@ String FrameLoader::referrer() const +@@ -4204,9 +4216,6 @@ String FrameLoader::referrer() const void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() { -- if (!m_frame.script().canExecuteScripts(NotAboutToExecuteScript)) +- if (!m_frame.script().canExecuteScripts(ReasonForCallingCanExecuteScripts::NotAboutToExecuteScript)) - return; - Vector> worlds; ScriptController::getAllWorlds(worlds); for (auto& world : worlds) -@@ -4200,13 +4209,13 @@ void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() +@@ -4215,13 +4224,13 @@ void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() void FrameLoader::dispatchDidClearWindowObjectInWorld(DOMWrapperWorld& world) { -- if (!m_frame.script().canExecuteScripts(NotAboutToExecuteScript) || !m_frame.windowProxy().existingJSWindowProxy(world)) +- if (!m_frame.script().canExecuteScripts(ReasonForCallingCanExecuteScripts::NotAboutToExecuteScript) || !m_frame.windowProxy().existingJSWindowProxy(world)) - return; + if (m_frame.windowProxy().existingJSWindowProxy(world)) { -+ if (m_frame.script().canExecuteScripts(NotAboutToExecuteScript)) ++ if (m_frame.script().canExecuteScripts(ReasonForCallingCanExecuteScripts::NotAboutToExecuteScript)) + m_client->dispatchDidClearWindowObjectInWorld(world); - m_client->dispatchDidClearWindowObjectInWorld(world); @@ -5664,10 +5707,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 603523465bac8eedb7d5b8f09dcfbf70b0543189..1fc37cb16a15bf7fdc14f025e064532d039a08fa 100644 +index 4e222e82af9d35ccff71c4ac758b430ada2d512d..a219dabfd7ba5a7b5989fac9029058d41e7b4bbd 100644 --- a/Source/WebCore/loader/NavigationScheduler.cpp +++ b/Source/WebCore/loader/NavigationScheduler.cpp -@@ -640,7 +640,7 @@ void NavigationScheduler::startTimer() +@@ -682,7 +682,7 @@ void NavigationScheduler::startTimer() Seconds delay = 1_s * m_redirect->delay(); m_timer.startOneShot(delay); @@ -5677,19 +5720,19 @@ index 603523465bac8eedb7d5b8f09dcfbf70b0543189..1fc37cb16a15bf7fdc14f025e064532d } diff --git a/Source/WebCore/loader/PolicyChecker.cpp b/Source/WebCore/loader/PolicyChecker.cpp -index 324a5e89fab1c54bb538389bdb1e06afb5a33b83..147cea5b6d94064e1a006b2d1bf605e9e5a6b46a 100644 +index 40b6c39d9997acfadeb2668e443358b1d3f6ad07..c935a647248619a5c38a9538d8806292ae647b2f 100644 --- a/Source/WebCore/loader/PolicyChecker.cpp +++ b/Source/WebCore/loader/PolicyChecker.cpp -@@ -44,6 +44,7 @@ +@@ -43,6 +43,7 @@ #include "HTMLFormElement.h" #include "HTMLFrameOwnerElement.h" #include "HTMLPlugInElement.h" +#include "InspectorInstrumentation.h" #include "LocalDOMWindow.h" #include "LocalFrame.h" - #include "Logging.h" + #include "LocalFrameLoaderClient.h" diff --git a/Source/WebCore/loader/ProgressTracker.cpp b/Source/WebCore/loader/ProgressTracker.cpp -index 7f86aa1f78d42ac106ccb75a970237d6dc2651bc..a59756e7e5df6b60c7a116b711e6c452e2dff8ee 100644 +index 258b45354b3f4c1854373c3cd2679d379fa60302..79c7abd308276ffec67686b145edc422c382e5db 100644 --- a/Source/WebCore/loader/ProgressTracker.cpp +++ b/Source/WebCore/loader/ProgressTracker.cpp @@ -160,6 +160,8 @@ void ProgressTracker::progressCompleted(LocalFrame& frame) @@ -5711,10 +5754,10 @@ index 7f86aa1f78d42ac106ccb75a970237d6dc2651bc..a59756e7e5df6b60c7a116b711e6c452 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 ffe6adcac48603bb48d910e1b033a4bcc14e9c6d..a294cc58805b89e0d886e44780f2d97a69f283b7 100644 +index 0a11887f8d97fd5c1791d224f88cc28a032031e0..2e757e4d68b567e4c90fbc8aee969d7bbd8c4af2 100644 --- a/Source/WebCore/loader/cache/CachedResourceLoader.cpp +++ b/Source/WebCore/loader/cache/CachedResourceLoader.cpp -@@ -1010,8 +1010,11 @@ ResourceErrorOr> CachedResourceLoader::requ +@@ -1011,8 +1011,11 @@ ResourceErrorOr> CachedResourceLoader::requ request.updateReferrerPolicy(document() ? document()->referrerPolicy() : ReferrerPolicy::Default); @@ -5728,7 +5771,7 @@ index ffe6adcac48603bb48d910e1b033a4bcc14e9c6d..a294cc58805b89e0d886e44780f2d97a auto& page = *frame.page(); -@@ -1656,8 +1659,9 @@ Vector> CachedResourceLoader::allCachedSVGImages() const +@@ -1657,8 +1660,9 @@ Vector> CachedResourceLoader::allCachedSVGImages() const ResourceErrorOr> CachedResourceLoader::preload(CachedResource::Type type, CachedResourceRequest&& request) { @@ -5741,7 +5784,7 @@ index ffe6adcac48603bb48d910e1b033a4bcc14e9c6d..a294cc58805b89e0d886e44780f2d97a if (request.charset().isEmpty() && (type == CachedResource::Type::Script || type == CachedResource::Type::CSSStyleSheet)) request.setCharset(m_document->charset()); diff --git a/Source/WebCore/page/ChromeClient.h b/Source/WebCore/page/ChromeClient.h -index 1e9d660b23497ad192ca07873ddc1184545649ee..d9bd9ac4bf909e12a0612101fbb66166cdc76dce 100644 +index e8ace8c734502a5d491379f2d7a993322825fa46..959932d69d746f2f12637feaa4e04a67fa8880d3 100644 --- a/Source/WebCore/page/ChromeClient.h +++ b/Source/WebCore/page/ChromeClient.h @@ -325,7 +325,7 @@ public: @@ -5754,10 +5797,10 @@ index 1e9d660b23497ad192ca07873ddc1184545649ee..d9bd9ac4bf909e12a0612101fbb66166 #if ENABLE(INPUT_TYPE_COLOR) diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp -index a32eb173eede3c0534ea942d8fc61d2d3a1f0618..29d50f848f8055dbe8b5ed8b94cf12de286f8566 100644 +index 021ad598ec0873d8f0c2a2c6c6ee7ebf345ad805..3109f224e68a3df4ef587cd80b0f5701701b1455 100644 --- a/Source/WebCore/page/EventHandler.cpp +++ b/Source/WebCore/page/EventHandler.cpp -@@ -143,6 +143,7 @@ +@@ -144,6 +144,7 @@ #if ENABLE(TOUCH_EVENTS) && !ENABLE(IOS_TOUCH_EVENTS) #include "PlatformTouchEvent.h" @@ -5765,7 +5808,7 @@ index a32eb173eede3c0534ea942d8fc61d2d3a1f0618..29d50f848f8055dbe8b5ed8b94cf12de #endif #if ENABLE(MAC_GESTURE_EVENTS) -@@ -817,9 +818,7 @@ bool EventHandler::handleMousePressEvent(const MouseEventWithHitTestResults& eve +@@ -819,9 +820,7 @@ bool EventHandler::handleMousePressEvent(const MouseEventWithHitTestResults& eve m_mousePressNode = event.targetNode(); m_frame.document()->setFocusNavigationStartingNode(event.targetNode()); @@ -5775,7 +5818,7 @@ index a32eb173eede3c0534ea942d8fc61d2d3a1f0618..29d50f848f8055dbe8b5ed8b94cf12de m_mousePressed = true; m_selectionInitiationState = HaveNotStartedSelection; -@@ -859,8 +858,6 @@ VisiblePosition EventHandler::selectionExtentRespectingEditingBoundary(const Vis +@@ -861,8 +860,6 @@ VisiblePosition EventHandler::selectionExtentRespectingEditingBoundary(const Vis return adjustedTarget->renderer()->positionForPoint(LayoutPoint(selectionEndPoint), nullptr); } @@ -5784,7 +5827,7 @@ index a32eb173eede3c0534ea942d8fc61d2d3a1f0618..29d50f848f8055dbe8b5ed8b94cf12de #if !PLATFORM(IOS_FAMILY) bool EventHandler::supportsSelectionUpdatesOnMouseDrag() const -@@ -882,8 +879,10 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e +@@ -884,8 +881,10 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e Ref protectedFrame(m_frame); @@ -5795,7 +5838,7 @@ index a32eb173eede3c0534ea942d8fc61d2d3a1f0618..29d50f848f8055dbe8b5ed8b94cf12de RefPtr targetNode = event.targetNode(); if (event.event().button() != LeftButton || !targetNode) -@@ -904,7 +903,9 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e +@@ -906,7 +905,9 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e ASSERT(mouseDownMayStartSelect() || m_mouseDownMayStartAutoscroll); #endif @@ -5805,7 +5848,7 @@ index a32eb173eede3c0534ea942d8fc61d2d3a1f0618..29d50f848f8055dbe8b5ed8b94cf12de if (m_mouseDownMayStartAutoscroll && !panScrollInProgress()) { m_autoscrollController->startAutoscrollForSelection(renderer); -@@ -921,6 +922,8 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e +@@ -923,6 +924,8 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e return true; } @@ -5814,7 +5857,7 @@ index a32eb173eede3c0534ea942d8fc61d2d3a1f0618..29d50f848f8055dbe8b5ed8b94cf12de bool EventHandler::eventMayStartDrag(const PlatformMouseEvent& event) const { // This is a pre-flight check of whether the event might lead to a drag being started. Be careful -@@ -952,6 +955,8 @@ bool EventHandler::eventMayStartDrag(const PlatformMouseEvent& event) const +@@ -954,6 +957,8 @@ bool EventHandler::eventMayStartDrag(const PlatformMouseEvent& event) const return targetElement && page->dragController().draggableElement(&m_frame, targetElement.get(), result.roundedPointInInnerNodeFrame(), state); } @@ -5823,7 +5866,7 @@ index a32eb173eede3c0534ea942d8fc61d2d3a1f0618..29d50f848f8055dbe8b5ed8b94cf12de void EventHandler::updateSelectionForMouseDrag() { if (!supportsSelectionUpdatesOnMouseDrag()) -@@ -1060,7 +1065,6 @@ void EventHandler::updateSelectionForMouseDrag(const HitTestResult& hitTestResul +@@ -1062,7 +1067,6 @@ void EventHandler::updateSelectionForMouseDrag(const HitTestResult& hitTestResul if (oldSelection != newSelection && ImageOverlay::isOverlayText(newSelection.start().containerNode()) && ImageOverlay::isOverlayText(newSelection.end().containerNode())) invalidateClick(); } @@ -5831,7 +5874,7 @@ index a32eb173eede3c0534ea942d8fc61d2d3a1f0618..29d50f848f8055dbe8b5ed8b94cf12de void EventHandler::lostMouseCapture() { -@@ -1108,9 +1112,7 @@ bool EventHandler::handleMouseReleaseEvent(const MouseEventWithHitTestResults& e +@@ -1110,9 +1114,7 @@ bool EventHandler::handleMouseReleaseEvent(const MouseEventWithHitTestResults& e // on the selection, the selection goes away. However, if we are // editing, place the caret. if (m_mouseDownWasSingleClickInSelection && m_selectionInitiationState != ExtendedSelection @@ -5841,7 +5884,7 @@ index a32eb173eede3c0534ea942d8fc61d2d3a1f0618..29d50f848f8055dbe8b5ed8b94cf12de && m_frame.selection().isRange() && event.event().button() != RightButton) { VisibleSelection newSelection; -@@ -2099,10 +2101,8 @@ bool EventHandler::handleMouseMoveEvent(const PlatformMouseEvent& platformMouseE +@@ -2111,10 +2113,8 @@ bool EventHandler::handleMouseMoveEvent(const PlatformMouseEvent& platformMouseE swallowEvent = !dispatchMouseEvent(eventNames().mousemoveEvent, mouseEvent.targetNode(), 0, platformMouseEvent, FireMouseOverOut::Yes); @@ -5852,7 +5895,7 @@ index a32eb173eede3c0534ea942d8fc61d2d3a1f0618..29d50f848f8055dbe8b5ed8b94cf12de return swallowEvent; } -@@ -4189,7 +4189,14 @@ bool EventHandler::handleDrag(const MouseEventWithHitTestResults& event, CheckDr +@@ -4207,7 +4207,14 @@ bool EventHandler::handleDrag(const MouseEventWithHitTestResults& event, CheckDr if (!m_frame.document()) return false; @@ -5868,31 +5911,33 @@ index a32eb173eede3c0534ea942d8fc61d2d3a1f0618..29d50f848f8055dbe8b5ed8b94cf12de auto hasNonDefaultPasteboardData = HasNonDefaultPasteboardData::No; if (dragState().shouldDispatchEvents) { -@@ -4758,7 +4765,8 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) - allTouchReleased = false; - } +@@ -4892,11 +4899,6 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) + document.page()->pointerCaptureController().dispatchEventForTouchAtIndex( + *touchTarget, cancelEvent, index, !index, *document.windowProxy(), { 0, 0 }); + } +- +- // FIXME: Pass the touch delta for pointermove events by remembering the position per pointerID similar to +- // Apple's m_touchLastGlobalPositionAndDeltaMap +- document.page()->pointerCaptureController().dispatchEventForTouchAtIndex( +- *pointerTarget, event, index, !index, *document.windowProxy(), { 0, 0 }); + #endif -- for (auto& point : points) { -+ for (unsigned index = 0; index < points.size(); index++) { -+ auto& point = points[index]; - PlatformTouchPoint::State pointState = point.state(); - LayoutPoint pagePoint = documentPointForWindowPoint(m_frame, point.pos()); - -@@ -4885,6 +4893,9 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) + if (&m_frame != targetFrame) { +@@ -4938,6 +4940,9 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) changedTouches[pointState].m_touches->append(WTFMove(touch)); changedTouches[pointState].m_targets.add(touchTarget); } + document.page()->pointerCaptureController().dispatchEventForTouchAtIndex( -+ *touchTarget, event, index, index == 0, *document.windowProxy()); ++ *touchTarget, event, index, index == 0, *document.windowProxy(), IntPoint::zero()); + } m_touchPressed = touches->length() > 0; if (allTouchReleased) diff --git a/Source/WebCore/page/EventHandler.h b/Source/WebCore/page/EventHandler.h -index b2674dd96b542499e6709e273fc95df64327106b..62f462dd233bb8bfcf8a2d39a77fe84170548948 100644 +index 7ab1b7513cf878700ee960bbbbf76dda37fcb16e..d186f310bf01de85e19f540b01bfe133a2456c6f 100644 --- a/Source/WebCore/page/EventHandler.h +++ b/Source/WebCore/page/EventHandler.h -@@ -137,9 +137,7 @@ public: +@@ -138,9 +138,7 @@ public: WEBCORE_EXPORT VisiblePosition selectionExtentRespectingEditingBoundary(const VisibleSelection&, const LayoutPoint&, Node*); @@ -5902,7 +5947,7 @@ index b2674dd96b542499e6709e273fc95df64327106b..62f462dd233bb8bfcf8a2d39a77fe841 #if ENABLE(PAN_SCROLLING) void didPanScrollStart(); -@@ -401,10 +399,8 @@ private: +@@ -405,10 +403,8 @@ private: bool startKeyboardScrollAnimationOnRenderBoxAndItsAncestors(ScrollDirection, ScrollGranularity, RenderBox*, bool isKeyRepeat); bool startKeyboardScrollAnimationOnEnclosingScrollableContainer(ScrollDirection, ScrollGranularity, Node*, bool isKeyRepeat); @@ -5913,7 +5958,7 @@ index b2674dd96b542499e6709e273fc95df64327106b..62f462dd233bb8bfcf8a2d39a77fe841 WEBCORE_EXPORT bool handleMouseReleaseEvent(const MouseEventWithHitTestResults&); -@@ -506,10 +502,8 @@ private: +@@ -510,10 +506,8 @@ private: void defaultTabEventHandler(KeyboardEvent&); void defaultArrowEventHandler(FocusDirection, KeyboardEvent&); @@ -5924,7 +5969,7 @@ index b2674dd96b542499e6709e273fc95df64327106b..62f462dd233bb8bfcf8a2d39a77fe841 // The following are called at the beginning of handleMouseUp and handleDrag. // If they return true it indicates that they have consumed the event. -@@ -517,9 +511,10 @@ private: +@@ -521,9 +515,10 @@ private: #if ENABLE(DRAG_SUPPORT) bool eventLoopHandleMouseDragged(const MouseEventWithHitTestResults&); @@ -5936,7 +5981,7 @@ index b2674dd96b542499e6709e273fc95df64327106b..62f462dd233bb8bfcf8a2d39a77fe841 enum class SetOrClearLastScrollbar { Clear, Set }; void updateLastScrollbarUnderMouse(Scrollbar*, SetOrClearLastScrollbar); -@@ -612,8 +607,8 @@ private: +@@ -616,8 +611,8 @@ private: Timer m_autoHideCursorTimer; #endif @@ -5947,10 +5992,10 @@ index b2674dd96b542499e6709e273fc95df64327106b..62f462dd233bb8bfcf8a2d39a77fe841 RefPtr m_dragTarget; bool m_mouseDownMayStartDrag { false }; diff --git a/Source/WebCore/page/FrameSnapshotting.cpp b/Source/WebCore/page/FrameSnapshotting.cpp -index 318ece9ac080ada83098fa17bf0e30a7f714d44a..f7da6c37f38f83fc9277e7a0097c9410d6c4757d 100644 +index d62d41b79f148cee977447f740bd6a768b159b0c..2d16d7243788ef876487d741caddc4a71cb5425f 100644 --- a/Source/WebCore/page/FrameSnapshotting.cpp +++ b/Source/WebCore/page/FrameSnapshotting.cpp -@@ -108,7 +108,7 @@ RefPtr snapshotFrameRectWithClip(LocalFrame& frame, const IntRect& +@@ -109,7 +109,7 @@ RefPtr snapshotFrameRectWithClip(LocalFrame& frame, const IntRect& // Other paint behaviors are set by paintContentsForSnapshot. frame.view()->setPaintBehavior(paintBehavior); @@ -5959,7 +6004,7 @@ index 318ece9ac080ada83098fa17bf0e30a7f714d44a..f7da6c37f38f83fc9277e7a0097c9410 if (frame.page()->delegatesScaling()) scaleFactor *= frame.page()->pageScaleFactor(); -@@ -123,7 +123,13 @@ RefPtr snapshotFrameRectWithClip(LocalFrame& frame, const IntRect& +@@ -124,7 +124,13 @@ RefPtr snapshotFrameRectWithClip(LocalFrame& frame, const IntRect& if (!buffer) return nullptr; @@ -5973,7 +6018,7 @@ index 318ece9ac080ada83098fa17bf0e30a7f714d44a..f7da6c37f38f83fc9277e7a0097c9410 if (!clipRects.isEmpty()) { Path clipPath; -@@ -132,7 +138,10 @@ RefPtr snapshotFrameRectWithClip(LocalFrame& frame, const IntRect& +@@ -133,7 +139,10 @@ RefPtr snapshotFrameRectWithClip(LocalFrame& frame, const IntRect& buffer->context().clipPath(clipPath); } @@ -6007,18 +6052,18 @@ index 5f85bb24166b1c1805323fcbb34144be3191643b..09d2782e3961d70b9483a77e0c12923b struct SnapshotOptions { diff --git a/Source/WebCore/page/History.cpp b/Source/WebCore/page/History.cpp -index c8ba6e09d790d98aaf36217870455f40bc35a1ea..a38e207bff38cbc33ccd62a564fcf21b7f950726 100644 +index 81bd9a039ff42ed2ce7c651bae1890b7498539fb..9e3675205598ad773ba4f96aa75098af267c4d3e 100644 --- a/Source/WebCore/page/History.cpp +++ b/Source/WebCore/page/History.cpp -@@ -32,6 +32,7 @@ - #include "FrameLoaderClient.h" +@@ -31,6 +31,7 @@ + #include "FrameLoader.h" #include "HistoryController.h" #include "HistoryItem.h" +#include "InspectorInstrumentation.h" #include "LocalFrame.h" + #include "LocalFrameLoaderClient.h" #include "Logging.h" - #include "NavigationScheduler.h" -@@ -273,6 +274,7 @@ ExceptionOr History::stateObjectAdded(RefPtr&& data +@@ -274,6 +275,7 @@ ExceptionOr History::stateObjectAdded(RefPtr&& data if (!urlString.isEmpty()) frame->document()->updateURLForPushOrReplaceState(fullURL); @@ -6027,7 +6072,7 @@ index c8ba6e09d790d98aaf36217870455f40bc35a1ea..a38e207bff38cbc33ccd62a564fcf21b if (stateObjectType == StateObjectType::Push) { frame->loader().history().pushState(WTFMove(data), title, fullURL.string()); diff --git a/Source/WebCore/page/LocalFrame.cpp b/Source/WebCore/page/LocalFrame.cpp -index 4e2ea3ab9aa529691cd213fb8d31c5d0d16962cf..e35d10d19994cf95a10aac37ac042c5d3c473dbc 100644 +index 9dcbd3964008c12be7a472008fd4b2d3dc5f9fce..478a9562600b001e45b399b7a2a2fbae7d170f8b 100644 --- a/Source/WebCore/page/LocalFrame.cpp +++ b/Source/WebCore/page/LocalFrame.cpp @@ -40,6 +40,7 @@ @@ -6038,7 +6083,7 @@ index 4e2ea3ab9aa529691cd213fb8d31c5d0d16962cf..e35d10d19994cf95a10aac37ac042c5d #include "DocumentLoader.h" #include "DocumentTimelinesController.h" #include "DocumentType.h" -@@ -58,6 +59,7 @@ +@@ -57,6 +58,7 @@ #include "FrameSelection.h" #include "GraphicsContext.h" #include "GraphicsLayer.h" @@ -6046,15 +6091,15 @@ index 4e2ea3ab9aa529691cd213fb8d31c5d0d16962cf..e35d10d19994cf95a10aac37ac042c5d #include "HTMLFormControlElement.h" #include "HTMLFormElement.h" #include "HTMLFrameElementBase.h" -@@ -75,6 +77,7 @@ - #include "NavigationScheduler.h" +@@ -74,6 +76,7 @@ + #include "Logging.h" #include "Navigator.h" #include "NodeList.h" +#include "NodeRenderStyle.h" #include "NodeTraversal.h" #include "Page.h" #include "ProcessWarming.h" -@@ -178,6 +181,7 @@ LocalFrame::LocalFrame(Page& page, UniqueRef&& frameLoaderCli +@@ -176,6 +179,7 @@ LocalFrame::LocalFrame(Page& page, UniqueRef&& frameLoad void LocalFrame::init() { @@ -6062,7 +6107,7 @@ index 4e2ea3ab9aa529691cd213fb8d31c5d0d16962cf..e35d10d19994cf95a10aac37ac042c5d m_loader->init(); } -@@ -372,7 +376,7 @@ void LocalFrame::orientationChanged() +@@ -374,7 +378,7 @@ void LocalFrame::orientationChanged() IntDegrees LocalFrame::orientation() const { if (auto* page = this->page()) @@ -6071,7 +6116,7 @@ index 4e2ea3ab9aa529691cd213fb8d31c5d0d16962cf..e35d10d19994cf95a10aac37ac042c5d return 0; } #endif // ENABLE(ORIENTATION_EVENTS) -@@ -1189,6 +1193,362 @@ DataDetectionResultsStorage& LocalFrame::dataDetectionResults() +@@ -1176,6 +1180,362 @@ DataDetectionResultsStorage& LocalFrame::dataDetectionResults() #endif @@ -6435,7 +6480,7 @@ index 4e2ea3ab9aa529691cd213fb8d31c5d0d16962cf..e35d10d19994cf95a10aac37ac042c5d #undef FRAME_RELEASE_LOG_ERROR diff --git a/Source/WebCore/page/LocalFrame.h b/Source/WebCore/page/LocalFrame.h -index 85fb23a5c1ead92c0ecdb266434509afb5e61b2d..adfae0130d0d90c74d13d4861a6570f861dddf46 100644 +index dcb779a5605d9cff6e0fb195a5e0c9e3b7bd4269..6ecb28dc92137845d112ac59d58df36c386f5712 100644 --- a/Source/WebCore/page/LocalFrame.h +++ b/Source/WebCore/page/LocalFrame.h @@ -28,8 +28,10 @@ @@ -6446,10 +6491,10 @@ index 85fb23a5c1ead92c0ecdb266434509afb5e61b2d..adfae0130d0d90c74d13d4861a6570f8 #include "Document.h" #include "Frame.h" +#include "IntDegrees.h" - #include "PageIdentifier.h" #include "ScrollTypes.h" #include "UserScriptTypes.h" -@@ -70,7 +72,6 @@ namespace WebCore { + #include +@@ -69,7 +71,6 @@ namespace WebCore { class Color; class LocalDOMWindow; class DataDetectionResultsStorage; @@ -6457,7 +6502,7 @@ index 85fb23a5c1ead92c0ecdb266434509afb5e61b2d..adfae0130d0d90c74d13d4861a6570f8 class Editor; class Element; class EventHandler; -@@ -110,8 +111,8 @@ enum { +@@ -108,8 +109,8 @@ enum { }; enum OverflowScrollAction { DoNotPerformOverflowScroll, PerformOverflowScroll }; @@ -6467,7 +6512,7 @@ index 85fb23a5c1ead92c0ecdb266434509afb5e61b2d..adfae0130d0d90c74d13d4861a6570f8 class LocalFrame final : public Frame { public: -@@ -206,10 +207,6 @@ public: +@@ -201,10 +202,6 @@ public: WEBCORE_EXPORT DataDetectionResultsStorage& dataDetectionResults(); #endif @@ -6478,7 +6523,7 @@ index 85fb23a5c1ead92c0ecdb266434509afb5e61b2d..adfae0130d0d90c74d13d4861a6570f8 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); -@@ -217,6 +214,10 @@ public: +@@ -212,6 +209,10 @@ public: WEBCORE_EXPORT Node* nodeRespondingToScrollWheelEvents(const FloatPoint& viewportLocation); WEBCORE_EXPORT Node* approximateNodeAtViewportLocationLegacy(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation); @@ -6489,7 +6534,7 @@ index 85fb23a5c1ead92c0ecdb266434509afb5e61b2d..adfae0130d0d90c74d13d4861a6570f8 WEBCORE_EXPORT NSArray *wordsInCurrentParagraph() const; WEBCORE_EXPORT CGRect renderRectForPoint(CGPoint, bool* isReplaced, float* fontSize) const; -@@ -284,6 +285,7 @@ public: +@@ -279,6 +280,7 @@ public: WEBCORE_EXPORT FloatSize screenSize() const; void setOverrideScreenSize(FloatSize&&); @@ -6497,7 +6542,7 @@ index 85fb23a5c1ead92c0ecdb266434509afb5e61b2d..adfae0130d0d90c74d13d4861a6570f8 void selfOnlyRef(); void selfOnlyDeref(); -@@ -318,7 +320,6 @@ private: +@@ -313,7 +315,6 @@ private: #if ENABLE(DATA_DETECTION) std::unique_ptr m_dataDetectionResults; #endif @@ -6505,7 +6550,7 @@ index 85fb23a5c1ead92c0ecdb266434509afb5e61b2d..adfae0130d0d90c74d13d4861a6570f8 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); -@@ -326,6 +327,7 @@ private: +@@ -321,6 +322,7 @@ private: enum class ShouldFindRootEditableElement : bool { No, Yes }; Node* qualifyingNodeAtViewportLocation(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation, const NodeQualifier&, ShouldApproximate, ShouldFindRootEditableElement = ShouldFindRootEditableElement::Yes); @@ -6514,10 +6559,10 @@ index 85fb23a5c1ead92c0ecdb266434509afb5e61b2d..adfae0130d0d90c74d13d4861a6570f8 ViewportArguments m_viewportArguments; diff --git a/Source/WebCore/page/Page.cpp b/Source/WebCore/page/Page.cpp -index 15ea4cda28d79a0483c3898ea8d0070e72a75b80..dda3cee2532e56cbc44fe8cdca60c6221d544799 100644 +index 89c9ad91a677a3da71afaa35f7f9822596c871f5..773cb8c0f9250e9243df2ac6977c9343d9468528 100644 --- a/Source/WebCore/page/Page.cpp +++ b/Source/WebCore/page/Page.cpp -@@ -516,6 +516,45 @@ void Page::setOverrideViewportArguments(const std::optional& +@@ -517,6 +517,45 @@ void Page::setOverrideViewportArguments(const std::optional& document->updateViewportArguments(); } @@ -6563,18 +6608,7 @@ index 15ea4cda28d79a0483c3898ea8d0070e72a75b80..dda3cee2532e56cbc44fe8cdca60c622 ScrollingCoordinator* Page::scrollingCoordinator() { if (!m_scrollingCoordinator && m_settings->scrollingCoordinatorEnabled()) { -@@ -1465,10 +1504,6 @@ void Page::didCommitLoad() - m_isEditableRegionEnabled = false; - #endif - --#if HAVE(OS_DARK_MODE_SUPPORT) -- setUseDarkAppearanceOverride(std::nullopt); --#endif -- - resetSeenPlugins(); - resetSeenMediaEngines(); - -@@ -3638,6 +3673,26 @@ void Page::setUseDarkAppearanceOverride(std::optional valueOverride) +@@ -3687,6 +3726,26 @@ void Page::setUseDarkAppearanceOverride(std::optional valueOverride) #endif } @@ -6602,10 +6636,10 @@ index 15ea4cda28d79a0483c3898ea8d0070e72a75b80..dda3cee2532e56cbc44fe8cdca60c622 { if (insets == m_fullscreenInsets) diff --git a/Source/WebCore/page/Page.h b/Source/WebCore/page/Page.h -index ed6ccc749bd7cbad9ed42e14117b54f59246a68b..e5becddfce59dd234bd77bf7ad35e6f8713fdfbc 100644 +index 0d1c45acfce092af08d7f8489b5d8c97a33ced13..b841ebb198e258b0498fcf33cdc63b96178dee5a 100644 --- a/Source/WebCore/page/Page.h +++ b/Source/WebCore/page/Page.h -@@ -300,6 +300,9 @@ public: +@@ -311,6 +311,9 @@ public: const std::optional& overrideViewportArguments() const { return m_overrideViewportArguments; } WEBCORE_EXPORT void setOverrideViewportArguments(const std::optional&); @@ -6615,7 +6649,7 @@ index ed6ccc749bd7cbad9ed42e14117b54f59246a68b..e5becddfce59dd234bd77bf7ad35e6f8 static void refreshPlugins(bool reload); WEBCORE_EXPORT PluginData& pluginData(); void clearPluginData(); -@@ -358,6 +361,10 @@ public: +@@ -369,6 +372,10 @@ public: #if ENABLE(DRAG_SUPPORT) DragController& dragController() { return m_dragController.get(); } const DragController& dragController() const { return m_dragController.get(); } @@ -6626,7 +6660,7 @@ index ed6ccc749bd7cbad9ed42e14117b54f59246a68b..e5becddfce59dd234bd77bf7ad35e6f8 #endif FocusController& focusController() const { return *m_focusController; } #if ENABLE(CONTEXT_MENUS) -@@ -527,6 +534,10 @@ public: +@@ -538,6 +545,10 @@ public: WEBCORE_EXPORT void effectiveAppearanceDidChange(bool useDarkAppearance, bool useElevatedUserInterfaceLevel); bool defaultUseDarkAppearance() const { return m_useDarkAppearance; } void setUseDarkAppearanceOverride(std::optional); @@ -6637,7 +6671,7 @@ index ed6ccc749bd7cbad9ed42e14117b54f59246a68b..e5becddfce59dd234bd77bf7ad35e6f8 #if ENABLE(TEXT_AUTOSIZING) float textAutosizingWidth() const { return m_textAutosizingWidth; } -@@ -958,6 +969,11 @@ public: +@@ -974,6 +985,11 @@ public: WEBCORE_EXPORT void setInteractionRegionsEnabled(bool); #endif @@ -6649,7 +6683,7 @@ index ed6ccc749bd7cbad9ed42e14117b54f59246a68b..e5becddfce59dd234bd77bf7ad35e6f8 #if ENABLE(DEVICE_ORIENTATION) && PLATFORM(IOS_FAMILY) DeviceOrientationUpdateProvider* deviceOrientationUpdateProvider() const { return m_deviceOrientationUpdateProvider.get(); } #endif -@@ -1092,6 +1108,9 @@ private: +@@ -1112,6 +1128,9 @@ private: #if ENABLE(DRAG_SUPPORT) UniqueRef m_dragController; @@ -6659,7 +6693,7 @@ index ed6ccc749bd7cbad9ed42e14117b54f59246a68b..e5becddfce59dd234bd77bf7ad35e6f8 #endif std::unique_ptr m_focusController; #if ENABLE(CONTEXT_MENUS) -@@ -1173,6 +1192,8 @@ private: +@@ -1193,6 +1212,8 @@ private: bool m_useElevatedUserInterfaceLevel { false }; bool m_useDarkAppearance { false }; std::optional m_useDarkAppearanceOverride; @@ -6668,7 +6702,7 @@ index ed6ccc749bd7cbad9ed42e14117b54f59246a68b..e5becddfce59dd234bd77bf7ad35e6f8 #if ENABLE(TEXT_AUTOSIZING) float m_textAutosizingWidth { 0 }; -@@ -1351,6 +1372,11 @@ private: +@@ -1371,6 +1392,11 @@ private: #endif std::optional m_overrideViewportArguments; @@ -6681,7 +6715,7 @@ index ed6ccc749bd7cbad9ed42e14117b54f59246a68b..e5becddfce59dd234bd77bf7ad35e6f8 #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 48c3d57c09fecd971b77dde5a89aef52a8ec59c9..6b9a5ad8da537ba1985341934226b75ab0811c70 100644 +index 6fe30e064c50097f90b06ac7facbd0717d6a873b..81e3e8c19771fc6e0fbed5d55303517b7fbd2dca 100644 --- a/Source/WebCore/page/PageConsoleClient.cpp +++ b/Source/WebCore/page/PageConsoleClient.cpp @@ -429,4 +429,10 @@ void PageConsoleClient::screenshot(JSC::JSGlobalObject* lexicalGlobalObject, Ref @@ -6708,14 +6742,14 @@ index 9a6549a792bf95f6d5671289bc58be259ec73732..03a6ceb14a18b3b74e8544a98fb85841 Page& m_page; }; diff --git a/Source/WebCore/page/PointerCaptureController.cpp b/Source/WebCore/page/PointerCaptureController.cpp -index 9f23b808c242e5561330c70a6a0983f8fe66e9e2..2a2cb2b230a72b98aa2b291a9feee53d67b6b870 100644 +index bd147a1fee46d2f228c115230f8d071dc303756c..b06dce53e787d95c6b89c01511084f95175764b7 100644 --- a/Source/WebCore/page/PointerCaptureController.cpp +++ b/Source/WebCore/page/PointerCaptureController.cpp @@ -195,7 +195,7 @@ bool PointerCaptureController::preventsCompatibilityMouseEventsForIdentifier(Poi return capturingData && capturingData->preventsCompatibilityMouseEvents; } --#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS_FAMILY) +-#if ENABLE(TOUCH_EVENTS) && (PLATFORM(IOS_FAMILY) || PLATFORM(WPE)) +#if ENABLE(TOUCH_EVENTS) static bool hierarchyHasCapturingEventListeners(Element* target, const AtomString& eventName) { @@ -6724,33 +6758,39 @@ index 9f23b808c242e5561330c70a6a0983f8fe66e9e2..2a2cb2b230a72b98aa2b291a9feee53d capturingData->pendingTargetOverride = nullptr; capturingData->state = CapturingData::State::Cancelled; --#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS_FAMILY) +-#if ENABLE(TOUCH_EVENTS) && (PLATFORM(IOS_FAMILY) || PLATFORM(WPE)) +#if ENABLE(TOUCH_EVENTS) capturingData->previousTarget = nullptr; #endif diff --git a/Source/WebCore/page/PointerCaptureController.h b/Source/WebCore/page/PointerCaptureController.h -index 8c911ca663507b61640a4e29245dabe79573c420..08cdd2bfea9f5ac19c8cc39dc80032e140828ca4 100644 +index 9ec307bf796452e21c695116d1f678e1d9916709..b47ed65e85cf9cbb0d32d6199a9b1c1c0681dfcb 100644 --- a/Source/WebCore/page/PointerCaptureController.h +++ b/Source/WebCore/page/PointerCaptureController.h @@ -57,7 +57,7 @@ public: RefPtr pointerEventForMouseEvent(const MouseEvent&, PointerID, const String& pointerType); --#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS_FAMILY) +-#if ENABLE(TOUCH_EVENTS) && (PLATFORM(IOS_FAMILY) || PLATFORM(WPE)) +#if ENABLE(TOUCH_EVENTS) - void dispatchEventForTouchAtIndex(EventTarget&, const PlatformTouchEvent&, unsigned, bool isPrimary, WindowProxy&); + void dispatchEventForTouchAtIndex(EventTarget&, const PlatformTouchEvent&, unsigned, bool isPrimary, WindowProxy&, const IntPoint&); #endif -@@ -77,7 +77,7 @@ private: +@@ -77,12 +77,12 @@ private: RefPtr pendingTargetOverride; RefPtr targetOverride; --#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS_FAMILY) +-#if ENABLE(TOUCH_EVENTS) && (PLATFORM(IOS_FAMILY) || PLATFORM(WPE)) +#if ENABLE(TOUCH_EVENTS) RefPtr previousTarget; #endif bool hasAnyElement() const { + return pendingTargetOverride || targetOverride +-#if ENABLE(TOUCH_EVENTS) && (PLATFORM(IOS_FAMILY) || PLATFORM(WPE)) ++#if ENABLE(TOUCH_EVENTS) + || previousTarget + #endif + ; diff --git a/Source/WebCore/page/Screen.cpp b/Source/WebCore/page/Screen.cpp index 3161bc20838183906a01e85f0c1feedc82f34ce7..64f5ae86238b2621f5d1895eaae2b6077ab82a4a 100644 --- a/Source/WebCore/page/Screen.cpp @@ -6796,10 +6836,10 @@ index 3161bc20838183906a01e85f0c1feedc82f34ce7..64f5ae86238b2621f5d1895eaae2b607 } diff --git a/Source/WebCore/page/csp/ContentSecurityPolicy.cpp b/Source/WebCore/page/csp/ContentSecurityPolicy.cpp -index 0c04ac6dfa139cd18df7535b7eb8f6f362e01b81..fa80e07c899d2ca5572bb7afbef092707897be57 100644 +index 90e90260c6a653ade7cfda34b9a1079f18554589..bce4219f7d0fdbf6cfe43bded7c038e33020ad41 100644 --- a/Source/WebCore/page/csp/ContentSecurityPolicy.cpp +++ b/Source/WebCore/page/csp/ContentSecurityPolicy.cpp -@@ -336,6 +336,8 @@ bool ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtoc +@@ -337,6 +337,8 @@ bool ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtoc template typename std::enable_if::value, bool>::type ContentSecurityPolicy::allPoliciesWithDispositionAllow(Disposition disposition, Predicate&& predicate, Args&&... args) const { @@ -6808,7 +6848,7 @@ index 0c04ac6dfa139cd18df7535b7eb8f6f362e01b81..fa80e07c899d2ca5572bb7afbef09270 bool isReportOnly = disposition == ContentSecurityPolicy::Disposition::ReportOnly; for (auto& policy : m_policies) { if (policy->isReportOnly() != isReportOnly) -@@ -349,6 +351,8 @@ typename std::enable_if bool ContentSecurityPolicy::allPoliciesWithDispositionAllow(Disposition disposition, ViolatedDirectiveCallback&& callback, Predicate&& predicate, Args&&... args) const { @@ -6817,7 +6857,7 @@ index 0c04ac6dfa139cd18df7535b7eb8f6f362e01b81..fa80e07c899d2ca5572bb7afbef09270 bool isReportOnly = disposition == ContentSecurityPolicy::Disposition::ReportOnly; bool isAllowed = true; for (auto& policy : m_policies) { -@@ -365,6 +369,8 @@ bool ContentSecurityPolicy::allPoliciesWithDispositionAllow(Disposition disposit +@@ -366,6 +370,8 @@ bool ContentSecurityPolicy::allPoliciesWithDispositionAllow(Disposition disposit template bool ContentSecurityPolicy::allPoliciesAllow(ViolatedDirectiveCallback&& callback, Predicate&& predicate, Args&&... args) const { @@ -8180,19 +8220,6 @@ index 0552842dbe3f3a2c12a504178f5a8ca977e1c4db..2ef3b1b459d8a9b4e86b4556feeb4f07 namespace WebCore { class WEBCORE_EXPORT LibWebRTCProviderGStreamer : public LibWebRTCProvider { -diff --git a/Source/WebCore/platform/network/DataURLDecoder.h b/Source/WebCore/platform/network/DataURLDecoder.h -index 2ae92bfc0fb33507c6a5f54fe19e97ec9b53ee68..bf67451389b7e5d9d36936cae6c4cec45f7885d3 100644 ---- a/Source/WebCore/platform/network/DataURLDecoder.h -+++ b/Source/WebCore/platform/network/DataURLDecoder.h -@@ -51,7 +51,7 @@ struct ScheduleContext { - #endif - }; - --void decode(const URL&, const ScheduleContext&, DecodeCompletionHandler&&); -+WEBCORE_EXPORT void decode(const URL&, const ScheduleContext&, DecodeCompletionHandler&&); - WEBCORE_EXPORT std::optional decode(const URL&); - - } diff --git a/Source/WebCore/platform/network/HTTPHeaderMap.cpp b/Source/WebCore/platform/network/HTTPHeaderMap.cpp index 35ade40b37f0c476815535541118f9246ed199cd..2bd1444f9a5e9a14ab3d6acbc020434e1f55ede1 100644 --- a/Source/WebCore/platform/network/HTTPHeaderMap.cpp @@ -8224,7 +8251,7 @@ index 20f53a73e854e739a3289af2ee8fa979b5397460..db0c94f1b37b7930e9c95b5677705ead WEBCORE_EXPORT void setCookie(const Cookie&); WEBCORE_EXPORT void setCookies(const Vector&, const URL&, const URL& mainDocumentURL); diff --git a/Source/WebCore/platform/network/ResourceResponseBase.cpp b/Source/WebCore/platform/network/ResourceResponseBase.cpp -index adb39a306c5c43c6775d2ae033a1eaf74c8039d4..8e1a10a623f6cfe70bc49e149fcbba56a5d9e322 100644 +index 1c8c44d16ab8bb361d416ba1e5c1f0145327e07f..4c28fa8a267403a834918576a3c679f354f0f9c4 100644 --- a/Source/WebCore/platform/network/ResourceResponseBase.cpp +++ b/Source/WebCore/platform/network/ResourceResponseBase.cpp @@ -74,6 +74,7 @@ ResourceResponseBase::ResourceResponseBase(std::optional targetCookie(cookie.toSoupCookie()); diff --git a/Source/WebCore/platform/win/ClipboardUtilitiesWin.cpp b/Source/WebCore/platform/win/ClipboardUtilitiesWin.cpp -index fc63698cd682f9a70ac43c8417a48651ff9d628d..e6c4d00d977cd0186c8ffc4ed0c5ca37da9a6df3 100644 +index 8456841cafdaf4d99be5b490afc67e28b03a8b42..51be5ab0fccca21aea4ccc7acf6c9f49b5577e4f 100644 --- a/Source/WebCore/platform/win/ClipboardUtilitiesWin.cpp +++ b/Source/WebCore/platform/win/ClipboardUtilitiesWin.cpp @@ -39,6 +39,7 @@ @@ -8795,7 +8822,7 @@ index bbdd1ce76241d933ada9c43fabae4912cbfa64e1..e6ae01a77350c519b203f6ed2910f638 } diff --git a/Source/WebCore/platform/wpe/SelectionData.cpp b/Source/WebCore/platform/wpe/SelectionData.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..2a461c25464ec787513369527743671d34f56709 +index 0000000000000000000000000000000000000000..463651fa9ccf106a0fdd75db1aa747b4f760c06e --- /dev/null +++ b/Source/WebCore/platform/wpe/SelectionData.cpp @@ -0,0 +1,134 @@ @@ -8856,7 +8883,7 @@ index 0000000000000000000000000000000000000000..2a461c25464ec787513369527743671d + // from the URI list. + bool setURL = hasURL(); + for (auto& line : uriListString.split('\n')) { -+ line = line.stripWhiteSpace(); ++ line = line.stripLeadingAndTrailingCharacters(deprecatedIsSpaceOrNewline); + if (line.isEmpty()) + continue; + if (line[0] == '#') @@ -9022,10 +9049,10 @@ index 0000000000000000000000000000000000000000..cf2b51f6f02837a1106f4d999f2f130e + +} // namespace WebCore diff --git a/Source/WebCore/rendering/RenderTextControl.cpp b/Source/WebCore/rendering/RenderTextControl.cpp -index 53c953f10702812a367851356a4b46e269ff0b42..dc910a1c9a7d698099e956dbaf76fe6c85a769ed 100644 +index 6cf00050808db44c0cca58ee6a10ae617b8d3e1e..4a2bc192b03c8f16c49b469d9f354db8dc8110ed 100644 --- a/Source/WebCore/rendering/RenderTextControl.cpp +++ b/Source/WebCore/rendering/RenderTextControl.cpp -@@ -217,13 +217,13 @@ void RenderTextControl::layoutExcludedChildren(bool relayoutChildren) +@@ -227,13 +227,13 @@ void RenderTextControl::layoutExcludedChildren(bool relayoutChildren) } } @@ -9041,7 +9068,7 @@ index 53c953f10702812a367851356a4b46e269ff0b42..dc910a1c9a7d698099e956dbaf76fe6c { auto innerText = innerTextElement(); diff --git a/Source/WebCore/rendering/RenderTextControl.h b/Source/WebCore/rendering/RenderTextControl.h -index 86f9c8b1bb416a7d8aa402b9e08bb28fe5592186..78886b268425cfbc3c58d54b31ab333b384d53e0 100644 +index 4aec4c8060348ed41d04a1b1b576f15643db4364..801a5515e4fd3f52e48bdb411ae5d028b6ca0700 100644 --- a/Source/WebCore/rendering/RenderTextControl.h +++ b/Source/WebCore/rendering/RenderTextControl.h @@ -36,9 +36,9 @@ public: @@ -9079,10 +9106,10 @@ index 1d8488e0d36288e09cd5662bd7f770ade95dfee3..dee07f87b47d62d4ef8ede45824bdb2f WorkerOrWorkletGlobalScope& m_globalScope; }; diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp -index 89943ed2e6bfcd4609dba2c2a42bcbfc2e9014f8..226ed8eefb258220708102dd9b9a5208e4d17c36 100644 +index 242dc0292659abe638dbefc6918bed92c7e436e2..4c9e1af501d24a1c76415443293623ad813e8dbc 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp -@@ -87,6 +87,8 @@ +@@ -88,6 +88,8 @@ #if PLATFORM(COCOA) #include @@ -9091,7 +9118,7 @@ index 89943ed2e6bfcd4609dba2c2a42bcbfc2e9014f8..226ed8eefb258220708102dd9b9a5208 #endif #if ENABLE(APPLE_PAY_REMOTE_UI) -@@ -1015,6 +1017,14 @@ void NetworkConnectionToWebProcess::clearPageSpecificData(PageIdentifier pageID) +@@ -1023,6 +1025,14 @@ void NetworkConnectionToWebProcess::clearPageSpecificData(PageIdentifier pageID) #endif } @@ -9107,10 +9134,10 @@ index 89943ed2e6bfcd4609dba2c2a42bcbfc2e9014f8..226ed8eefb258220708102dd9b9a5208 void NetworkConnectionToWebProcess::removeStorageAccessForFrame(FrameIdentifier frameID, PageIdentifier pageID) { diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h -index 0877e33f2002a719f87a890bb4b7579750542cbb..03f8799967228d195a747738bec8622e5cb37a7d 100644 +index dcf3ed999b0197d99a5ef6217fb13166e5714ac3..9f42dccb69145a9c4f6efbf12e3b25236727a28f 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h -@@ -310,6 +310,8 @@ private: +@@ -313,6 +313,8 @@ private: void clearPageSpecificData(WebCore::PageIdentifier); @@ -9133,11 +9160,11 @@ index 178a5009f929a4a7c0b6d4f6b9ce313fbdf40b9e..812c7288a0efa2c685ed91f1fefaf909 RemoveStorageAccessForFrame(WebCore::FrameIdentifier frameID, WebCore::PageIdentifier pageID); LogUserInteraction(WebCore::RegistrableDomain domain) diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.cpp b/Source/WebKit/NetworkProcess/NetworkProcess.cpp -index 0acb06b8f5f8d2ffa9c0054999c51f72ec02716b..451640dd8044a3d9fba14905f9ae8edbcd87fda8 100644 +index 23f9ba7a180081c95bc6b9810b2e18972788d9d6..6f90e47099c1cc99ae6b6132acd198014e4f9a6b 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.cpp +++ b/Source/WebKit/NetworkProcess/NetworkProcess.cpp -@@ -613,6 +613,12 @@ void NetworkProcess::registrableDomainsWithLastAccessedTime(PAL::SessionID sessi - completionHandler(std::nullopt); +@@ -633,6 +633,12 @@ void NetworkProcess::registrableDomainsExemptFromWebsiteDataDeletion(PAL::Sessio + completionHandler({ }); } +void NetworkProcess::setIgnoreCertificateErrors(PAL::SessionID sessionID, bool ignore) @@ -9150,7 +9177,7 @@ index 0acb06b8f5f8d2ffa9c0054999c51f72ec02716b..451640dd8044a3d9fba14905f9ae8edb void NetworkProcess::dumpResourceLoadStatistics(PAL::SessionID sessionID, CompletionHandler&& completionHandler) { diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.h b/Source/WebKit/NetworkProcess/NetworkProcess.h -index 1c7d627bcbe874f53fd3fbe1b87d8ced895cee09..d1b0725bcbc4d711521eb3bf850098abdf54d747 100644 +index 1012b158f53e77ab80b6a921290fb8c7bb976391..82bbe98a551f934faaf4cd665b898cfc1ebda480 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.h +++ b/Source/WebKit/NetworkProcess/NetworkProcess.h @@ -37,6 +37,7 @@ @@ -9169,10 +9196,10 @@ index 1c7d627bcbe874f53fd3fbe1b87d8ced895cee09..d1b0725bcbc4d711521eb3bf850098ab class CurlProxySettings; class ProtectionSpace; class NetworkStorageSession; -@@ -204,6 +206,9 @@ public: - void addWebsiteDataStore(WebsiteDataStoreParameters&&); +@@ -207,6 +209,9 @@ public: void registrableDomainsWithLastAccessedTime(PAL::SessionID, CompletionHandler>)>&&); + void registrableDomainsExemptFromWebsiteDataDeletion(PAL::SessionID, CompletionHandler)>&&); + + void setIgnoreCertificateErrors(PAL::SessionID, bool); + @@ -9180,12 +9207,12 @@ index 1c7d627bcbe874f53fd3fbe1b87d8ced895cee09..d1b0725bcbc4d711521eb3bf850098ab void clearPrevalentResource(PAL::SessionID, RegistrableDomain&&, CompletionHandler&&); void clearUserInteraction(PAL::SessionID, RegistrableDomain&&, CompletionHandler&&); diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in -index 192d68f37f84b47fa6be3eff15726edaa53becbe..c3266537b33046b16bd0d46ae5388ec8f4abc145 100644 +index 1590992ea4d62ac5dd49ef2e29a980a3c028b343..ede7220f254538a870281b07e1673cd04dd44817 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in +++ b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in @@ -79,6 +79,8 @@ messages -> NetworkProcess LegacyReceiver { - PreconnectTo(PAL::SessionID sessionID, WebKit::WebPageProxyIdentifier webPageProxyID, WebCore::PageIdentifier webPageID, URL url, String userAgent, enum:uint8_t WebCore::StoredCredentialsPolicy storedCredentialsPolicy, std::optional isNavigatingToAppBoundDomain, enum:bool WebKit::LastNavigationWasAppInitiated lastNavigationWasAppInitiated); + PreconnectTo(PAL::SessionID sessionID, WebKit::WebPageProxyIdentifier webPageProxyID, WebCore::PageIdentifier webPageID, WebCore::ResourceRequest request, enum:uint8_t WebCore::StoredCredentialsPolicy storedCredentialsPolicy, std::optional isNavigatingToAppBoundDomain); + SetIgnoreCertificateErrors(PAL::SessionID sessionID, bool ignoreTLSErrors) + @@ -9193,7 +9220,7 @@ index 192d68f37f84b47fa6be3eff15726edaa53becbe..c3266537b33046b16bd0d46ae5388ec8 ClearPrevalentResource(PAL::SessionID sessionID, WebCore::RegistrableDomain resourceDomain) -> () ClearUserInteraction(PAL::SessionID sessionID, WebCore::RegistrableDomain resourceDomain) -> () diff --git a/Source/WebKit/NetworkProcess/NetworkSession.h b/Source/WebKit/NetworkProcess/NetworkSession.h -index 9a00082c0327d7aec0b25b08f03f37230dc04a07..c6f0bd01af71f19fe1cdb70104674cb468ee2c0e 100644 +index 69fe24f09138eecff8633acfe4a532c73f800187..08d284b8e8462657f2d58ea44777669f322d2002 100644 --- a/Source/WebKit/NetworkProcess/NetworkSession.h +++ b/Source/WebKit/NetworkProcess/NetworkSession.h @@ -204,6 +204,9 @@ public: @@ -9215,7 +9242,7 @@ index 9a00082c0327d7aec0b25b08f03f37230dc04a07..c6f0bd01af71f19fe1cdb70104674cb4 HashSet> m_keptAliveLoads; diff --git a/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm b/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm -index 627724b887f85af7f05caa9d9b536658a3b306f9..77d424d7bffaea707676ab47ae80dce540f97381 100644 +index cfe2b53558564ca9de52c01a2182900960ce1fad..b5a09289d597cf2af265ee357be4749c98de1561 100644 --- a/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm +++ b/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm @@ -751,7 +751,7 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didRece @@ -9227,7 +9254,7 @@ index 627724b887f85af7f05caa9d9b536658a3b306f9..77d424d7bffaea707676ab47ae80dce5 return completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]); NSURLSessionTaskTransactionMetrics *metrics = task._incompleteTaskMetrics.transactionMetrics.lastObject; -@@ -1090,6 +1090,13 @@ ALLOW_DEPRECATED_DECLARATIONS_END +@@ -1092,6 +1092,13 @@ ALLOW_DEPRECATED_DECLARATIONS_END resourceResponse.setDeprecatedNetworkLoadMetrics(WebCore::copyTimingData(taskMetrics, networkDataTask->networkLoadMetrics())); @@ -9242,10 +9269,10 @@ index 627724b887f85af7f05caa9d9b536658a3b306f9..77d424d7bffaea707676ab47ae80dce5 #if !LOG_DISABLED LOG(NetworkSession, "%llu didReceiveResponse completionHandler (%d)", taskIdentifier, policyAction); diff --git a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp -index 51b762c507ebb7081acdfc84cab2e29c9f5d3c3f..d81714df9e316218b271cb42bb9e641369810552 100644 +index ed3b63e49436fa7d84a07cf6bd2d1042b75c5833..20484b326d23b5eac610cf2da37e9623655cb8eb 100644 --- a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp +++ b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp -@@ -84,12 +84,20 @@ NetworkDataTaskCurl::NetworkDataTaskCurl(NetworkSession& session, NetworkDataTas +@@ -85,12 +85,20 @@ NetworkDataTaskCurl::NetworkDataTaskCurl(NetworkSession& session, NetworkDataTas #endif restrictRequestReferrerToOriginIfNeeded(request); @@ -9271,7 +9298,7 @@ index 51b762c507ebb7081acdfc84cab2e29c9f5d3c3f..d81714df9e316218b271cb42bb9e6413 } NetworkDataTaskCurl::~NetworkDataTaskCurl() -@@ -166,6 +174,7 @@ void NetworkDataTaskCurl::curlDidReceiveResponse(CurlRequest& request, CurlRespo +@@ -167,6 +175,7 @@ void NetworkDataTaskCurl::curlDidReceiveResponse(CurlRequest& request, CurlRespo updateNetworkLoadMetrics(receivedResponse.networkLoadMetrics); m_response.setDeprecatedNetworkLoadMetrics(Box::create(WTFMove(receivedResponse.networkLoadMetrics))); @@ -9279,7 +9306,7 @@ index 51b762c507ebb7081acdfc84cab2e29c9f5d3c3f..d81714df9e316218b271cb42bb9e6413 handleCookieHeaders(request.resourceRequest(), receivedResponse); -@@ -283,6 +292,36 @@ bool NetworkDataTaskCurl::shouldRedirectAsGET(const ResourceRequest& request, bo +@@ -284,6 +293,36 @@ bool NetworkDataTaskCurl::shouldRedirectAsGET(const ResourceRequest& request, bo return false; } @@ -9316,7 +9343,7 @@ index 51b762c507ebb7081acdfc84cab2e29c9f5d3c3f..d81714df9e316218b271cb42bb9e6413 void NetworkDataTaskCurl::invokeDidReceiveResponse() { didReceiveResponse(ResourceResponse(m_response), NegotiatedLegacyTLS::No, PrivateRelayed::No, [this, protectedThis = Ref { *this }](PolicyAction policyAction) { -@@ -313,6 +352,8 @@ void NetworkDataTaskCurl::invokeDidReceiveResponse() +@@ -314,6 +353,8 @@ void NetworkDataTaskCurl::invokeDidReceiveResponse() downloadPtr->didCreateDestination(m_pendingDownloadLocation); if (m_curlRequest) m_curlRequest->completeDidReceiveResponse(); @@ -9325,7 +9352,7 @@ index 51b762c507ebb7081acdfc84cab2e29c9f5d3c3f..d81714df9e316218b271cb42bb9e6413 break; } default: -@@ -396,6 +437,8 @@ void NetworkDataTaskCurl::willPerformHTTPRedirection() +@@ -397,6 +438,8 @@ void NetworkDataTaskCurl::willPerformHTTPRedirection() m_curlRequest->setUserPass(m_initialCredential.user(), m_initialCredential.password()); m_curlRequest->setAuthenticationScheme(ProtectionSpace::AuthenticationScheme::HTTPBasic); } @@ -9423,10 +9450,10 @@ index c2e60f5ec6766e485996764bc240c18e8e747d85..20eb908199ea8735d38dfb27985fa2f3 void sendString(const IPC::DataReference&, CompletionHandler&&); diff --git a/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp b/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp -index 2f40b5465f707be95c29b77eed4b1bd47c0dfaaa..15bd52cb15cde7d214c0c7678d0158f1f02d4c4f 100644 +index f2102d9dc78f9f51fc0e6dfb47564a29d7c1e2e2..f62c991b391a281aad8236f71234278081cac77e 100644 --- a/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp +++ b/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp -@@ -492,6 +492,8 @@ void NetworkDataTaskSoup::didSendRequest(GRefPtr&& inputStream) +@@ -471,6 +471,8 @@ void NetworkDataTaskSoup::didSendRequest(GRefPtr&& inputStream) m_networkLoadMetrics.failsTAOCheck = !passesTimingAllowOriginCheck(m_response, *origin); } @@ -9435,7 +9462,7 @@ index 2f40b5465f707be95c29b77eed4b1bd47c0dfaaa..15bd52cb15cde7d214c0c7678d0158f1 dispatchDidReceiveResponse(); } -@@ -589,6 +591,8 @@ bool NetworkDataTaskSoup::acceptCertificate(GTlsCertificate* certificate, GTlsCe +@@ -568,6 +570,8 @@ bool NetworkDataTaskSoup::acceptCertificate(GTlsCertificate* certificate, GTlsCe { ASSERT(m_soupMessage); URL url = soupURIToURL(soup_message_get_uri(m_soupMessage.get())); @@ -9505,23 +9532,11 @@ index 7726f1ad59430f11a11bbec0300fcc86b4654e41..cdccb0f1d72c5350b5eebc197eeae8f5 #endif } return makeUnique(channel, request, soupSession(), soupMessage.get(), protocol); -diff --git a/Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp b/Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp -index 19abd815d501011a3aeffd7d555e8d8f4f120abe..492591574856d570333b22042ba18b9b6efebcce 100644 ---- a/Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp -+++ b/Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp -@@ -33,6 +33,7 @@ - #include "NetworkRTCProvider.h" - #include "WebRTCMonitorMessages.h" - #include -+#include - #include - - ALLOW_COMMA_BEGIN diff --git a/Source/WebKit/PlatformGTK.cmake b/Source/WebKit/PlatformGTK.cmake -index 76c0f75c6bfef320a9323dad255521c2e143f173..8b4f6c7409e1108aa97283c72b87448afd396ba5 100644 +index 5a85b8fd3f11e32d4cac091c3495c2a994f8a707..f81aebc35471525dd320e715e0e6d7988dfa0469 100644 --- a/Source/WebKit/PlatformGTK.cmake +++ b/Source/WebKit/PlatformGTK.cmake -@@ -304,6 +304,9 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES +@@ -307,6 +307,9 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES ${GSTREAMER_PBUTILS_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${LIBSOUP_INCLUDE_DIRS} @@ -9531,7 +9546,7 @@ index 76c0f75c6bfef320a9323dad255521c2e143f173..8b4f6c7409e1108aa97283c72b87448a ) list(APPEND WebKit_INTERFACE_INCLUDE_DIRECTORIES -@@ -350,6 +353,9 @@ if (USE_LIBWEBRTC) +@@ -353,6 +356,9 @@ if (USE_LIBWEBRTC) list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES "${THIRDPARTY_DIR}/libwebrtc/Source/" "${THIRDPARTY_DIR}/libwebrtc/Source/webrtc" @@ -9541,7 +9556,7 @@ index 76c0f75c6bfef320a9323dad255521c2e143f173..8b4f6c7409e1108aa97283c72b87448a ) endif () -@@ -393,6 +399,12 @@ else () +@@ -396,6 +402,12 @@ else () set(WebKitGTK_ENUM_HEADER_TEMPLATE ${WEBKIT_DIR}/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in) endif () @@ -9555,10 +9570,10 @@ index 76c0f75c6bfef320a9323dad255521c2e143f173..8b4f6c7409e1108aa97283c72b87448a set(WebKitGTK_ENUM_GENERATION_HEADERS ${WebKitGTK_INSTALLED_HEADERS}) list(REMOVE_ITEM WebKitGTK_ENUM_GENERATION_HEADERS ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/WebKitEnumTypes.h) diff --git a/Source/WebKit/PlatformWPE.cmake b/Source/WebKit/PlatformWPE.cmake -index ecf329c734796c779dfe296c1a280c73a1a701f7..ff0dfc87fdddccb0b83f05277f4f09d29e0573a7 100644 +index 783f72ed591d3a68426a8fd90f311f75ebc0b54d..9c2c707d61f1f71170a7bfb76b0e36318e012ddf 100644 --- a/Source/WebKit/PlatformWPE.cmake +++ b/Source/WebKit/PlatformWPE.cmake -@@ -202,6 +202,7 @@ set(WPE_API_INSTALLED_HEADERS +@@ -203,6 +203,7 @@ set(WPE_API_INSTALLED_HEADERS ${DERIVED_SOURCES_WPE_API_DIR}/WebKitEnumTypes.h ${DERIVED_SOURCES_WPE_API_DIR}/WebKitVersion.h ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitColor.h @@ -9566,7 +9581,7 @@ index ecf329c734796c779dfe296c1a280c73a1a701f7..ff0dfc87fdddccb0b83f05277f4f09d2 ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitRectangle.h ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitWebViewBackend.h ) -@@ -366,6 +367,7 @@ list(APPEND WebKit_PRIVATE_INCLUDE_DIRECTORIES +@@ -367,6 +368,7 @@ list(APPEND WebKit_PRIVATE_INCLUDE_DIRECTORIES "${WEBKIT_DIR}/UIProcess/Launcher/libwpe" "${WEBKIT_DIR}/UIProcess/Notifications/glib/" "${WEBKIT_DIR}/UIProcess/geoclue" @@ -9574,7 +9589,7 @@ index ecf329c734796c779dfe296c1a280c73a1a701f7..ff0dfc87fdddccb0b83f05277f4f09d2 "${WEBKIT_DIR}/UIProcess/gstreamer" "${WEBKIT_DIR}/UIProcess/linux" "${WEBKIT_DIR}/UIProcess/soup" -@@ -389,8 +391,17 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES +@@ -390,8 +392,17 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES ${GIO_UNIX_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS} ${LIBSOUP_INCLUDE_DIRS} @@ -9593,10 +9608,10 @@ index ecf329c734796c779dfe296c1a280c73a1a701f7..ff0dfc87fdddccb0b83f05277f4f09d2 Cairo::Cairo Freetype::Freetype diff --git a/Source/WebKit/PlatformWin.cmake b/Source/WebKit/PlatformWin.cmake -index 762876285efcbb06266a8b993dfe97b9a26e890a..dc816ef34571f7ededd9635dddc81567fc56238a 100644 +index ba7b7c9343e98d06f7479b9631977f122c476fa5..23c91e860e93380a77d3719fba1ccc85aa61a7a2 100644 --- a/Source/WebKit/PlatformWin.cmake +++ b/Source/WebKit/PlatformWin.cmake -@@ -89,8 +89,12 @@ list(APPEND WebKit_SOURCES +@@ -91,8 +91,12 @@ list(APPEND WebKit_SOURCES UIProcess/wc/DrawingAreaProxyWC.cpp @@ -9609,7 +9624,7 @@ index 762876285efcbb06266a8b993dfe97b9a26e890a..dc816ef34571f7ededd9635dddc81567 UIProcess/win/WebPageProxyWin.cpp UIProcess/win/WebPopupMenuProxyWin.cpp UIProcess/win/WebProcessPoolWin.cpp -@@ -111,6 +115,7 @@ list(APPEND WebKit_SOURCES +@@ -113,6 +117,7 @@ list(APPEND WebKit_SOURCES WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.cpp WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp @@ -9617,7 +9632,7 @@ index 762876285efcbb06266a8b993dfe97b9a26e890a..dc816ef34571f7ededd9635dddc81567 WebProcess/WebPage/AcceleratedSurface.cpp -@@ -171,8 +176,84 @@ list(APPEND WebKit_MESSAGES_IN_FILES +@@ -173,8 +178,84 @@ list(APPEND WebKit_MESSAGES_IN_FILES list(APPEND WebKit_PRIVATE_LIBRARIES comctl32 @@ -9763,7 +9778,7 @@ index 7164af8d347828ba80bcb52fd6ca814401157f2b..9ba0e32717d9b4cb01f3f43898aa402a #if USE(APPKIT) diff --git a/Source/WebKit/Shared/NativeWebMouseEvent.h b/Source/WebKit/Shared/NativeWebMouseEvent.h -index cd5bd406daa4d1ff7b38d1a6e59cedbd234e642c..13899dc1ebd083d871ca63979a482c0ed8f4d23c 100644 +index c586d2775021a9e164dc36b1732e1a2dadc986a0..ffb79428fe2de5af626bf3a9ad49545380a8e85d 100644 --- a/Source/WebKit/Shared/NativeWebMouseEvent.h +++ b/Source/WebKit/Shared/NativeWebMouseEvent.h @@ -79,6 +79,11 @@ public: @@ -9806,10 +9821,10 @@ index 72ad2880160a374e8fa663e561d59becf9d2f36d..372ae6953199245fe4fc55a49813c7ca #endif }; diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.cpp b/Source/WebKit/Shared/WebCoreArgumentCoders.cpp -index 80330f994d32266c11a0bed96ab1f4c177ddb873..cdba6856e3559d64006bfb8a0ea116b8e6b49c58 100644 +index c69d19020998f5897dc0041c4c5c45784ffebb90..cf2a613f6469d8153826ce1ac6c5a8f4733f6c2a 100644 --- a/Source/WebKit/Shared/WebCoreArgumentCoders.cpp +++ b/Source/WebKit/Shared/WebCoreArgumentCoders.cpp -@@ -193,6 +193,10 @@ +@@ -192,6 +192,10 @@ #include #endif @@ -9821,10 +9836,10 @@ index 80330f994d32266c11a0bed96ab1f4c177ddb873..cdba6856e3559d64006bfb8a0ea116b8 namespace IPC { diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -index ab4628838d2b0cb48fb874c76c50c36fc8a804a4..309dfc44eb8cfe8368f856ae6c4b0c3a54149544 100644 +index fc050ff2eec654ad1c5319ba35fe2e00bb003140..b14c129107e868daa7a536be543cd2b78148f422 100644 --- a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in +++ b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -@@ -1887,6 +1887,9 @@ class WebCore::AuthenticationChallenge { +@@ -1929,6 +1929,9 @@ class WebCore::AuthenticationChallenge { class WebCore::DragData { #if PLATFORM(COCOA) String pasteboardName(); @@ -9834,7 +9849,7 @@ index ab4628838d2b0cb48fb874c76c50c36fc8a804a4..309dfc44eb8cfe8368f856ae6c4b0c3a #endif WebCore::IntPoint clientPosition(); WebCore::IntPoint globalPosition(); -@@ -2385,6 +2388,7 @@ enum class WebCore::ResourceLoadPriority : uint8_t { +@@ -2427,6 +2430,7 @@ enum class WebCore::ResourceLoadPriority : uint8_t { AtomString m_httpStatusText; AtomString m_httpVersion; WebCore::HTTPHeaderMap m_httpHeaderFields; @@ -9968,10 +9983,10 @@ index a7862db2df45ac3ab8ba5c7dee7d9d0c5641c27b..149d8cc4ef277ebdfc3bb27be7d52f5c const WebCore::IntPoint& globalPosition() const { return m_globalPosition; } float deltaX() const { return m_deltaX; } diff --git a/Source/WebKit/Shared/WebPageCreationParameters.cpp b/Source/WebKit/Shared/WebPageCreationParameters.cpp -index 0fbade27139d9cea7452a90b22e8a825188cecc4..c1709472c2fc2d086b1b2e08832936c537c56633 100644 +index 1dd3c901182606090762375dbe104e100599ce0c..974018d48f4b2c0569a6ec91a7ae897f9f54c97b 100644 --- a/Source/WebKit/Shared/WebPageCreationParameters.cpp +++ b/Source/WebKit/Shared/WebPageCreationParameters.cpp -@@ -160,6 +160,8 @@ void WebPageCreationParameters::encode(IPC::Encoder& encoder) const +@@ -161,6 +161,8 @@ void WebPageCreationParameters::encode(IPC::Encoder& encoder) const encoder << crossOriginAccessControlCheckEnabled; encoder << processDisplayName; @@ -9980,7 +9995,7 @@ index 0fbade27139d9cea7452a90b22e8a825188cecc4..c1709472c2fc2d086b1b2e08832936c5 encoder << shouldCaptureAudioInUIProcess; encoder << shouldCaptureAudioInGPUProcess; encoder << shouldCaptureVideoInUIProcess; -@@ -566,7 +568,10 @@ std::optional WebPageCreationParameters::decode(IPC:: +@@ -569,7 +571,10 @@ std::optional WebPageCreationParameters::decode(IPC:: if (!processDisplayName) return std::nullopt; parameters.processDisplayName = WTFMove(*processDisplayName); @@ -9993,10 +10008,10 @@ index 0fbade27139d9cea7452a90b22e8a825188cecc4..c1709472c2fc2d086b1b2e08832936c5 return std::nullopt; diff --git a/Source/WebKit/Shared/WebPageCreationParameters.h b/Source/WebKit/Shared/WebPageCreationParameters.h -index 9a87975362acb4e957b287138456dc17813a5048..1aec6045e3462104d2a58ffa4d0623fcb5d7304c 100644 +index cb54ea3a05bf64d1d93ca221078f5a713c832501..a4201144cfd330267439b2193dfda0f38a4f6aa5 100644 --- a/Source/WebKit/Shared/WebPageCreationParameters.h +++ b/Source/WebKit/Shared/WebPageCreationParameters.h -@@ -273,6 +273,8 @@ struct WebPageCreationParameters { +@@ -274,6 +274,8 @@ struct WebPageCreationParameters { bool httpsUpgradeEnabled { true }; @@ -10058,7 +10073,7 @@ index 03e118154f6bb5b704b4ecb83d3d9543f8c5a5fa..9725caaac6ee65a96ea324ddbb4e1a37 +#endif // ENABLE(TOUCH_EVENTS) && PLATFORM(IOS_FAMILY) diff --git a/Source/WebKit/Shared/libwpe/ArgumentCodersWPE.cpp b/Source/WebKit/Shared/libwpe/ArgumentCodersWPE.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..2f76a4ebb75be613f956c8f0e6f57c4ed57b9f43 +index 0000000000000000000000000000000000000000..2065fa34cf3507834b48b07fe6a69cbd7c77aa23 --- /dev/null +++ b/Source/WebKit/Shared/libwpe/ArgumentCodersWPE.cpp @@ -0,0 +1,171 @@ @@ -10116,7 +10131,7 @@ index 0000000000000000000000000000000000000000..2f76a4ebb75be613f956c8f0e6f57c4e + if (!handle || !*handle) + return false; + -+ RefPtr bitmap = ShareableBitmap::create(**handle); ++ RefPtr bitmap = ShareableBitmap::create(WTFMove(**handle)); + if (!bitmap) + return false; + image = bitmap->createImage(); @@ -10281,10 +10296,10 @@ index 0000000000000000000000000000000000000000..789a0d7cf69704c8f665a9ed79348fbc + +} // namespace IPC diff --git a/Source/WebKit/Sources.txt b/Source/WebKit/Sources.txt -index 3882749372c005ee15878c15b4b94eaf245ca010..25245942e5843ffc3bf01074125fe5c2dc2d3795 100644 +index 9125d77ab3ae7c82c3e9fa2f811890b908c1d939..1d826003b0cf9ad8549fcf748dd1675dcd21a1b4 100644 --- a/Source/WebKit/Sources.txt +++ b/Source/WebKit/Sources.txt -@@ -388,11 +388,14 @@ Shared/XR/XRDeviceProxy.cpp +@@ -388,21 +388,26 @@ Shared/XR/XRDeviceProxy.cpp UIProcess/AuxiliaryProcessProxy.cpp UIProcess/BackgroundProcessResponsivenessTimer.cpp @@ -10299,7 +10314,11 @@ index 3882749372c005ee15878c15b4b94eaf245ca010..25245942e5843ffc3bf01074125fe5c2 UIProcess/LegacyGlobalSettings.cpp UIProcess/MediaKeySystemPermissionRequestManagerProxy.cpp UIProcess/MediaKeySystemPermissionRequestProxy.cpp -@@ -403,6 +406,7 @@ UIProcess/ProcessAssertion.cpp + UIProcess/ModelElementController.cpp + UIProcess/OverrideLanguages.cpp + UIProcess/PageLoadState.cpp ++UIProcess/PlaywrightFullScreenManagerProxyClient.cpp + UIProcess/ProcessAssertion.cpp UIProcess/ProcessThrottler.cpp UIProcess/ProvisionalFrameProxy.cpp UIProcess/ProvisionalPageProxy.cpp @@ -10307,7 +10326,7 @@ index 3882749372c005ee15878c15b4b94eaf245ca010..25245942e5843ffc3bf01074125fe5c2 UIProcess/ResponsivenessTimer.cpp UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp -@@ -445,6 +449,8 @@ UIProcess/WebOpenPanelResultListenerProxy.cpp +@@ -445,6 +450,8 @@ UIProcess/WebOpenPanelResultListenerProxy.cpp UIProcess/WebPageDiagnosticLoggingClient.cpp UIProcess/WebPageGroup.cpp UIProcess/WebPageInjectedBundleClient.cpp @@ -10316,7 +10335,7 @@ index 3882749372c005ee15878c15b4b94eaf245ca010..25245942e5843ffc3bf01074125fe5c2 UIProcess/WebPageProxy.cpp UIProcess/WebPasteboardProxy.cpp UIProcess/WebPermissionControllerProxy.cpp -@@ -575,7 +581,11 @@ UIProcess/Inspector/WebInspectorUtilities.cpp +@@ -575,7 +582,11 @@ UIProcess/Inspector/WebInspectorUtilities.cpp UIProcess/Inspector/WebPageDebuggable.cpp UIProcess/Inspector/WebPageInspectorController.cpp @@ -10329,7 +10348,7 @@ index 3882749372c005ee15878c15b4b94eaf245ca010..25245942e5843ffc3bf01074125fe5c2 UIProcess/Media/AudioSessionRoutingArbitratorProxy.cpp UIProcess/Media/MediaUsageManager.cpp diff --git a/Source/WebKit/SourcesCocoa.txt b/Source/WebKit/SourcesCocoa.txt -index 8c37bd3c8c1da8a1308aea6b13aaf9c8ee064fdc..a661a135ccb9ebfb4b7b621fba30991fb4501003 100644 +index f24d5671b513edc2260fd9b0a83670da577f2560..760fc8f9b799e59562f41537f3ad5a8973657c9b 100644 --- a/Source/WebKit/SourcesCocoa.txt +++ b/Source/WebKit/SourcesCocoa.txt @@ -260,6 +260,7 @@ UIProcess/API/Cocoa/_WKApplicationManifest.mm @@ -10340,7 +10359,7 @@ index 8c37bd3c8c1da8a1308aea6b13aaf9c8ee064fdc..a661a135ccb9ebfb4b7b621fba30991f UIProcess/API/Cocoa/_WKContentRuleListAction.mm UIProcess/API/Cocoa/_WKContextMenuElementInfo.mm UIProcess/API/Cocoa/_WKCustomHeaderFields.mm @no-unify -@@ -437,6 +438,7 @@ UIProcess/Inspector/ios/WKInspectorHighlightView.mm +@@ -436,6 +437,7 @@ UIProcess/Inspector/ios/WKInspectorHighlightView.mm UIProcess/Inspector/ios/WKInspectorNodeSearchGestureRecognizer.mm UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm @@ -10349,10 +10368,10 @@ index 8c37bd3c8c1da8a1308aea6b13aaf9c8ee064fdc..a661a135ccb9ebfb4b7b621fba30991f UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm UIProcess/Inspector/mac/WKInspectorViewController.mm diff --git a/Source/WebKit/SourcesGTK.txt b/Source/WebKit/SourcesGTK.txt -index 22309c40882a3efdcf6e15f2d917cba2556c4b0c..c16764cac6d5b59a187eb5236afd17b222bb404b 100644 +index 31560deabc825bf5554a8f1fa913c225d35c349f..107736f9c12438af23b81e2208c90cdcef0a9615 100644 --- a/Source/WebKit/SourcesGTK.txt +++ b/Source/WebKit/SourcesGTK.txt -@@ -135,6 +135,7 @@ UIProcess/API/glib/WebKitAutomationSession.cpp @no-unify +@@ -137,6 +137,7 @@ UIProcess/API/glib/WebKitAutomationSession.cpp @no-unify UIProcess/API/glib/WebKitBackForwardList.cpp @no-unify UIProcess/API/glib/WebKitBackForwardListItem.cpp @no-unify UIProcess/API/glib/WebKitClipboardPermissionRequest.cpp @no-unify @@ -10360,7 +10379,7 @@ index 22309c40882a3efdcf6e15f2d917cba2556c4b0c..c16764cac6d5b59a187eb5236afd17b2 UIProcess/API/glib/WebKitContextMenuClient.cpp @no-unify UIProcess/API/glib/WebKitCookieManager.cpp @no-unify UIProcess/API/glib/WebKitCredential.cpp @no-unify -@@ -257,6 +258,7 @@ UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp +@@ -260,6 +261,7 @@ UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp UIProcess/cairo/BackingStoreCairo.cpp @no-unify @@ -10368,7 +10387,7 @@ index 22309c40882a3efdcf6e15f2d917cba2556c4b0c..c16764cac6d5b59a187eb5236afd17b2 UIProcess/glib/WebPageProxyGLib.cpp UIProcess/glib/WebProcessPoolGLib.cpp UIProcess/glib/WebProcessProxyGLib.cpp -@@ -273,6 +275,7 @@ UIProcess/gtk/ClipboardGtk4.cpp @no-unify +@@ -276,6 +278,7 @@ UIProcess/gtk/ClipboardGtk4.cpp @no-unify UIProcess/gtk/WebDateTimePickerGtk.cpp UIProcess/gtk/GtkSettingsManager.cpp UIProcess/gtk/HardwareAccelerationManager.cpp @@ -10376,7 +10395,7 @@ index 22309c40882a3efdcf6e15f2d917cba2556c4b0c..c16764cac6d5b59a187eb5236afd17b2 UIProcess/gtk/KeyBindingTranslator.cpp UIProcess/gtk/PointerLockManager.cpp @no-unify UIProcess/gtk/PointerLockManagerWayland.cpp @no-unify -@@ -284,6 +287,8 @@ UIProcess/gtk/ViewGestureControllerGtk.cpp +@@ -287,6 +290,8 @@ UIProcess/gtk/ViewGestureControllerGtk.cpp UIProcess/gtk/WebColorPickerGtk.cpp UIProcess/gtk/WebContextMenuProxyGtk.cpp UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp @@ -10386,10 +10405,10 @@ index 22309c40882a3efdcf6e15f2d917cba2556c4b0c..c16764cac6d5b59a187eb5236afd17b2 UIProcess/gtk/WebPasteboardProxyGtk.cpp UIProcess/gtk/WebPopupMenuProxyGtk.cpp diff --git a/Source/WebKit/SourcesWPE.txt b/Source/WebKit/SourcesWPE.txt -index b4f270f8d6899b8c9799f8708bc735fb28ac1188..caa1a06ced302616ed3056c10ed18058d1fb963f 100644 +index 44523cf874e1b24a6ccb988b0718ddc64c8e4216..12a48b0e3a952ed2f4767d659a02757765cfd9da 100644 --- a/Source/WebKit/SourcesWPE.txt +++ b/Source/WebKit/SourcesWPE.txt -@@ -90,6 +90,7 @@ Shared/glib/ProcessExecutablePathGLib.cpp +@@ -92,6 +92,7 @@ Shared/glib/ProcessExecutablePathGLib.cpp Shared/glib/UserMessage.cpp Shared/glib/WebContextMenuItemGlib.cpp @@ -10397,7 +10416,7 @@ index b4f270f8d6899b8c9799f8708bc735fb28ac1188..caa1a06ced302616ed3056c10ed18058 Shared/libwpe/NativeWebKeyboardEventLibWPE.cpp Shared/libwpe/NativeWebMouseEventLibWPE.cpp Shared/libwpe/NativeWebTouchEventLibWPE.cpp -@@ -126,6 +127,7 @@ UIProcess/API/glib/WebKitAuthenticationRequest.cpp @no-unify +@@ -128,6 +129,7 @@ UIProcess/API/glib/WebKitAuthenticationRequest.cpp @no-unify UIProcess/API/glib/WebKitAutomationSession.cpp @no-unify UIProcess/API/glib/WebKitBackForwardList.cpp @no-unify UIProcess/API/glib/WebKitBackForwardListItem.cpp @no-unify @@ -10405,7 +10424,7 @@ index b4f270f8d6899b8c9799f8708bc735fb28ac1188..caa1a06ced302616ed3056c10ed18058 UIProcess/API/glib/WebKitContextMenuClient.cpp @no-unify UIProcess/API/glib/WebKitCookieManager.cpp @no-unify UIProcess/API/glib/WebKitCredential.cpp @no-unify -@@ -158,6 +160,7 @@ UIProcess/API/glib/WebKitOptionMenu.cpp @no-unify +@@ -161,6 +163,7 @@ UIProcess/API/glib/WebKitOptionMenu.cpp @no-unify UIProcess/API/glib/WebKitOptionMenuItem.cpp @no-unify UIProcess/API/glib/WebKitPermissionRequest.cpp @no-unify UIProcess/API/glib/WebKitPermissionStateQuery.cpp @no-unify @@ -10413,7 +10432,7 @@ index b4f270f8d6899b8c9799f8708bc735fb28ac1188..caa1a06ced302616ed3056c10ed18058 UIProcess/API/glib/WebKitPolicyDecision.cpp @no-unify UIProcess/API/glib/WebKitPrivate.cpp @no-unify UIProcess/API/glib/WebKitProtocolHandler.cpp @no-unify -@@ -194,6 +197,7 @@ UIProcess/API/soup/HTTPCookieStoreSoup.cpp +@@ -197,6 +200,7 @@ UIProcess/API/soup/HTTPCookieStoreSoup.cpp UIProcess/API/wpe/InputMethodFilterWPE.cpp @no-unify UIProcess/API/wpe/PageClientImpl.cpp @no-unify UIProcess/API/wpe/WebKitColor.cpp @no-unify @@ -10421,7 +10440,7 @@ index b4f270f8d6899b8c9799f8708bc735fb28ac1188..caa1a06ced302616ed3056c10ed18058 UIProcess/API/wpe/WebKitInputMethodContextWPE.cpp @no-unify UIProcess/API/wpe/WebKitPopupMenu.cpp @no-unify UIProcess/API/wpe/WebKitRectangle.cpp @no-unify -@@ -214,6 +218,7 @@ UIProcess/Gamepad/libwpe/UIGamepadProviderLibWPE.cpp +@@ -217,6 +221,7 @@ UIProcess/Gamepad/libwpe/UIGamepadProviderLibWPE.cpp UIProcess/geoclue/GeoclueGeolocationProvider.cpp @@ -10429,7 +10448,7 @@ index b4f270f8d6899b8c9799f8708bc735fb28ac1188..caa1a06ced302616ed3056c10ed18058 UIProcess/glib/WebPageProxyGLib.cpp UIProcess/glib/WebProcessPoolGLib.cpp UIProcess/glib/WebProcessProxyGLib.cpp -@@ -242,6 +247,11 @@ UIProcess/linux/MemoryPressureMonitor.cpp +@@ -245,6 +250,11 @@ UIProcess/linux/MemoryPressureMonitor.cpp UIProcess/soup/WebProcessPoolSoup.cpp @@ -10441,7 +10460,7 @@ index b4f270f8d6899b8c9799f8708bc735fb28ac1188..caa1a06ced302616ed3056c10ed18058 UIProcess/wpe/WebPageProxyWPE.cpp WebProcess/GPU/graphics/gbm/RemoteGraphicsContextGLProxyGBM.cpp -@@ -264,6 +274,8 @@ WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp +@@ -267,6 +277,8 @@ WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp @@ -10498,7 +10517,7 @@ index 81ae40e623476c4397447d0a5572883dd2abe6cd..bd23ba5fff29eb6bea285ea3b90f3cde 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 da61f5c3a22f5750c3e8f96703ef0e3e4f075578..1e71afbdc8a1af7a95efc867b4465071c3356f34 100644 +index 26d7b29d9feeaafee3523494549fb6bb42982de6..b2426464fabb164f1e758a9785752933cad2f123 100644 --- a/Source/WebKit/UIProcess/API/APIUIClient.h +++ b/Source/WebKit/UIProcess/API/APIUIClient.h @@ -112,6 +112,7 @@ public: @@ -10640,10 +10659,10 @@ index 65d8ab73430840b02682ce879d1db18b9597d6b0..ea89752f4b90018ea1f008e0d89f9a2a // Version 15. WKPageDecidePolicyForSpeechRecognitionPermissionRequestCallback decidePolicyForSpeechRecognitionPermissionRequest; diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm b/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm -index 75ccc77ff06a8a7f5fa2463bf1d863ec569579a7..fa72623e5176883353f5a1bf8e357a0e5b28a72b 100644 +index fd1619cf0f9c3bea676e90ae81a84fa023f4b209..ad224273f275e697676ab4586da96dcda0807a68 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm -@@ -691,6 +691,16 @@ - (void)_setMediaCaptureRequiresSecureConnection:(BOOL)requiresSecureConnection +@@ -716,6 +716,16 @@ - (void)_setMediaCaptureRequiresSecureConnection:(BOOL)requiresSecureConnection _preferences->setMediaCaptureRequiresSecureConnection(requiresSecureConnection); } @@ -10690,7 +10709,7 @@ index 24b33cf16d46efce11a30032925600b97e64c65d..422355368191b9189b6283338bea2244 /*! @abstract A delegate to request permission for microphone audio and camera video access. @param webView The web view invoking the delegate method. diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.h b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.h -index 67da62d607a6cfe180c61776467f95f872312bf0..62a2494b0aaaef0910510dd6a30fcd3b34489ce1 100644 +index b8e47e8f49621cb69f10efc9c2db097ccc0b083b..1e9d00f2f97027b1f8f9c3bd69584824abb6d594 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.h +++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.h @@ -24,7 +24,6 @@ @@ -10701,8 +10720,8 @@ index 67da62d607a6cfe180c61776467f95f872312bf0..62a2494b0aaaef0910510dd6a30fcd3b #import #if __has_include() -@@ -116,6 +115,8 @@ WK_CLASS_AVAILABLE(macos(10.11), ios(9.0)) - - (void)setProxyConfiguration:(nw_proxy_config_t)proxyConfiguration WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); +@@ -113,6 +112,8 @@ WK_CLASS_AVAILABLE(macos(10.11), ios(9.0)) + #import #endif +- (uint64_t)sessionID; @@ -10711,7 +10730,7 @@ index 67da62d607a6cfe180c61776467f95f872312bf0..62a2494b0aaaef0910510dd6a30fcd3b NS_ASSUME_NONNULL_END diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm -index ca6c2c9c36a6af8e31f2f1c7d9b8b60b439bd8f9..3d05746fd28ea2b029926ecbbc86054b7ff5144b 100644 +index 8b7803bce0dd3d2aa3367f9bed523a898ae80cf1..ab3a70fe78f0c2365fd6946f63c8305728d70c69 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm @@ -50,6 +50,7 @@ @@ -10722,7 +10741,7 @@ index ca6c2c9c36a6af8e31f2f1c7d9b8b60b439bd8f9..3d05746fd28ea2b029926ecbbc86054b #import #import #import -@@ -337,6 +338,11 @@ - (void)removeDataOfTypes:(NSSet *)dataTypes modifiedSince:(NSDate *)date comple +@@ -367,6 +368,11 @@ - (void)removeDataOfTypes:(NSSet *)dataTypes modifiedSince:(NSDate *)date comple }); } @@ -11148,7 +11167,7 @@ index d75c5ee48b2cedc8df984841fd52478b0620078c..d9cd7bf5749ff192eb938b12b4c2d82b 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 e1715db53e7edf1e39ef58f114d75e777bca40db..bb8133d1dba3438271da76c6ce093799a2c57ff7 100644 +index e7f316fcd23487da0a356b36c467024503d491b3..427348163a9376ba76d9993f107986d2bd4bd57c 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp @@ -413,10 +413,19 @@ static void webkitWebContextSetProperty(GObject* object, guint propID, const GVa @@ -11190,7 +11209,7 @@ index e994309b097c1b140abfa4373fd2fafee46c05ec..6e0cc677a3bf33683ae8c89d12a48191 #endif +int webkitWebContextExistingCount(); diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp -index 1b40bd3a2a777d09e8aaec9d77fb3724fe93531c..d5b742173e7930574076285dab7210faa5ef8437 100644 +index 9b1ef8e8373830e3535b49299f3d17bc6becc3fa..04494e83373cfdd01f76209ee9c93c039b10f896 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp @@ -34,6 +34,7 @@ @@ -11297,7 +11316,7 @@ index c2c3aaa89344742b3e53e2e7afc004828e02b46e..7863882532a6cf4cb592a475ff165a26 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 548329e0ecb18dc5a14ab2af502720079dc63167..0bca1ab6fa8e12f23d7ece5b1a5362ec9f4240d0 100644 +index 805f9f638c1630b5e9310494ae2970262de001cc..add3e80896c2e82bdd12cee15c8014bf88391ee0 100644 --- a/Source/WebKit/UIProcess/API/glib/webkit.h.in +++ b/Source/WebKit/UIProcess/API/glib/webkit.h.in @@ -45,6 +45,7 @@ @@ -11443,7 +11462,7 @@ index 1204b4342c1cf8d38d215c1c8628bd7eb1fbd415..8534e582f54a343dc3bf6e01b8e43270 + +WebKit::AcceleratedBackingStore* webkitWebViewBaseGetAcceleratedBackingStore(WebKitWebViewBase*); diff --git a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp -index d3f6ce5dec7d093caeec4dea133529bf4e28183f..9274579c19aa74f91de88af1e322741c1d3e5761 100644 +index c6efcb176b272a2bbc09f139264b14f89ef97884..3e5049c936b71e12ee451f9a46aa7893b3185da5 100644 --- a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp +++ b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp @@ -33,8 +33,11 @@ @@ -11878,10 +11897,10 @@ index e4b92ace1531090ae38a7aec3d3d4febf19aee84..43690f9ef4969a39084501613bfc00a7 + +cairo_surface_t* webkitWebViewBackendTakeScreenshot(WebKitWebViewBackend*); diff --git a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp -index 38ca49dd6220ead604784d4f1399e2edd0ad1fb5..faed1ded037ca66df850200dfb46bafd846023d4 100644 +index b3c73879155034422ebc49edba08320759b7fef9..20ef4d59b8ba1593cf1a73a6b4a1df94da9f28a6 100644 --- a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp +++ b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp -@@ -123,7 +123,11 @@ void AuxiliaryProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& lau +@@ -126,7 +126,11 @@ void AuxiliaryProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& lau launchOptions.processCmdPrefix = String::fromUTF8(processCmdPrefix); #endif // ENABLE(DEVELOPER_MODE) && (PLATFORM(GTK) || PLATFORM(WPE)) @@ -11894,10 +11913,10 @@ index 38ca49dd6220ead604784d4f1399e2edd0ad1fb5..faed1ded037ca66df850200dfb46bafd platformGetLaunchOptions(launchOptions); } diff --git a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h -index e163de5902e27e4ed226610f09ac9c8dc001c3e8..ee9014287e19758530c20be2c711e0a4aa1ac22a 100644 +index c6b8d6fdc2a5e9e81e23546842c4bcb80efe4ff8..ec8b476ea86f2e15db798d5a440ba75e480e30b0 100644 --- a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h +++ b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h -@@ -197,12 +197,15 @@ protected: +@@ -201,13 +201,16 @@ protected: static RefPtr fetchAudioComponentServerRegistrations(); #endif @@ -11908,6 +11927,7 @@ index e163de5902e27e4ed226610f09ac9c8dc001c3e8..ee9014287e19758530c20be2c711e0a4 private: virtual void connectionWillOpen(IPC::Connection&); virtual void processWillShutDown(IPC::Connection&) = 0; + void outgoingMessageQueueIsGrowingLarge(); void populateOverrideLanguagesLaunchOptions(ProcessLauncher::LaunchOptions&) const; - Vector platformOverrideLanguages() const; @@ -11915,7 +11935,7 @@ index e163de5902e27e4ed226610f09ac9c8dc001c3e8..ee9014287e19758530c20be2c711e0a4 ResponsivenessTimer m_responsivenessTimer; diff --git a/Source/WebKit/UIProcess/BackingStore.h b/Source/WebKit/UIProcess/BackingStore.h -index d3a707a6b440421565144a56e586fa2723fe41c3..6e2492539efdf476452873f069bdaa34163f4a30 100644 +index faae24f11035315b2d31c80204daf7e6b82b1787..1eb89e53a500266522c4db3561afd7261b86d642 100644 --- a/Source/WebKit/UIProcess/BackingStore.h +++ b/Source/WebKit/UIProcess/BackingStore.h @@ -51,6 +51,7 @@ public: @@ -12037,22 +12057,6 @@ index 0000000000000000000000000000000000000000..cd66887de171cda7d15a8e4dc6dbff63 +} // namespace WebKit + +#endif // ENABLE(REMOTE_INSPECTOR) -diff --git a/Source/WebKit/UIProcess/Cocoa/ModalContainerControlClassifier.mm b/Source/WebKit/UIProcess/Cocoa/ModalContainerControlClassifier.mm -index 9edf4e2ca81f85f4cf8827932964e5fc352af99e..2eb7b0a327f517b7975cc0cab100a3818d44635e 100644 ---- a/Source/WebKit/UIProcess/Cocoa/ModalContainerControlClassifier.mm -+++ b/Source/WebKit/UIProcess/Cocoa/ModalContainerControlClassifier.mm -@@ -36,6 +36,11 @@ - #import - #import - -+#include -+#include -+ -+#include -+ - static NSString *const classifierInputFeatureKey = @"text"; - static NSString *const classifierOutputFeatureKey = @"label"; - diff --git a/Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h b/Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h index 957f7f088087169668a9b4f1ba65d9f206a2a836..15e44c8d5b6a3eafb7f1148707366b0cddcd119f 100644 --- a/Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h @@ -12075,7 +12079,7 @@ index 957f7f088087169668a9b4f1ba65d9f206a2a836..15e44c8d5b6a3eafb7f1148707366b0c class PopUpSOAuthorizationSession final : public SOAuthorizationSession { public: diff --git a/Source/WebKit/UIProcess/Cocoa/UIDelegate.h b/Source/WebKit/UIProcess/Cocoa/UIDelegate.h -index a390d2da0e58a8edc800dd0a9391e70e367013e3..c997205ecb1ea5a0ba40b242835e3e92df6f63ed 100644 +index 2929ada99d45b72cb5e3aeb43aa758cacce0a020..6fc34550117dfaf29e5e18f4fbaaf705d08ec756 100644 --- a/Source/WebKit/UIProcess/Cocoa/UIDelegate.h +++ b/Source/WebKit/UIProcess/Cocoa/UIDelegate.h @@ -95,6 +95,7 @@ private: @@ -12095,7 +12099,7 @@ index a390d2da0e58a8edc800dd0a9391e70e367013e3..c997205ecb1ea5a0ba40b242835e3e92 bool webViewRunBeforeUnloadConfirmPanelWithMessageInitiatedByFrameCompletionHandler : 1; bool webViewRequestGeolocationPermissionForFrameDecisionHandler : 1; diff --git a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm -index c735254b89a8507196efdad20903172228e98636..b2cb8eaf439ab625a18363a938b471c10d28a2d6 100644 +index ed87628d7834ac88c884eb774443a4f13563546f..84aed8cf0e7f0f1d49e33ee3a356f00e02343abc 100644 --- a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm +++ b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm @@ -117,6 +117,7 @@ void UIDelegate::setDelegate(id delegate) @@ -12123,20 +12127,20 @@ index c735254b89a8507196efdad20903172228e98636..b2cb8eaf439ab625a18363a938b471c1 { if (!m_uiDelegate) diff --git a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm -index e225bc2755fc943309262d414400fe60d80f2e1b..d688aba1a1166a1b8e5670854cb5937043c0bbd8 100644 +index 3548e1009f1a4e35b42749cefb7de2360d43048c..0e4a8607b44b4628d34478ef4a914287764dd5a0 100644 --- a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm +++ b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm -@@ -39,6 +39,7 @@ - #import "ModalContainerControlClassifier.h" +@@ -38,6 +38,7 @@ + #import "MessageSenderInlines.h" #import "NetworkConnectionIntegrityHelpers.h" #import "PageClient.h" +#import "PasteboardTypes.h" #import "PlaybackSessionManagerProxy.h" #import "QuickLookThumbnailLoader.h" #import "RemoteLayerTreeTransaction.h" -@@ -295,10 +296,87 @@ bool WebPageProxy::scrollingUpdatesDisabledForTesting() +@@ -294,10 +295,87 @@ bool WebPageProxy::scrollingUpdatesDisabledForTesting() - void WebPageProxy::startDrag(const DragItem& dragItem, const ShareableBitmap::Handle& dragImageHandle) + void WebPageProxy::startDrag(const DragItem& dragItem, ShareableBitmap::Handle&& dragImageHandle) { + if (m_interceptDrags) { + NSPasteboard *pasteboard = [NSPasteboard pasteboardWithName: m_overrideDragPasteboardName]; @@ -12171,7 +12175,7 @@ index e225bc2755fc943309262d414400fe60d80f2e1b..d688aba1a1166a1b8e5670854cb59370 + return; + } + - pageClient().startDrag(dragItem, dragImageHandle); + pageClient().startDrag(dragItem, WTFMove(dragImageHandle)); } -#endif @@ -12224,10 +12228,10 @@ index e225bc2755fc943309262d414400fe60d80f2e1b..d688aba1a1166a1b8e5670854cb59370 #if ENABLE(ATTACHMENT_ELEMENT) diff --git a/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm b/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm -index 8dde7360d66bf4c82953db2dc6c0e0e2a2e73043..82f2a9942938cd7782d484548c8e5c20b92795d6 100644 +index 3b0449068bdef7d17aadae860666162c41380d9e..4d449dc823b09bb1df3131f74c0d40e6c927a49a 100644 --- a/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm +++ b/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm -@@ -466,7 +466,7 @@ ALLOW_DEPRECATED_DECLARATIONS_END +@@ -480,7 +480,7 @@ ALLOW_DEPRECATED_DECLARATIONS_END auto screenProperties = WebCore::collectScreenProperties(); parameters.screenProperties = WTFMove(screenProperties); #if PLATFORM(MAC) @@ -12236,7 +12240,7 @@ index 8dde7360d66bf4c82953db2dc6c0e0e2a2e73043..82f2a9942938cd7782d484548c8e5c20 #endif #if PLATFORM(IOS) && HAVE(AGX_COMPILER_SERVICE) -@@ -736,8 +736,8 @@ void WebProcessPool::registerNotificationObservers() +@@ -752,8 +752,8 @@ void WebProcessPool::registerNotificationObservers() }]; m_scrollerStyleNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSPreferredScrollerStyleDidChangeNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) { @@ -12248,7 +12252,7 @@ index 8dde7360d66bf4c82953db2dc6c0e0e2a2e73043..82f2a9942938cd7782d484548c8e5c20 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 c849ed5f1cefc33b32101c180a3168be6d9e6a47..913f13361c1a8ebe026f714bb1949a36f1e9cdcb 100644 +index 45b5f4ccc1e178336499356a4fd41b99764980fd..a69212defad2502da15678929462fb192f13849b 100644 --- a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp +++ b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp @@ -33,12 +33,15 @@ @@ -12337,9 +12341,9 @@ index c849ed5f1cefc33b32101c180a3168be6d9e6a47..913f13361c1a8ebe026f714bb1949a36 +#endif + #if !PLATFORM(WPE) - void DrawingAreaProxyCoordinatedGraphics::incorporateUpdate(const UpdateInfo& updateInfo) + void DrawingAreaProxyCoordinatedGraphics::incorporateUpdate(UpdateInfo&& updateInfo) { -@@ -249,6 +303,11 @@ void DrawingAreaProxyCoordinatedGraphics::didUpdateGeometry() +@@ -250,6 +304,11 @@ void DrawingAreaProxyCoordinatedGraphics::didUpdateGeometry() // we need to resend the new size here. if (m_lastSentSize != m_size) sendUpdateGeometry(); @@ -12352,7 +12356,7 @@ index c849ed5f1cefc33b32101c180a3168be6d9e6a47..913f13361c1a8ebe026f714bb1949a36 #if !PLATFORM(WPE) diff --git a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h -index 52c9e263a9b17c7241ea277016f2f7d4c7d47922..61c5d1f4c4353c7852e07c4c3d5b5f0648de77c4 100644 +index dce89b2a72950e052a8222146b693b42a5dbb0cd..ecf747bd2eee305d40a12dd0725d12c58aa818df 100644 --- a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h +++ b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h @@ -30,6 +30,7 @@ @@ -12375,7 +12379,7 @@ index 52c9e263a9b17c7241ea277016f2f7d4c7d47922..61c5d1f4c4353c7852e07c4c3d5b5f06 private: // DrawingAreaProxy @@ -68,6 +73,9 @@ private: - void exitAcceleratedCompositingMode(uint64_t backingStoreStateID, const UpdateInfo&) override; + void exitAcceleratedCompositingMode(uint64_t backingStoreStateID, UpdateInfo&&) override; void updateAcceleratedCompositingMode(uint64_t backingStoreStateID, const LayerTreeContext&) override; void targetRefreshRateDidChange(unsigned) override; +#if PLATFORM(WIN) @@ -12484,10 +12488,10 @@ index c92e9cc718afaab95d306c28ece0848dfc6e7155..8672527119c01b6f54e0fdf23fc95387 // This can cause the DownloadProxy object to be deleted. m_downloadProxyMap.downloadFinished(*this); diff --git a/Source/WebKit/UIProcess/Downloads/DownloadProxy.h b/Source/WebKit/UIProcess/Downloads/DownloadProxy.h -index 42e9c901f866a2892396c83441ecbc5638270b52..42d2f292df2f337e302a8ec281333c704e985b96 100644 +index 9b69cad753b5b2e3844caac57b44c067507e68e7..1e898d7311a2cb8cb6d9a4042f91f41c552dcea3 100644 --- a/Source/WebKit/UIProcess/Downloads/DownloadProxy.h +++ b/Source/WebKit/UIProcess/Downloads/DownloadProxy.h -@@ -149,6 +149,7 @@ private: +@@ -144,6 +144,7 @@ private: #if PLATFORM(COCOA) RetainPtr m_progress; #endif @@ -12496,7 +12500,7 @@ index 42e9c901f866a2892396c83441ecbc5638270b52..42d2f292df2f337e302a8ec281333c70 } // namespace WebKit diff --git a/Source/WebKit/UIProcess/DrawingAreaProxy.h b/Source/WebKit/UIProcess/DrawingAreaProxy.h -index 911d2c8538ea13c9535d1a1025716b045451bcea..bf62c05a86bab92d76eb5adb8adf85020f6ea8ac 100644 +index a6853250e85eed01c7d64f13bd200ec3aa7f28b1..7ec74bb16cc3ba884f6136e2eb299ac797bc5e24 100644 --- a/Source/WebKit/UIProcess/DrawingAreaProxy.h +++ b/Source/WebKit/UIProcess/DrawingAreaProxy.h @@ -85,6 +85,7 @@ public: @@ -12508,8 +12512,8 @@ index 911d2c8538ea13c9535d1a1025716b045451bcea..bf62c05a86bab92d76eb5adb8adf8502 #if USE(COORDINATED_GRAPHICS) || USE(TEXTURE_MAPPER) virtual void targetRefreshRateDidChange(unsigned) { } @@ -162,6 +163,10 @@ private: - virtual void update(uint64_t /* backingStoreStateID */, const UpdateInfo&) { } - virtual void exitAcceleratedCompositingMode(uint64_t /* backingStoreStateID */, const UpdateInfo&) { } + virtual void update(uint64_t /* backingStoreStateID */, UpdateInfo&&) { } + virtual void exitAcceleratedCompositingMode(uint64_t /* backingStoreStateID */, UpdateInfo&&) { } #endif + +#if PLATFORM(WIN) @@ -14651,10 +14655,10 @@ index 0000000000000000000000000000000000000000..d0e11ed81a6257c011df23d5870da740 +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..5cd91870e2e46369b057ad6d9f921a7d05aeea2b +index 0000000000000000000000000000000000000000..4b7232bef85bc84762dafbe892fc30506d21088c --- /dev/null +++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp -@@ -0,0 +1,976 @@ +@@ -0,0 +1,978 @@ +/* + * Copyright (C) 2019 Microsoft Corporation. + * @@ -14694,6 +14698,7 @@ index 0000000000000000000000000000000000000000..5cd91870e2e46369b057ad6d9f921a7d +#include "NetworkProcessMessages.h" +#include "NetworkProcessProxy.h" +#include "PageClient.h" ++#include "PlaywrightFullScreenManagerProxyClient.h" +#include "SandboxExtension.h" +#include "StorageNamespaceIdentifier.h" +#include "WebAutomationSession.h" @@ -15049,6 +15054,7 @@ index 0000000000000000000000000000000000000000..5cd91870e2e46369b057ad6d9f921a7d + // Always pause new targets if controlled remotely. + page.inspectorController().setPauseOnStart(true); + m_pageProxyChannels.set(pageProxyID, WTFMove(pageProxyChannel)); ++ page.setFullScreenManagerClientOverride(makeUnique(page)); +} + +void InspectorPlaywrightAgent::willDestroyInspectorController(WebPageProxy& page) @@ -15841,7 +15847,7 @@ index 0000000000000000000000000000000000000000..c9f2d7ec888e819a49cb898803432013 + +#endif // ENABLE(REMOTE_INSPECTOR) diff --git a/Source/WebKit/UIProcess/Launcher/win/ProcessLauncherWin.cpp b/Source/WebKit/UIProcess/Launcher/win/ProcessLauncherWin.cpp -index f2377683234a05a45d6dd4ccbb317bdec47feb30..f70925c506dcf1283d1a9b6663f42ccc5f5a4c71 100644 +index e81f64cb2b4fdc6a44e31d52ff912a4f6818182d..86a7cab139bf883eb047b45260ce246849e2319a 100644 --- a/Source/WebKit/UIProcess/Launcher/win/ProcessLauncherWin.cpp +++ b/Source/WebKit/UIProcess/Launcher/win/ProcessLauncherWin.cpp @@ -97,8 +97,11 @@ void ProcessLauncher::launchProcess() @@ -15857,8 +15863,20 @@ index f2377683234a05a45d6dd4ccbb317bdec47feb30..f70925c506dcf1283d1a9b6663f42ccc PROCESS_INFORMATION processInformation { }; BOOL result = ::CreateProcess(0, commandLine.data(), 0, 0, true, 0, 0, 0, &startupInfo, &processInformation); +diff --git a/Source/WebKit/UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp b/Source/WebKit/UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp +index 3fe0abcfe36bef7ca45bed5661a737ed2bfe56d0..510656948af01ec65d4543c805e9667a307018fd 100644 +--- a/Source/WebKit/UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp ++++ b/Source/WebKit/UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp +@@ -30,6 +30,7 @@ + + #include "Logging.h" + #include "MediaSessionCoordinatorProxyPrivate.h" ++#include "MessageSenderInlines.h" + #include "RemoteMediaSessionCoordinatorMessages.h" + #include "RemoteMediaSessionCoordinatorProxyMessages.h" + #include "WebPageProxy.h" diff --git a/Source/WebKit/UIProcess/PageClient.h b/Source/WebKit/UIProcess/PageClient.h -index cf194f6f355d50771876b222c2f66276c6d7a603..99429d67173baeb283020909de5157ff550c6f8d 100644 +index 47b43730d44fff44c85092ad607d42cc909d0330..10a27dec7e6ec72e2832945e905959fda9305b38 100644 --- a/Source/WebKit/UIProcess/PageClient.h +++ b/Source/WebKit/UIProcess/PageClient.h @@ -332,6 +332,11 @@ public: @@ -15873,6 +15891,131 @@ index cf194f6f355d50771876b222c2f66276c6d7a603..99429d67173baeb283020909de5157ff #if PLATFORM(COCOA) || PLATFORM(GTK) virtual RefPtr takeViewSnapshot(std::optional&&) = 0; #endif +diff --git a/Source/WebKit/UIProcess/PlaywrightFullScreenManagerProxyClient.cpp b/Source/WebKit/UIProcess/PlaywrightFullScreenManagerProxyClient.cpp +new file mode 100644 +index 0000000000000000000000000000000000000000..d365dfd28dcc5d101b4d3859302b1bfe75f01a55 +--- /dev/null ++++ b/Source/WebKit/UIProcess/PlaywrightFullScreenManagerProxyClient.cpp +@@ -0,0 +1,57 @@ ++/* ++ * Copyright (C) 2023 Microsoft Corporation. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 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. ++ */ ++ ++ ++#include "config.h" ++#include "PlaywrightFullScreenManagerProxyClient.h" ++ ++#if ENABLE(FULLSCREEN_API) ++ ++#include "WebPageProxy.h" ++ ++namespace WebKit { ++using namespace WebCore; ++ ++PlaywrightFullScreenManagerProxyClient::PlaywrightFullScreenManagerProxyClient(WebPageProxy& page) ++ : m_pageProxy(page) ++{ ++} ++ ++void PlaywrightFullScreenManagerProxyClient::enterFullScreen() ++{ ++ m_pageProxy.fullScreenManager()->willEnterFullScreen(); ++ m_pageProxy.fullScreenManager()->didEnterFullScreen(); ++} ++ ++void PlaywrightFullScreenManagerProxyClient::exitFullScreen() ++{ ++ m_pageProxy.fullScreenManager()->willExitFullScreen(); ++ m_pageProxy.fullScreenManager()->didExitFullScreen(); ++ ++} ++ ++} // namespace WebKit ++ ++#endif // ENABLE(FULLSCREEN_API) +diff --git a/Source/WebKit/UIProcess/PlaywrightFullScreenManagerProxyClient.h b/Source/WebKit/UIProcess/PlaywrightFullScreenManagerProxyClient.h +new file mode 100644 +index 0000000000000000000000000000000000000000..3c8fd0549f1847515d35092f0f49b0602be86819 +--- /dev/null ++++ b/Source/WebKit/UIProcess/PlaywrightFullScreenManagerProxyClient.h +@@ -0,0 +1,56 @@ ++/* ++ * Copyright (C) 2023 Microsoft Corporation. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 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. ++ */ ++ ++#pragma once ++ ++#if ENABLE(FULLSCREEN_API) ++ ++#include "WebFullScreenManagerProxy.h" ++ ++namespace WebKit { ++ ++class WebPageProxy; ++ ++class PlaywrightFullScreenManagerProxyClient : public WebFullScreenManagerProxyClient { ++ WTF_MAKE_FAST_ALLOCATED; ++public: ++ PlaywrightFullScreenManagerProxyClient(WebPageProxy&); ++ ~PlaywrightFullScreenManagerProxyClient() override = default; ++ ++private: ++ void closeFullScreenManager() override { } ++ bool isFullScreen() override { return m_isFullScreen; } ++ void enterFullScreen() override; ++ void exitFullScreen() override; ++ void beganEnterFullScreen(const WebCore::IntRect& initialFrame, const WebCore::IntRect& finalFrame) override { } ++ void beganExitFullScreen(const WebCore::IntRect& initialFrame, const WebCore::IntRect& finalFrame) override { } ++ ++ WebPageProxy& m_pageProxy; ++ bool m_isFullScreen { false }; ++}; ++ ++} // namespace WebKit ++ ++#endif // ENABLE(FULLSCREEN_API) diff --git a/Source/WebKit/UIProcess/RemoteInspectorPipe.cpp b/Source/WebKit/UIProcess/RemoteInspectorPipe.cpp new file mode 100644 index 0000000000000000000000000000000000000000..dd8b28e692dca4078eb710b2a97e61716126a4cb @@ -16175,7 +16318,7 @@ index 0000000000000000000000000000000000000000..6d04f9290135069359ce6bf872654648 + +#endif // ENABLE(REMOTE_INSPECTOR) diff --git a/Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h b/Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h -index fe119261ff5442b6dbaa889637d9c42db26778b4..0126e4ab4916a260f7e65028d05575e7b47e4570 100644 +index 37cced36ddb5c388ab8096938688355f00d8a4cf..77406c2aa896638a1ee0cb4a3e6f3ee0463eebd6 100644 --- a/Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h +++ b/Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h @@ -39,6 +39,11 @@ @@ -16190,7 +16333,7 @@ index fe119261ff5442b6dbaa889637d9c42db26778b4..0126e4ab4916a260f7e65028d05575e7 namespace WebCore { class PlatformWheelEvent; -@@ -84,18 +89,18 @@ public: +@@ -84,10 +89,10 @@ public: void renderingUpdateComplete(); private: @@ -16204,6 +16347,7 @@ index fe119261ff5442b6dbaa889637d9c42db26778b4..0126e4ab4916a260f7e65028d05575e7 WebCore::PlatformWheelEvent filteredWheelEvent(const WebCore::PlatformWheelEvent&); +@@ -96,8 +101,8 @@ private: void wheelEventHysteresisUpdated(PAL::HysteresisState); void willHandleWheelEvent(const WebWheelEvent&); @@ -16214,6 +16358,18 @@ index fe119261ff5442b6dbaa889637d9c42db26778b4..0126e4ab4916a260f7e65028d05575e7 DisplayLink* displayLink() const; +diff --git a/Source/WebKit/UIProcess/SubframePageProxy.cpp b/Source/WebKit/UIProcess/SubframePageProxy.cpp +index bcd66e7362d97baf4cf1a0cfaac47670d3831809..65b25c8a8d197e49bc4a72eecfba428aae1df5e8 100644 +--- a/Source/WebKit/UIProcess/SubframePageProxy.cpp ++++ b/Source/WebKit/UIProcess/SubframePageProxy.cpp +@@ -35,6 +35,7 @@ + #include "WebPageProxyMessages.h" + #include "WebProcessMessages.h" + #include "WebProcessProxy.h" ++#include "WebProcessMessages.h" + + namespace WebKit { + diff --git a/Source/WebKit/UIProcess/WebContextMenuProxy.cpp b/Source/WebKit/UIProcess/WebContextMenuProxy.cpp index a57f299ce89dbef91ccb41f890cc29a29323e9e4..b0ed73516ea728c2a1e9eb7d39161e665b21204d 100644 --- a/Source/WebKit/UIProcess/WebContextMenuProxy.cpp @@ -16239,7 +16395,7 @@ index 2071f653d6fd7413dd5336b85d02c6a92cab68b2..af9409c0adfc97a60d4ed789999310a7 WebPageProxy* page() const { return m_page.get(); } diff --git a/Source/WebKit/UIProcess/WebFrameProxy.cpp b/Source/WebKit/UIProcess/WebFrameProxy.cpp -index b5173b03be201a33e057fe1b7d52a55346010a0c..9d7c695662d0208c5b41939a3e857dd0fc0e1154 100644 +index 5ed5e0c7369936d03397336664a7c98fbcc87d3e..787a68e6cd2f9e3e6a856a2c6f4c4325961bb820 100644 --- a/Source/WebKit/UIProcess/WebFrameProxy.cpp +++ b/Source/WebKit/UIProcess/WebFrameProxy.cpp @@ -30,6 +30,7 @@ @@ -16250,9 +16406,9 @@ index b5173b03be201a33e057fe1b7d52a55346010a0c..9d7c695662d0208c5b41939a3e857dd0 #include "FrameTreeCreationParameters.h" #include "FrameTreeNodeData.h" #include "MessageSenderInlines.h" -@@ -40,6 +41,7 @@ +@@ -38,6 +39,7 @@ + #include "SubframePageProxy.h" #include "WebFramePolicyListenerProxy.h" - #include "WebFrameProxyMessages.h" #include "WebNavigationState.h" +#include "WebPageInspectorController.h" #include "WebPageMessages.h" @@ -16260,7 +16416,7 @@ index b5173b03be201a33e057fe1b7d52a55346010a0c..9d7c695662d0208c5b41939a3e857dd0 #include "WebPageProxyMessages.h" diff --git a/Source/WebKit/UIProcess/WebPageInspectorEmulationAgent.cpp b/Source/WebKit/UIProcess/WebPageInspectorEmulationAgent.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..f679253970367597bf4801dc5070edd6b8f4026a +index 0000000000000000000000000000000000000000..e83fdca27ddeeb90df68f96a23f992d7d7602dff --- /dev/null +++ b/Source/WebKit/UIProcess/WebPageInspectorEmulationAgent.cpp @@ -0,0 +1,147 @@ @@ -16369,7 +16525,7 @@ index 0000000000000000000000000000000000000000..f679253970367597bf4801dc5070edd6 +Inspector::Protocol::ErrorStringOr WebPageInspectorEmulationAgent::setAuthCredentials(const String& username, const String& password, const String& origin) +{ + if (!!username && !!password) -+ m_page.setAuthCredentialsForAutomation(WebCore::Credential(username, password, CredentialPersistencePermanent), URL(origin)); ++ m_page.setAuthCredentialsForAutomation(WebCore::Credential(username, password, WebCore::CredentialPersistencePermanent), URL(origin)); + else + m_page.setAuthCredentialsForAutomation(std::optional(), std::optional()); + return { }; @@ -16925,7 +17081,7 @@ index 0000000000000000000000000000000000000000..3e87bf40ced2301f4fb145c6cb31f2cf + +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp -index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355fff79797 100644 +index 65d61f80f19ee9be079e9aa0a8e3f7301ac3e407..06126f137140d360c69b10599e56cf0cdba15325 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.cpp +++ b/Source/WebKit/UIProcess/WebPageProxy.cpp @@ -168,12 +168,14 @@ @@ -16963,7 +17119,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 #include #include #include -@@ -271,6 +276,9 @@ +@@ -273,6 +278,9 @@ #if PLATFORM(GTK) #include "GtkSettingsManager.h" @@ -16973,7 +17129,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 #include #endif -@@ -376,6 +384,8 @@ static constexpr Seconds tryCloseTimeoutDelay = 50_ms; +@@ -378,6 +386,8 @@ static constexpr Seconds tryCloseTimeoutDelay = 50_ms; static constexpr Seconds audibleActivityClearDelay = 10_s; #endif @@ -16982,7 +17138,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, webPageProxyCounter, ("WebPageProxy")); class StorageRequests { -@@ -736,6 +746,10 @@ WebPageProxy::~WebPageProxy() +@@ -741,6 +751,10 @@ WebPageProxy::~WebPageProxy() if (m_preferences->mediaSessionCoordinatorEnabled()) GroupActivitiesSessionNotifier::sharedNotifier().removeWebPage(*this); #endif @@ -16993,7 +17149,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 } void WebPageProxy::addAllMessageReceivers() -@@ -1166,6 +1180,7 @@ void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason) +@@ -1171,6 +1185,7 @@ void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason) internals().pageLoadState.didSwapWebProcesses(); if (reason != ProcessLaunchReason::InitialProcess) m_drawingArea->waitForBackingStoreUpdateOnNextPaint(); @@ -17001,7 +17157,16 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 } void WebPageProxy::didAttachToRunningProcess() -@@ -1548,6 +1563,21 @@ WebProcessProxy& WebPageProxy::ensureRunningProcess() +@@ -1179,7 +1194,7 @@ void WebPageProxy::didAttachToRunningProcess() + + #if ENABLE(FULLSCREEN_API) + ASSERT(!m_fullScreenManager); +- m_fullScreenManager = makeUnique(*this, pageClient().fullScreenManagerProxyClient()); ++ m_fullScreenManager = makeUnique(*this, m_fullScreenManagerClientOverride ? *m_fullScreenManagerClientOverride : pageClient().fullScreenManagerProxyClient()); + #endif + #if ENABLE(VIDEO_PRESENTATION_MODE) + ASSERT(!m_playbackSessionManager); +@@ -1560,6 +1575,21 @@ WebProcessProxy& WebPageProxy::ensureRunningProcess() return m_process; } @@ -17010,7 +17175,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 + if (!frame || frame == mainFrame()) + return loadRequest(WTFMove(request), WebCore::ShouldOpenExternalURLsPolicy::ShouldNotAllow); + -+ auto navigation = m_navigationState->createLoadRequestNavigation(ResourceRequest(request), m_backForwardList->currentItem()); ++ auto navigation = m_navigationState->createLoadRequestNavigation(process().coreProcessIdentifier(), ResourceRequest(request), m_backForwardList->currentItem()); + LoadParameters loadParameters; + loadParameters.navigationID = navigation->navigationID(); + loadParameters.request = WTFMove(request); @@ -17023,7 +17188,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 RefPtr WebPageProxy::loadRequest(ResourceRequest&& request, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, API::Object* userData) { if (m_isClosed) -@@ -2104,6 +2134,32 @@ void WebPageProxy::setControlledByAutomation(bool controlled) +@@ -2120,6 +2150,32 @@ void WebPageProxy::setControlledByAutomation(bool controlled) websiteDataStore().networkProcess().send(Messages::NetworkProcess::SetSessionIsControlledByAutomation(m_websiteDataStore->sessionID(), m_controlledByAutomation), 0); } @@ -17056,7 +17221,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 void WebPageProxy::createInspectorTarget(const String& targetId, Inspector::InspectorTargetType type) { MESSAGE_CHECK(m_process, !targetId.isEmpty()); -@@ -2337,6 +2393,25 @@ void WebPageProxy::updateActivityState(OptionSet flagsToUpdate) +@@ -2353,6 +2409,25 @@ void WebPageProxy::updateActivityState(OptionSet flagsToUpdate) { bool wasVisible = isViewVisible(); internals().activityState.remove(flagsToUpdate); @@ -17082,7 +17247,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 if (flagsToUpdate & ActivityState::IsFocused && pageClient().isViewFocused()) internals().activityState.add(ActivityState::IsFocused); if (flagsToUpdate & ActivityState::WindowIsActive && pageClient().isViewWindowActive()) -@@ -3022,6 +3097,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag +@@ -3038,6 +3113,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag { if (!hasRunningProcess()) return; @@ -17091,7 +17256,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 #if PLATFORM(GTK) UNUSED_PARAM(dragStorageName); UNUSED_PARAM(sandboxExtensionHandle); -@@ -3032,6 +3109,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag +@@ -3048,6 +3125,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag m_process->assumeReadAccessToBaseURL(*this, url); ASSERT(dragData.platformData()); @@ -17100,7 +17265,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 send(Messages::WebPage::PerformDragControllerAction(action, dragData.clientPosition(), dragData.globalPosition(), dragData.draggingSourceOperationMask(), *dragData.platformData(), dragData.flags())); #else send(Messages::WebPage::PerformDragControllerAction(action, dragData, sandboxExtensionHandle, sandboxExtensionsForUpload)); -@@ -3047,18 +3126,41 @@ void WebPageProxy::didPerformDragControllerAction(std::optional dragOperationMask, const ShareableBitmap::Handle& dragImageHandle, IntPoint&& dragImageHotspot) + void WebPageProxy::startDrag(SelectionData&& selectionData, OptionSet dragOperationMask, ShareableBitmap::Handle&& dragImageHandle, IntPoint&& dragImageHotspot) { -- RefPtr dragImage = !dragImageHandle.isNull() ? ShareableBitmap::create(dragImageHandle) : nullptr; +- RefPtr dragImage = !dragImageHandle.isNull() ? ShareableBitmap::create(WTFMove(dragImageHandle)) : nullptr; - pageClient().startDrag(WTFMove(selectionData), dragOperationMask, WTFMove(dragImage), WTFMove(dragImageHotspot)); + if (m_interceptDrags) { + m_dragSelectionData = WTFMove(selectionData); + m_dragSourceOperationMask = dragOperationMask; + } else { +#if PLATFORM(GTK) -+ RefPtr dragImage = !dragImageHandle.isNull() ? ShareableBitmap::create(dragImageHandle) : nullptr; ++ RefPtr dragImage = !dragImageHandle.isNull() ? ShareableBitmap::create(WTFMove(dragImageHandle)) : nullptr; + pageClient().startDrag(WTFMove(selectionData), dragOperationMask, WTFMove(dragImage), WTFMove(dragImageHotspot)); +#endif + } @@ -17145,7 +17310,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& globalPosition, OptionSet dragOperationMask) { if (!hasRunningProcess()) -@@ -3067,6 +3169,24 @@ void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& glo +@@ -3083,6 +3185,24 @@ void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& glo setDragCaretRect({ }); } @@ -17170,7 +17335,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 void WebPageProxy::didPerformDragOperation(bool handled) { pageClient().didPerformDragOperation(handled); -@@ -3079,6 +3199,16 @@ void WebPageProxy::didStartDrag() +@@ -3095,6 +3215,16 @@ void WebPageProxy::didStartDrag() discardQueuedMouseEvents(); send(Messages::WebPage::DidStartDrag()); @@ -17187,7 +17352,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 } void WebPageProxy::dragCancelled() -@@ -3190,17 +3320,39 @@ void WebPageProxy::processNextQueuedMouseEvent() +@@ -3213,17 +3343,39 @@ void WebPageProxy::processNextQueuedMouseEvent() m_process->startResponsivenessTimer(); } @@ -17203,11 +17368,8 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 + bool eventMayStartDrag = !m_currentDragOperation && eventType == WebEventType::MouseMove && event.button() != WebMouseEventButton::NoButton; + if (eventMayStartDrag) + sandboxExtensions = SandboxExtension::createHandlesForMachLookup({ "com.apple.iconservices"_s, "com.apple.iconservices.store"_s }, process().auditToken(), SandboxExtension::MachBootstrapOptions::EnableMachBootstrap); - #endif - -- LOG_WITH_STREAM(MouseHandling, stream << "UIProcess: sent mouse event " << eventType << " (queue size " << internals().mouseEventQueue.size() << ")"); -- m_process->recordUserGestureAuthorizationToken(event.authorizationToken()); -- send(Messages::WebPage::MouseEvent(event, sandboxExtensions)); ++#endif ++ + LOG_WITH_STREAM(MouseHandling, stream << "UIProcess: sent mouse event " << eventType << " (queue size " << internals().mouseEventQueue.size() << ")"); + m_process->recordUserGestureAuthorizationToken(event.authorizationToken()); + send(Messages::WebPage::MouseEvent(event, sandboxExtensions)); @@ -17216,14 +17378,17 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 + DragData dragData(*m_dragSelectionData, event.position(), event.globalPosition(), m_dragSourceOperationMask); +#else + DragData dragData(&*m_dragSelectionData, event.position(), event.globalPosition(), m_dragSourceOperationMask); -+#endif + #endif + if (eventType == WebEventType::MouseMove) { + dragUpdated(dragData); + } else if (eventType == WebEventType::MouseUp) { + if (m_currentDragOperation && m_dragSourceOperationMask.containsAny(m_currentDragOperation.value())) { + SandboxExtension::Handle sandboxExtensionHandle; + Vector sandboxExtensionsForUpload; -+ + +- LOG_WITH_STREAM(MouseHandling, stream << "UIProcess: sent mouse event " << eventType << " (queue size " << internals().mouseEventQueue.size() << ")"); +- m_process->recordUserGestureAuthorizationToken(event.authorizationToken()); +- send(Messages::WebPage::MouseEvent(event, sandboxExtensions)); + performDragOperation(dragData, ""_s, WTFMove(sandboxExtensionHandle), WTFMove(sandboxExtensionsForUpload)); + } + m_dragSelectionData = std::nullopt; @@ -17234,7 +17399,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 } void WebPageProxy::doAfterProcessingAllPendingMouseEvents(WTF::Function&& action) -@@ -3334,6 +3486,8 @@ void WebPageProxy::wheelEventHandlingCompleted(bool wasHandled) +@@ -3371,6 +3523,8 @@ void WebPageProxy::wheelEventHandlingCompleted(bool wasHandled) if (auto* automationSession = process().processPool().automationSession()) automationSession->wheelEventsFlushedForPage(*this); @@ -17243,7 +17408,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 } void WebPageProxy::cacheWheelEventScrollingAccelerationCurve(const NativeWebWheelEvent& nativeWheelEvent) -@@ -3457,7 +3611,7 @@ static TrackingType mergeTrackingTypes(TrackingType a, TrackingType b) +@@ -3494,7 +3648,7 @@ static TrackingType mergeTrackingTypes(TrackingType a, TrackingType b) void WebPageProxy::updateTouchEventTracking(const WebTouchEvent& touchStartEvent) { @@ -17252,7 +17417,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 for (auto& touchPoint : touchStartEvent.touchPoints()) { auto location = touchPoint.location(); auto update = [this, location](TrackingType& trackingType, EventTrackingRegions::EventType eventType) { -@@ -3878,6 +4032,8 @@ void WebPageProxy::receivedNavigationPolicyDecision(PolicyAction policyAction, A +@@ -3915,6 +4069,8 @@ void WebPageProxy::receivedNavigationPolicyDecision(WebProcessProxy& sourceProce if (policyAction != PolicyAction::Use || (!preferences().siteIsolationEnabled() && !frame.isMainFrame()) || !navigation) { @@ -17261,7 +17426,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 receivedPolicyDecision(policyAction, navigation, navigation->websitePolicies(), WTFMove(navigationAction), WTFMove(sender), WillContinueLoadInNewProcess::No, std::nullopt); return; } -@@ -3950,6 +4106,7 @@ void WebPageProxy::receivedNavigationPolicyDecision(PolicyAction policyAction, A +@@ -3987,6 +4143,7 @@ void WebPageProxy::receivedNavigationPolicyDecision(WebProcessProxy& sourceProce void WebPageProxy::receivedPolicyDecision(PolicyAction action, API::Navigation* navigation, RefPtr&& websitePolicies, std::variant, Ref>&& navigationActionOrResponse, Ref&& sender, WillContinueLoadInNewProcess willContinueLoadInNewProcess, std::optional sandboxExtensionHandle) { @@ -17269,7 +17434,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 if (!hasRunningProcess()) { sender->send(PolicyDecision { sender->identifier(), isNavigatingToAppBoundDomain() }); return; -@@ -4796,6 +4953,11 @@ void WebPageProxy::pageScaleFactorDidChange(double scaleFactor) +@@ -4831,6 +4988,11 @@ void WebPageProxy::pageScaleFactorDidChange(double scaleFactor) m_pageScaleFactor = scaleFactor; } @@ -17281,15 +17446,15 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 void WebPageProxy::pluginScaleFactorDidChange(double pluginScaleFactor) { MESSAGE_CHECK(m_process, scaleFactorIsValid(pluginScaleFactor)); -@@ -5227,6 +5389,7 @@ void WebPageProxy::didDestroyNavigation(uint64_t navigationID) - return; +@@ -5316,6 +5478,7 @@ void WebPageProxy::didDestroyNavigationShared(Ref&& process, ui + PageClientProtector protector(pageClient()); - m_navigationState->didDestroyNavigation(navigationID); + m_navigationState->didDestroyNavigation(process->coreProcessIdentifier(), navigationID); + m_inspectorController->didDestroyNavigation(navigationID); } void WebPageProxy::didStartProvisionalLoadForFrame(FrameIdentifier frameID, FrameInfoData&& frameInfo, ResourceRequest&& request, uint64_t navigationID, URL&& url, URL&& unreachableURL, const UserData& userData) -@@ -5455,6 +5618,8 @@ void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref&& p +@@ -5544,6 +5707,8 @@ void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref&& p m_failingProvisionalLoadURL = { }; @@ -17298,7 +17463,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 // 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; -@@ -6005,7 +6170,14 @@ void WebPageProxy::decidePolicyForNavigationActionAsync(IPC::Connection& connect +@@ -6129,7 +6294,14 @@ void WebPageProxy::decidePolicyForNavigationActionAsync(IPC::Connection& connect { RefPtr frame = WebFrameProxy::webFrame(frameID); MESSAGE_CHECK_BASE(frame, &connection); @@ -17314,7 +17479,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 } void WebPageProxy::decidePolicyForNavigationActionAsyncShared(Ref&& process, PageIdentifier webPageID, FrameIdentifier frameID, FrameInfoData&& frameInfo, WebCore::PolicyCheckIdentifier identifier, uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& originatingFrameInfo, std::optional originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, uint64_t listenerID) -@@ -6601,6 +6773,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa +@@ -6726,6 +6898,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa if (auto* page = originatingFrameInfo->page()) openerAppInitiatedState = page->lastNavigationWasAppInitiated(); @@ -17322,7 +17487,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 auto completionHandler = [this, protectedThis = Ref { *this }, mainFrameURL, request, reply = WTFMove(reply), privateClickMeasurement = navigationActionData.privateClickMeasurement, openerAppInitiatedState = WTFMove(openerAppInitiatedState)] (RefPtr newPage) mutable { if (!newPage) { reply(std::nullopt, std::nullopt); -@@ -6654,6 +6827,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa +@@ -6779,6 +6952,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa void WebPageProxy::showPage() { m_uiClient->showPage(this); @@ -17330,7 +17495,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 } void WebPageProxy::exitFullscreenImmediately() -@@ -6723,6 +6897,10 @@ void WebPageProxy::closePage() +@@ -6848,6 +7022,10 @@ void WebPageProxy::closePage() if (isClosed()) return; @@ -17341,7 +17506,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 WEBPAGEPROXY_RELEASE_LOG(Process, "closePage:"); pageClient().clearAllEditCommands(); m_uiClient->close(this); -@@ -6759,6 +6937,8 @@ void WebPageProxy::runJavaScriptAlert(FrameIdentifier frameID, FrameInfoData&& f +@@ -6884,6 +7062,8 @@ void WebPageProxy::runJavaScriptAlert(FrameIdentifier frameID, FrameInfoData&& f } runModalJavaScriptDialog(WTFMove(frame), WTFMove(frameInfo), message, [reply = WTFMove(reply)](WebPageProxy& page, WebFrameProxy* frame, FrameInfoData&& frameInfo, const String& message, CompletionHandler&& completion) mutable { @@ -17350,7 +17515,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 page.m_uiClient->runJavaScriptAlert(page, message, frame, WTFMove(frameInfo), [reply = WTFMove(reply), completion = WTFMove(completion)]() mutable { reply(); completion(); -@@ -6780,6 +6960,8 @@ void WebPageProxy::runJavaScriptConfirm(FrameIdentifier frameID, FrameInfoData&& +@@ -6905,6 +7085,8 @@ void WebPageProxy::runJavaScriptConfirm(FrameIdentifier frameID, FrameInfoData&& if (auto* automationSession = process().processPool().automationSession()) automationSession->willShowJavaScriptDialog(*this); } @@ -17359,7 +17524,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 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 { -@@ -6803,6 +6985,8 @@ void WebPageProxy::runJavaScriptPrompt(FrameIdentifier frameID, FrameInfoData&& +@@ -6928,6 +7110,8 @@ void WebPageProxy::runJavaScriptPrompt(FrameIdentifier frameID, FrameInfoData&& if (auto* automationSession = process().processPool().automationSession()) automationSession->willShowJavaScriptDialog(*this); } @@ -17368,7 +17533,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 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 { -@@ -6918,6 +7102,8 @@ void WebPageProxy::runBeforeUnloadConfirmPanel(FrameIdentifier frameID, FrameInf +@@ -7042,6 +7226,8 @@ void WebPageProxy::runBeforeUnloadConfirmPanel(FrameIdentifier frameID, FrameInf return; } } @@ -17377,7 +17542,19 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 // Since runBeforeUnloadConfirmPanel() can spin a nested run loop we need to turn off the responsiveness timer and the tryClose timer. m_process->stopResponsivenessTimer(); -@@ -8279,6 +8465,8 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) +@@ -7487,6 +7673,11 @@ void WebPageProxy::resourceLoadDidCompleteWithError(ResourceLoadInfo&& loadInfo, + } + + #if ENABLE(FULLSCREEN_API) ++void WebPageProxy::setFullScreenManagerClientOverride(std::unique_ptr&& client) ++{ ++ m_fullScreenManagerClientOverride = WTFMove(client); ++} ++ + WebFullScreenManagerProxy* WebPageProxy::fullScreenManager() + { + return m_fullScreenManager.get(); +@@ -8403,6 +8594,8 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) if (auto* automationSession = process().processPool().automationSession()) automationSession->mouseEventsFlushedForPage(*this); didFinishProcessingAllPendingMouseEvents(); @@ -17386,7 +17563,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 } break; } -@@ -8315,7 +8503,6 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) +@@ -8441,7 +8634,6 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) // The call to doneWithKeyEvent may close this WebPage. // Protect against this being destroyed. Ref protect(*this); @@ -17394,7 +17571,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 pageClient().doneWithKeyEvent(event, handled); if (!handled) m_uiClient->didNotHandleKeyEvent(this, event); -@@ -8324,6 +8511,7 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) +@@ -8450,6 +8642,7 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) if (!canProcessMoreKeyEvents) { if (auto* automationSession = process().processPool().automationSession()) automationSession->keyboardEventsFlushedForPage(*this); @@ -17402,7 +17579,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 } break; } -@@ -8677,7 +8865,10 @@ void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason) +@@ -8803,7 +8996,10 @@ void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason) { WEBPAGEPROXY_RELEASE_LOG_ERROR(Loading, "dispatchProcessDidTerminate: reason=%" PUBLIC_LOG_STRING, processTerminationReasonToString(reason)); @@ -17414,7 +17591,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 if (m_loaderClient) handledByClient = reason != ProcessTerminationReason::RequestedByClient && m_loaderClient->processDidCrash(*this); else -@@ -9044,6 +9235,7 @@ bool WebPageProxy::useGPUProcessForDOMRenderingEnabled() const +@@ -9172,6 +9368,7 @@ bool WebPageProxy::useGPUProcessForDOMRenderingEnabled() const WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& process, DrawingAreaProxy& drawingArea, RefPtr&& websitePolicies) { @@ -17422,7 +17599,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 WebPageCreationParameters parameters; parameters.processDisplayName = configuration().processDisplayName(); -@@ -9244,6 +9436,8 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc +@@ -9373,6 +9570,8 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc parameters.httpsUpgradeEnabled = preferences().upgradeKnownHostsToHTTPSEnabled() ? m_configuration->httpsUpgradeEnabled() : false; @@ -17431,7 +17608,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 #if PLATFORM(IOS) // FIXME: This is also being passed over the to WebProcess via the PreferencesStore. parameters.allowsDeprecatedSynchronousXMLHttpRequestDuringUnload = allowsDeprecatedSynchronousXMLHttpRequestDuringUnload(); -@@ -9330,8 +9524,42 @@ void WebPageProxy::gamepadActivity(const Vector>& gam +@@ -9459,8 +9658,42 @@ void WebPageProxy::gamepadActivity(const Vector>& gam #endif @@ -17474,7 +17651,7 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 if (negotiatedLegacyTLS == NegotiatedLegacyTLS::Yes) { m_navigationClient->shouldAllowLegacyTLS(*this, authenticationChallenge.get(), [this, protectedThis = Ref { *this }, authenticationChallenge] (bool shouldAllowLegacyTLS) { if (shouldAllowLegacyTLS) -@@ -9435,6 +9663,15 @@ void WebPageProxy::requestGeolocationPermissionForFrame(GeolocationIdentifier ge +@@ -9564,6 +9797,15 @@ void WebPageProxy::requestGeolocationPermissionForFrame(GeolocationIdentifier ge request->deny(); }; @@ -17491,10 +17668,17 @@ index 530c55ba1f0e3c7abb0e62873147975b69a8cc62..be3063eaf99f7747abfea0786f22d355 // and make it one UIClient call that calls the completionHandler with false // if there is no delegate instead of returning the completionHandler diff --git a/Source/WebKit/UIProcess/WebPageProxy.h b/Source/WebKit/UIProcess/WebPageProxy.h -index f38bc5381c5c252edf42a4825cd535b93ad50c80..3d5280f6d65cd05359ca244519d51e9e08024e49 100644 +index 2329d35651bff79209e12abc0f72247777e04277..feb7cc4df15ef85b3845ee153a88f9655a123295 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.h +++ b/Source/WebKit/UIProcess/WebPageProxy.h -@@ -31,6 +31,24 @@ +@@ -26,12 +26,31 @@ + #pragma once + + #include "APIObject.h" ++#include "APIWebsitePolicies.h" + #include "MessageReceiver.h" + #include "MessageSender.h" + #include #include #include #include @@ -17519,7 +17703,7 @@ index f38bc5381c5c252edf42a4825cd535b93ad50c80..3d5280f6d65cd05359ca244519d51e9e namespace API { class Attachment; -@@ -91,6 +109,7 @@ class DestinationColorSpace; +@@ -92,6 +111,7 @@ class DestinationColorSpace; class DragData; class FloatPoint; class FloatQuad; @@ -17527,7 +17711,15 @@ index f38bc5381c5c252edf42a4825cd535b93ad50c80..3d5280f6d65cd05359ca244519d51e9e class FloatRect; class FloatSize; class FontAttributeChanges; -@@ -566,6 +585,8 @@ public: +@@ -376,6 +396,7 @@ class WebExtensionController; + class WebFramePolicyListenerProxy; + class WebFrameProxy; + class WebFullScreenManagerProxy; ++class WebFullScreenManagerProxyClient; + class WebInspectorUIProxy; + class WebKeyboardEvent; + class WebMouseEvent; +@@ -571,6 +592,8 @@ public: void setControlledByAutomation(bool); WebPageInspectorController& inspectorController() { return *m_inspectorController; } @@ -17536,7 +17728,15 @@ index f38bc5381c5c252edf42a4825cd535b93ad50c80..3d5280f6d65cd05359ca244519d51e9e #if PLATFORM(IOS_FAMILY) void showInspectorIndication(); -@@ -681,6 +702,11 @@ public: +@@ -601,6 +624,7 @@ public: + bool hasSleepDisabler() const; + + #if ENABLE(FULLSCREEN_API) ++ void setFullScreenManagerClientOverride(std::unique_ptr&&); + WebFullScreenManagerProxy* fullScreenManager(); + + API::FullscreenClient& fullscreenClient() const { return *m_fullscreenClient; } +@@ -689,6 +713,11 @@ public: void setPageLoadStateObserver(std::unique_ptr&&); @@ -17548,7 +17748,7 @@ index f38bc5381c5c252edf42a4825cd535b93ad50c80..3d5280f6d65cd05359ca244519d51e9e void initializeWebPage(); void setDrawingArea(std::unique_ptr&&); -@@ -707,6 +733,7 @@ public: +@@ -715,6 +744,7 @@ public: void addPlatformLoadParameters(WebProcessProxy&, LoadParameters&); RefPtr loadRequest(WebCore::ResourceRequest&&); RefPtr loadRequest(WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy, API::Object* userData = nullptr); @@ -17556,7 +17756,7 @@ index f38bc5381c5c252edf42a4825cd535b93ad50c80..3d5280f6d65cd05359ca244519d51e9e RefPtr loadFile(const String& fileURL, const String& resourceDirectoryURL, bool isAppInitiated = true, API::Object* userData = nullptr); RefPtr loadData(const IPC::DataReference&, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData = nullptr); RefPtr loadData(const IPC::DataReference&, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData, WebCore::ShouldOpenExternalURLsPolicy); -@@ -1273,6 +1300,7 @@ public: +@@ -1287,6 +1317,7 @@ public: #endif void pageScaleFactorDidChange(double); @@ -17564,21 +17764,21 @@ index f38bc5381c5c252edf42a4825cd535b93ad50c80..3d5280f6d65cd05359ca244519d51e9e void pluginScaleFactorDidChange(double); void pluginZoomFactorDidChange(double); -@@ -1363,14 +1391,20 @@ public: +@@ -1377,14 +1408,20 @@ public: void didStartDrag(); void dragCancelled(); void setDragCaretRect(const WebCore::IntRect&); + void setInterceptDrags(bool shouldIntercept); + bool cancelDragIfNeeded(); #if PLATFORM(COCOA) - void startDrag(const WebCore::DragItem&, const ShareableBitmapHandle& dragImageHandle); - void setPromisedDataForImage(const String& pasteboardName, const SharedMemoryHandle& imageHandle, const String& filename, const String& extension, - const String& title, const String& url, const String& visibleURL, const SharedMemoryHandle& archiveHandle, const String& originIdentifier); + void startDrag(const WebCore::DragItem&, ShareableBitmapHandle&& dragImageHandle); + void setPromisedDataForImage(const String& pasteboardName, SharedMemoryHandle&& imageHandle, const String& filename, const String& extension, + const String& title, const String& url, const String& visibleURL, SharedMemoryHandle&& archiveHandle, const String& originIdentifier); + void releaseInspectorDragPasteboard(); #endif -#if PLATFORM(GTK) +#if PLATFORM(GTK) || PLATFORM(WPE) - void startDrag(WebCore::SelectionData&&, OptionSet, const ShareableBitmapHandle& dragImage, WebCore::IntPoint&& dragImageHotspot); + void startDrag(WebCore::SelectionData&&, OptionSet, ShareableBitmapHandle&& dragImage, WebCore::IntPoint&& dragImageHotspot); #endif +#if PLATFORM(WIN) + void startDrag(WebCore::DragDataMap&& dragDataMap); @@ -17586,7 +17786,7 @@ index f38bc5381c5c252edf42a4825cd535b93ad50c80..3d5280f6d65cd05359ca244519d51e9e #endif void processDidBecomeUnresponsive(); -@@ -1587,6 +1621,7 @@ public: +@@ -1601,6 +1638,7 @@ public: void setViewportSizeForCSSViewportUnits(const WebCore::FloatSize&); WebCore::FloatSize viewportSizeForCSSViewportUnits() const; @@ -17594,7 +17794,7 @@ index f38bc5381c5c252edf42a4825cd535b93ad50c80..3d5280f6d65cd05359ca244519d51e9e void didReceiveAuthenticationChallengeProxy(Ref&&, NegotiatedLegacyTLS); void negotiatedLegacyTLS(); void didNegotiateModernTLS(const URL&); -@@ -1621,6 +1656,8 @@ public: +@@ -1635,6 +1673,8 @@ public: #if PLATFORM(COCOA) || PLATFORM(GTK) RefPtr takeViewSnapshot(std::optional&&); @@ -17603,15 +17803,18 @@ index f38bc5381c5c252edf42a4825cd535b93ad50c80..3d5280f6d65cd05359ca244519d51e9e #endif #if ENABLE(WEB_CRYPTO) -@@ -2877,6 +2914,7 @@ private: +@@ -2902,8 +2942,10 @@ private: String m_overrideContentSecurityPolicy; RefPtr m_inspector; + InspectorDialogAgent* m_inspectorDialogAgent { nullptr }; #if ENABLE(FULLSCREEN_API) ++ std::unique_ptr m_fullScreenManagerClientOverride; std::unique_ptr m_fullScreenManager; -@@ -3060,6 +3098,22 @@ private: + std::unique_ptr m_fullscreenClient; + #endif +@@ -3085,6 +3127,22 @@ private: std::optional m_currentDragOperation; bool m_currentDragIsOverFileInput { false }; unsigned m_currentDragNumberOfFilesToBeAccepted { 0 }; @@ -17634,7 +17837,7 @@ index f38bc5381c5c252edf42a4825cd535b93ad50c80..3d5280f6d65cd05359ca244519d51e9e #endif bool m_mainFrameHasHorizontalScrollbar { false }; -@@ -3227,6 +3281,10 @@ private: +@@ -3252,6 +3310,10 @@ private: RefPtr messageBody; }; Vector m_pendingInjectedBundleMessages; @@ -17646,7 +17849,7 @@ index f38bc5381c5c252edf42a4825cd535b93ad50c80..3d5280f6d65cd05359ca244519d51e9e #if PLATFORM(IOS_FAMILY) && ENABLE(DEVICE_ORIENTATION) std::unique_ptr m_webDeviceOrientationUpdateProviderProxy; diff --git a/Source/WebKit/UIProcess/WebPageProxy.messages.in b/Source/WebKit/UIProcess/WebPageProxy.messages.in -index 90902fe48311e844c1f65bde2c49dcd84eb56e16..553ac2a1d73cc7edd63b81dae4f0a1826ae7f810 100644 +index 78f6aa0cd0c3598e036f6cf5681df9b397fc7b68..3d2ba18e36c1c2094e7ae8705ffcb1ac6048eb43 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.messages.in +++ b/Source/WebKit/UIProcess/WebPageProxy.messages.in @@ -29,6 +29,7 @@ messages -> WebPageProxy { @@ -17657,7 +17860,7 @@ index 90902fe48311e844c1f65bde2c49dcd84eb56e16..553ac2a1d73cc7edd63b81dae4f0a182 DidChangeViewportProperties(struct WebCore::ViewportAttributes attributes) DidReceiveEvent(enum:int8_t WebKit::WebEventType eventType, bool handled) -@@ -178,6 +179,7 @@ messages -> WebPageProxy { +@@ -179,6 +180,7 @@ messages -> WebPageProxy { #endif PageScaleFactorDidChange(double scaleFactor) @@ -17665,7 +17868,7 @@ index 90902fe48311e844c1f65bde2c49dcd84eb56e16..553ac2a1d73cc7edd63b81dae4f0a182 PluginScaleFactorDidChange(double zoomFactor) PluginZoomFactorDidChange(double zoomFactor) -@@ -307,10 +309,12 @@ messages -> WebPageProxy { +@@ -308,10 +310,12 @@ messages -> WebPageProxy { StartDrag(struct WebCore::DragItem dragItem, WebKit::ShareableBitmap::Handle dragImage) SetPromisedDataForImage(String pasteboardName, WebKit::SharedMemory::Handle imageHandle, String filename, String extension, String title, String url, String visibleURL, WebKit::SharedMemory::Handle archiveHandle, String originIdentifier) #endif @@ -17696,10 +17899,10 @@ index e68471d45366b6f7a609e6a57bcfea2820511e29..d2344e7b428ae19399ded4e37bfbf81c } diff --git a/Source/WebKit/UIProcess/WebProcessPool.cpp b/Source/WebKit/UIProcess/WebProcessPool.cpp -index b268082e4bd3d6133038fb0f103d030007e77e8c..8fdb85737c8a2a637ffec4d8c4fbaa346d202491 100644 +index 388e6a6c72b5c3a6fb32cee6cf80ea95af94a549..cc89b2d87eae2f62983ff7e89de376c714b3f1d5 100644 --- a/Source/WebKit/UIProcess/WebProcessPool.cpp +++ b/Source/WebKit/UIProcess/WebProcessPool.cpp -@@ -371,15 +371,16 @@ void WebProcessPool::setAutomationClient(std::unique_ptr& +@@ -381,10 +381,10 @@ void WebProcessPool::setAutomationClient(std::unique_ptr& void WebProcessPool::setOverrideLanguages(Vector&& languages) { @@ -17709,6 +17912,11 @@ index b268082e4bd3d6133038fb0f103d030007e77e8c..8fdb85737c8a2a637ffec4d8c4fbaa34 LOG_WITH_STREAM(Language, stream << "WebProcessPool is setting OverrideLanguages: " << languages); - sendToAllProcesses(Messages::WebProcess::UserPreferredLanguagesChanged(overrideLanguages())); + sendToAllProcesses(Messages::WebProcess::UserPreferredLanguagesChanged(m_configuration->overrideLanguages())); + + #if ENABLE(GPU_PROCESS) + if (auto* gpuProcess = GPUProcessProxy::singletonIfCreated()) +@@ -392,9 +392,10 @@ void WebProcessPool::setOverrideLanguages(Vector&& languages) + #endif #if USE(SOUP) for (auto networkProcess : NetworkProcessProxy::allNetworkProcesses()) - networkProcess->send(Messages::NetworkProcess::UserPreferredLanguagesChanged(overrideLanguages()), 0); @@ -17719,7 +17927,7 @@ index b268082e4bd3d6133038fb0f103d030007e77e8c..8fdb85737c8a2a637ffec4d8c4fbaa34 void WebProcessPool::fullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled) { -@@ -516,6 +517,14 @@ void WebProcessPool::establishRemoteWorkerContextConnectionToNetworkProcess(Remo +@@ -531,6 +532,14 @@ void WebProcessPool::establishRemoteWorkerContextConnectionToNetworkProcess(Remo RefPtr requestingProcess = requestingProcessIdentifier ? WebProcessProxy::processForIdentifier(*requestingProcessIdentifier) : nullptr; WebProcessPool* processPool = requestingProcess ? &requestingProcess->processPool() : processPools()[0]; @@ -17734,7 +17942,7 @@ index b268082e4bd3d6133038fb0f103d030007e77e8c..8fdb85737c8a2a637ffec4d8c4fbaa34 ASSERT(processPool); WebProcessProxy* remoteWorkerProcessProxy { nullptr }; -@@ -813,7 +822,7 @@ void WebProcessPool::initializeNewWebProcess(WebProcessProxy& process, WebsiteDa +@@ -835,7 +844,7 @@ void WebProcessPool::initializeNewWebProcess(WebProcessProxy& process, WebsiteDa #endif parameters.cacheModel = LegacyGlobalSettings::singleton().cacheModel(); @@ -17744,10 +17952,10 @@ index b268082e4bd3d6133038fb0f103d030007e77e8c..8fdb85737c8a2a637ffec4d8c4fbaa34 parameters.urlSchemesRegisteredAsEmptyDocument = copyToVector(m_schemesToRegisterAsEmptyDocument); diff --git a/Source/WebKit/UIProcess/WebProcessProxy.cpp b/Source/WebKit/UIProcess/WebProcessProxy.cpp -index 58c9ede0e2d7fec74490f7f61688c9b4480f92fa..fae725ffbfa4cdc22ce934cce7126ec00d1c9970 100644 +index 88b4766d71664ad96eb3cd3dc9bbb11fca085b02..afe323a9189fe9719dc249b8dfc88adf6319c7c8 100644 --- a/Source/WebKit/UIProcess/WebProcessProxy.cpp +++ b/Source/WebKit/UIProcess/WebProcessProxy.cpp -@@ -168,6 +168,11 @@ Vector> WebProcessProxy::allProcesses() +@@ -169,6 +169,11 @@ Vector> WebProcessProxy::allProcesses() }); } @@ -17759,7 +17967,7 @@ index 58c9ede0e2d7fec74490f7f61688c9b4480f92fa..fae725ffbfa4cdc22ce934cce7126ec0 RefPtr WebProcessProxy::processForIdentifier(ProcessIdentifier identifier) { return allProcessMap().get(identifier).get(); -@@ -495,6 +500,26 @@ void WebProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOpt +@@ -505,6 +510,26 @@ void WebProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOpt if (WebKit::isInspectorProcessPool(processPool())) launchOptions.extraInitializationData.add("inspector-process"_s, "1"_s); @@ -17787,7 +17995,7 @@ index 58c9ede0e2d7fec74490f7f61688c9b4480f92fa..fae725ffbfa4cdc22ce934cce7126ec0 if (isPrewarmed()) diff --git a/Source/WebKit/UIProcess/WebProcessProxy.h b/Source/WebKit/UIProcess/WebProcessProxy.h -index d4fa06e4d9c3a4ad378055e8120d4465105327da..808b526f60c23bcdab69414900657003d065d39e 100644 +index 9684e12a2a2c8c8d543f0481f918be9e1681d320..4790d89a582dab5f6b72bf00088bcdaa9309eaed 100644 --- a/Source/WebKit/UIProcess/WebProcessProxy.h +++ b/Source/WebKit/UIProcess/WebProcessProxy.h @@ -162,6 +162,7 @@ public: @@ -17799,10 +18007,10 @@ index d4fa06e4d9c3a4ad378055e8120d4465105327da..808b526f60c23bcdab69414900657003 WebConnection* webConnection() const { return m_webConnection.get(); } diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp -index ad7fe7f78255b00b42de67627a9f4ca0f1ad1e64..c7d582b35e5218c5db92d64424522fae7a7a252a 100644 +index 30c4a06a937f6018e619f952c35262742473b942..8ba95c4d29660691db90572a42f45ac554c31639 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp -@@ -2195,6 +2195,12 @@ void WebsiteDataStore::originDirectoryForTesting(WebCore::ClientOrigin&& origin, +@@ -2204,6 +2204,12 @@ void WebsiteDataStore::originDirectoryForTesting(WebCore::ClientOrigin&& origin, networkProcess().websiteDataOriginDirectoryForTesting(m_sessionID, WTFMove(origin), type, WTFMove(completionHandler)); } @@ -17816,7 +18024,7 @@ index ad7fe7f78255b00b42de67627a9f4ca0f1ad1e64..c7d582b35e5218c5db92d64424522fae void WebsiteDataStore::hasAppBoundSession(CompletionHandler&& completionHandler) const { diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h -index be3eea51d440d372d18bf73d7868fd000024e29d..6251d013ceb237c44cd45ac18902e1e192fabf09 100644 +index 8ed75ef856300d39445d7e402c16a10e4a4d82ce..94d621daf687549e90778ced463a05b488d349a5 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h @@ -95,6 +95,7 @@ class DeviceIdHashSaltStorage; @@ -17865,7 +18073,7 @@ index be3eea51d440d372d18bf73d7868fd000024e29d..6251d013ceb237c44cd45ac18902e1e1 void setNetworkProxySettings(WebCore::SoupNetworkProxySettings&&); const WebCore::SoupNetworkProxySettings& networkProxySettings() const { return m_networkProxySettings; } void setCookiePersistentStorage(const String&, SoupCookiePersistentStorageType); -@@ -394,6 +406,12 @@ public: +@@ -403,6 +415,12 @@ public: static const String& defaultBaseDataDirectory(); #endif @@ -17878,7 +18086,7 @@ index be3eea51d440d372d18bf73d7868fd000024e29d..6251d013ceb237c44cd45ac18902e1e1 void resetQuota(CompletionHandler&&); void resetStoragePersistedState(CompletionHandler&&); #if PLATFORM(IOS_FAMILY) -@@ -537,9 +555,11 @@ private: +@@ -550,9 +568,11 @@ private: WebCore::CurlProxySettings m_proxySettings; #endif @@ -17891,7 +18099,7 @@ index be3eea51d440d372d18bf73d7868fd000024e29d..6251d013ceb237c44cd45ac18902e1e1 WebCore::SoupNetworkProxySettings m_networkProxySettings; String m_cookiePersistentStoragePath; SoupCookiePersistentStorageType m_cookiePersistentStorageType { SoupCookiePersistentStorageType::SQLite }; -@@ -567,6 +587,10 @@ private: +@@ -580,6 +600,10 @@ private: RefPtr m_cookieStore; RefPtr m_networkProcess; @@ -17903,7 +18111,7 @@ index be3eea51d440d372d18bf73d7868fd000024e29d..6251d013ceb237c44cd45ac18902e1e1 std::unique_ptr m_soAuthorizationCoordinator; #endif diff --git a/Source/WebKit/UIProcess/cairo/BackingStoreCairo.cpp b/Source/WebKit/UIProcess/cairo/BackingStoreCairo.cpp -index 0b2fc0019ffa2c05383dc4b4e480b4d380aa9fd5..79773452d246f3bcdf42122a3bf8f67685e45fdc 100644 +index cd172b3766d51a070a3eb87532b496f63b2474e1..e6a268bd1c433a2976c7337253c408217993ae77 100644 --- a/Source/WebKit/UIProcess/cairo/BackingStoreCairo.cpp +++ b/Source/WebKit/UIProcess/cairo/BackingStoreCairo.cpp @@ -27,9 +27,11 @@ @@ -18227,10 +18435,10 @@ index 39aeff71fe05354cf63d3b3701d363642d63aca4..32e96cdd0bdbd8c5dcde43fdf60052ac virtual void unrealize() { }; virtual bool makeContextCurrent() { return false; } diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -index 830cff278d37a6c2c5e262ed1eaf5c032f0209ec..aed8ff154cc9ab8d7bd5bf39fc56e6c4e02e0cec 100644 +index 18c321ea2417bc6aa9db15e3b338b2ca687d1021..f31bb173249caaad3c3db8c7fb30bd57d3e6cf11 100644 --- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp +++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -@@ -337,6 +337,25 @@ void AcceleratedBackingStoreDMABuf::Surface::paint(GtkWidget*, cairo_t* cr, cons +@@ -320,6 +320,25 @@ void AcceleratedBackingStoreDMABuf::Surface::paint(GtkWidget*, cairo_t* cr, cons } #endif @@ -18256,7 +18464,7 @@ index 830cff278d37a6c2c5e262ed1eaf5c032f0209ec..aed8ff154cc9ab8d7bd5bf39fc56e6c4 void AcceleratedBackingStoreDMABuf::configure(UnixFileDescriptor&& backFD, UnixFileDescriptor&& frontFD, const WebCore::IntSize& size, uint32_t format, uint32_t offset, uint32_t stride, uint64_t modifier) { m_isSoftwareRast = false; -@@ -492,6 +511,15 @@ bool AcceleratedBackingStoreDMABuf::paint(cairo_t* cr, const WebCore::IntRect& c +@@ -481,6 +500,15 @@ bool AcceleratedBackingStoreDMABuf::paint(cairo_t* cr, const WebCore::IntRect& c } #endif @@ -18273,10 +18481,10 @@ index 830cff278d37a6c2c5e262ed1eaf5c032f0209ec..aed8ff154cc9ab8d7bd5bf39fc56e6c4 #endif // USE(GBM) diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h -index 83a043c9495741eff1d2466ef2842bbb7b5ffa39..6d94b4cbfb64b7eb3b845fdbd171c948856ce28a 100644 +index 8356d8fdbf32f262d5f4d9cb025f709e236c1e2b..1ee9f5fef2d8ce0e2af32e578ce9e18b5243f379 100644 --- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h +++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h -@@ -75,6 +75,7 @@ private: +@@ -76,6 +76,7 @@ private: #else bool paint(cairo_t*, const WebCore::IntRect&) override; #endif @@ -18284,7 +18492,7 @@ index 83a043c9495741eff1d2466ef2842bbb7b5ffa39..6d94b4cbfb64b7eb3b845fdbd171c948 void realize() override; void unrealize() override; bool makeContextCurrent() override; -@@ -90,6 +91,7 @@ private: +@@ -91,6 +92,7 @@ private: #else virtual void paint(GtkWidget*, cairo_t*, const WebCore::IntRect&) const = 0; #endif @@ -18292,7 +18500,7 @@ index 83a043c9495741eff1d2466ef2842bbb7b5ffa39..6d94b4cbfb64b7eb3b845fdbd171c948 const WebCore::IntSize size() const { return m_size; } -@@ -114,6 +116,7 @@ private: +@@ -115,6 +117,7 @@ private: #else void paint(GtkWidget*, cairo_t*, const WebCore::IntRect&) const override; #endif @@ -18300,7 +18508,7 @@ index 83a043c9495741eff1d2466ef2842bbb7b5ffa39..6d94b4cbfb64b7eb3b845fdbd171c948 GRefPtr m_context; unsigned m_textureID { 0 }; -@@ -140,6 +143,7 @@ private: +@@ -141,6 +144,7 @@ private: #else void paint(GtkWidget*, cairo_t*, const WebCore::IntRect&) const override; #endif @@ -18308,7 +18516,7 @@ index 83a043c9495741eff1d2466ef2842bbb7b5ffa39..6d94b4cbfb64b7eb3b845fdbd171c948 RefPtr map(struct gbm_bo*) const; RefPtr map(RefPtr&) const; -@@ -150,6 +154,7 @@ private: +@@ -151,6 +155,7 @@ private: RefPtr m_frontBitmap; RefPtr m_surface; RefPtr m_backSurface; @@ -18578,7 +18786,7 @@ index 0000000000000000000000000000000000000000..6a204c5bba8fb95ddb2d1c14cae7a3a7 + +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm b/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm -index f7553422318ad1ec5812bfacbe416063f4ac4094..5f2536c8f5443c2885778b962c0da550e26da720 100644 +index e892b35228cce2a44e5b3156a48a3284a21670b4..090b6f143a9e646189c078807be6fcf92892cc1d 100644 --- a/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm +++ b/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm @@ -447,6 +447,8 @@ IntRect PageClientImpl::rootViewToAccessibilityScreen(const IntRect& rect) @@ -18792,7 +19000,7 @@ index 0000000000000000000000000000000000000000..721826c8c98fc85b68a4f45deaee69c1 + +#endif diff --git a/Source/WebKit/UIProcess/mac/PageClientImplMac.h b/Source/WebKit/UIProcess/mac/PageClientImplMac.h -index 147a174ce9ca5c26bbc76035c190029a0c8d831f..5f6cc5e8f1847c0d5652ec96fc242166f0f28a43 100644 +index 3ad946efa69c118eba63db8103b2a276595570a6..65200beffe1ee70a500ab27f557cfa0d7e59db24 100644 --- a/Source/WebKit/UIProcess/mac/PageClientImplMac.h +++ b/Source/WebKit/UIProcess/mac/PageClientImplMac.h @@ -54,6 +54,8 @@ class PageClientImpl final : public PageClientImplCocoa @@ -18826,7 +19034,7 @@ index 147a174ce9ca5c26bbc76035c190029a0c8d831f..5f6cc5e8f1847c0d5652ec96fc242166 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 c58c102008f4db2023ca1a87e605f0e12b802db8..3e04fa5e3f198ce9dc39a0c7f1c677de645a9ae1 100644 +index 00211e5e41b5253668f44d643e25988f646f9d78..11c191dbbdfe74a8cf81d27ecc4077695934768d 100644 --- a/Source/WebKit/UIProcess/mac/PageClientImplMac.mm +++ b/Source/WebKit/UIProcess/mac/PageClientImplMac.mm @@ -81,6 +81,7 @@ @@ -19162,7 +19370,7 @@ index 0000000000000000000000000000000000000000..4ec25daff6a0c75e378eb25b2f2638e2 + +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/mac/WebViewImpl.h b/Source/WebKit/UIProcess/mac/WebViewImpl.h -index 5ad2a9cae1c57ed864c990042c49521787a049b1..787dbf53bc5969fdfc84e61db17614733de87cea 100644 +index e13a0838137f5d86e2b0032ea8545377aeaecc04..085e351c99f1c60973ac59873c4ad90c69a1b3ae 100644 --- a/Source/WebKit/UIProcess/mac/WebViewImpl.h +++ b/Source/WebKit/UIProcess/mac/WebViewImpl.h @@ -514,6 +514,9 @@ ALLOW_DEPRECATED_DECLARATIONS_END @@ -19176,10 +19384,10 @@ index 5ad2a9cae1c57ed864c990042c49521787a049b1..787dbf53bc5969fdfc84e61db1761473 void saveBackForwardSnapshotForCurrentItem(); void saveBackForwardSnapshotForItem(WebBackForwardListItem&); diff --git a/Source/WebKit/UIProcess/mac/WebViewImpl.mm b/Source/WebKit/UIProcess/mac/WebViewImpl.mm -index d0125d64c23e3683b7567e90242aca9b414240b1..595c3fe0799feb57a0346c0ed0189a1dd9590280 100644 +index dfde2eb211d863cc279cca6ad71b6408b58270fc..2703d97ab56b0e7ba19212238783e40d0709a7ef 100644 --- a/Source/WebKit/UIProcess/mac/WebViewImpl.mm +++ b/Source/WebKit/UIProcess/mac/WebViewImpl.mm -@@ -2330,6 +2330,11 @@ WebCore::DestinationColorSpace WebViewImpl::colorSpace() +@@ -2334,6 +2334,11 @@ WebCore::DestinationColorSpace WebViewImpl::colorSpace() if (!m_colorSpace) m_colorSpace = [NSColorSpace sRGBColorSpace]; } @@ -19191,7 +19399,7 @@ index d0125d64c23e3683b7567e90242aca9b414240b1..595c3fe0799feb57a0346c0ed0189a1d ASSERT(m_colorSpace); return WebCore::DestinationColorSpace { [m_colorSpace CGColorSpace] }; -@@ -4416,6 +4421,18 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN +@@ -4420,6 +4425,18 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN ALLOW_DEPRECATED_DECLARATIONS_END } @@ -19210,7 +19418,7 @@ index d0125d64c23e3683b7567e90242aca9b414240b1..595c3fe0799feb57a0346c0ed0189a1d RefPtr WebViewImpl::takeViewSnapshot() { NSWindow *window = [m_view window]; -@@ -5036,11 +5053,11 @@ static Vector compositionHighlights(NSAttributedS +@@ -5040,11 +5057,11 @@ static Vector compositionHighlights(NSAttributedS Vector highlights; [string enumerateAttributesInRange:NSMakeRange(0, string.length) options:0 usingBlock:[&highlights](NSDictionary *attributes, NSRange range, BOOL *) { std::optional backgroundHighlightColor; @@ -19984,10 +20192,10 @@ index 0000000000000000000000000000000000000000..a7d88f8c745f95af21db71dcfce368ba + +} // namespace WebKit diff --git a/Source/WebKit/WebKit.xcodeproj/project.pbxproj b/Source/WebKit/WebKit.xcodeproj/project.pbxproj -index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb1056b659 100644 +index ce2412889dc2d788f60aef3079b979ea1108e732..bb87fd0a44ad1719cab7a3af2c34655f8296700e 100644 --- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj +++ b/Source/WebKit/WebKit.xcodeproj/project.pbxproj -@@ -1336,6 +1336,7 @@ +@@ -1334,6 +1334,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 */; }; @@ -19995,7 +20203,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 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 */; }; -@@ -2092,6 +2093,18 @@ +@@ -2090,6 +2091,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 */; }; @@ -20014,7 +20222,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 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, ); }; }; -@@ -2155,6 +2168,8 @@ +@@ -2154,6 +2167,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 */; }; @@ -20023,7 +20231,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 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 */; }; -@@ -2173,6 +2188,9 @@ +@@ -2172,6 +2187,9 @@ EBA8D3B627A5E33F00CB7900 /* MockPushServiceConnection.mm in Sources */ = {isa = PBXBuildFile; fileRef = EBA8D3B027A5E33F00CB7900 /* MockPushServiceConnection.mm */; }; EBA8D3B727A5E33F00CB7900 /* PushServiceConnection.mm in Sources */ = {isa = PBXBuildFile; fileRef = EBA8D3B127A5E33F00CB7900 /* PushServiceConnection.mm */; }; ED82A7F2128C6FAF004477B3 /* WKBundlePageOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A22F0FF1289FCD90085E74F /* WKBundlePageOverlay.h */; settings = {ATTRIBUTES = (Private, ); }; }; @@ -20033,7 +20241,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb F409BA181E6E64BC009DA28E /* WKDragDestinationAction.h in Headers */ = {isa = PBXBuildFile; fileRef = F409BA171E6E64B3009DA28E /* WKDragDestinationAction.h */; settings = {ATTRIBUTES = (Private, ); }; }; F4299507270E234D0032298B /* StreamMessageReceiver.h in Headers */ = {isa = PBXBuildFile; fileRef = F4299506270E234C0032298B /* StreamMessageReceiver.h */; }; F42D634122A0EFDF00D2FB3A /* WebAutocorrectionData.h in Headers */ = {isa = PBXBuildFile; fileRef = F42D633F22A0EFD300D2FB3A /* WebAutocorrectionData.h */; }; -@@ -5418,6 +5436,7 @@ +@@ -5416,6 +5434,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 = ""; }; @@ -20061,7 +20269,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 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 = ""; }; -@@ -7143,6 +7175,8 @@ +@@ -7144,6 +7176,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 = ""; }; @@ -20070,7 +20278,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 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 = ""; }; -@@ -7166,6 +7200,14 @@ +@@ -7167,6 +7201,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 = ""; }; @@ -20085,7 +20293,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb F409BA171E6E64B3009DA28E /* WKDragDestinationAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDragDestinationAction.h; sourceTree = ""; }; F40D1B68220BDC0F00B49A01 /* WebAutocorrectionContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WebAutocorrectionContext.h; path = ios/WebAutocorrectionContext.h; sourceTree = ""; }; F41056612130699A0092281D /* APIAttachmentCocoa.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = APIAttachmentCocoa.mm; sourceTree = ""; }; -@@ -7332,6 +7374,7 @@ +@@ -7335,6 +7377,7 @@ 3766F9EE189A1241003CF19B /* JavaScriptCore.framework in Frameworks */, 3766F9F1189A1254003CF19B /* libicucore.dylib in Frameworks */, 7B9FC5BB28A5233B007570E7 /* libWebKitPlatform.a in Frameworks */, @@ -20093,7 +20301,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 3766F9EF189A1244003CF19B /* QuartzCore.framework in Frameworks */, 37694525184FC6B600CDE21F /* Security.framework in Frameworks */, 37BEC4DD1948FC6A008B4286 /* WebCore.framework in Frameworks */, -@@ -9843,6 +9886,7 @@ +@@ -9846,6 +9889,7 @@ 99788ACA1F421DCA00C08000 /* _WKAutomationSessionConfiguration.mm */, 990D28A81C6404B000986977 /* _WKAutomationSessionDelegate.h */, 990D28AF1C65203900986977 /* _WKAutomationSessionInternal.h */, @@ -20101,7 +20309,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 5C4609E222430E4C009943C2 /* _WKContentRuleListAction.h */, 5C4609E322430E4D009943C2 /* _WKContentRuleListAction.mm */, 5C4609E422430E4D009943C2 /* _WKContentRuleListActionInternal.h */, -@@ -10990,6 +11034,7 @@ +@@ -10994,6 +11038,7 @@ E34B110C27C46BC6006D2F2E /* libWebCoreTestShim.dylib */, E34B110F27C46D09006D2F2E /* libWebCoreTestSupport.dylib */, DDE992F4278D06D900F60D26 /* libWebKitAdditions.a */, @@ -20109,7 +20317,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 57A9FF15252C6AEF006A2040 /* libWTF.a */, 5750F32A2032D4E500389347 /* LocalAuthentication.framework */, 570DAAB0230273D200E8FC04 /* NearField.framework */, -@@ -11538,6 +11583,12 @@ +@@ -11544,6 +11589,12 @@ children = ( 9197940423DBC4BB00257892 /* InspectorBrowserAgent.cpp */, 9197940323DBC4BB00257892 /* InspectorBrowserAgent.h */, @@ -20122,7 +20330,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb ); path = Agents; sourceTree = ""; -@@ -11546,6 +11597,7 @@ +@@ -11552,6 +11603,7 @@ isa = PBXGroup; children = ( A5D3504D1D78F0D2005124A9 /* RemoteWebInspectorUIProxyMac.mm */, @@ -20130,7 +20338,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 1CA8B935127C774E00576C2B /* WebInspectorUIProxyMac.mm */, 99A7ACE326012919006D57FD /* WKInspectorResourceURLSchemeHandler.h */, 99A7ACE42601291A006D57FD /* WKInspectorResourceURLSchemeHandler.mm */, -@@ -12139,6 +12191,7 @@ +@@ -12146,6 +12198,7 @@ E1513C65166EABB200149FCB /* AuxiliaryProcessProxy.h */, 46A2B6061E5675A200C3DEDA /* BackgroundProcessResponsivenessTimer.cpp */, 46A2B6071E5675A200C3DEDA /* BackgroundProcessResponsivenessTimer.h */, @@ -20138,7 +20346,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 07297F9C1C1711EA003F0735 /* DeviceIdHashSaltStorage.cpp */, 07297F9D1C17BBEA223F0735 /* DeviceIdHashSaltStorage.h */, BC2652121182608100243E12 /* DrawingAreaProxy.cpp */, -@@ -12154,6 +12207,8 @@ +@@ -12161,6 +12214,8 @@ 2DD5A72A1EBF09A7009BA597 /* HiddenPageThrottlingAutoIncreasesCounter.h */, 839A2F2F1E2067390039057E /* HighPerformanceGraphicsUsageSampler.cpp */, 839A2F301E2067390039057E /* HighPerformanceGraphicsUsageSampler.h */, @@ -20147,7 +20355,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 5CEABA2B2333251400797797 /* LegacyGlobalSettings.cpp */, 5CEABA2A2333247700797797 /* LegacyGlobalSettings.h */, 31607F3819627002009B87DA /* LegacySessionStateCoding.h */, -@@ -12188,6 +12243,7 @@ +@@ -12195,6 +12250,7 @@ 1A0C227D2451130A00ED614D /* QuickLookThumbnailingSoftLink.mm */, 1AEE57232409F142002005D6 /* QuickLookThumbnailLoader.h */, 1AEE57242409F142002005D6 /* QuickLookThumbnailLoader.mm */, @@ -20155,7 +20363,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb BC111B08112F5E3C00337BAB /* ResponsivenessTimer.cpp */, 1A30066C1110F4F70031937C /* ResponsivenessTimer.h */, 5CA98549210BEB5A0057EB6B /* SafeBrowsingWarning.h */, -@@ -12291,6 +12347,8 @@ +@@ -12297,6 +12353,8 @@ BC7B6204129A0A6700D174A4 /* WebPageGroup.h */, 2D9EA3101A96D9EB002D2807 /* WebPageInjectedBundleClient.cpp */, 2D9EA30E1A96CBFF002D2807 /* WebPageInjectedBundleClient.h */, @@ -20164,7 +20372,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb BC111B0B112F5E4F00337BAB /* WebPageProxy.cpp */, BC032DCB10F4389F0058C15A /* WebPageProxy.h */, BCBD38FA125BAB9A00D2C29F /* WebPageProxy.messages.in */, -@@ -12451,6 +12509,7 @@ +@@ -12457,6 +12515,7 @@ BC646C1911DD399F006455B0 /* WKBackForwardListItemRef.h */, BC646C1611DD399F006455B0 /* WKBackForwardListRef.cpp */, BC646C1711DD399F006455B0 /* WKBackForwardListRef.h */, @@ -20172,7 +20380,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb BCB9E24A1120E15C00A137E0 /* WKContext.cpp */, BCB9E2491120E15C00A137E0 /* WKContext.h */, 1AE52F9319201F6B00A1FA37 /* WKContextConfigurationRef.cpp */, -@@ -13032,6 +13091,9 @@ +@@ -13038,6 +13097,9 @@ 0F49294628FF0F4B00AF8509 /* DisplayLinkProcessProxyClient.h */, 31ABA79C215AF9E000C90E31 /* HighPerformanceGPUManager.h */, 31ABA79D215AF9E000C90E31 /* HighPerformanceGPUManager.mm */, @@ -20182,7 +20390,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 1AFDE65B1954E8D500C48FFA /* LegacySessionStateCoding.cpp */, 0FCB4E5818BBE3D9000FCFC9 /* PageClientImplMac.h */, 0FCB4E5918BBE3D9000FCFC9 /* PageClientImplMac.mm */, -@@ -13055,6 +13117,8 @@ +@@ -13061,6 +13123,8 @@ E568B92120A3AC6A00E3C856 /* WebDataListSuggestionsDropdownMac.mm */, E55CD20124D09F1F0042DB9C /* WebDateTimePickerMac.h */, E55CD20224D09F1F0042DB9C /* WebDateTimePickerMac.mm */, @@ -20191,7 +20399,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb BC857E8512B71EBB00EDEB2E /* WebPageProxyMac.mm */, BC5750951268F3C6006F0F12 /* WebPopupMenuProxyMac.h */, BC5750961268F3C6006F0F12 /* WebPopupMenuProxyMac.mm */, -@@ -13958,6 +14022,7 @@ +@@ -13963,6 +14027,7 @@ 99788ACB1F421DDA00C08000 /* _WKAutomationSessionConfiguration.h in Headers */, 990D28AC1C6420CF00986977 /* _WKAutomationSessionDelegate.h in Headers */, 990D28B11C65208D00986977 /* _WKAutomationSessionInternal.h in Headers */, @@ -20199,7 +20407,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 5C4609E7224317B4009943C2 /* _WKContentRuleListAction.h in Headers */, 5C4609E8224317BB009943C2 /* _WKContentRuleListActionInternal.h in Headers */, 1A5704F81BE01FF400874AF1 /* _WKContextMenuElementInfo.h in Headers */, -@@ -14228,6 +14293,7 @@ +@@ -14233,6 +14298,7 @@ E170876C16D6CA6900F99226 /* BlobRegistryProxy.h in Headers */, 4F601432155C5AA2001FBDE0 /* BlockingResponseMap.h in Headers */, 1A5705111BE410E600874AF1 /* BlockSPI.h in Headers */, @@ -20207,7 +20415,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb BC3065FA1259344E00E71278 /* CacheModel.h in Headers */, 935BF7FC2936BF1A00B41326 /* CacheStorageCache.h in Headers */, 934CF817294B884C00304F7D /* CacheStorageDiskStore.h in Headers */, -@@ -14362,7 +14428,11 @@ +@@ -14367,7 +14433,11 @@ BC14DF77120B5B7900826C0C /* InjectedBundleScriptWorld.h in Headers */, CE550E152283752200D28791 /* InsertTextOptions.h in Headers */, 9197940523DBC4BB00257892 /* InspectorBrowserAgent.h in Headers */, @@ -20219,7 +20427,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb A5E391FD2183C1F800C8FB31 /* InspectorTargetProxy.h in Headers */, 51E9049C27BCB9D400929E7E /* InstallCoordinationSPI.h in Headers */, C5BCE5DF1C50766A00CDE3FA /* InteractionInformationAtPosition.h in Headers */, -@@ -14589,6 +14659,7 @@ +@@ -14595,6 +14665,7 @@ CDAC20CA23FC2F750021DEE3 /* RemoteCDMInstanceSession.h in Headers */, CDAC20C923FC2F750021DEE3 /* RemoteCDMInstanceSessionIdentifier.h in Headers */, F451C0FE2703B263002BA03B /* RemoteDisplayListRecorderProxy.h in Headers */, @@ -20227,7 +20435,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb 2D47B56D1810714E003A3AEE /* RemoteLayerBackingStore.h in Headers */, 2DDF731518E95060004F5A66 /* RemoteLayerBackingStoreCollection.h in Headers */, 1AB16AEA164B3A8800290D62 /* RemoteLayerTreeContext.h in Headers */, -@@ -14641,6 +14712,7 @@ +@@ -14647,6 +14718,7 @@ E1E552C516AE065F004ED653 /* SandboxInitializationParameters.h in Headers */, E36FF00327F36FBD004BE21A /* SandboxStateVariables.h in Headers */, 7BAB111025DD02B3008FC479 /* ScopedActiveMessageReceiveQueue.h in Headers */, @@ -20235,7 +20443,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb E4D54D0421F1D72D007E3C36 /* ScrollingTreeFrameScrollingNodeRemoteIOS.h in Headers */, 0F931C1C18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.h in Headers */, 0F931C1C18C5711900DBB8D4 /* ScrollingTreeScrollingNodeDelegateIOS.h in Headers */, -@@ -14928,6 +15000,8 @@ +@@ -14935,6 +15007,8 @@ 939EF87029D112EE00F23AEE /* WebPageInlines.h in Headers */, 9197940823DBC4CB00257892 /* WebPageInspectorAgentBase.h in Headers */, A513F5402154A5D700662841 /* WebPageInspectorController.h in Headers */, @@ -20244,7 +20452,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb A543E30C215C8A8D00279CD9 /* WebPageInspectorTarget.h in Headers */, A543E30D215C8A9000279CD9 /* WebPageInspectorTargetController.h in Headers */, A543E307215AD13700279CD9 /* WebPageInspectorTargetFrontendChannel.h in Headers */, -@@ -16977,6 +17051,8 @@ +@@ -16967,6 +17041,8 @@ 51E9049727BCB3D900929E7E /* ICAppBundle.mm in Sources */, 2749F6442146561B008380BF /* InjectedBundleNodeHandle.cpp in Sources */, 2749F6452146561E008380BF /* InjectedBundleRangeHandle.cpp in Sources */, @@ -20253,7 +20461,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb B6114A7F29394A1600380B1B /* JSWebExtensionAPIEvent.mm in Sources */, 1C5DC471290B33A20061EC62 /* JSWebExtensionAPIExtension.mm in Sources */, 1C5DC4552908AC900061EC62 /* JSWebExtensionAPINamespace.mm in Sources */, -@@ -17349,6 +17425,8 @@ +@@ -17337,6 +17413,8 @@ E3816B3D27E2463A005EAFC0 /* WebMockContentFilterManager.cpp in Sources */, 31BA924D148831260062EDB5 /* WebNotificationManagerMessageReceiver.cpp in Sources */, 2DF6FE52212E110900469030 /* WebPage.cpp in Sources */, @@ -20263,7 +20471,7 @@ index 632bd59ed2bfc097c2496fcab91e8d2d27c46840..eb0130cd6088bc1ac15dce60392e03fb BCBD3914125BB1A800D2C29F /* WebPageProxyMessageReceiver.cpp in Sources */, 7CE9CE101FA0767A000177DE /* WebPageUpdatePreferences.cpp in Sources */, diff --git a/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp b/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp -index 76b3ae5a774fa3c571f5694ca7ebf281b925dae4..8b48aa452347d36bc30ba769c5c045a9a4fa07a1 100644 +index 962c5e6b875823d340f2ef32c011d01ab24520b3..9beed76ed72461a88ac429592b879aa94dc1e898 100644 --- a/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp +++ b/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp @@ -237,6 +237,11 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou @@ -20278,8 +20486,8 @@ index 76b3ae5a774fa3c571f5694ca7ebf281b925dae4..8b48aa452347d36bc30ba769c5c045a9 #if ENABLE(PDFJS) if (tryLoadingUsingPDFJSHandler(resourceLoader, trackingParameters)) return; -@@ -355,7 +360,8 @@ static void addParametersShared(const LocalFrame* frame, NetworkResourceLoadPara - parameters.linkPreconnectEarlyHintsEnabled = mainFrame.settings().linkPreconnectEarlyHintsEnabled(); +@@ -366,7 +371,8 @@ static void addParametersShared(const LocalFrame* frame, NetworkResourceLoadPara + parameters.linkPreconnectEarlyHintsEnabled = mainFrame->settings().linkPreconnectEarlyHintsEnabled(); } -void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceLoader, const ResourceRequest& request, const WebResourceLoader::TrackingParameters& trackingParameters, bool shouldClearReferrerOnHTTPSToHTTPRedirect, Seconds maximumBufferingTime) @@ -20288,7 +20496,7 @@ index 76b3ae5a774fa3c571f5694ca7ebf281b925dae4..8b48aa452347d36bc30ba769c5c045a9 { auto identifier = resourceLoader.identifier(); ASSERT(identifier); -@@ -371,7 +377,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -382,7 +388,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL RunLoop::main().dispatch([resourceLoader = Ref { resourceLoader }, error = blockedError(request)] { resourceLoader->didFail(error); }); @@ -20297,7 +20505,7 @@ index 76b3ae5a774fa3c571f5694ca7ebf281b925dae4..8b48aa452347d36bc30ba769c5c045a9 } } -@@ -381,7 +387,6 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -392,7 +398,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); @@ -20305,7 +20513,7 @@ index 76b3ae5a774fa3c571f5694ca7ebf281b925dae4..8b48aa452347d36bc30ba769c5c045a9 loadParameters.identifier = identifier; loadParameters.webPageProxyID = trackingParameters.webPageProxyID; loadParameters.webPageID = trackingParameters.pageID; -@@ -470,14 +475,11 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -481,14 +486,11 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL if (loadParameters.options.mode != FetchOptions::Mode::Navigate) { ASSERT(loadParameters.sourceOrigin); @@ -20323,7 +20531,7 @@ index 76b3ae5a774fa3c571f5694ca7ebf281b925dae4..8b48aa452347d36bc30ba769c5c045a9 loadParameters.isMainFrameNavigation = isMainFrameNavigation; if (loadParameters.isMainFrameNavigation && document) -@@ -513,6 +515,17 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -524,6 +526,17 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL } ASSERT((loadParameters.webPageID && loadParameters.webFrameID) || loadParameters.clientCredentialPolicy == ClientCredentialPolicy::CannotAskClientForCredentials); @@ -20341,7 +20549,7 @@ index 76b3ae5a774fa3c571f5694ca7ebf281b925dae4..8b48aa452347d36bc30ba769c5c045a9 std::optional existingNetworkResourceLoadIdentifierToResume; if (loadParameters.isMainFrameNavigation) -@@ -527,7 +540,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -538,7 +551,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL } auto loader = WebResourceLoader::create(resourceLoader, trackingParameters); @@ -20350,7 +20558,7 @@ index 76b3ae5a774fa3c571f5694ca7ebf281b925dae4..8b48aa452347d36bc30ba769c5c045a9 } void WebLoaderStrategy::scheduleInternallyFailedLoad(WebCore::ResourceLoader& resourceLoader) -@@ -939,7 +952,7 @@ void WebLoaderStrategy::didFinishPreconnection(WebCore::ResourceLoaderIdentifier +@@ -952,7 +965,7 @@ void WebLoaderStrategy::didFinishPreconnection(WebCore::ResourceLoaderIdentifier bool WebLoaderStrategy::isOnLine() const { @@ -20359,7 +20567,7 @@ index 76b3ae5a774fa3c571f5694ca7ebf281b925dae4..8b48aa452347d36bc30ba769c5c045a9 } void WebLoaderStrategy::addOnlineStateChangeListener(Function&& listener) -@@ -966,6 +979,11 @@ void WebLoaderStrategy::isResourceLoadFinished(CachedResource& resource, Complet +@@ -979,6 +992,11 @@ void WebLoaderStrategy::isResourceLoadFinished(CachedResource& resource, Complet void WebLoaderStrategy::setOnLineState(bool isOnLine) { @@ -20371,7 +20579,7 @@ index 76b3ae5a774fa3c571f5694ca7ebf281b925dae4..8b48aa452347d36bc30ba769c5c045a9 if (m_isOnLine == isOnLine) return; -@@ -974,6 +992,12 @@ void WebLoaderStrategy::setOnLineState(bool isOnLine) +@@ -987,6 +1005,12 @@ void WebLoaderStrategy::setOnLineState(bool isOnLine) listener(isOnLine); } @@ -20415,7 +20623,7 @@ index 3a3e596fa167fadaf36cfafdf8fd91dd0d7c8a8e..a6a305585706f9a407375fd2e365c52b } // namespace WebKit diff --git a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp -index d65c5854c2a1a86491b11c646671fd1dbfea5951..221169382ad7be66b9cc643b3d877c7a49585be3 100644 +index 6ce9cf4bbc41eed5f3b49fbcf3979bc6018990cb..99ba2921412b9b9230f637e1cb2d2d9d7ab1cb86 100644 --- a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp +++ b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp @@ -198,9 +198,6 @@ void WebResourceLoader::didReceiveResponse(ResourceResponse&& response, PrivateR @@ -20451,10 +20659,10 @@ index 777d8c44883adc46d0bb782dc411dedc8c2b2213..1e3611ffedbf6c57f73a99df3d4122bf auto permissionHandlers = m_requestsPerOrigin.take(securityOrigin); diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp -index 92e24ada89a4e100c1c6008aa185af5a0997f2d1..7c881f197b7116b5779f2d737ab91966b7d53630 100644 +index cd8865e366a0b57072fd66da28d77719b33405a9..79de959580e4e5930897c3edd3b93ee93650423f 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp +++ b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp -@@ -458,6 +458,8 @@ void WebChromeClient::setResizable(bool resizable) +@@ -459,6 +459,8 @@ void WebChromeClient::setResizable(bool resizable) void WebChromeClient::addMessageToConsole(MessageSource source, MessageLevel level, const String& message, unsigned lineNumber, unsigned columnNumber, const String& sourceID) { @@ -20490,14 +20698,15 @@ index 87121e8b57e5ad7ef74857685f0db65e164a5bf8..580dca6ca0709a2d620d3999beb69856 void WebDragClient::startDrag(DragItem, DataTransfer&, LocalFrame&) { } -diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp -index 8acc97d77120cb3af2fb93e2217a99b2ab3648a5..4618f8346c87dbd016ac01c37f84ae6766db7cc0 100644 ---- a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp -+++ b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp -@@ -1679,13 +1679,6 @@ void WebFrameLoaderClient::transitionToCommittedForNewPage() +diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp +index a3f15c8874362574383202ca265409a3b06918ce..ad75770f53b1d4d0b519aaed2882edb196c95317 100644 +--- a/Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp ++++ b/Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp +@@ -1542,14 +1542,6 @@ void WebLocalFrameLoaderClient::transitionToCommittedForNewPage() + if (webPage->scrollPinningBehavior() != ScrollPinningBehavior::DoNotPin) view->setScrollPinningBehavior(webPage->scrollPinningBehavior()); - +- -#if USE(COORDINATED_GRAPHICS) - if (shouldUseFixedLayout) { - view->setDelegatedScrollingMode(shouldUseFixedLayout ? DelegatedScrollingMode::DelegatedToNativeScrollView : DelegatedScrollingMode::NotDelegated); @@ -20507,7 +20716,7 @@ index 8acc97d77120cb3af2fb93e2217a99b2ab3648a5..4618f8346c87dbd016ac01c37f84ae67 -#endif } - void WebFrameLoaderClient::didRestoreFromBackForwardCache() + void WebLocalFrameLoaderClient::didRestoreFromBackForwardCache() diff --git a/Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm b/Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm index 83c0d037b71d19692d60b0e3dbeff5e356f56520..892ec3140edd288c7de5345404ff12e08f114892 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm @@ -20652,7 +20861,7 @@ index 0000000000000000000000000000000000000000..8e44922ab13ed645532b549342553367 + +#endif // ENABLE(DRAG_SUPPORT) diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp -index 7f71f9c9d67bb78bccf9a734b5bc6049f6c3b782..1ece4d12fbb0a0ecfeafee6033053d7452ccedb6 100644 +index 9c31e41b5aa3d43952cef81bd619b5248456ef4c..08c22678db539f347a075d1a4ff86fc0271aeac9 100644 --- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp +++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp @@ -39,6 +39,7 @@ @@ -20713,10 +20922,10 @@ index 7f71f9c9d67bb78bccf9a734b5bc6049f6c3b782..1ece4d12fbb0a0ecfeafee6033053d74 void DrawingAreaCoordinatedGraphics::scheduleDisplay() diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp -index e585558cb6d4e57c197389296818318a5966cc9d..849add4143a4bb38a205ffefd3eeeabcaa6648dc 100644 +index 1e9851cd558280b9463813d9a069d1a2f31bca32..6eddecdb1d0ddce10501308aeb896491a78ba510 100644 --- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp +++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp -@@ -185,8 +185,16 @@ void LayerTreeHost::setViewOverlayRootLayer(GraphicsLayer* viewOverlayRootLayer) +@@ -187,8 +187,16 @@ void LayerTreeHost::setViewOverlayRootLayer(GraphicsLayer* viewOverlayRootLayer) void LayerTreeHost::scrollNonCompositedContents(const IntRect& rect) { auto* frameView = m_webPage.mainFrameView(); @@ -20733,7 +20942,7 @@ index e585558cb6d4e57c197389296818318a5966cc9d..849add4143a4bb38a205ffefd3eeeabc m_viewportController.didScroll(rect.location()); if (m_isDiscardable) -@@ -323,6 +331,10 @@ void LayerTreeHost::didChangeViewport() +@@ -325,6 +333,10 @@ void LayerTreeHost::didChangeViewport() if (!view->useFixedLayout()) view->notifyScrollPositionChanged(m_lastScrollPosition); @@ -20745,7 +20954,7 @@ index e585558cb6d4e57c197389296818318a5966cc9d..849add4143a4bb38a205ffefd3eeeabc if (m_lastPageScaleFactor != pageScale) { diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h -index 6ec180a5da3daa88e626be068d36d3d2679bf8e4..c9ac3df9d232ac8da9b38972b9b0904ae51e9db8 100644 +index 6749e66ac5f8cc7968595365beff19cfdee7861f..7a222444342eb1255bd2744d6647993ad3345e5c 100644 --- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h +++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h @@ -103,6 +103,13 @@ public: @@ -20789,10 +20998,10 @@ index 4eff97ae17b6c1b56181a4ae2b7e1b74c6c007a2..9bbeb368f89d71a2968d93b305dd1ffc { if (m_hasRemovedMessageReceiver) diff --git a/Source/WebKit/WebProcess/WebPage/DrawingArea.h b/Source/WebKit/WebProcess/WebPage/DrawingArea.h -index 4862c3045b6ac40f0d868e553b0944250361df6b..00bd0039ab5c183a525004d533d4d269124b7765 100644 +index 1640ca23d554e25ee4307bc0d6211045d480c024..3f189aa6b9ec1b73941b9e3bac1c75815f4d7ceb 100644 --- a/Source/WebKit/WebProcess/WebPage/DrawingArea.h +++ b/Source/WebKit/WebProcess/WebPage/DrawingArea.h -@@ -161,6 +161,9 @@ public: +@@ -162,6 +162,9 @@ public: virtual void didChangeViewportAttributes(WebCore::ViewportAttributes&&) = 0; virtual void deviceOrPageScaleFactorChanged() = 0; #endif @@ -20803,12 +21012,12 @@ index 4862c3045b6ac40f0d868e553b0944250361df6b..00bd0039ab5c183a525004d533d4d269 virtual void adoptLayersFromDrawingArea(DrawingArea&) { } virtual void adoptDisplayRefreshMonitorsFromDrawingArea(DrawingArea&) { } diff --git a/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp b/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp -index 4b41faf35718778a1a0cba51e088bf94056d42eb..b84502bc1f701264b8e2c98d85de5649ecd9806d 100644 +index 73e0e6adb2dd732d110239ed47d68c9a0b20f409..286cdb1592f5bffc66f5685edb6d9aa3c39a9cc7 100644 --- a/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp @@ -39,6 +39,7 @@ - #include #include + #include #include +#include #include @@ -20839,10 +21048,10 @@ index 83df17e2137dc7664e9240ddfa7a03feb473aeab..9426d55f31beeaf6f6875ab33fa5a46b WebCookieJar(); diff --git a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp -index 16f522fe281f8174b254b0a18626ace238229fd8..3ff3842047bae47b07d67741900d508a63272a57 100644 +index 56957658ad2ca7e4d4c9966e39c844967657ceec..75bc048b129d2fa4b5dea4d2c208527487b45c64 100644 --- a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp -@@ -49,6 +49,14 @@ void WebDocumentLoader::detachFromFrame() +@@ -46,6 +46,14 @@ void WebDocumentLoader::detachFromFrame() DocumentLoader::detachFromFrame(); } @@ -20858,7 +21067,7 @@ index 16f522fe281f8174b254b0a18626ace238229fd8..3ff3842047bae47b07d67741900d508a { ASSERT(navigationID); diff --git a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h -index f127d64d005ab7b93875591b94a5899205e91579..ebb981d69b2d73f234612275bbf9c6130cfb0f49 100644 +index c3248e8505d0e446ea0e1c1886bf1ed0a628b45b..49381c222e255ebc94229d2a0aae1f38b18f7cf4 100644 --- a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h +++ b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h @@ -27,6 +27,7 @@ @@ -20869,7 +21078,7 @@ index f127d64d005ab7b93875591b94a5899205e91579..ebb981d69b2d73f234612275bbf9c613 namespace WebKit { -@@ -43,7 +44,10 @@ public: +@@ -46,7 +47,10 @@ public: private: WebDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&); @@ -20878,13 +21087,13 @@ index f127d64d005ab7b93875591b94a5899205e91579..ebb981d69b2d73f234612275bbf9c613 void detachFromFrame() override; + void replacedByFragmentNavigation(WebCore::LocalFrame&) override; - uint64_t m_navigationID; + uint64_t m_navigationID { 0 }; }; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2bd27bc803 100644 +index f2adfa1fbee2b2328bead52499bab7dc4b57c25d..7c1127c1f8011afd00cfceef2864e38a71fb5f2a 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -@@ -234,6 +234,7 @@ +@@ -236,6 +236,7 @@ #include #include #include @@ -20892,7 +21101,7 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b #include #include #include -@@ -1005,6 +1006,9 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) +@@ -1008,6 +1009,9 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) sandbox_enable_state_flag("LockdownModeEnabled", *auditToken); #endif // HAVE(SANDBOX_STATE_FLAGS) @@ -20902,7 +21111,7 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b updateThrottleState(); #if ENABLE(ACCESSIBILITY_ANIMATION_CONTROL) updateImageAnimationEnabled(); -@@ -1823,6 +1827,22 @@ void WebPage::loadRequestByCreatingNewLocalFrameOrConvertingRemoteFrame(LocalFra +@@ -1851,6 +1855,22 @@ void WebPage::transitionFrameToLocalAndLoadRequest(LocalFrameCreationParameters& loadRequest(WTFMove(loadParameters)); } @@ -20917,15 +21126,15 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b + // FIXME: use m_pendingNavigationID instead? + m_pendingFrameNavigationID = loadParameters.navigationID; + -+ FrameLoadRequest frameLoadRequest { *frame->coreFrame(), loadParameters.request }; -+ frame->coreFrame()->loader().load(WTFMove(frameLoadRequest)); ++ FrameLoadRequest frameLoadRequest { *frame->coreLocalFrame(), loadParameters.request }; ++ frame->coreLocalFrame()->loader().load(WTFMove(frameLoadRequest)); + ASSERT(!m_pendingFrameNavigationID); +} + void WebPage::loadRequest(LoadParameters&& loadParameters) { WEBPAGE_RELEASE_LOG(Loading, "loadRequest: navigationID=%" PRIu64 ", shouldTreatAsContinuingLoad=%u, lastNavigationWasAppInitiated=%d, existingNetworkResourceLoadIdentifierToResume=%" PRIu64, loadParameters.navigationID, static_cast(loadParameters.shouldTreatAsContinuingLoad), loadParameters.request.isAppInitiated(), valueOrDefault(loadParameters.existingNetworkResourceLoadIdentifierToResume).toUInt64()); -@@ -2087,21 +2107,17 @@ void WebPage::setSize(const WebCore::IntSize& viewSize) +@@ -2118,25 +2138,21 @@ void WebPage::setSize(const WebCore::IntSize& viewSize) view->resize(viewSize); m_drawingArea->setNeedsDisplay(); @@ -20933,6 +21142,10 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b if (view->useFixedLayout()) sendViewportAttributesChanged(m_page->viewportArguments()); -#endif + + #if ENABLE(ACCESSIBILITY_ISOLATED_TREE) + cacheAXSize(m_viewSize); + #endif } -#if USE(COORDINATED_GRAPHICS) @@ -20948,7 +21161,7 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b // Viewport properties have no impact on zero sized fixed viewports. if (m_viewSize.isEmpty()) -@@ -2118,20 +2134,18 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg +@@ -2153,20 +2169,18 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg ViewportAttributes attr = computeViewportAttributes(viewportArguments, minimumLayoutFallbackWidth, deviceWidth, deviceHeight, 1, m_viewSize); @@ -20976,7 +21189,7 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b #if USE(COORDINATED_GRAPHICS) m_drawingArea->didChangeViewportAttributes(WTFMove(attr)); -@@ -2139,7 +2153,6 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg +@@ -2174,7 +2188,6 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg send(Messages::WebPageProxy::DidChangeViewportProperties(attr)); #endif } @@ -20984,7 +21197,7 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b void WebPage::scrollMainFrameIfNotAtMaxScrollPosition(const IntSize& scrollOffset) { -@@ -2431,6 +2444,7 @@ void WebPage::scaleView(double scale) +@@ -2466,6 +2479,7 @@ void WebPage::scaleView(double scale) } m_page->setViewScaleFactor(scale); @@ -20992,7 +21205,7 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b scalePage(pageScale, scrollPositionAtNewScale); } -@@ -2610,18 +2624,14 @@ void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArgum +@@ -2645,18 +2659,14 @@ void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArgum viewportConfigurationChanged(); #endif @@ -21011,8 +21224,8 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b -#endif } - void WebPage::listenForLayoutMilestones(OptionSet milestones) -@@ -3610,6 +3620,97 @@ void WebPage::touchEvent(const WebTouchEvent& touchEvent) + #if !PLATFORM(IOS_FAMILY) +@@ -3672,6 +3682,97 @@ void WebPage::touchEvent(const WebTouchEvent& touchEvent) send(Messages::WebPageProxy::DidReceiveEvent(touchEvent.type(), handled)); } @@ -21110,7 +21323,7 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b #endif void WebPage::cancelPointer(WebCore::PointerID pointerId, const WebCore::IntPoint& documentPoint) -@@ -3687,6 +3788,11 @@ void WebPage::sendMessageToTargetBackend(const String& targetId, const String& m +@@ -3749,6 +3850,11 @@ void WebPage::sendMessageToTargetBackend(const String& targetId, const String& m m_inspectorTargetController->sendMessageToTargetBackend(targetId, message); } @@ -21122,7 +21335,7 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b void WebPage::insertNewlineInQuotedContent() { Ref frame = CheckedRef(m_page->focusController())->focusedOrMainFrame(); -@@ -3919,6 +4025,7 @@ void WebPage::didCompletePageTransition() +@@ -3981,6 +4087,7 @@ void WebPage::didCompletePageTransition() void WebPage::show() { send(Messages::WebPageProxy::ShowPage()); @@ -21130,7 +21343,7 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b } void WebPage::setIsTakingSnapshotsForApplicationSuspension(bool isTakingSnapshotsForApplicationSuspension) -@@ -4905,7 +5012,7 @@ NotificationPermissionRequestManager* WebPage::notificationPermissionRequestMana +@@ -4971,7 +5078,7 @@ NotificationPermissionRequestManager* WebPage::notificationPermissionRequestMana #if ENABLE(DRAG_SUPPORT) @@ -21139,7 +21352,7 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b void WebPage::performDragControllerAction(DragControllerAction action, const IntPoint& clientPosition, const IntPoint& globalPosition, OptionSet draggingSourceOperationMask, SelectionData&& selectionData, OptionSet flags) { if (!m_page) { -@@ -7431,6 +7538,9 @@ Ref WebPage::createDocumentLoader(LocalFrame& frame, const Resou +@@ -7500,6 +7607,9 @@ Ref WebPage::createDocumentLoader(LocalFrame& frame, const Resou WebsitePoliciesData::applyToDocumentLoader(WTFMove(*m_pendingWebsitePolicies), documentLoader); m_pendingWebsitePolicies = std::nullopt; } @@ -21150,7 +21363,7 @@ index 6fb105a3653e73ba2562aad28269d3ba69145713..37109ed78a04837561769ebc075ecb2b return documentLoader; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.h b/Source/WebKit/WebProcess/WebPage/WebPage.h -index 6d455f99a4621438baab0ffb5fe311d9f38107c1..0d04fd5611f44058410161c150abe541bc860f61 100644 +index 4a8261b33baee600a7756a22057cffd1db4699c9..5271f11475ada9272ad6ee7e45507eeba85c71a4 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.h +++ b/Source/WebKit/WebProcess/WebPage/WebPage.h @@ -122,6 +122,10 @@ @@ -21164,7 +21377,7 @@ index 6d455f99a4621438baab0ffb5fe311d9f38107c1..0d04fd5611f44058410161c150abe541 #if PLATFORM(GTK) || PLATFORM(WPE) #include "InputMethodState.h" #endif -@@ -1063,11 +1067,11 @@ public: +@@ -1079,11 +1083,11 @@ public: void clearSelection(); void restoreSelectionInFocusedEditableElement(); @@ -21178,7 +21391,7 @@ index 6d455f99a4621438baab0ffb5fe311d9f38107c1..0d04fd5611f44058410161c150abe541 void performDragControllerAction(DragControllerAction, WebCore::DragData&&, SandboxExtension::Handle&&, Vector&&); #endif -@@ -1081,6 +1085,9 @@ public: +@@ -1097,6 +1101,9 @@ public: void didStartDrag(); void dragCancelled(); OptionSet allowedDragSourceActions() const { return m_allowedDragSourceActions; } @@ -21188,7 +21401,7 @@ index 6d455f99a4621438baab0ffb5fe311d9f38107c1..0d04fd5611f44058410161c150abe541 #endif void beginPrinting(WebCore::FrameIdentifier, const PrintInfo&); -@@ -1315,6 +1322,7 @@ public: +@@ -1331,6 +1338,7 @@ public: void connectInspector(const String& targetId, Inspector::FrontendChannel::ConnectionType); void disconnectInspector(const String& targetId); void sendMessageToTargetBackend(const String& targetId, const String& message); @@ -21196,15 +21409,15 @@ index 6d455f99a4621438baab0ffb5fe311d9f38107c1..0d04fd5611f44058410161c150abe541 void insertNewlineInQuotedContent(); -@@ -1741,6 +1749,7 @@ private: +@@ -1766,6 +1774,7 @@ private: void tryClose(CompletionHandler&&); void platformDidReceiveLoadParameters(const LoadParameters&); - void loadRequestByCreatingNewLocalFrameOrConvertingRemoteFrame(LocalFrameCreationParameters&&, LoadParameters&&); + void transitionFrameToLocalAndLoadRequest(LocalFrameCreationParameters&&, LoadParameters&&); + void loadRequestInFrameForInspector(LoadParameters&&, WebCore::FrameIdentifier); void loadRequest(LoadParameters&&); [[noreturn]] void loadRequestWaitingForProcessLaunch(LoadParameters&&, URL&&, WebPageProxyIdentifier, bool); void loadData(LoadParameters&&); -@@ -1778,6 +1787,7 @@ private: +@@ -1803,6 +1812,7 @@ private: void updatePotentialTapSecurityOrigin(const WebTouchEvent&, bool wasHandled); #elif ENABLE(TOUCH_EVENTS) void touchEvent(const WebTouchEvent&); @@ -21212,7 +21425,7 @@ index 6d455f99a4621438baab0ffb5fe311d9f38107c1..0d04fd5611f44058410161c150abe541 #endif void cancelPointer(WebCore::PointerID, const WebCore::IntPoint&); -@@ -1923,9 +1933,7 @@ private: +@@ -1948,9 +1958,7 @@ private: void addLayerForFindOverlay(CompletionHandler&&); void removeLayerForFindOverlay(CompletionHandler&&); @@ -21222,7 +21435,7 @@ index 6d455f99a4621438baab0ffb5fe311d9f38107c1..0d04fd5611f44058410161c150abe541 void didChangeSelectedIndexForActivePopupMenu(int32_t newIndex); void setTextForActivePopupMenu(int32_t index); -@@ -2467,6 +2475,7 @@ private: +@@ -2494,6 +2502,7 @@ private: UserActivity m_userActivity; uint64_t m_pendingNavigationID { 0 }; @@ -21231,10 +21444,10 @@ index 6d455f99a4621438baab0ffb5fe311d9f38107c1..0d04fd5611f44058410161c150abe541 bool m_mainFrameProgressCompleted { false }; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.messages.in b/Source/WebKit/WebProcess/WebPage/WebPage.messages.in -index a60f326bce754593ff3d42b141f04cc4f88f8bb2..763942ecb9836247e8bc0b0bc30903c10ea4cebf 100644 +index d2abc455bd3e80b45964347e3da157ef1ef0bc4d..df303f7e4e6d5b02292db6f3f9a0755a8cc382c7 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.messages.in +++ b/Source/WebKit/WebProcess/WebPage/WebPage.messages.in -@@ -146,6 +146,7 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -149,6 +149,7 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType ConnectInspector(String targetId, Inspector::FrontendChannel::ConnectionType connectionType) DisconnectInspector(String targetId) SendMessageToTargetBackend(String targetId, String message) @@ -21242,7 +21455,7 @@ index a60f326bce754593ff3d42b141f04cc4f88f8bb2..763942ecb9836247e8bc0b0bc30903c1 #if ENABLE(REMOTE_INSPECTOR) SetIndicating(bool indicating); -@@ -156,6 +157,7 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -159,6 +160,7 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType #endif #if !ENABLE(IOS_TOUCH_EVENTS) && ENABLE(TOUCH_EVENTS) TouchEvent(WebKit::WebTouchEvent event) @@ -21250,15 +21463,15 @@ index a60f326bce754593ff3d42b141f04cc4f88f8bb2..763942ecb9836247e8bc0b0bc30903c1 #endif CancelPointer(WebCore::PointerID pointerId, WebCore::IntPoint documentPoint) -@@ -186,6 +188,7 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -189,6 +191,7 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType LoadDataInFrame(IPC::DataReference data, String MIMEType, String encodingName, URL baseURL, WebCore::FrameIdentifier frameID) LoadRequest(struct WebKit::LoadParameters loadParameters) - LoadRequestByCreatingNewLocalFrameOrConvertingRemoteFrame(struct WebKit::LocalFrameCreationParameters localFrameCreationParameters, struct WebKit::LoadParameters loadParameters) + TransitionFrameToLocalAndLoadRequest(struct WebKit::LocalFrameCreationParameters creationParameters, struct WebKit::LoadParameters loadParameters) + LoadRequestInFrameForInspector(struct WebKit::LoadParameters loadParameters, WebCore::FrameIdentifier frameID) 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) -@@ -347,10 +350,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -357,10 +360,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType AddMIMETypeWithCustomContentProvider(String mimeType) # Drag and drop. @@ -21271,7 +21484,7 @@ index a60f326bce754593ff3d42b141f04cc4f88f8bb2..763942ecb9836247e8bc0b0bc30903c1 PerformDragControllerAction(enum:uint8_t WebKit::DragControllerAction action, WebCore::DragData dragData, WebKit::SandboxExtension::Handle sandboxExtensionHandle, Vector sandboxExtensionsForUpload) #endif #if ENABLE(DRAG_SUPPORT) -@@ -359,6 +362,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -369,6 +372,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType DragCancelled() #endif @@ -21283,10 +21496,10 @@ index a60f326bce754593ff3d42b141f04cc4f88f8bb2..763942ecb9836247e8bc0b0bc30903c1 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 b560b3526ea7990592c1fde9f86a75cf18dea920..e9cb9f7b7ab3c1672bf3f99515904abd47b7e083 100644 +index 4f49fe7183665c169d43e7d11e7942b226b21e77..82335fdec4a10f8b27c25d90ea457e202ea10bb0 100644 --- a/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm +++ b/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm -@@ -795,21 +795,37 @@ String WebPage::platformUserAgent(const URL&) const +@@ -812,21 +812,37 @@ String WebPage::platformUserAgent(const URL&) const bool WebPage::hoverSupportedByPrimaryPointingDevice() const { @@ -21375,7 +21588,7 @@ index f17f5d719d892309ed9c7093384945866b5117b9..1dba47bbf0dbd0362548423a74b38034 } diff --git a/Source/WebKit/WebProcess/WebProcess.cpp b/Source/WebKit/WebProcess/WebProcess.cpp -index 9b0a0265941817b3fc80e944958d1534f97b58f1..af18cb41d4bf3fafed6f60915d927060bc66002d 100644 +index 9a123124799ddb2cff39645ccf4331dd1d039fd2..7a7150ddf00545082ff6d664526123b0820de0ca 100644 --- a/Source/WebKit/WebProcess/WebProcess.cpp +++ b/Source/WebKit/WebProcess/WebProcess.cpp @@ -94,6 +94,7 @@ @@ -21396,10 +21609,10 @@ index 9b0a0265941817b3fc80e944958d1534f97b58f1..af18cb41d4bf3fafed6f60915d927060 void WebProcess::initializeConnection(IPC::Connection* connection) diff --git a/Source/WebKit/WebProcess/WebProcess.h b/Source/WebKit/WebProcess/WebProcess.h -index 99cc5d377d3d55e68315cceae16cd5b5c5e9a7a3..d481b508c090f6892253b4793d5b534004d49557 100644 +index a6d35c77bf32f5c364c53b7dbac5a47c5d52780c..ab3e4a98200eb8d249b73b41859259fd221d78eb 100644 --- a/Source/WebKit/WebProcess/WebProcess.h +++ b/Source/WebKit/WebProcess/WebProcess.h -@@ -720,7 +720,7 @@ private: +@@ -724,7 +724,7 @@ private: WeakHashMap m_userGestureTokens; @@ -21437,7 +21650,7 @@ index af93f303b2968d6298d0e096fd259bc34621bf9f..c90ff8aa82883f9555fe4d7e7d890442 - (void)touch:(WebEvent *)event { diff --git a/Source/WebKitLegacy/mac/WebView/WebView.mm b/Source/WebKitLegacy/mac/WebView/WebView.mm -index ecfc91f11398cc5c1a7426162453419c0e452fef..2438158736e1a91d9cdaedf02cc13abeb58f727a 100644 +index 3d26856897a1b990d5870ec89ad0637696aee316..5a6fa03f6262b7215713b22399d6a24f17fa1643 100644 --- a/Source/WebKitLegacy/mac/WebView/WebView.mm +++ b/Source/WebKitLegacy/mac/WebView/WebView.mm @@ -3960,7 +3960,7 @@ + (void)_doNotStartObservingNetworkReachability @@ -21490,7 +21703,7 @@ index 0000000000000000000000000000000000000000..dd6a53e2d57318489b7e49dd7373706d + LIBVPX_LIBRARIES +) diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake -index 09d3e6badf162ad75517386d7db0bcd3ee46a69b..9a85350d0b8538dc817da77cbdb5bafaa6e592ef 100644 +index 24640d159a015220edfdf19d26989a8e44c38e04..728c9f850fc1fc061654dc7794447c8bcfbb86cc 100644 --- a/Source/cmake/OptionsGTK.cmake +++ b/Source/cmake/OptionsGTK.cmake @@ -11,8 +11,13 @@ if (${CMAKE_VERSION} VERSION_LESS "3.20" AND NOT ${CMAKE_GENERATOR} STREQUAL "Ni @@ -21596,7 +21809,7 @@ index 09d3e6badf162ad75517386d7db0bcd3ee46a69b..9a85350d0b8538dc817da77cbdb5bafa SET_AND_EXPOSE_TO_BUILD(HAVE_OS_DARK_MODE_SUPPORT 1) diff --git a/Source/cmake/OptionsWPE.cmake b/Source/cmake/OptionsWPE.cmake -index b755b0150beb8614c8ca97f654a4e2b8fc5f8645..8b4d8589c35c6c73ad69ac3d2e0b3ba0dd0b6275 100644 +index 2f5ceec877b42f375731d78aa14a0605692f5b6f..234c681033319315557ccbdec646b80a53cfd265 100644 --- a/Source/cmake/OptionsWPE.cmake +++ b/Source/cmake/OptionsWPE.cmake @@ -9,8 +9,13 @@ if (${CMAKE_VERSION} VERSION_LESS "3.20" AND NOT ${CMAKE_GENERATOR} STREQUAL "Ni @@ -21613,7 +21826,7 @@ index b755b0150beb8614c8ca97f654a4e2b8fc5f8645..8b4d8589c35c6c73ad69ac3d2e0b3ba0 find_package(Cairo 1.16.0 REQUIRED) find_package(Fontconfig 2.13.0 REQUIRED) find_package(Freetype 2.9.0 REQUIRED) -@@ -41,12 +46,12 @@ include(GStreamerDefinitions) +@@ -39,12 +44,12 @@ include(GStreamerDefinitions) # changing the value of the option. WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCESSIBILITY PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ENCRYPTED_MEDIA PUBLIC ${ENABLE_EXPERIMENTAL_FEATURES}) @@ -21628,7 +21841,7 @@ index b755b0150beb8614c8ca97f654a4e2b8fc5f8645..8b4d8589c35c6c73ad69ac3d2e0b3ba0 # Private options shared with other WebKit ports. Add options here only if # we need a value different from the default defined in WebKitFeatures.cmake. -@@ -63,7 +68,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GPU_PROCESS PRIVATE OFF) +@@ -61,7 +66,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GPU_PROCESS PRIVATE OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TRACKING_PREVENTION PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LAYER_BASED_SVG_ENGINE PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_CONTEXT_MENUS PRIVATE ON) @@ -21637,7 +21850,7 @@ index b755b0150beb8614c8ca97f654a4e2b8fc5f8645..8b4d8589c35c6c73ad69ac3d2e0b3ba0 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SESSION PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SESSION_PLAYLIST PRIVATE OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STREAM PRIVATE ON) -@@ -78,7 +83,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PERIODIC_MEMORY_MONITOR PRIVATE ON) +@@ -76,7 +81,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PERIODIC_MEMORY_MONITOR PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SERVICE_WORKER PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHAREABLE_RESOURCE PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPEECH_SYNTHESIS PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) @@ -21646,7 +21859,7 @@ index b755b0150beb8614c8ca97f654a4e2b8fc5f8645..8b4d8589c35c6c73ad69ac3d2e0b3ba0 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VARIATION_FONTS PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_CODECS PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) -@@ -89,18 +94,35 @@ if (WPE_VERSION VERSION_GREATER_EQUAL 1.13.90) +@@ -87,19 +92,36 @@ if (WPE_VERSION VERSION_GREATER_EQUAL 1.13.90) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD PUBLIC ON) endif () @@ -21676,6 +21889,7 @@ index b755b0150beb8614c8ca97f654a4e2b8fc5f8645..8b4d8589c35c6c73ad69ac3d2e0b3ba0 -WEBKIT_OPTION_DEFINE(ENABLE_WPE_QT_API "Whether to enable support for the Qt5/QML plugin" PUBLIC ${ENABLE_DEVELOPER_MODE}) +WEBKIT_OPTION_DEFINE(ENABLE_WPE_QT_API "Whether to enable support for the Qt5/QML plugin" PUBLIC OFF) WEBKIT_OPTION_DEFINE(ENABLE_WPE_1_1_API "Whether to build WPE 1.1 instead of WPE 2.0" PUBLIC OFF) + WEBKIT_OPTION_DEFINE(USE_GBM "Whether to enable usage of GBM and libdrm." PUBLIC ON) -WEBKIT_OPTION_DEFINE(USE_JPEGXL "Whether to enable support for JPEG-XL images." PUBLIC ${ENABLE_EXPERIMENTAL_FEATURES}) +WEBKIT_OPTION_DEFINE(USE_JPEGXL "Whether to enable support for JPEG-XL images." PUBLIC OFF) WEBKIT_OPTION_DEFINE(USE_LCMS "Whether to enable support for image color management using libcms2." PUBLIC ON) @@ -21686,10 +21900,10 @@ index b755b0150beb8614c8ca97f654a4e2b8fc5f8645..8b4d8589c35c6c73ad69ac3d2e0b3ba0 # Private options specific to the WPE port. diff --git a/Source/cmake/OptionsWin.cmake b/Source/cmake/OptionsWin.cmake -index 980bc88be9edc3d688d6c23030bc77302a020665..164ba1d07aa9630e6e993d0d3eb6464c8c0fdf2e 100644 +index 917d3e3f65cb0bf9133c278989176be62d10b168..f975f6bf136c8d5c24628232034665b5891f8151 100644 --- a/Source/cmake/OptionsWin.cmake +++ b/Source/cmake/OptionsWin.cmake -@@ -98,16 +98,37 @@ if (OpenJPEG_FOUND) +@@ -102,16 +102,37 @@ if (OpenJPEG_FOUND) endif () find_package(WOFF2 1.0.2 COMPONENTS dec) @@ -21731,7 +21945,7 @@ index 980bc88be9edc3d688d6c23030bc77302a020665..164ba1d07aa9630e6e993d0d3eb6464c WEBKIT_OPTION_BEGIN() # FIXME: Most of these options should not be public. -@@ -184,6 +205,17 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_CRYPTO PRIVATE ${ENABLE_EXPERIMENTAL +@@ -188,6 +209,17 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_CRYPTO PRIVATE ${ENABLE_EXPERIMENTAL # No support planned WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTPDIR PRIVATE OFF) @@ -21750,7 +21964,7 @@ index 980bc88be9edc3d688d6c23030bc77302a020665..164ba1d07aa9630e6e993d0d3eb6464c WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API PRIVATE OFF) diff --git a/Source/cmake/WebKitCompilerFlags.cmake b/Source/cmake/WebKitCompilerFlags.cmake -index 5bb66cd2d9cf9529ab813ed357a3ddb2534f3bc4..bdf1c642c3236305ddd5df65d23220d2ceb4fae2 100644 +index 9b2fecf9a0d367baf910bd241eca9e010f09a0a1..eaa55cd39113ada3d4a7589dac0199797da89123 100644 --- a/Source/cmake/WebKitCompilerFlags.cmake +++ b/Source/cmake/WebKitCompilerFlags.cmake @@ -87,7 +87,7 @@ macro(WEBKIT_ADD_TARGET_CXX_FLAGS _target) @@ -21818,7 +22032,7 @@ index 61616b96e2f4e21aa6d098445e0f1a933e512a9c..33732da18013679a869ff8eb2b445434 } diff --git a/Tools/MiniBrowser/gtk/BrowserWindow.c b/Tools/MiniBrowser/gtk/BrowserWindow.c -index 6f5de63b58f1f01dba1915186daa32f4445178ea..8f44c96f28d58fa2294f05c5598ae2978912c7d5 100644 +index 626ce2207e845c40439643d2494e9497b1222810..d741e74c463a59aed2d04acad8635edcfbea664e 100644 --- a/Tools/MiniBrowser/gtk/BrowserWindow.c +++ b/Tools/MiniBrowser/gtk/BrowserWindow.c @@ -73,7 +73,7 @@ struct _BrowserWindowClass { @@ -21866,7 +22080,7 @@ index 6f5de63b58f1f01dba1915186daa32f4445178ea..8f44c96f28d58fa2294f05c5598ae297 return FALSE; /* Multiple tabs are not allowed in editor mode. */ -@@ -1490,6 +1488,12 @@ static gboolean browserWindowDeleteEvent(GtkWidget *widget, GdkEventAny* event) +@@ -1491,6 +1489,12 @@ static gboolean browserWindowDeleteEvent(GtkWidget *widget, GdkEventAny* event) } #endif @@ -21879,7 +22093,7 @@ index 6f5de63b58f1f01dba1915186daa32f4445178ea..8f44c96f28d58fa2294f05c5598ae297 static void browser_window_class_init(BrowserWindowClass *klass) { GObjectClass *gobjectClass = G_OBJECT_CLASS(klass); -@@ -1503,6 +1507,14 @@ static void browser_window_class_init(BrowserWindowClass *klass) +@@ -1504,6 +1508,14 @@ static void browser_window_class_init(BrowserWindowClass *klass) GtkWidgetClass *widgetClass = GTK_WIDGET_CLASS(klass); widgetClass->delete_event = browserWindowDeleteEvent; #endif @@ -21908,10 +22122,10 @@ index c58ebc2beec7e722e8b65b3358b278400e9a1232..526ab90cce49d94f263ab48bbb87e997 typedef struct _BrowserWindow BrowserWindow; diff --git a/Tools/MiniBrowser/gtk/main.c b/Tools/MiniBrowser/gtk/main.c -index 4e5b508bd5ffea600579d5a313c9122d48991c49..4a668738e7c5ffd8a2d8ea90dedd4239e3479ba1 100644 +index 8be643a541511ba58255eaea7fd27dee12fbaa87..fd823c12ec853a7ae70cc343195546b47f08e0b2 100644 --- a/Tools/MiniBrowser/gtk/main.c +++ b/Tools/MiniBrowser/gtk/main.c -@@ -65,7 +65,12 @@ static char* timeZone; +@@ -75,7 +75,12 @@ static char* timeZone; static gboolean enableITP; static gboolean exitAfterLoad; static gboolean webProcessCrashed; @@ -21924,7 +22138,7 @@ index 4e5b508bd5ffea600579d5a313c9122d48991c49..4a668738e7c5ffd8a2d8ea90dedd4239 #if !GTK_CHECK_VERSION(3, 98, 0) static gboolean enableSandbox; -@@ -169,6 +174,10 @@ static const GOptionEntry commandLineOptions[] = +@@ -179,6 +184,10 @@ static const GOptionEntry commandLineOptions[] = { "exit-after-load", 0, 0, G_OPTION_ARG_NONE, &exitAfterLoad, "Quit the browser after the load finishes", NULL }, { "time-zone", 't', 0, G_OPTION_ARG_STRING, &timeZone, "Set time zone", "TIMEZONE" }, { "version", 'v', 0, G_OPTION_ARG_NONE, &printVersion, "Print the WebKitGTK version", NULL }, @@ -21935,7 +22149,7 @@ index 4e5b508bd5ffea600579d5a313c9122d48991c49..4a668738e7c5ffd8a2d8ea90dedd4239 { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &uriArguments, 0, "[URL…]" }, { 0, 0, 0, 0, 0, 0, 0 } }; -@@ -646,6 +655,57 @@ static void filterSavedCallback(WebKitUserContentFilterStore *store, GAsyncResul +@@ -736,6 +745,57 @@ static void filterSavedCallback(WebKitUserContentFilterStore *store, GAsyncResul g_main_loop_quit(data->mainLoop); } @@ -21993,7 +22207,7 @@ index 4e5b508bd5ffea600579d5a313c9122d48991c49..4a668738e7c5ffd8a2d8ea90dedd4239 static void startup(GApplication *application) { const char *actionAccels[] = { -@@ -676,6 +736,14 @@ static void startup(GApplication *application) +@@ -766,6 +826,14 @@ static void startup(GApplication *application) static void activate(GApplication *application, WebKitSettings *webkitSettings) { @@ -22008,7 +22222,7 @@ index 4e5b508bd5ffea600579d5a313c9122d48991c49..4a668738e7c5ffd8a2d8ea90dedd4239 #if GTK_CHECK_VERSION(3, 98, 0) WebKitWebContext *webContext = g_object_new(WEBKIT_TYPE_WEB_CONTEXT, "time-zone-override", timeZone, NULL); webkit_web_context_set_automation_allowed(webContext, automationMode); -@@ -728,9 +796,12 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings) +@@ -818,9 +886,12 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings) } #else WebKitWebsiteDataManager *manager; @@ -22023,7 +22237,7 @@ index 4e5b508bd5ffea600579d5a313c9122d48991c49..4a668738e7c5ffd8a2d8ea90dedd4239 char *dataDirectory = g_build_filename(g_get_user_data_dir(), "webkitgtk-" WEBKITGTK_API_VERSION, "MiniBrowser", NULL); char *cacheDirectory = g_build_filename(g_get_user_cache_dir(), "webkitgtk-" WEBKITGTK_API_VERSION, "MiniBrowser", NULL); manager = webkit_website_data_manager_new("base-data-directory", dataDirectory, "base-cache-directory", cacheDirectory, NULL); -@@ -781,6 +852,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings) +@@ -871,6 +942,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings) // Enable the favicon database. webkit_web_context_set_favicon_database_directory(webContext, NULL); #endif @@ -22031,7 +22245,7 @@ index 4e5b508bd5ffea600579d5a313c9122d48991c49..4a668738e7c5ffd8a2d8ea90dedd4239 webkit_web_context_register_uri_scheme(webContext, BROWSER_ABOUT_SCHEME, (WebKitURISchemeRequestCallback)aboutURISchemeRequestCallback, NULL, NULL); -@@ -851,9 +923,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings) +@@ -941,9 +1013,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings) if (exitAfterLoad) exitAfterWebViewLoadFinishes(webView, application); } @@ -22042,7 +22256,7 @@ index 4e5b508bd5ffea600579d5a313c9122d48991c49..4a668738e7c5ffd8a2d8ea90dedd4239 } } else { WebKitWebView *webView = createBrowserTab(mainWindow, webkitSettings, userContentManager, defaultWebsitePolicies); -@@ -903,7 +973,7 @@ int main(int argc, char *argv[]) +@@ -993,7 +1063,7 @@ int main(int argc, char *argv[]) g_option_context_add_group(context, gst_init_get_option_group()); #endif @@ -22051,7 +22265,7 @@ index 4e5b508bd5ffea600579d5a313c9122d48991c49..4a668738e7c5ffd8a2d8ea90dedd4239 webkit_settings_set_enable_developer_extras(webkitSettings, TRUE); webkit_settings_set_enable_webgl(webkitSettings, TRUE); webkit_settings_set_enable_media_stream(webkitSettings, TRUE); -@@ -935,9 +1005,11 @@ int main(int argc, char *argv[]) +@@ -1025,9 +1095,11 @@ int main(int argc, char *argv[]) } GtkApplication *application = gtk_application_new("org.webkitgtk.MiniBrowser", G_APPLICATION_NON_UNIQUE); @@ -22064,7 +22278,7 @@ index 4e5b508bd5ffea600579d5a313c9122d48991c49..4a668738e7c5ffd8a2d8ea90dedd4239 return exitAfterLoad && webProcessCrashed ? 1 : 0; diff --git a/Tools/MiniBrowser/wpe/main.cpp b/Tools/MiniBrowser/wpe/main.cpp -index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0f996241d 100644 +index 1d3cb1aeb14068a69cee73a60ce82cfb059322ba..248b86032924bb74ce2488cb2d7abd0b1e6de25c 100644 --- a/Tools/MiniBrowser/wpe/main.cpp +++ b/Tools/MiniBrowser/wpe/main.cpp @@ -45,6 +45,9 @@ static gboolean headlessMode; @@ -22077,9 +22291,9 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 static const char* contentFilter; static const char* cookiesFile; static const char* cookiesPolicy; -@@ -70,6 +73,9 @@ static const GOptionEntry commandLineOptions[] = - { "enable-itp", 0, 0, G_OPTION_ARG_NONE, &enableITP, "Enable Intelligent Tracking Prevention (ITP)", nullptr }, +@@ -72,6 +75,9 @@ static const GOptionEntry commandLineOptions[] = { "time-zone", 't', 0, G_OPTION_ARG_STRING, &timeZone, "Set time zone", "TIMEZONE" }, + { "features", 'F', 0, G_OPTION_ARG_STRING, &featureList, "Enable or disable WebKit features (hint: pass 'help' for a list)", "FEATURE-LIST" }, { "version", 'v', 0, G_OPTION_ARG_NONE, &printVersion, "Print the WPE version", nullptr }, + { "inspector-pipe", 'v', 0, G_OPTION_ARG_NONE, &inspectorPipe, "Expose remote debugging protocol over pipe", nullptr }, + { "user-data-dir", 0, 0, G_OPTION_ARG_STRING, &userDataDir, "Default profile persistence folder location", "FILE" }, @@ -22087,7 +22301,7 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &uriArguments, nullptr, "[URL]" }, { nullptr, 0, 0, G_OPTION_ARG_NONE, nullptr, nullptr, nullptr } }; -@@ -154,13 +160,36 @@ static void filterSavedCallback(WebKitUserContentFilterStore *store, GAsyncResul +@@ -156,6 +162,11 @@ static void filterSavedCallback(WebKitUserContentFilterStore *store, GAsyncResul g_main_loop_quit(data->mainLoop); } @@ -22096,13 +22310,14 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 + return TRUE; +} + - static void webViewClose(WebKitWebView* webView, gpointer) + static void webViewClose(WebKitWebView* webView, gpointer user_data) { // Hash table key delete func takes care of unref'ing the view - g_hash_table_remove(openViews, webView); +@@ -164,7 +175,25 @@ static void webViewClose(WebKitWebView* webView, gpointer user_data) + g_application_quit(G_APPLICATION(user_data)); } --static WebKitWebView* createWebView(WebKitWebView* webView, WebKitNavigationAction*, gpointer) +-static WebKitWebView* createWebView(WebKitWebView* webView, WebKitNavigationAction*, gpointer user_data) +static gboolean scriptDialog(WebKitWebView*, WebKitScriptDialog* dialog, gpointer) +{ + if (inspectorPipe) @@ -22119,13 +22334,13 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 + +static gboolean webViewDecidePolicy(WebKitWebView *webView, WebKitPolicyDecision *decision, WebKitPolicyDecisionType decisionType, gpointer); + -+static WebKitWebView* createWebView(WebKitWebView* webView, WebKitNavigationAction*, gpointer); ++static WebKitWebView* createWebView(WebKitWebView* webView, WebKitNavigationAction*, gpointer user_data); + -+static WebKitWebView* createWebViewImpl(WebKitWebView* webView, WebKitWebContext *webContext) ++static WebKitWebView* createWebViewImpl(WebKitWebView* webView, WebKitWebContext *webContext, gpointer user_data) { auto backend = createViewBackend(1280, 720); struct wpe_view_backend* wpeBackend = backend->backend(); -@@ -172,24 +201,112 @@ static WebKitWebView* createWebView(WebKitWebView* webView, WebKitNavigationActi +@@ -176,18 +205,37 @@ static WebKitWebView* createWebView(WebKitWebView* webView, WebKitNavigationActi delete static_cast(data); }, backend.release()); @@ -22157,8 +22372,8 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 + nullptr)); + } - g_signal_connect(newWebView, "create", G_CALLBACK(createWebView), nullptr); - g_signal_connect(newWebView, "close", G_CALLBACK(webViewClose), nullptr); + g_signal_connect(newWebView, "create", G_CALLBACK(createWebView), user_data); + g_signal_connect(newWebView, "close", G_CALLBACK(webViewClose), user_data); g_hash_table_add(openViews, newWebView); @@ -22169,12 +22384,16 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 return newWebView; } -+static WebKitWebView* createWebView(WebKitWebView* webView, WebKitNavigationAction*, gpointer) +@@ -201,9 +249,78 @@ static WebKitFeature* findFeature(WebKitFeatureList* featureList, const char* id + return nullptr; + } + ++static WebKitWebView* createWebView(WebKitWebView* webView, WebKitNavigationAction*, gpointer user_data) +{ -+ return createWebViewImpl(webView, nullptr); ++ return createWebViewImpl(webView, nullptr, user_data); +} + -+static gboolean webViewDecidePolicy(WebKitWebView *webView, WebKitPolicyDecision *decision, WebKitPolicyDecisionType decisionType, gpointer) ++static gboolean webViewDecidePolicy(WebKitWebView *webView, WebKitPolicyDecision *decision, WebKitPolicyDecisionType decisionType, gpointer user_data) +{ + if (decisionType == WEBKIT_POLICY_DECISION_TYPE_RESPONSE) { + WebKitResponsePolicyDecision *responseDecision = WEBKIT_RESPONSE_POLICY_DECISION(decision); @@ -22204,7 +22423,7 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 + return FALSE; + + /* Open a new tab if link clicked with the middle button, shift+click or ctrl+click. */ -+ WebKitWebView* newWebView = createWebViewImpl(nullptr, webkit_web_view_get_context(webView)); ++ WebKitWebView* newWebView = createWebViewImpl(nullptr, webkit_web_view_get_context(webView), user_data); + webkit_web_view_load_request(newWebView, webkit_navigation_action_get_request(navigationAction)); + + webkit_policy_decision_ignore(decision); @@ -22217,7 +22436,7 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 +{ + if (!webContext) + webContext = persistentWebContext; -+ WebKitWebView* webView = createWebViewImpl(nullptr, webContext); ++ WebKitWebView* webView = createWebViewImpl(nullptr, webContext, nullptr); + webkit_web_view_load_uri(webView, "about:blank"); + return webView; +} @@ -22244,7 +22463,7 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 #if ENABLE_2022_GLIB_API WebKitNetworkSession* networkSession = nullptr; if (!automationMode) { -@@ -220,10 +337,16 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -234,10 +351,16 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* webkit_cookie_manager_set_persistent_storage(cookieManager, cookiesFile, storageType); } } @@ -22264,7 +22483,7 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 webkit_website_data_manager_set_itp_enabled(manager, enableITP); if (proxy) { -@@ -254,6 +377,7 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -268,6 +391,7 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* } #endif @@ -22272,7 +22491,7 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 WebKitUserContentManager* userContentManager = nullptr; if (contentFilter) { GFile* contentFilterFile = g_file_new_for_commandline_arg(contentFilter); -@@ -291,6 +415,15 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -335,6 +459,15 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* delete static_cast(data); }, backend); @@ -22288,7 +22507,7 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 auto* webView = WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW, "backend", viewBackend, "web-context", webContext, -@@ -310,8 +443,6 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -354,8 +487,6 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* backend->setAccessibleChild(ATK_OBJECT(accessible)); #endif @@ -22297,7 +22516,7 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 webkit_web_context_set_automation_allowed(webContext, automationMode); g_signal_connect(webContext, "automation-started", G_CALLBACK(automationStartedCallback), webView); g_signal_connect(webView, "permission-request", G_CALLBACK(decidePermissionRequest), nullptr); -@@ -324,16 +455,9 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -368,16 +499,9 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* webkit_web_view_set_background_color(webView, &color); if (uriArguments) { @@ -22317,7 +22536,7 @@ index afa01e9caed8075125621df818683aaacd6a97e0..c03f9a0623990c58eb715602b3d516a0 webkit_web_view_load_uri(webView, "about:blank"); else webkit_web_view_load_uri(webView, "https://wpewebkit.org"); -@@ -385,8 +509,14 @@ int main(int argc, char *argv[]) +@@ -449,8 +573,14 @@ int main(int argc, char *argv[]) return 1; } @@ -22373,7 +22592,7 @@ index b8056910b6cde5610c3e8e4c2992723f8cf80cd0..44367cb186bff1fb85e76cf8f0530170 "${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 26e188329801f1181b5e67955a79e27fcfabdce5..c332968530027587087b0fa84b658e712668e48f 100644 +index 241f4b629bd9e6a2e2009b472606c0fff6601e66..172086b332953124a41b87532e0f64ba4d390301 100644 --- a/Tools/WebKitTestRunner/TestController.cpp +++ b/Tools/WebKitTestRunner/TestController.cpp @@ -969,6 +969,7 @@ void TestController::createWebViewWithOptions(const TestOptions& options) @@ -22441,7 +22660,7 @@ index fd94bd470a356591a88212836717113864184127..2a04ca6026fd23222fdf00517e564576 + } // namespace WTR diff --git a/Tools/glib/dependencies/apt b/Tools/glib/dependencies/apt -index 68f08203b65cf38c16eccc7e0245f1abdfd3bfe1..1983422250608940e0f56f008a547d2cde521308 100644 +index 7519e73487877b69ded95a7df201ba50b3fac6a5..2ef591c00f92a033538282b0a5e4f619f0e04148 100644 --- a/Tools/glib/dependencies/apt +++ b/Tools/glib/dependencies/apt @@ -1,11 +1,11 @@ @@ -22458,7 +22677,7 @@ index 68f08203b65cf38c16eccc7e0245f1abdfd3bfe1..1983422250608940e0f56f008a547d2c echo $2 fi } -@@ -67,9 +67,11 @@ PACKAGES=( +@@ -69,9 +69,11 @@ PACKAGES=( $(aptIfExists libwpe-1.0-dev) $(aptIfExists libwpebackend-fdo-1.0-dev) libxml2-utils @@ -22471,7 +22690,7 @@ index 68f08203b65cf38c16eccc7e0245f1abdfd3bfe1..1983422250608940e0f56f008a547d2c # These are dependencies necessary for running tests. diff --git a/Tools/gtk/dependencies/apt b/Tools/gtk/dependencies/apt -index 92e312b9ce6383eb6b73296e70a3c9e996f55f2c..b3e968773a1919c3edadbb0a543ea056bc0af5c4 100644 +index 6af7a5608ff76205702e659d1c2393897c56eaad..401436dddf714e2616b44f61ed1b333071459a79 100644 --- a/Tools/gtk/dependencies/apt +++ b/Tools/gtk/dependencies/apt @@ -37,6 +37,9 @@ PACKAGES+=( @@ -22485,13 +22704,13 @@ index 92e312b9ce6383eb6b73296e70a3c9e996f55f2c..b3e968773a1919c3edadbb0a543ea056 # These are dependencies necessary for running tests. cups-daemon diff --git a/Tools/jhbuild/jhbuild-minimal.modules b/Tools/jhbuild/jhbuild-minimal.modules -index 53d0d024d0f7af63b29234063584724eac89aa03..6d9a2b939679de7748b790e0b79939240c8c9295 100644 +index 5fd302277d0eac1747e6724699f7052b84ba3584..889b0f433afd908681e315e6f89ce16cb1b1d0e9 100644 --- a/Tools/jhbuild/jhbuild-minimal.modules +++ b/Tools/jhbuild/jhbuild-minimal.modules @@ -25,7 +25,6 @@ + - - diff --git a/browser_patches/webkit/pw_run.sh b/browser_patches/webkit/pw_run.sh index 1d2d6e516b..d14466490a 100755 --- a/browser_patches/webkit/pw_run.sh +++ b/browser_patches/webkit/pw_run.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash function runOSX() { # if script is run as-is diff --git a/browser_patches/winldd/archive.sh b/browser_patches/winldd/archive.sh index 02fd1ab8bb..46f1d62a34 100755 --- a/browser_patches/winldd/archive.sh +++ b/browser_patches/winldd/archive.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -e set +x diff --git a/browser_patches/winldd/build.sh b/browser_patches/winldd/build.sh index 764762acb0..790cd84f27 100755 --- a/browser_patches/winldd/build.sh +++ b/browser_patches/winldd/build.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -e set +x diff --git a/browser_patches/winldd/clean.sh b/browser_patches/winldd/clean.sh index 61a2ba12e3..5c4cb59ee4 100755 --- a/browser_patches/winldd/clean.sh +++ b/browser_patches/winldd/clean.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash set -e set +x