diff --git a/browser_patches/firefox/UPSTREAM_CONFIG.sh b/browser_patches/firefox/UPSTREAM_CONFIG.sh index 6a586f9dc0..55da63f51e 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="fdbb85992450ee14d23efe08c0dd655eedab0e1d" +BASE_REVISION="f5bc1abb4f0841558f7531e0c15a7577d23ed21c" diff --git a/browser_patches/firefox/juggler/TargetRegistry.js b/browser_patches/firefox/juggler/TargetRegistry.js index 34e7bd940b..479d04d144 100644 --- a/browser_patches/firefox/juggler/TargetRegistry.js +++ b/browser_patches/firefox/juggler/TargetRegistry.js @@ -184,7 +184,7 @@ class TargetRegistry { domWindow = appWindow; appWindow = null; } - if (!(domWindow instanceof Ci.nsIDOMChromeWindow)) + if (!domWindow.isChromeWindow) return; // In persistent mode, window might be opened long ago and might be // already initialized. @@ -212,7 +212,7 @@ class TargetRegistry { const onCloseWindow = window => { const domWindow = window.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowInternal || Ci.nsIDOMWindow); - if (!(domWindow instanceof Ci.nsIDOMChromeWindow)) + if (!domWindow.isChromeWindow) return; if (!domWindow.gBrowser) return; diff --git a/browser_patches/firefox/juggler/content/Runtime.js b/browser_patches/firefox/juggler/content/Runtime.js index 4b56439070..3a132ae542 100644 --- a/browser_patches/firefox/juggler/content/Runtime.js +++ b/browser_patches/firefox/juggler/content/Runtime.js @@ -561,11 +561,8 @@ class ExecutionContext { } _getResult(completionValue, exceptionDetails = {}) { - if (!completionValue) { - exceptionDetails.text = 'Evaluation terminated!'; - exceptionDetails.stack = ''; - return {success: false, obj: null}; - } + if (!completionValue) + throw new Error('evaluation terminated'); if (completionValue.throw) { if (this._debuggee.executeInGlobalWithBindings('e instanceof Error', {e: completionValue.throw}).return) { exceptionDetails.text = this._debuggee.executeInGlobalWithBindings('e.message', {e: completionValue.throw}).return; diff --git a/browser_patches/firefox/juggler/screencast/ScreencastEncoder.cpp b/browser_patches/firefox/juggler/screencast/ScreencastEncoder.cpp index 51466a0ab9..701361add0 100644 --- a/browser_patches/firefox/juggler/screencast/ScreencastEncoder.cpp +++ b/browser_patches/firefox/juggler/screencast/ScreencastEncoder.cpp @@ -167,8 +167,8 @@ public: * amount of lines and columns to retain semantic of U and V planes which * contain only 1/4 of pixel information. */ - int yuvTopOffset = m_margin.top & 1 ? m_margin.top + 1 : m_margin.top; - int yuvLeftOffset = m_margin.left & 1 ? m_margin.left + 1 : m_margin.left; + int yuvTopOffset = m_margin.top + (m_margin.top & 1); + int yuvLeftOffset = m_margin.left + (m_margin.left & 1); double src_width = src->width() - yuvLeftOffset; double src_height = src->height() - yuvTopOffset; diff --git a/browser_patches/firefox/patches/bootstrap.diff b/browser_patches/firefox/patches/bootstrap.diff index 5d225569e4..4881645247 100644 --- a/browser_patches/firefox/patches/bootstrap.diff +++ b/browser_patches/firefox/patches/bootstrap.diff @@ -12,10 +12,10 @@ index bc1a692c23d8599512a5ce956d99998640347c46..4e77897aa4a84ce88445ba45f1ba3b5b virtual ~NotificationController(); diff --git a/accessible/interfaces/nsIAccessibleDocument.idl b/accessible/interfaces/nsIAccessibleDocument.idl -index a91df31c96afda66f478a5a38eaa4352039c2a0b..ee777c1746284027fb3aa2f1686f8082af9d89ee 100644 +index 1886621c373fe1fd5ff54092afc4c64e9ca9a8fd..a0febf72885410b45227171c63e823eca118cb37 100644 --- a/accessible/interfaces/nsIAccessibleDocument.idl +++ b/accessible/interfaces/nsIAccessibleDocument.idl -@@ -72,4 +72,9 @@ interface nsIAccessibleDocument : nsISupports +@@ -67,4 +67,9 @@ interface nsIAccessibleDocument : nsISupports * Return the child document accessible at the given index. */ nsIAccessibleDocument getChildDocumentAt(in unsigned long index); @@ -26,32 +26,30 @@ index a91df31c96afda66f478a5a38eaa4352039c2a0b..ee777c1746284027fb3aa2f1686f8082 + readonly attribute boolean isUpdatePendingForJugglerAccessibility; }; diff --git a/accessible/xpcom/xpcAccessibleDocument.cpp b/accessible/xpcom/xpcAccessibleDocument.cpp -index 2f9e191c7765194d540a7ab067ea10ec4c3d9553..2ac814f079cdfc8dc0741c2f0bd9606ff229748f 100644 +index 94b04cf2f653a4b7274897eb6051dccdd4fe8404..fd6775e71c3d7c348ab2f1c5b4ea2dc4c18f787c 100644 --- a/accessible/xpcom/xpcAccessibleDocument.cpp +++ b/accessible/xpcom/xpcAccessibleDocument.cpp -@@ -143,6 +143,15 @@ xpcAccessibleDocument::GetVirtualCursor(nsIAccessiblePivot** aVirtualCursor) { - return NS_OK; +@@ -132,6 +132,13 @@ xpcAccessibleDocument::GetChildDocumentAt(uint32_t aIndex, + return *aDocument ? NS_OK : NS_ERROR_INVALID_ARG; } -+ +NS_IMETHODIMP +xpcAccessibleDocument::GetIsUpdatePendingForJugglerAccessibility(bool* updating) { + NS_ENSURE_ARG_POINTER(updating); + *updating = Intl()->Controller()->IsUpdatePendingForJugglerAccessibility(); + return NS_OK; +} -+ + //////////////////////////////////////////////////////////////////////////////// // xpcAccessibleDocument diff --git a/accessible/xpcom/xpcAccessibleDocument.h b/accessible/xpcom/xpcAccessibleDocument.h -index 416a1c5497c97ed80cc0f37d72545e36f7e36b4c..b81983cf7153378260a21f6af225e3493f8f30dc 100644 +index 8e9bf2b413585b5a3db9370eee5d57fb6c6716ed..5a3b194b54e3813c89989f13a214c989a409f0f6 100644 --- a/accessible/xpcom/xpcAccessibleDocument.h +++ b/accessible/xpcom/xpcAccessibleDocument.h -@@ -48,6 +48,8 @@ class xpcAccessibleDocument : public xpcAccessibleHyperText, +@@ -47,6 +47,8 @@ class xpcAccessibleDocument : public xpcAccessibleHyperText, + NS_IMETHOD GetChildDocumentAt(uint32_t aIndex, nsIAccessibleDocument** aDocument) final; - NS_IMETHOD GetVirtualCursor(nsIAccessiblePivot** aVirtualCursor) final; + NS_IMETHOD GetIsUpdatePendingForJugglerAccessibility(bool* aUpdating) final; + @@ -91,10 +89,10 @@ index 082ada9ea705cf62420c6bd409a23517a591df82..781ac8d8ee9b9b01112b620e8c5c1168 DWORD creationFlags = CREATE_SUSPENDED | CREATE_UNICODE_ENVIRONMENT; diff --git a/browser/installer/allowed-dupes.mn b/browser/installer/allowed-dupes.mn -index 6ab29ba31e937e1c5bb1208a9a2508ff0496fd02..7989da51c5368fa80cc66cccdfc018a9b3fb2f38 100644 +index 93e7dbae2281680827abb482f6f34e90076f3b3a..f7045a29c6ed50876775abe2d45a47df7b7a2003 100644 --- a/browser/installer/allowed-dupes.mn +++ b/browser/installer/allowed-dupes.mn -@@ -67,6 +67,12 @@ browser/features/webcompat@mozilla.org/shims/empty-shim.txt +@@ -71,6 +71,12 @@ browser/features/webcompat@mozilla.org/shims/empty-shim.txt removed-files #endif @@ -108,10 +106,10 @@ index 6ab29ba31e937e1c5bb1208a9a2508ff0496fd02..7989da51c5368fa80cc66cccdfc018a9 gmp-clearkey/0.1/manifest.json i686/gmp-clearkey/0.1/manifest.json diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in -index 34b9bf7d6595226983f696b94f90694970564e92..1110fef252bc68d73d5c3dc71deac98fb41700f0 100644 +index 41d13e23c4f4160e469aa81a632b5ed336130edb..3d690727ba3394485093f062093f26b2739ee497 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in -@@ -197,6 +197,9 @@ +@@ -203,6 +203,9 @@ @RESPATH@/chrome/remote.manifest #endif @@ -169,10 +167,10 @@ index 4236ec2921bd57c58cfffdf1cdcf509d76fca3db..23d0cb1f06bb8c7a1cac8fcec94a99fb const transportProvider = { setListener(upgradeListener) { diff --git a/docshell/base/BrowsingContext.cpp b/docshell/base/BrowsingContext.cpp -index 695621bb786289198ec4db5679b7ac5a11f18bce..acdc0aae6db9f452964bcfdddace261b1ef8a1cf 100644 +index db232f63e48e2950a997baac63f2b3cc069ddb18..3d2088308789276ad8e940dda4ebf3800f487e3a 100644 --- a/docshell/base/BrowsingContext.cpp +++ b/docshell/base/BrowsingContext.cpp -@@ -114,6 +114,20 @@ struct ParamTraits +@@ -113,6 +113,20 @@ struct ParamTraits mozilla::dom::PrefersColorSchemeOverride::None, mozilla::dom::PrefersColorSchemeOverride::EndGuard_> {}; @@ -193,7 +191,7 @@ index 695621bb786289198ec4db5679b7ac5a11f18bce..acdc0aae6db9f452964bcfdddace261b template <> struct ParamTraits : public ContiguousEnumSerializer< -@@ -2747,6 +2761,40 @@ void BrowsingContext::DidSet(FieldIndex, +@@ -2746,6 +2760,40 @@ void BrowsingContext::DidSet(FieldIndex, PresContextAffectingFieldChanged(); } @@ -302,10 +300,10 @@ index 4c245337b7db24f94011ad75fa2a3b32c9a3574c..946b4592794499455b7e2d7d208b7ca4 bool CanSet(FieldIndex, bool, ContentParent*) { diff --git a/docshell/base/CanonicalBrowsingContext.cpp b/docshell/base/CanonicalBrowsingContext.cpp -index 37f047c7e062d5441be022da97f34012134826ae..a26c71264c0e175361e43464600bea049b7cee56 100644 +index 42a6700afa0e9ff3c5161b1d18f327b3d9ed76f8..3b83cafc2e549fe3affad3547a1b145f821a888d 100644 --- a/docshell/base/CanonicalBrowsingContext.cpp +++ b/docshell/base/CanonicalBrowsingContext.cpp -@@ -1454,6 +1454,12 @@ void CanonicalBrowsingContext::LoadURI(nsIURI* aURI, +@@ -1456,6 +1456,12 @@ void CanonicalBrowsingContext::LoadURI(nsIURI* aURI, return; } @@ -319,7 +317,7 @@ index 37f047c7e062d5441be022da97f34012134826ae..a26c71264c0e175361e43464600bea04 } diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp -index 02641049b7303c280ebe04034fd0a927e7389711..3ace412e8cc4277c1984b9d68f23d1889cb9b9da 100644 +index fb1b70fbcff37a233a4396a768358a36e773ddc3..c1c654f99462f2868607729c9126531eac3d5da9 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -15,6 +15,12 @@ @@ -382,7 +380,7 @@ index 02641049b7303c280ebe04034fd0a927e7389711..3ace412e8cc4277c1984b9d68f23d188 mAllowAuth(mItemType == typeContent), mAllowKeywordFixup(false), mDisableMetaRefreshWhenInactive(false), -@@ -3186,6 +3204,234 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) { +@@ -3197,6 +3215,234 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) { return NS_OK; } @@ -617,7 +615,7 @@ index 02641049b7303c280ebe04034fd0a927e7389711..3ace412e8cc4277c1984b9d68f23d188 NS_IMETHODIMP nsDocShell::GetIsNavigating(bool* aOut) { *aOut = mIsNavigating; -@@ -4865,7 +5111,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { +@@ -4876,7 +5122,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { } void nsDocShell::ActivenessMaybeChanged() { @@ -626,7 +624,7 @@ index 02641049b7303c280ebe04034fd0a927e7389711..3ace412e8cc4277c1984b9d68f23d188 if (RefPtr presShell = GetPresShell()) { presShell->ActivenessMaybeChanged(); } -@@ -6798,6 +7044,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, +@@ -6809,6 +7055,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, return false; // no entry to save into } @@ -637,7 +635,7 @@ index 02641049b7303c280ebe04034fd0a927e7389711..3ace412e8cc4277c1984b9d68f23d188 MOZ_ASSERT(!mozilla::SessionHistoryInParent(), "mOSHE cannot be non-null with SHIP"); nsCOMPtr viewer = mOSHE->GetContentViewer(); -@@ -8579,6 +8829,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { +@@ -8590,6 +8840,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { true, // aForceNoOpener getter_AddRefs(newBC)); MOZ_ASSERT(!newBC); @@ -650,7 +648,7 @@ index 02641049b7303c280ebe04034fd0a927e7389711..3ace412e8cc4277c1984b9d68f23d188 return rv; } -@@ -9633,6 +9889,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, +@@ -9665,6 +9921,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, nsINetworkPredictor::PREDICT_LOAD, attrs, nullptr); nsCOMPtr req; @@ -667,7 +665,7 @@ index 02641049b7303c280ebe04034fd0a927e7389711..3ace412e8cc4277c1984b9d68f23d188 rv = DoURILoad(aLoadState, aCacheKey, getter_AddRefs(req)); if (NS_SUCCEEDED(rv)) { -@@ -12793,6 +13059,9 @@ class OnLinkClickEvent : public Runnable { +@@ -12825,6 +13091,9 @@ class OnLinkClickEvent : public Runnable { mHandler->OnLinkClickSync(mContent, mLoadState, mNoOpenerImplied, mTriggeringPrincipal); } @@ -677,7 +675,7 @@ index 02641049b7303c280ebe04034fd0a927e7389711..3ace412e8cc4277c1984b9d68f23d188 return NS_OK; } -@@ -12877,6 +13146,8 @@ nsresult nsDocShell::OnLinkClick( +@@ -12909,6 +13178,8 @@ nsresult nsDocShell::OnLinkClick( nsCOMPtr ev = new OnLinkClickEvent(this, aContent, loadState, noOpenerImplied, aIsTrusted, aTriggeringPrincipal); @@ -687,7 +685,7 @@ index 02641049b7303c280ebe04034fd0a927e7389711..3ace412e8cc4277c1984b9d68f23d188 } diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h -index 67090146dcedc87ab80a089a1bf173946fb750d8..d5ff17673105e3b966a79a066d656f0ddfdf4f70 100644 +index 0f360bf1f5f2e9067f42d270b4fb6745116a0ee2..8eee7e4d1a287b38d2d2aa1af1ac719a6c7c940b 100644 --- a/docshell/base/nsDocShell.h +++ b/docshell/base/nsDocShell.h @@ -16,6 +16,7 @@ @@ -722,7 +720,7 @@ index 67090146dcedc87ab80a089a1bf173946fb750d8..d5ff17673105e3b966a79a066d656f0d // Create a content viewer within this nsDocShell for the given // `WindowGlobalChild` actor. nsresult CreateContentViewerForActor( -@@ -1023,6 +1034,8 @@ class nsDocShell final : public nsDocLoader, +@@ -1030,6 +1041,8 @@ class nsDocShell final : public nsDocLoader, bool CSSErrorReportingEnabled() const { return mCSSErrorReportingEnabled; } @@ -731,7 +729,7 @@ index 67090146dcedc87ab80a089a1bf173946fb750d8..d5ff17673105e3b966a79a066d656f0d // 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 -@@ -1316,6 +1329,17 @@ class nsDocShell final : public nsDocLoader, +@@ -1323,6 +1336,17 @@ class nsDocShell final : public nsDocLoader, bool mAllowDNSPrefetch : 1; bool mAllowWindowControl : 1; bool mCSSErrorReportingEnabled : 1; @@ -806,10 +804,10 @@ index 68f32e968c7e1bc1d0b2b2894320a177a9ae44d2..9e61465ffad927d7b3e972f753940196 * 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 f8153eef91c40a0947bc7ce8d42f8f550b95b701..ca8f1b88ae2cafde557644e2863c564dfe8fc9c3 100644 +index b8d736619d4ea457b7db95d1815bd85697475133..d128299ab7a5e7f8fb00474571805361df0e00d2 100644 --- a/dom/base/Document.cpp +++ b/dom/base/Document.cpp -@@ -3675,6 +3675,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { +@@ -3682,6 +3682,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { } void Document::ApplySettingsFromCSP(bool aSpeculative) { @@ -819,7 +817,7 @@ index f8153eef91c40a0947bc7ce8d42f8f550b95b701..ca8f1b88ae2cafde557644e2863c564d nsresult rv = NS_OK; if (!aSpeculative) { // 1) apply settings from regular CSP -@@ -3732,6 +3735,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { +@@ -3739,6 +3742,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { MOZ_ASSERT(!mScriptGlobalObject, "CSP must be initialized before mScriptGlobalObject is set!"); @@ -831,7 +829,7 @@ index f8153eef91c40a0947bc7ce8d42f8f550b95b701..ca8f1b88ae2cafde557644e2863c564d // If this is a data document - no need to set CSP. if (mLoadedAsData) { return NS_OK; -@@ -4572,6 +4580,10 @@ bool Document::HasFocus(ErrorResult& rv) const { +@@ -4578,6 +4586,10 @@ bool Document::HasFocus(ErrorResult& rv) const { return false; } @@ -842,7 +840,7 @@ index f8153eef91c40a0947bc7ce8d42f8f550b95b701..ca8f1b88ae2cafde557644e2863c564d if (!fm->IsInActiveWindow(bc)) { return false; } -@@ -18436,6 +18448,68 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { +@@ -18471,6 +18483,68 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { return LookAndFeel::PreferredColorSchemeForContent(); } @@ -912,10 +910,10 @@ index f8153eef91c40a0947bc7ce8d42f8f550b95b701..ca8f1b88ae2cafde557644e2863c564d if (!sLoadingForegroundTopLevelContentDocument) { return false; diff --git a/dom/base/Document.h b/dom/base/Document.h -index 3b12b31b65408500e081527662edc77f3fd64207..4fb7d831123b9f1754675ae8fd7a2ec25b4e12c5 100644 +index bb4e5a8e8114167d442e3593d240de74e9a6b12a..1a7b0a0bb8431c6c17dc0ccb1600ad97bbe005cd 100644 --- a/dom/base/Document.h +++ b/dom/base/Document.h -@@ -4127,6 +4127,9 @@ class Document : public nsINode, +@@ -4067,6 +4067,9 @@ class Document : public nsINode, // color-scheme meta tag. ColorScheme DefaultColorScheme() const; @@ -926,7 +924,7 @@ index 3b12b31b65408500e081527662edc77f3fd64207..4fb7d831123b9f1754675ae8fd7a2ec2 static bool AutomaticStorageAccessPermissionCanBeGranted( diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp -index 151d992d6fdca956a8925d47c49adde2d545e950..8d6db71233e30f95fc04c20100ac6b7bd998258b 100644 +index eedeee0364cefb0bcf5412483f452cb5454eb1a5..922775338a270ecd70f2ad284e627da63b37cb5b 100644 --- a/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp @@ -330,14 +330,18 @@ void Navigator::GetAppName(nsAString& aAppName, CallerType aCallerType) const { @@ -965,7 +963,7 @@ index 151d992d6fdca956a8925d47c49adde2d545e950..8d6db71233e30f95fc04c20100ac6b7b // The returned value is cached by the binding code. The window listens to the // accept languages change and will clear the cache when needed. It has to -@@ -570,7 +580,13 @@ bool Navigator::CookieEnabled() { +@@ -564,7 +574,13 @@ bool Navigator::CookieEnabled() { return granted; } @@ -994,10 +992,10 @@ index cbe8d6bb27eb75b1c0eb920c69eccc99fd6133b2..49da35b1f9ec2a81c5886f277fd52ec4 dom::MediaCapabilities* MediaCapabilities(); dom::MediaSession* MediaSession(); diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp -index 75a685ec441eb8b7a4b7e456885564746dec43db..baf363b6e9b6f47db5c186ddd18c38c913a1b7f5 100644 +index 5cb5a088269287b6f9a3d36cca658043464cd5cc..d0b4929c5996efc03392b7093d14e01cabab8acf 100644 --- a/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp -@@ -8469,7 +8469,8 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8520,7 +8520,8 @@ nsresult nsContentUtils::SendMouseEvent( bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, PreventDefaultResult* aPreventDefault, bool aIsDOMEventSynthesized, @@ -1007,7 +1005,7 @@ index 75a685ec441eb8b7a4b7e456885564746dec43db..baf363b6e9b6f47db5c186ddd18c38c9 nsPoint offset; nsCOMPtr widget = GetWidget(aPresShell, &offset); if (!widget) return NS_ERROR_FAILURE; -@@ -8477,6 +8478,7 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8528,6 +8529,7 @@ nsresult nsContentUtils::SendMouseEvent( EventMessage msg; Maybe exitFrom; bool contextMenuKey = false; @@ -1015,7 +1013,7 @@ index 75a685ec441eb8b7a4b7e456885564746dec43db..baf363b6e9b6f47db5c186ddd18c38c9 if (aType.EqualsLiteral("mousedown")) { msg = eMouseDown; } else if (aType.EqualsLiteral("mouseup")) { -@@ -8501,6 +8503,12 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8552,6 +8554,12 @@ nsresult nsContentUtils::SendMouseEvent( msg = eMouseHitTest; } else if (aType.EqualsLiteral("MozMouseExploreByTouch")) { msg = eMouseExploreByTouch; @@ -1028,7 +1026,7 @@ index 75a685ec441eb8b7a4b7e456885564746dec43db..baf363b6e9b6f47db5c186ddd18c38c9 } else { return NS_ERROR_FAILURE; } -@@ -8509,12 +8517,21 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8560,12 +8568,21 @@ nsresult nsContentUtils::SendMouseEvent( aInputSourceArg = MouseEvent_Binding::MOZ_SOURCE_MOUSE; } @@ -1052,7 +1050,7 @@ index 75a685ec441eb8b7a4b7e456885564746dec43db..baf363b6e9b6f47db5c186ddd18c38c9 event.pointerId = aIdentifier; event.mModifiers = GetWidgetModifiers(aModifiers); event.mButton = aButton; -@@ -8525,8 +8542,10 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8576,8 +8593,10 @@ nsresult nsContentUtils::SendMouseEvent( event.mPressure = aPressure; event.mInputSource = aInputSourceArg; event.mClickCount = aClickCount; @@ -1064,10 +1062,10 @@ index 75a685ec441eb8b7a4b7e456885564746dec43db..baf363b6e9b6f47db5c186ddd18c38c9 nsPresContext* presContext = aPresShell->GetPresContext(); if (!presContext) return NS_ERROR_FAILURE; diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h -index 79e68e8acd16d60e69420429e69cad2afa3947b0..7deae8eabaf03178480d697a701c2171e0ededa1 100644 +index 1259b13761c2d51e1ddca54433a49b2a5949a790..ec356bb54f04249d19a984e1f4b2d5d57009b64f 100644 --- a/dom/base/nsContentUtils.h +++ b/dom/base/nsContentUtils.h -@@ -2926,7 +2926,8 @@ class nsContentUtils { +@@ -2934,7 +2934,8 @@ class nsContentUtils { int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, mozilla::PreventDefaultResult* aPreventDefault, @@ -1078,7 +1076,7 @@ index 79e68e8acd16d60e69420429e69cad2afa3947b0..7deae8eabaf03178480d697a701c2171 static void FirePageShowEventForFrameLoaderSwap( nsIDocShellTreeItem* aItem, diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp -index fb1cfe4f93585d6dbadfc85af83a4457a605d8a0..2a6dea015cc949b7ba8a7fcab9983d5236c7c72b 100644 +index 2ccd99469917b6fc0b0c99f8ff579d7040e65669..2968275ddc32b7bb9eb7337ef90328bb00c1aabf 100644 --- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp @@ -684,6 +684,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) { @@ -1156,7 +1154,7 @@ index 63968c9b7a4e418e4c0de6e7a75fa215a36a9105..decf3ea3833ccdffd49a7aded2d600f9 MOZ_CAN_RUN_SCRIPT nsresult SendTouchEventCommon( diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp -index ead05d9103a378bf6a4d5a18589a450c2a81108b..50a8bfd2cb6a94b24c85ab1199f12287b8323b3e 100644 +index ba77a1f00d43be4ec98b698cf0d9f4fab8343dd2..f146d1dfadbaa2e75f8b60f3dafe056a179ef018 100644 --- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp @@ -1656,6 +1656,10 @@ Maybe nsFocusManager::SetFocusInner(Element* aNewContent, @@ -1182,10 +1180,10 @@ index ead05d9103a378bf6a4d5a18589a450c2a81108b..50a8bfd2cb6a94b24c85ab1199f12287 // 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 6fbfe015177c9600b2dadf613717c47a3efc9e17..3e8c659206eea2c6a4015ea59141b978e7f8ac47 100644 +index 9893fb0ed13eeebe55f8eda7bb3d898ff6eebba7..247784c89d5d68840638f40f77523e600f13bbf6 100644 --- a/dom/base/nsGlobalWindowOuter.cpp +++ b/dom/base/nsGlobalWindowOuter.cpp -@@ -2484,7 +2484,7 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, +@@ -2482,7 +2482,7 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, &nsGlobalWindowInner::FireOnNewGlobalObject)); } @@ -1194,7 +1192,7 @@ index 6fbfe015177c9600b2dadf613717c47a3efc9e17..3e8c659206eea2c6a4015ea59141b978 // 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 -@@ -2503,10 +2503,16 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, +@@ -2501,10 +2501,16 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, }(); if (!isContentAboutBlankInChromeDocshell) { @@ -1215,7 +1213,7 @@ index 6fbfe015177c9600b2dadf613717c47a3efc9e17..3e8c659206eea2c6a4015ea59141b978 } } -@@ -2627,6 +2633,19 @@ void nsGlobalWindowOuter::DispatchDOMWindowCreated() { +@@ -2625,6 +2631,19 @@ void nsGlobalWindowOuter::DispatchDOMWindowCreated() { } } @@ -1236,10 +1234,10 @@ index 6fbfe015177c9600b2dadf613717c47a3efc9e17..3e8c659206eea2c6a4015ea59141b978 void nsGlobalWindowOuter::SetDocShell(nsDocShell* aDocShell) { diff --git a/dom/base/nsGlobalWindowOuter.h b/dom/base/nsGlobalWindowOuter.h -index f0e9ec469ab74f889ebd1f3a642de3a6a295f7c2..8d93bc1cb714ff5add6fb9920c8db8a5098cf92d 100644 +index 0919dfe52ab1ced87c5483d0a60945f688f0eefe..c826b05d8599b7bf80415bdad1969a84a467a7ba 100644 --- a/dom/base/nsGlobalWindowOuter.h +++ b/dom/base/nsGlobalWindowOuter.h -@@ -334,6 +334,7 @@ class nsGlobalWindowOuter final : public mozilla::dom::EventTarget, +@@ -325,6 +325,7 @@ class nsGlobalWindowOuter final : public mozilla::dom::EventTarget, // Outer windows only. void DispatchDOMWindowCreated(); @@ -1248,10 +1246,10 @@ index f0e9ec469ab74f889ebd1f3a642de3a6a295f7c2..8d93bc1cb714ff5add6fb9920c8db8a5 // Outer windows only. virtual void EnsureSizeAndPositionUpToDate() override; diff --git a/dom/base/nsINode.cpp b/dom/base/nsINode.cpp -index 1f18279ece1e55dd9527f67ea4c5262249a5a64c..dd11bfb65baccb7021ec6673ca9a6b0d76c9ed09 100644 +index f2b1afabd27c3652632074c1788c4320277ef89f..bc60ca7e4820f9db27a4296acd27e86684ce59eb 100644 --- a/dom/base/nsINode.cpp +++ b/dom/base/nsINode.cpp -@@ -1357,6 +1357,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, +@@ -1358,6 +1358,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, mozilla::GetBoxQuadsFromWindowOrigin(this, aOptions, aResult, aRv); } @@ -1314,10 +1312,10 @@ index 1f18279ece1e55dd9527f67ea4c5262249a5a64c..dd11bfb65baccb7021ec6673ca9a6b0d DOMQuad& aQuad, const GeometryNode& aFrom, const ConvertCoordinateOptions& aOptions, CallerType aCallerType, diff --git a/dom/base/nsINode.h b/dom/base/nsINode.h -index be77a5e084b1037e27896f608e80c1c569ae09d2..313035157ff4abb1d6c3b9a1a07d0c1d9512772d 100644 +index 3617a4a3e31592c1cde00170ecf7b86cf4ab4737..51db576475772b5b9e1e5f87bb690577151b724b 100644 --- a/dom/base/nsINode.h +++ b/dom/base/nsINode.h -@@ -2196,6 +2196,10 @@ class nsINode : public mozilla::dom::EventTarget { +@@ -2193,6 +2193,10 @@ class nsINode : public mozilla::dom::EventTarget { nsTArray>& aResult, ErrorResult& aRv); @@ -1498,10 +1496,10 @@ index 7e1af00d05fbafa2d828e2c7e4dcc5c82d115f5b..e85af9718d064e4d2865bc944e9d4ba1 ~Geolocation(); diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp -index 913a9d4c46dac9936e0e8d5b4b174f8edb86a3a4..efc3e66b97223a3bc0e32b26fdf71f81d779fe6d 100644 +index 4a3e5b2c935ad1cfb1bff706933fc2373f90a937..d8eac957b88ea2a5edbf1f0f4fde177edcb07600 100644 --- a/dom/html/HTMLInputElement.cpp +++ b/dom/html/HTMLInputElement.cpp -@@ -58,6 +58,7 @@ +@@ -57,6 +57,7 @@ #include "mozilla/dom/Document.h" #include "mozilla/dom/HTMLDataListElement.h" #include "mozilla/dom/HTMLOptionElement.h" @@ -1509,7 +1507,7 @@ index 913a9d4c46dac9936e0e8d5b4b174f8edb86a3a4..efc3e66b97223a3bc0e32b26fdf71f81 #include "nsIFormControlFrame.h" #include "nsITextControlFrame.h" #include "nsIFrame.h" -@@ -779,6 +780,12 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) { +@@ -780,6 +781,12 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) { return NS_ERROR_FAILURE; } @@ -1554,7 +1552,7 @@ index 82f7d4d206c7274858a945d5db61aa02c366e472..a23386a5749c4af48b9bb86c8c48928d * touchstart, touchend, touchmove, and touchcancel * diff --git a/dom/ipc/BrowserChild.cpp b/dom/ipc/BrowserChild.cpp -index 978cd197de694b297ab3c603e5b0f715a7ea6eb5..4216c056cf71e7d10bcd4a6be11633c3ee283570 100644 +index 084c717432a853b8f95a087463dcce93215ca6e8..2689ba865758ce6085f68d86a5d09a27551d229c 100644 --- a/dom/ipc/BrowserChild.cpp +++ b/dom/ipc/BrowserChild.cpp @@ -1672,6 +1672,21 @@ void BrowserChild::HandleRealMouseButtonEvent(const WidgetMouseEvent& aEvent, @@ -1832,10 +1830,18 @@ index 1f2d92bcb5d989bf9ecc044f8c51006f991b0007..9cf5dd885e658e0fe5e7ab75e7fc1f97 return aGlobalOrNull; diff --git a/dom/security/nsCSPUtils.cpp b/dom/security/nsCSPUtils.cpp -index e52802d367e206f3903c0ab50c3fe6e6fb9088ca..865b810e245c519be34d0a646443fdc897742621 100644 +index a7b02a55a73c0ab459278ce475459e43beeedc8f..b8f292420f1b563bf409e47e01972f23ac1e852f 100644 --- a/dom/security/nsCSPUtils.cpp +++ b/dom/security/nsCSPUtils.cpp -@@ -127,6 +127,11 @@ void CSP_ApplyMetaCSPToDoc(mozilla::dom::Document& aDoc, +@@ -22,6 +22,7 @@ + #include "nsSandboxFlags.h" + #include "nsServiceManagerUtils.h" + #include "nsWhitespaceTokenizer.h" ++#include "nsDocShell.h" + + #include "mozilla/Components.h" + #include "mozilla/dom/CSPDictionariesBinding.h" +@@ -132,6 +133,11 @@ void CSP_ApplyMetaCSPToDoc(mozilla::dom::Document& aDoc, return; } @@ -1871,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 51a497f929a23811034e5fbffeaa35ee66dd6c77..41e530c57534b790442b153c7b9bec962a4f80d7 100644 +index f049e706028b59f05f20b1091c5706449f396f8b..b37a9b721cf86cf6f06a2d723ed019f3a46a1176 100644 --- a/dom/workers/RuntimeService.cpp +++ b/dom/workers/RuntimeService.cpp -@@ -989,7 +989,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) { +@@ -985,7 +985,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) { AssertIsOnMainThread(); nsTArray languages; @@ -1883,7 +1889,7 @@ index 51a497f929a23811034e5fbffeaa35ee66dd6c77..41e530c57534b790442b153c7b9bec96 RuntimeService* runtime = RuntimeService::GetService(); if (runtime) { -@@ -1191,8 +1191,7 @@ bool RuntimeService::RegisterWorker(WorkerPrivate& aWorkerPrivate) { +@@ -1187,8 +1187,7 @@ bool RuntimeService::RegisterWorker(WorkerPrivate& aWorkerPrivate) { } // The navigator overridden properties should have already been read. @@ -1893,7 +1899,7 @@ index 51a497f929a23811034e5fbffeaa35ee66dd6c77..41e530c57534b790442b153c7b9bec96 mNavigatorPropertiesLoaded = true; } -@@ -1808,6 +1807,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted( +@@ -1800,6 +1799,13 @@ void RuntimeService::PropagateStorageAccessPermissionGranted( } } @@ -1907,7 +1913,7 @@ index 51a497f929a23811034e5fbffeaa35ee66dd6c77..41e530c57534b790442b153c7b9bec96 template void RuntimeService::BroadcastAllWorkers(const Func& aFunc) { AssertIsOnMainThread(); -@@ -2330,6 +2336,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers( +@@ -2322,6 +2328,14 @@ void PropagateStorageAccessPermissionGrantedToWorkers( } } @@ -1949,10 +1955,10 @@ index d10dabb5c5ff8e17851edf2bd2efc08e74584d8e..53c4070c5fde43b27fb8fbfdcf4c23d8 bool IsWorkerGlobal(JSObject* global); diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp -index a0deeb5d02c9df63a801275808b244475d0583fe..8b190bb49c017d78ace2554188286ceb2cf1eacb 100644 +index 3c6a2fa249f4b993a440563247a68435cd7820d8..c82dc3c4d740abb74735d909b48b600ead193c76 100644 --- a/dom/workers/WorkerPrivate.cpp +++ b/dom/workers/WorkerPrivate.cpp -@@ -704,6 +704,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { +@@ -709,6 +709,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { } }; @@ -1971,7 +1977,7 @@ index a0deeb5d02c9df63a801275808b244475d0583fe..8b190bb49c017d78ace2554188286ceb class UpdateLanguagesRunnable final : public WorkerRunnable { nsTArray mLanguages; -@@ -1982,6 +1994,16 @@ void WorkerPrivate::UpdateContextOptions( +@@ -2004,6 +2016,16 @@ void WorkerPrivate::UpdateContextOptions( } } @@ -1988,7 +1994,7 @@ index a0deeb5d02c9df63a801275808b244475d0583fe..8b190bb49c017d78ace2554188286ceb void WorkerPrivate::UpdateLanguages(const nsTArray& aLanguages) { AssertIsOnParentThread(); -@@ -5296,6 +5318,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( +@@ -5412,6 +5434,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( } } @@ -2005,10 +2011,10 @@ index a0deeb5d02c9df63a801275808b244475d0583fe..8b190bb49c017d78ace2554188286ceb const nsTArray& aLanguages) { WorkerGlobalScope* globalScope = GlobalScope(); diff --git a/dom/workers/WorkerPrivate.h b/dom/workers/WorkerPrivate.h -index 84b4f6d89e5d6fa3e622b95f395930993373f76f..b945587f4d6488a6a8191caa06340d4d5074f4c3 100644 +index e78423f757d81bebf6a82ad261348f15af30f063..ed1d5eca153a3eab9268fa5d6402d40c34281f2c 100644 --- a/dom/workers/WorkerPrivate.h +++ b/dom/workers/WorkerPrivate.h -@@ -414,6 +414,8 @@ class WorkerPrivate final +@@ -413,6 +413,8 @@ class WorkerPrivate final void UpdateContextOptionsInternal(JSContext* aCx, const JS::ContextOptions& aContextOptions); @@ -2017,7 +2023,7 @@ index 84b4f6d89e5d6fa3e622b95f395930993373f76f..b945587f4d6488a6a8191caa06340d4d void UpdateLanguagesInternal(const nsTArray& aLanguages); void UpdateJSWorkerMemoryParameterInternal(JSContext* aCx, JSGCParamKey key, -@@ -1036,6 +1038,8 @@ class WorkerPrivate final +@@ -1032,6 +1034,8 @@ class WorkerPrivate final void UpdateContextOptions(const JS::ContextOptions& aContextOptions); @@ -2027,7 +2033,7 @@ index 84b4f6d89e5d6fa3e622b95f395930993373f76f..b945587f4d6488a6a8191caa06340d4d void UpdateJSWorkerMemoryParameter(JSGCParamKey key, Maybe value); diff --git a/intl/components/src/TimeZone.cpp b/intl/components/src/TimeZone.cpp -index 145dd3f07112c2390325de50f8eae674484adfe6..8cb3787e1b6bb25c6a58f1d910ae7dbc440d9ace 100644 +index 7a069ef0c59895cf1f8dc35d612f1494c9c9f1ef..5b09dfdcc5323def65c35b0696141b44eef9dcda 100644 --- a/intl/components/src/TimeZone.cpp +++ b/intl/components/src/TimeZone.cpp @@ -16,6 +16,7 @@ @@ -2038,7 +2044,7 @@ index 145dd3f07112c2390325de50f8eae674484adfe6..8cb3787e1b6bb25c6a58f1d910ae7dbc /* static */ Result, ICUError> TimeZone::TryCreate( Maybe> aTimeZoneOverride) { -@@ -239,6 +240,13 @@ static ICUResult SetDefaultTimeZone(TimeZoneIdentifierVector& timeZone) { +@@ -318,6 +319,13 @@ static ICUResult SetDefaultTimeZone(TimeZoneIdentifierVector& timeZone) { } #endif @@ -2053,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 364cb45c2fafe9e419b415ee456b3411d5c38dea..ae119db52d55c3100df3d88f10c91d59b3fc07e8 100644 +index 9d0423ef13958d5c443cc3531269603c4801c338..f0c4ba7c528d2be466e0f7669a1e37e876f9091e 100644 --- a/intl/components/src/TimeZone.h +++ b/intl/components/src/TimeZone.h -@@ -155,6 +155,8 @@ class TimeZone final { +@@ -190,6 +190,8 @@ class TimeZone final { return FillBufferWithICUCall(aBuffer, ucal_getHostTimeZone); } @@ -2066,7 +2072,7 @@ index 364cb45c2fafe9e419b415ee456b3411d5c38dea..ae119db52d55c3100df3d88f10c91d59 * Set the default time zone. */ diff --git a/js/public/Date.h b/js/public/Date.h -index 45c6a88602e078cb872d49a2f50b30a994f76d8e..90989ff259ef19af094bc6ddfabe7552b80d84f3 100644 +index dd82415624e1f05eaad818d68b8588ffb1b64ab1..c48ab77757aff777658fd4e37db6bdea47bdff32 100644 --- a/js/public/Date.h +++ b/js/public/Date.h @@ -53,6 +53,8 @@ namespace JS { @@ -2095,10 +2101,10 @@ index 9c3a652b60e09013f77b9a7f7da03d376d21cb6a..091daaee4a3402a0c572a21142517e4f } diff --git a/js/src/vm/DateTime.cpp b/js/src/vm/DateTime.cpp -index 0dd93e00a1d206d7117e4404240b49a2f49bb415..6d6b394c5acf7bbd02475694661230758d0ca942 100644 +index 21ecc2e9f50a16357ace3320335d31a4929fc146..c4b1444ce53b20a700d2ff9f18521bd67623e7d2 100644 --- a/js/src/vm/DateTime.cpp +++ b/js/src/vm/DateTime.cpp -@@ -187,6 +187,11 @@ void js::DateTimeInfo::internalResetTimeZone(ResetTimeZoneMode mode) { +@@ -186,6 +186,11 @@ void js::DateTimeInfo::internalResetTimeZone(ResetTimeZoneMode mode) { } } @@ -2110,7 +2116,7 @@ index 0dd93e00a1d206d7117e4404240b49a2f49bb415..6d6b394c5acf7bbd0247569466123075 void js::DateTimeInfo::updateTimeZone() { MOZ_ASSERT(timeZoneStatus_ != TimeZoneStatus::Valid); -@@ -529,10 +534,24 @@ void js::ResetTimeZoneInternal(ResetTimeZoneMode mode) { +@@ -527,10 +532,24 @@ void js::ResetTimeZoneInternal(ResetTimeZoneMode mode) { js::DateTimeInfo::resetTimeZone(mode); } @@ -2135,7 +2141,7 @@ index 0dd93e00a1d206d7117e4404240b49a2f49bb415..6d6b394c5acf7bbd0247569466123075 #if JS_HAS_INTL_API # if defined(XP_WIN) static bool IsOlsonCompatibleWindowsTimeZoneId(std::string_view tz) { -@@ -750,6 +769,15 @@ static bool ReadTimeZoneLink(std::string_view tz, +@@ -748,6 +767,15 @@ static bool ReadTimeZoneLink(std::string_view tz, void js::DateTimeInfo::internalResyncICUDefaultTimeZone() { #if JS_HAS_INTL_API @@ -2151,7 +2157,7 @@ index 0dd93e00a1d206d7117e4404240b49a2f49bb415..6d6b394c5acf7bbd0247569466123075 // 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() { +@@ -759,7 +787,6 @@ void js::DateTimeInfo::internalResyncICUDefaultTimeZone() { if (const char* tzenv = std::getenv("TZ")) { std::string_view tz(tzenv); @@ -2160,7 +2166,7 @@ index 0dd93e00a1d206d7117e4404240b49a2f49bb415..6d6b394c5acf7bbd0247569466123075 # if defined(XP_WIN) diff --git a/js/src/vm/DateTime.h b/js/src/vm/DateTime.h -index 20feae33a82f1cd1262aa3679ad23aa75aaf0b38..4dbb75c0ee2d5079de7dcf04a3505e0dee2719f7 100644 +index fd6d7ae078b8f6b3cc46a4a993a1e044a7128c90..4743094e489122dd9ee8ab9a7a175dd7e928859d 100644 --- a/js/src/vm/DateTime.h +++ b/js/src/vm/DateTime.h @@ -65,6 +65,8 @@ enum class ResetTimeZoneMode : bool { @@ -2172,7 +2178,7 @@ index 20feae33a82f1cd1262aa3679ad23aa75aaf0b38..4dbb75c0ee2d5079de7dcf04a3505e0d /** * 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 { +@@ -225,6 +227,7 @@ class DateTimeInfo { private: // The method below should only be called via js::ResetTimeZoneInternal(). friend void js::ResetTimeZoneInternal(ResetTimeZoneMode); @@ -2180,7 +2186,7 @@ index 20feae33a82f1cd1262aa3679ad23aa75aaf0b38..4dbb75c0ee2d5079de7dcf04a3505e0d static void resetTimeZone(ResetTimeZoneMode mode) { { -@@ -322,6 +325,8 @@ class DateTimeInfo { +@@ -321,6 +324,8 @@ class DateTimeInfo { JS::UniqueChars locale_; JS::UniqueTwoByteChars standardName_; JS::UniqueTwoByteChars daylightSavingsName_; @@ -2189,7 +2195,7 @@ index 20feae33a82f1cd1262aa3679ad23aa75aaf0b38..4dbb75c0ee2d5079de7dcf04a3505e0d #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 -@@ -337,6 +342,8 @@ class DateTimeInfo { +@@ -336,6 +341,8 @@ class DateTimeInfo { void internalResetTimeZone(ResetTimeZoneMode mode); @@ -2249,7 +2255,7 @@ index dac899f7558b26d6848da8b98ed8a93555c8751a..2a07d67fa1c2840b25085566e84dc3b2 // No boxes to return return; diff --git a/layout/base/PresShell.cpp b/layout/base/PresShell.cpp -index f984d2e9bdecf0729f53e011032536fce44e317e..f2f27b01735a6785b4ecf98cea2c34221fbd08a4 100644 +index bd8cfa12fa79306b8d41011f2abf4ed40c12c2c4..63c77656c2e7c6c9a4d713ca9561411f304e187e 100644 --- a/layout/base/PresShell.cpp +++ b/layout/base/PresShell.cpp @@ -10896,7 +10896,9 @@ auto PresShell::ComputeActiveness() const -> Activeness { @@ -2264,10 +2270,10 @@ index f984d2e9bdecf0729f53e011032536fce44e317e..f2f27b01735a6785b4ecf98cea2c3422 // 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 ba52d5ab105d898305a06044aac13c60127c4838..19a78564af2cf467caa0c10f1a1e2220e57b3b79 100644 +index 9e5ffc264bbbfa13b0cdb37a5c987074f2d8e8c9..9b7164b10703b48f538ee983b1ef82146876e2bb 100644 --- a/layout/style/GeckoBindings.h +++ b/layout/style/GeckoBindings.h -@@ -634,6 +634,7 @@ float Gecko_MediaFeatures_GetResolution(const mozilla::dom::Document*); +@@ -629,6 +629,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*); @@ -2276,7 +2282,7 @@ index ba52d5ab105d898305a06044aac13c60127c4838..19a78564af2cf467caa0c10f1a1e2220 const mozilla::dom::Document*); mozilla::StylePrefersColorScheme Gecko_MediaFeatures_PrefersColorScheme( diff --git a/layout/style/nsMediaFeatures.cpp b/layout/style/nsMediaFeatures.cpp -index 229a43854e8e5c14b751aad9f143b41cc212fd3f..0cfb5b1ad1e34155eb67659beb867d89d1e06538 100644 +index 581b6da29ba6bc321c549802b8bd5e3364724460..33827a19b46bc4814a0554629cea41e3d566bf8e 100644 --- a/layout/style/nsMediaFeatures.cpp +++ b/layout/style/nsMediaFeatures.cpp @@ -277,11 +277,11 @@ bool Gecko_MediaFeatures_MatchesPlatform(StylePlatform aPlatform) { @@ -2297,10 +2303,10 @@ index 229a43854e8e5c14b751aad9f143b41cc212fd3f..0cfb5b1ad1e34155eb67659beb867d89 bool Gecko_MediaFeatures_PrefersReducedTransparency(const Document* aDocument) { diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js -index c7c6f0ca825a4db6aa9223d3c096e26a2b005c99..88515dcfed1aa1b29194e17bacc960932d30ab89 100644 +index a366fdaeb88daf820734508f7916ec68c70273fd..ebbbe8cee358517a851cfec085738b58c3791421 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js -@@ -4117,7 +4117,9 @@ pref("devtools.f12_enabled", true); +@@ -3968,7 +3968,9 @@ pref("devtools.f12_enabled", true); // doesn't provide a way to lock the pref pref("dom.postMessage.sharedArrayBuffer.bypassCOOP_COEP.insecure.enabled", false); #else @@ -2312,10 +2318,10 @@ index c7c6f0ca825a4db6aa9223d3c096e26a2b005c99..88515dcfed1aa1b29194e17bacc96093 // Whether sites require the open-protocol-handler permission to open a diff --git a/netwerk/base/LoadInfo.cpp b/netwerk/base/LoadInfo.cpp -index ad390f81cebf25511562323261a3174e641deee9..ba1fd4e2089d37ce1851287edac23c754254d33f 100644 +index f7c5829c964217132bbd3b67b961a183df42fb77..cd1006e2234f50facc916f25e996a2b0bc444d0b 100644 --- a/netwerk/base/LoadInfo.cpp +++ b/netwerk/base/LoadInfo.cpp -@@ -630,7 +630,8 @@ LoadInfo::LoadInfo(const LoadInfo& rhs) +@@ -645,7 +645,8 @@ LoadInfo::LoadInfo(const LoadInfo& rhs) mUnstrippedURI(rhs.mUnstrippedURI), mInterceptionInfo(rhs.mInterceptionInfo), mHasInjectedCookieForCookieBannerHandling( @@ -2325,7 +2331,7 @@ index ad390f81cebf25511562323261a3174e641deee9..ba1fd4e2089d37ce1851287edac23c75 LoadInfo::LoadInfo( nsIPrincipal* aLoadingPrincipal, nsIPrincipal* aTriggeringPrincipal, -@@ -2266,4 +2267,16 @@ LoadInfo::SetHasInjectedCookieForCookieBannerHandling( +@@ -2298,4 +2299,16 @@ LoadInfo::SetHasInjectedCookieForCookieBannerHandling( return NS_OK; } @@ -2343,10 +2349,10 @@ index ad390f81cebf25511562323261a3174e641deee9..ba1fd4e2089d37ce1851287edac23c75 + } // namespace mozilla::net diff --git a/netwerk/base/LoadInfo.h b/netwerk/base/LoadInfo.h -index 8e9424a2d2be667aeae53fe322c74e18e879eac4..2be64b8a19ed6f016ece98ca181325765de514fc 100644 +index dace62e98dff10497c0271dac1c010afd3733a67..18e30006978a249ebdacdc8e07ce0b980e9c70ea 100644 --- a/netwerk/base/LoadInfo.h +++ b/netwerk/base/LoadInfo.h -@@ -380,6 +380,8 @@ class LoadInfo final : public nsILoadInfo { +@@ -384,6 +384,8 @@ class LoadInfo final : public nsILoadInfo { nsCOMPtr mInterceptionInfo; bool mHasInjectedCookieForCookieBannerHandling = false; @@ -2356,10 +2362,10 @@ index 8e9424a2d2be667aeae53fe322c74e18e879eac4..2be64b8a19ed6f016ece98ca18132576 // This is exposed solely for testing purposes and should not be used outside of diff --git a/netwerk/base/TRRLoadInfo.cpp b/netwerk/base/TRRLoadInfo.cpp -index e5cbe5e21370218b2bceae79538a95a2b42ddd30..fe8b08cf746084c7b8e1da88bbdd73016f23e2fe 100644 +index 2b9360cd23f1f2009ee2788470c4ff30a2e6e6c1..f6f7ca21ef0509a8751bfa9e08e24219b32a5c3e 100644 --- a/netwerk/base/TRRLoadInfo.cpp +++ b/netwerk/base/TRRLoadInfo.cpp -@@ -817,5 +817,16 @@ TRRLoadInfo::SetHasInjectedCookieForCookieBannerHandling( +@@ -827,5 +827,16 @@ TRRLoadInfo::SetHasInjectedCookieForCookieBannerHandling( return NS_ERROR_NOT_IMPLEMENTED; } @@ -2377,10 +2383,10 @@ index e5cbe5e21370218b2bceae79538a95a2b42ddd30..fe8b08cf746084c7b8e1da88bbdd7301 } // namespace net } // namespace mozilla diff --git a/netwerk/base/nsILoadInfo.idl b/netwerk/base/nsILoadInfo.idl -index 79fdcc5e4da3e86eb0ce7dfe1deb863241fc58ce..72dc81203ea0bed29469a3963dc78d94e2d18cc7 100644 +index f3f8304a1b88ba7b1b7465963a717997d812a2b4..06402586a95efdcc01397837d2cad06b4503f0b7 100644 --- a/netwerk/base/nsILoadInfo.idl +++ b/netwerk/base/nsILoadInfo.idl -@@ -1485,4 +1485,6 @@ interface nsILoadInfo : nsISupports +@@ -1488,4 +1488,6 @@ interface nsILoadInfo : nsISupports * handle a cookie banner. This is only done for top-level requests. */ [infallible] attribute boolean hasInjectedCookieForCookieBannerHandling; @@ -2400,7 +2406,7 @@ index d72dc570dc82ff9d576942b9e7c23d8a74d68049..a5fcddc4b0e53a862e5a77120b4ccff8 /** * Set the status and reason for the forthcoming synthesized response. diff --git a/netwerk/ipc/DocumentLoadListener.cpp b/netwerk/ipc/DocumentLoadListener.cpp -index 60ffce52504bf65b09ad0c8f0012b2b042ea1d42..bfe7616377bc1feff997aa140819a9ce28683c1f 100644 +index 7ce1ef0a864bc5fa6a616170dab03974c62aa8ed..d514ea18fd18d03ddb898636ba34d724d41cfdc2 100644 --- a/netwerk/ipc/DocumentLoadListener.cpp +++ b/netwerk/ipc/DocumentLoadListener.cpp @@ -163,6 +163,7 @@ static auto CreateDocumentLoadInfo(CanonicalBrowsingContext* aBrowsingContext, @@ -2538,7 +2544,7 @@ index 6dfd07d6b676a99993408921de8dea9d561f201d..e3c6794363cd6336effbeac83a179f37 readonly attribute boolean securityCheckDisabled; }; diff --git a/services/settings/Utils.sys.mjs b/services/settings/Utils.sys.mjs -index 7d16f4063ab289eaefbcdf1c4cc9d16d6dba587d..56f40b53f32ffb9b16f7cc19121d8af109565287 100644 +index 697409ab07c5274696b51c5033cb07ca408d5332..4bb56c915535d3578525e82a3309435ad333fba2 100644 --- a/services/settings/Utils.sys.mjs +++ b/services/settings/Utils.sys.mjs @@ -95,7 +95,7 @@ function _isUndefined(value) { @@ -2588,7 +2594,7 @@ 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 f2e7dcf9b3267de0c6b0837fcb5f407f72ea561b..bcbaee5b6218be4101237e48db64ee51971ebf96 100644 +index acea04b6fd130ae60a9ddbd8d5e6ebfcec2d547a..74019bfce26447a8a900b0303f30db42c24325a9 100644 --- a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs +++ b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs @@ -110,6 +110,12 @@ EnterprisePoliciesManager.prototype = { @@ -2633,10 +2639,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 9496efd6688a34905794b9812b6c7a139dfe4171..058417afb5b459247a17da6d44c7ad62a0d79264 100644 +index 72ee99c7341de54f2282e3f2a686d6a33b26ecaf..4a739e7cad294cf809a697da905253adee4e24b1 100644 --- a/toolkit/components/windowwatcher/nsWindowWatcher.cpp +++ b/toolkit/components/windowwatcher/nsWindowWatcher.cpp -@@ -1876,7 +1876,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent( +@@ -1875,7 +1875,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent( // Open a minimal popup. *aIsPopupRequested = true; @@ -2650,7 +2656,7 @@ index 9496efd6688a34905794b9812b6c7a139dfe4171..058417afb5b459247a17da6d44c7ad62 /** diff --git a/toolkit/mozapps/update/UpdateService.sys.mjs b/toolkit/mozapps/update/UpdateService.sys.mjs -index 23fca6cbe6cf1b3e625baf6e94e0c36112986ff2..07e040f75ac1a0ff7150213c7ef26804056e5f9c 100644 +index a0ba7fe61e0449a7302302429993091075950c21..15e89c7d8000e66bbbf97dd0bb00da3e710e5ec0 100644 --- a/toolkit/mozapps/update/UpdateService.sys.mjs +++ b/toolkit/mozapps/update/UpdateService.sys.mjs @@ -3848,6 +3848,8 @@ UpdateService.prototype = { @@ -2663,10 +2669,10 @@ index 23fca6cbe6cf1b3e625baf6e94e0c36112986ff2..07e040f75ac1a0ff7150213c7ef26804 (Cu.isInAutomation || lazy.Marionette.running || diff --git a/toolkit/toolkit.mozbuild b/toolkit/toolkit.mozbuild -index 04453a437873b2e6339cb7e81ee11c2a5bb46bb1..2ce3151b9a97e7b86619109716a6d942b80f58ed 100644 +index d2ccd8748228b04c84754f9a6dce2ca3bf991e47..d3a8ea1d9994f724cd52cecd4d2cd2851b81dee9 100644 --- a/toolkit/toolkit.mozbuild +++ b/toolkit/toolkit.mozbuild -@@ -153,6 +153,7 @@ if CONFIG['ENABLE_WEBDRIVER']: +@@ -154,6 +154,7 @@ if CONFIG['ENABLE_WEBDRIVER']: '/remote', '/testing/firefox-ui', '/testing/marionette', @@ -3238,7 +3244,7 @@ index 9856991ef32f25f51942f8cd664a09bec2192c70..948947a421179e91c51005aeb83ed0d1 ~HeadlessWidget(); bool mEnabled; diff --git a/widget/nsGUIEventIPC.h b/widget/nsGUIEventIPC.h -index 53653511f8d08fd25421a60f9d0df138076b29ff..e8ec8c5df247d56e9dcd235f34c789fb13c4133c 100644 +index a4cd12a151e7a172389affb34adf0a4085e597a5..fb4c340644255b11a15cf5a3587d950ae4f091d7 100644 --- a/widget/nsGUIEventIPC.h +++ b/widget/nsGUIEventIPC.h @@ -234,6 +234,7 @@ struct ParamTraits { diff --git a/browser_patches/firefox/preferences/playwright.cfg b/browser_patches/firefox/preferences/playwright.cfg index 1315c1be8b..6c33bd2545 100644 --- a/browser_patches/firefox/preferences/playwright.cfg +++ b/browser_patches/firefox/preferences/playwright.cfg @@ -305,5 +305,3 @@ pref("extensions.blocklist.enabled", false); // Force Firefox Devtools to open in a separate window. pref("devtools.toolbox.host", "window"); -// Prevent shortcut creation -pref("browser.privacySegmentation.createdShortcut", true); diff --git a/browser_patches/webkit/UPSTREAM_CONFIG.sh b/browser_patches/webkit/UPSTREAM_CONFIG.sh index 1ba01abe16..d72c74d470 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="e50b54c0585e5846b51d94711b75515282bc3bd8" +BASE_REVISION="30884546903f1ba774adb0cbef1adc91c6c53c64" diff --git a/browser_patches/webkit/patches/bootstrap.diff b/browser_patches/webkit/patches/bootstrap.diff index 6e974aef06..b3e9920535 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 24a1fceec610e774bcbdfa769ff4c4667091d74c..1eef686731ede3631be75e35ca846ab6c0954562 100644 +index be40cc1430aaa1d3a2cd5a1675e9180a81eddc37..e7b8a2677a349a6ba5c9f64bbc81bd7210c38900 100644 --- a/Source/JavaScriptCore/CMakeLists.txt +++ b/Source/JavaScriptCore/CMakeLists.txt -@@ -1412,22 +1412,27 @@ set(JavaScriptCore_INSPECTOR_DOMAINS +@@ -1417,22 +1417,27 @@ set(JavaScriptCore_INSPECTOR_DOMAINS ${JAVASCRIPTCORE_DIR}/inspector/protocol/CSS.json ${JAVASCRIPTCORE_DIR}/inspector/protocol/Canvas.json ${JAVASCRIPTCORE_DIR}/inspector/protocol/Console.json @@ -30,11 +30,42 @@ index 24a1fceec610e774bcbdfa769ff4c4667091d74c..1eef686731ede3631be75e35ca846ab6 ${JAVASCRIPTCORE_DIR}/inspector/protocol/Security.json ${JAVASCRIPTCORE_DIR}/inspector/protocol/ServiceWorker.json ${JAVASCRIPTCORE_DIR}/inspector/protocol/Target.json +diff --git a/Source/JavaScriptCore/DerivedSources-input.xcfilelist b/Source/JavaScriptCore/DerivedSources-input.xcfilelist +index 26c7d29ba48583b4f0f3928f4dcc7a07c963d66e..da7fb28277de995cbf586414671839f82526cb83 100644 +--- a/Source/JavaScriptCore/DerivedSources-input.xcfilelist ++++ b/Source/JavaScriptCore/DerivedSources-input.xcfilelist +@@ -98,21 +98,26 @@ $(PROJECT_DIR)/inspector/protocol/CPUProfiler.json + $(PROJECT_DIR)/inspector/protocol/CSS.json + $(PROJECT_DIR)/inspector/protocol/Canvas.json + $(PROJECT_DIR)/inspector/protocol/Console.json ++$(PROJECT_DIR)/inspector/protocol/Dialog.json + $(PROJECT_DIR)/inspector/protocol/DOM.json + $(PROJECT_DIR)/inspector/protocol/DOMDebugger.json + $(PROJECT_DIR)/inspector/protocol/DOMStorage.json + $(PROJECT_DIR)/inspector/protocol/Database.json + $(PROJECT_DIR)/inspector/protocol/Debugger.json ++$(PROJECT_DIR)/inspector/protocol/Emulation.json + $(PROJECT_DIR)/inspector/protocol/GenericTypes.json + $(PROJECT_DIR)/inspector/protocol/Heap.json + $(PROJECT_DIR)/inspector/protocol/IndexedDB.json ++$(PROJECT_DIR)/inspector/protocol/Input.json + $(PROJECT_DIR)/inspector/protocol/Inspector.json + $(PROJECT_DIR)/inspector/protocol/LayerTree.json + $(PROJECT_DIR)/inspector/protocol/Memory.json + $(PROJECT_DIR)/inspector/protocol/Network.json + $(PROJECT_DIR)/inspector/protocol/Page.json ++$(PROJECT_DIR)/inspector/protocol/Playwright.json + $(PROJECT_DIR)/inspector/protocol/Recording.json + $(PROJECT_DIR)/inspector/protocol/Runtime.json ++$(PROJECT_DIR)/inspector/protocol/Screencast.json + $(PROJECT_DIR)/inspector/protocol/ScriptProfiler.json + $(PROJECT_DIR)/inspector/protocol/Security.json + $(PROJECT_DIR)/inspector/protocol/ServiceWorker.json diff --git a/Source/JavaScriptCore/DerivedSources.make b/Source/JavaScriptCore/DerivedSources.make -index f8168a51e02b8845dc636eb91047c3541164c74d..5ced8b2f59afb903c3bdd17b413d87fb10c4334b 100644 +index 155b33b7093256410d7da9f642579ebc60b41bec..ba1e299e467e1e946417b83555797975f3c882c9 100644 --- a/Source/JavaScriptCore/DerivedSources.make +++ b/Source/JavaScriptCore/DerivedSources.make -@@ -299,22 +299,27 @@ INSPECTOR_DOMAINS := \ +@@ -298,22 +298,27 @@ INSPECTOR_DOMAINS := \ $(JavaScriptCore)/inspector/protocol/CSS.json \ $(JavaScriptCore)/inspector/protocol/Canvas.json \ $(JavaScriptCore)/inspector/protocol/Console.json \ @@ -1354,10 +1385,10 @@ index b5e2bb2eb58765ec20392b36bf5ef1ac35857a69..83ac8c3cbc4a57a27e99a48323fe61a9 } diff --git a/Source/JavaScriptCore/inspector/protocol/Playwright.json b/Source/JavaScriptCore/inspector/protocol/Playwright.json new file mode 100644 -index 0000000000000000000000000000000000000000..7f0cca1ec49681971d7dd81b8f29b50aff94a200 +index 0000000000000000000000000000000000000000..8434303f2aad60557f049d33e50245ddebb07599 --- /dev/null +++ b/Source/JavaScriptCore/inspector/protocol/Playwright.json -@@ -0,0 +1,285 @@ +@@ -0,0 +1,300 @@ +{ + "domain": "Playwright", + "availability": ["web"], @@ -1503,6 +1534,21 @@ index 0000000000000000000000000000000000000000..7f0cca1ec49681971d7dd81b8f29b50a + ] + }, + { ++ "name": "takePageScreenshot", ++ "description": "Capture a snapshot of the page.", ++ "parameters": [ ++ { "name": "pageProxyId", "$ref": "PageProxyID", "description": "Unique identifier of the page proxy." }, ++ { "name": "x", "type": "integer", "description": "X coordinate" }, ++ { "name": "y", "type": "integer", "description": "Y coordinate" }, ++ { "name": "width", "type": "integer", "description": "Rectangle width" }, ++ { "name": "height", "type": "integer", "description": "Rectangle height" }, ++ { "name": "omitDeviceScaleFactor", "type": "boolean", "optional": true, "description": "By default, screenshot is inflated by device scale factor to avoid blurry image. This flag disables it." } ++ ], ++ "returns": [ ++ { "name": "dataURL", "type": "string", "description": "Base64-encoded image data (PNG)." } ++ ] ++ }, ++ { + "name": "setIgnoreCertificateErrors", + "description": "Change whether all certificate errors should be ignored.", + "parameters": [ @@ -1941,7 +1987,7 @@ index bcd9e02bc019e17799fe812d7d9a4c7c316b3456..909bbac68574129ea60af831f30de59e rtt = CompactNtpRttToTimeDelta( receive_time_ntp - block.delay_since_last_sr() - block.last_sr()); diff --git a/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj b/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj -index 479aa7c73a659f7b04645e6a76af472e0b1ff8db..498ea23119710ffc4386ece3c92091359d22bf32 100644 +index 6550be991328f094d74b7c5aa709fe8c5d399f54..5810c4fd8a1257aaad612f67ab5a350ae90615de 100644 --- a/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj +++ b/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj @@ -6,6 +6,20 @@ @@ -2040,7 +2086,7 @@ index 479aa7c73a659f7b04645e6a76af472e0b1ff8db..498ea23119710ffc4386ece3c9209135 ); }; /* End PBXProject section */ -@@ -22325,6 +22365,23 @@ +@@ -22326,6 +22366,23 @@ shellPath = /bin/sh; shellScript = "\"${SRCROOT}/Scripts/create-symlink-to-altroot.sh\"\n"; }; @@ -2064,7 +2110,7 @@ index 479aa7c73a659f7b04645e6a76af472e0b1ff8db..498ea23119710ffc4386ece3c9209135 /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ -@@ -24076,6 +24133,9 @@ +@@ -24077,6 +24134,9 @@ 5CDD865E1E43B8B500621E92 /* min_max_operations.c in Sources */, 4189395B242A71F5007FDC41 /* min_video_bitrate_experiment.cc in Sources */, 41B8D8FB28CB85CB00E5FA37 /* missing_mandatory_parameter_cause.cc in Sources */, @@ -2074,7 +2120,7 @@ index 479aa7c73a659f7b04645e6a76af472e0b1ff8db..498ea23119710ffc4386ece3c9209135 4131C387234B957D0028A615 /* moving_average.cc in Sources */, 41FCBB1521B1F7AA00A5DF27 /* moving_average.cc in Sources */, 5CD286101E6A64C90094FDC8 /* moving_max.cc in Sources */, -@@ -24785,6 +24845,11 @@ +@@ -24786,6 +24846,11 @@ target = DDF30D0527C5C003006A526F /* absl */; targetProxy = DD2E76E727C6B69A00F2A74C /* PBXContainerItemProxy */; }; @@ -2086,7 +2132,7 @@ index 479aa7c73a659f7b04645e6a76af472e0b1ff8db..498ea23119710ffc4386ece3c9209135 /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ -@@ -25012,6 +25077,27 @@ +@@ -25013,6 +25078,27 @@ }; name = Production; }; @@ -2114,7 +2160,7 @@ index 479aa7c73a659f7b04645e6a76af472e0b1ff8db..498ea23119710ffc4386ece3c9209135 FB39D0711200ED9200088E69 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 5D7C59C71208C68B001C873E /* DebugRelease.xcconfig */; -@@ -25144,6 +25230,16 @@ +@@ -25145,6 +25231,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Production; }; @@ -2132,10 +2178,10 @@ index 479aa7c73a659f7b04645e6a76af472e0b1ff8db..498ea23119710ffc4386ece3c9209135 isa = XCConfigurationList; buildConfigurations = ( diff --git a/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml b/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml -index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda8f267dd9 100644 +index b9d4024573d25cdd97c8e45e1cf7629cb3a643c7..706e0334ffd49735aa5473777228bc596a64a950 100644 --- a/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml +++ b/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml -@@ -576,6 +576,7 @@ AspectRatioOfImgFromWidthAndHeightEnabled: +@@ -590,6 +590,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. @@ -2143,7 +2189,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda AsyncClipboardAPIEnabled: type: bool status: mature -@@ -586,7 +587,7 @@ AsyncClipboardAPIEnabled: +@@ -600,7 +601,7 @@ AsyncClipboardAPIEnabled: default: false WebKit: "PLATFORM(COCOA) || PLATFORM(GTK)" : true @@ -2152,7 +2198,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda WebCore: default: false -@@ -1832,6 +1833,7 @@ CrossOriginEmbedderPolicyEnabled: +@@ -1863,6 +1864,7 @@ CrossOriginEmbedderPolicyEnabled: WebCore: default: false @@ -2160,7 +2206,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda CrossOriginOpenerPolicyEnabled: type: bool status: stable -@@ -1842,7 +1844,7 @@ CrossOriginOpenerPolicyEnabled: +@@ -1873,7 +1875,7 @@ CrossOriginOpenerPolicyEnabled: WebKitLegacy: default: false WebKit: @@ -2169,7 +2215,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda WebCore: default: false -@@ -1872,7 +1874,7 @@ CustomPasteboardDataEnabled: +@@ -1903,7 +1905,7 @@ CustomPasteboardDataEnabled: WebKitLegacy: default: false WebKit: @@ -2178,7 +2224,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda default: false DNSPrefetchingEnabled: -@@ -1917,6 +1919,7 @@ DOMAudioSessionFullEnabled: +@@ -1948,6 +1950,7 @@ DOMAudioSessionFullEnabled: WebCore: default: false @@ -2186,7 +2232,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda DOMPasteAccessRequestsEnabled: type: bool status: internal -@@ -1928,7 +1931,7 @@ DOMPasteAccessRequestsEnabled: +@@ -1959,7 +1962,7 @@ DOMPasteAccessRequestsEnabled: default: false WebKit: "PLATFORM(IOS) || PLATFORM(MAC) || PLATFORM(GTK) || PLATFORM(VISION)": true @@ -2195,7 +2241,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda WebCore: default: false -@@ -3337,6 +3340,7 @@ InspectorAttachmentSide: +@@ -3380,6 +3383,7 @@ InspectorAttachmentSide: WebKit: default: 0 @@ -2203,7 +2249,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda InspectorStartsAttached: type: bool status: embedder -@@ -3344,7 +3348,7 @@ InspectorStartsAttached: +@@ -3387,7 +3391,7 @@ InspectorStartsAttached: exposed: [ WebKit ] defaultValue: WebKit: @@ -2212,7 +2258,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda InspectorWindowFrame: type: String -@@ -3712,6 +3716,7 @@ LayoutViewportHeightExpansionFactor: +@@ -3755,6 +3759,7 @@ LayoutViewportHeightExpansionFactor: WebCore: default: 0 @@ -2220,7 +2266,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda LazyIframeLoadingEnabled: type: bool status: stable -@@ -3722,9 +3727,9 @@ LazyIframeLoadingEnabled: +@@ -3765,9 +3770,9 @@ LazyIframeLoadingEnabled: WebKitLegacy: default: true WebKit: @@ -2232,7 +2278,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda LazyImageLoadingEnabled: type: bool -@@ -5081,6 +5086,19 @@ PluginsEnabled: +@@ -5113,6 +5118,19 @@ PluginsEnabled: WebCore: default: false @@ -2252,7 +2298,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda PopoverAttributeEnabled: type: bool status: stable -@@ -6746,6 +6764,7 @@ UseCGDisplayListsForDOMRendering: +@@ -6796,6 +6814,7 @@ UseCGDisplayListsForDOMRendering: WebKit: default: true @@ -2260,7 +2306,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda UseGPUProcessForCanvasRenderingEnabled: type: bool status: stable -@@ -6758,7 +6777,7 @@ UseGPUProcessForCanvasRenderingEnabled: +@@ -6808,7 +6827,7 @@ UseGPUProcessForCanvasRenderingEnabled: defaultValue: WebKit: "ENABLE(GPU_PROCESS_BY_DEFAULT)": true @@ -2269,7 +2315,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda default: false UseGPUProcessForDOMRenderingEnabled: -@@ -6800,6 +6819,7 @@ UseGPUProcessForMediaEnabled: +@@ -6850,6 +6869,7 @@ UseGPUProcessForMediaEnabled: "ENABLE(GPU_PROCESS_BY_DEFAULT)": true default: false @@ -2277,7 +2323,7 @@ index ad64fabbc177d6c2ca59e51dd8dffb6c1652a2c3..41e55cc26d9ff0b5b524e6ea130a7dda UseGPUProcessForWebGLEnabled: type: bool status: internal -@@ -6811,7 +6831,7 @@ UseGPUProcessForWebGLEnabled: +@@ -6861,7 +6881,7 @@ UseGPUProcessForWebGLEnabled: default: false WebKit: "ENABLE(GPU_PROCESS_BY_DEFAULT) && ENABLE(GPU_PROCESS_WEBGL_BY_DEFAULT)": true @@ -2309,10 +2355,10 @@ index eea248ca9ab06ddbc55a1ed17bdd334e2ea848ec..f0686b9c4f0a489d78e63c35a612379c #if !defined(ENABLE_TOUCH_ACTION_REGIONS) diff --git a/Source/WTF/wtf/PlatformHave.h b/Source/WTF/wtf/PlatformHave.h -index 529cba6b3087740c7389111b249bd90d4c661126..88f18b1596079569a9b642b86e7b2aaecf11f1ba 100644 +index e14052bc7205ea751e71044e0237c7fb44e92d05..ae8d883861e823aef73181f642e0eb0702c65702 100644 --- a/Source/WTF/wtf/PlatformHave.h +++ b/Source/WTF/wtf/PlatformHave.h -@@ -414,7 +414,7 @@ +@@ -411,7 +411,7 @@ #define HAVE_FOUNDATION_WITH_SAME_SITE_COOKIE_SUPPORT 1 #endif @@ -2321,7 +2367,7 @@ index 529cba6b3087740c7389111b249bd90d4c661126..88f18b1596079569a9b642b86e7b2aae #define HAVE_OS_DARK_MODE_SUPPORT 1 #endif -@@ -1246,7 +1246,8 @@ +@@ -1238,7 +1238,8 @@ #endif #if PLATFORM(MAC) @@ -2332,10 +2378,10 @@ index 529cba6b3087740c7389111b249bd90d4c661126..88f18b1596079569a9b642b86e7b2aae #if !defined(HAVE_LOCKDOWN_MODE_PDF_ADDITIONS) && \ diff --git a/Source/WebCore/DerivedSources.make b/Source/WebCore/DerivedSources.make -index 3563e8ec8c2e3a0b06860c10d98ee966d262e1fb..4c786aaa56f99a96f092a8d837a17f8d0e3df3c3 100644 +index 8e7c95a1f4884ba9a13275df672c98dfc233705a..6bfa17b518b342e637a3569b20f01636ee7e18f3 100644 --- a/Source/WebCore/DerivedSources.make +++ b/Source/WebCore/DerivedSources.make -@@ -1071,6 +1071,10 @@ JS_BINDING_IDLS := \ +@@ -1104,6 +1104,10 @@ JS_BINDING_IDLS := \ $(WebCore)/dom/Slotable.idl \ $(WebCore)/dom/StaticRange.idl \ $(WebCore)/dom/StringCallback.idl \ @@ -2346,7 +2392,7 @@ index 3563e8ec8c2e3a0b06860c10d98ee966d262e1fb..4c786aaa56f99a96f092a8d837a17f8d $(WebCore)/dom/Text.idl \ $(WebCore)/dom/TextDecoder.idl \ $(WebCore)/dom/TextDecoderStream.idl \ -@@ -1634,9 +1638,6 @@ ADDITIONAL_BINDING_IDLS = \ +@@ -1677,9 +1681,6 @@ ADDITIONAL_BINDING_IDLS = \ GestureEvent.idl \ Internals+Additions.idl \ InternalsAdditions.idl \ @@ -2420,10 +2466,10 @@ index 99db9b2a0693bddab0b783b47746460cd0b7ffd9..74cbf2811a6f8dbcf631c8a218ad4a13 set(CSS_VALUE_PLATFORM_DEFINES "HAVE_OS_DARK_MODE_SUPPORT=1") diff --git a/Source/WebCore/SourcesCocoa.txt b/Source/WebCore/SourcesCocoa.txt -index bf513f34fba15a98554914d2e79e07ff68da8f7e..582a65bb7829e91c54f195d6eb921a3aef72ddab 100644 +index 09bbf7edb87d2423485238eb265bb73076848e4f..3c0ff4658e612b4fca148937ff07d6337451f33b 100644 --- a/Source/WebCore/SourcesCocoa.txt +++ b/Source/WebCore/SourcesCocoa.txt -@@ -689,3 +689,9 @@ platform/graphics/angle/GraphicsContextGLANGLE.cpp @no-unify +@@ -688,3 +688,9 @@ platform/graphics/angle/GraphicsContextGLANGLE.cpp @no-unify platform/graphics/cocoa/ANGLEUtilitiesCocoa.cpp @no-unify platform/graphics/cocoa/GraphicsContextGLCocoa.mm @no-unify platform/graphics/cv/GraphicsContextGLCVCocoa.cpp @no-unify @@ -2449,7 +2495,7 @@ index e00e78af085a767842d2b08ca40e71fad7741569..1d7b32818538e08dd308a2b3f4967256 +JSSpeechSynthesisEventInit.cpp +// Playwright: end. diff --git a/Source/WebCore/SourcesWPE.txt b/Source/WebCore/SourcesWPE.txt -index b22d8835c52f1f5584c96d68c70cd62164ee39d4..28b3c9511b773a095bea324886b515c0f51203ab 100644 +index b22d8835c52f1f5584c96d68c70cd62164ee39d4..adcf594fc399b93772c1c962b283bef16d253186 100644 --- a/Source/WebCore/SourcesWPE.txt +++ b/Source/WebCore/SourcesWPE.txt @@ -45,6 +45,8 @@ editing/libwpe/EditorLibWPE.cpp @@ -2461,6 +2507,17 @@ index b22d8835c52f1f5584c96d68c70cd62164ee39d4..28b3c9511b773a095bea324886b515c0 page/linux/ResourceUsageOverlayLinux.cpp page/linux/ResourceUsageThreadLinux.cpp +@@ -70,8 +72,8 @@ platform/graphics/angle/PlatformDisplayANGLE.cpp @no-unify + + platform/graphics/wpe/SystemFontDatabaseWPE.cpp + +-platform/graphics/egl/GLContext.cpp +-platform/graphics/egl/GLContextLibWPE.cpp ++platform/graphics/egl/GLContext.cpp @no-unify ++platform/graphics/egl/GLContextLibWPE.cpp @no-unify + + platform/graphics/gbm/GBMBufferSwapchain.cpp + platform/graphics/gbm/GBMDevice.cpp @@ -91,6 +93,17 @@ platform/text/LocaleICU.cpp platform/unix/LoggingUnix.cpp @@ -2480,10 +2537,10 @@ index b22d8835c52f1f5584c96d68c70cd62164ee39d4..28b3c9511b773a095bea324886b515c0 +JSSpeechSynthesisEventInit.cpp +// Playwright: end. diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj -index fd4ef7a651b0eeca1f2508c0910487113497330b..781d22217c143a0227d29e149198dec45044d7a4 100644 +index edaf3a605d842164841fd5f951b0536069e1d007..f2eb66689071b3918cc6dbb892e00f22b403b697 100644 --- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj +++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj -@@ -6042,6 +6042,13 @@ +@@ -6077,6 +6077,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, ); }; }; @@ -2497,7 +2554,7 @@ index fd4ef7a651b0eeca1f2508c0910487113497330b..781d22217c143a0227d29e149198dec4 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, ); }; }; -@@ -19476,6 +19483,14 @@ +@@ -19588,6 +19595,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 = ""; }; @@ -2512,7 +2569,7 @@ index fd4ef7a651b0eeca1f2508c0910487113497330b..781d22217c143a0227d29e149198dec4 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 = ""; }; -@@ -26817,6 +26832,11 @@ +@@ -27016,6 +27031,11 @@ BC4A5324256055590028C592 /* TextDirectionSubmenuInclusionBehavior.h */, 2D4F96F11A1ECC240098BF88 /* TextIndicator.cpp */, 2D4F96F21A1ECC240098BF88 /* TextIndicator.h */, @@ -2524,7 +2581,7 @@ index fd4ef7a651b0eeca1f2508c0910487113497330b..781d22217c143a0227d29e149198dec4 F48570A42644C76D00C05F71 /* TranslationContextMenuInfo.h */, F4E1965F21F26E4E00285078 /* UndoItem.cpp */, 2ECDBAD521D8906300F00ECD /* UndoItem.h */, -@@ -32990,6 +33010,8 @@ +@@ -33199,6 +33219,8 @@ 29E4D8DF16B0940F00C84704 /* PlatformSpeechSynthesizer.h */, 1AD8F81A11CAB9E900E93E54 /* PlatformStrategies.cpp */, 1AD8F81911CAB9E900E93E54 /* PlatformStrategies.h */, @@ -2533,7 +2590,7 @@ index fd4ef7a651b0eeca1f2508c0910487113497330b..781d22217c143a0227d29e149198dec4 0FD7C21D23CE41E30096D102 /* PlatformWheelEvent.cpp */, 935C476A09AC4D4F00A6AAB4 /* PlatformWheelEvent.h */, BCBB8AB513F1AFB000734DF0 /* PODInterval.h */, -@@ -35522,6 +35544,7 @@ +@@ -35747,6 +35769,7 @@ AD6E71AB1668899D00320C13 /* DocumentSharedObjectPool.h */, 6BDB5DC1227BD3B800919770 /* DocumentStorageAccess.cpp */, 6BDB5DC0227BD3B800919770 /* DocumentStorageAccess.h */, @@ -2541,7 +2598,7 @@ index fd4ef7a651b0eeca1f2508c0910487113497330b..781d22217c143a0227d29e149198dec4 7CE7FA5B1EF882300060C9D6 /* DocumentTouch.cpp */, 7CE7FA591EF882300060C9D6 /* DocumentTouch.h */, A8185F3209765765005826D9 /* DocumentType.cpp */, -@@ -40041,6 +40064,8 @@ +@@ -40349,6 +40372,8 @@ 1AD8F81B11CAB9E900E93E54 /* PlatformStrategies.h in Headers */, 0F7D07331884C56C00B4AF86 /* PlatformTextTrack.h in Headers */, 074E82BB18A69F0E007EF54C /* PlatformTimeRanges.h in Headers */, @@ -2550,7 +2607,7 @@ index fd4ef7a651b0eeca1f2508c0910487113497330b..781d22217c143a0227d29e149198dec4 CDD08ABD277E542600EA3755 /* PlatformTrackConfiguration.h in Headers */, CD1F9B022700323D00617EB6 /* PlatformVideoColorPrimaries.h in Headers */, CD1F9B01270020B700617EB6 /* PlatformVideoColorSpace.h in Headers */, -@@ -41273,6 +41298,7 @@ +@@ -41583,6 +41608,7 @@ 0F54DD081881D5F5003EEDBB /* Touch.h in Headers */, 71B7EE0D21B5C6870031C1EF /* TouchAction.h in Headers */, 0F54DD091881D5F5003EEDBB /* TouchEvent.h in Headers */, @@ -2558,7 +2615,7 @@ index fd4ef7a651b0eeca1f2508c0910487113497330b..781d22217c143a0227d29e149198dec4 0F54DD0A1881D5F5003EEDBB /* TouchList.h in Headers */, 070334D71459FFD5008D8D45 /* TrackBase.h in Headers */, BE88E0C21715CE2600658D98 /* TrackListBase.h in Headers */, -@@ -42363,6 +42389,8 @@ +@@ -42685,6 +42711,8 @@ 2D22830323A8470700364B7E /* CursorMac.mm in Sources */, 5CBD59592280E926002B22AA /* CustomHeaderFields.cpp in Sources */, 07E4BDBF2A3A5FAB000D5509 /* DictationCaretAnimator.cpp in Sources */, @@ -2567,7 +2624,7 @@ index fd4ef7a651b0eeca1f2508c0910487113497330b..781d22217c143a0227d29e149198dec4 7CE6CBFD187F394900D46BF5 /* FormatConverter.cpp in Sources */, 4667EA3E2968D9DA00BAB1E2 /* GameControllerHapticEffect.mm in Sources */, 46FE73D32968E52000B8064C /* GameControllerHapticEngines.mm in Sources */, -@@ -42442,6 +42470,9 @@ +@@ -42764,6 +42792,9 @@ CE88EE262414467B007F29C2 /* TextAlternativeWithRange.mm in Sources */, BE39137129B267F500FA5D4F /* TextTransformCocoa.cpp in Sources */, 51DF6D800B92A18E00C2DC85 /* ThreadCheck.mm in Sources */, @@ -2578,7 +2635,7 @@ index fd4ef7a651b0eeca1f2508c0910487113497330b..781d22217c143a0227d29e149198dec4 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 1436d85fe55e51ea22fef1fcd76a8b8c1eb49d7b..106cd04cc949e84ff2fd22b027e1cc82b80d7b62 100644 +index f42fb0d0074f63e81aebbd24f899cc71a94deb62..454de188434a84c87bdcd298b72970ef8565822c 100644 --- a/Source/WebCore/accessibility/AccessibilityObject.cpp +++ b/Source/WebCore/accessibility/AccessibilityObject.cpp @@ -64,6 +64,7 @@ @@ -2589,7 +2646,7 @@ index 1436d85fe55e51ea22fef1fcd76a8b8c1eb49d7b..106cd04cc949e84ff2fd22b027e1cc82 #include "LocalFrame.h" #include "LocalizedStrings.h" #include "MathMLNames.h" -@@ -3954,9 +3955,14 @@ AccessibilityObjectInclusion AccessibilityObject::defaultObjectInclusion() const +@@ -3950,9 +3951,14 @@ AccessibilityObjectInclusion AccessibilityObject::defaultObjectInclusion() const if (roleValue() == AccessibilityRole::ApplicationDialog) return AccessibilityObjectInclusion::IncludeObject; @@ -2607,10 +2664,10 @@ index 1436d85fe55e51ea22fef1fcd76a8b8c1eb49d7b..106cd04cc949e84ff2fd22b027e1cc82 { AXComputedObjectAttributeCache* attributeCache = nullptr; diff --git a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h -index f70459a8d2e96bc0a54f62f8e3a07001b3d5ced0..32efd121362c11d50fca136ebaa9caf35ae110a8 100644 +index 6bdd79fc280b5c58f041e4a5cc9179cb2e2788d9..db4e4a028e3631b9230d69d8c5287db1143fb013 100644 --- a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h +++ b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h -@@ -170,6 +170,8 @@ namespace WebCore { +@@ -175,6 +175,8 @@ namespace WebCore { macro(DecompressionStreamTransform) \ macro(DelayNode) \ macro(DeprecationReportBody) \ @@ -2620,7 +2677,7 @@ index f70459a8d2e96bc0a54f62f8e3a07001b3d5ced0..32efd121362c11d50fca136ebaa9caf3 macro(DynamicsCompressorNode) \ macro(ElementInternals) \ diff --git a/Source/WebCore/css/query/MediaQueryFeatures.cpp b/Source/WebCore/css/query/MediaQueryFeatures.cpp -index c8cd1e33d513dba6dfe45d22f1f6dbfc43cef47f..9bcfc669bcd1d2ac055922499b0bf43f062c7940 100644 +index 2be61c75b61bc0ef524f2f32c149921dec7e8de1..86ef8f70cbe268f455353be85a0c1259b2a41301 100644 --- a/Source/WebCore/css/query/MediaQueryFeatures.cpp +++ b/Source/WebCore/css/query/MediaQueryFeatures.cpp @@ -370,7 +370,11 @@ const FeatureSchema& forcedColors() @@ -2992,10 +3049,10 @@ index 3a981b5bf5ca0bbf4d1c9f0b125564742cd8cad9..f8fc2ca6700461627933f149c5837075 } // namespace WebCore diff --git a/Source/WebCore/inspector/InspectorInstrumentation.cpp b/Source/WebCore/inspector/InspectorInstrumentation.cpp -index 77762fb85ad8da6d9636fc62ef697df457d22d72..809848bf49fc3e4361a6054c5fad78f25f2b627b 100644 +index 55e1d3bbe88f38a730fae0ab6e4c513508b1c8a6..727f8143f1a07c6e7e605a2c0147ee707d074d93 100644 --- a/Source/WebCore/inspector/InspectorInstrumentation.cpp +++ b/Source/WebCore/inspector/InspectorInstrumentation.cpp -@@ -601,6 +601,12 @@ void InspectorInstrumentation::applyUserAgentOverrideImpl(InstrumentingAgents& i +@@ -598,6 +598,12 @@ void InspectorInstrumentation::applyUserAgentOverrideImpl(InstrumentingAgents& i pageAgent->applyUserAgentOverride(userAgent); } @@ -3008,7 +3065,7 @@ index 77762fb85ad8da6d9636fc62ef697df457d22d72..809848bf49fc3e4361a6054c5fad78f2 void InspectorInstrumentation::applyEmulatedMediaImpl(InstrumentingAgents& instrumentingAgents, AtomString& media) { if (auto* pageAgent = instrumentingAgents.enabledPageAgent()) -@@ -684,6 +690,12 @@ void InspectorInstrumentation::didFailLoadingImpl(InstrumentingAgents& instrumen +@@ -681,6 +687,12 @@ void InspectorInstrumentation::didFailLoadingImpl(InstrumentingAgents& instrumen consoleAgent->didFailLoading(identifier, error); // This should come AFTER resource notification, front-end relies on this. } @@ -3021,7 +3078,7 @@ index 77762fb85ad8da6d9636fc62ef697df457d22d72..809848bf49fc3e4361a6054c5fad78f2 void InspectorInstrumentation::willLoadXHRSynchronouslyImpl(InstrumentingAgents& instrumentingAgents) { if (auto* networkAgent = instrumentingAgents.enabledNetworkAgent()) -@@ -716,20 +728,17 @@ void InspectorInstrumentation::didReceiveScriptResponseImpl(InstrumentingAgents& +@@ -713,20 +725,17 @@ void InspectorInstrumentation::didReceiveScriptResponseImpl(InstrumentingAgents& void InspectorInstrumentation::domContentLoadedEventFiredImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) { @@ -3045,7 +3102,7 @@ index 77762fb85ad8da6d9636fc62ef697df457d22d72..809848bf49fc3e4361a6054c5fad78f2 } void InspectorInstrumentation::frameDetachedFromParentImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) -@@ -812,12 +821,6 @@ void InspectorInstrumentation::frameDocumentUpdatedImpl(InstrumentingAgents& ins +@@ -809,12 +818,6 @@ void InspectorInstrumentation::frameDocumentUpdatedImpl(InstrumentingAgents& ins pageDOMDebuggerAgent->frameDocumentUpdated(frame); } @@ -3058,7 +3115,7 @@ index 77762fb85ad8da6d9636fc62ef697df457d22d72..809848bf49fc3e4361a6054c5fad78f2 void InspectorInstrumentation::frameStartedLoadingImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) { if (frame.isMainFrame()) { -@@ -848,10 +851,10 @@ void InspectorInstrumentation::frameStoppedLoadingImpl(InstrumentingAgents& inst +@@ -845,10 +848,10 @@ void InspectorInstrumentation::frameStoppedLoadingImpl(InstrumentingAgents& inst inspectorPageAgent->frameStoppedLoading(frame); } @@ -3071,7 +3128,7 @@ index 77762fb85ad8da6d9636fc62ef697df457d22d72..809848bf49fc3e4361a6054c5fad78f2 } void InspectorInstrumentation::frameClearedScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) -@@ -866,6 +869,12 @@ void InspectorInstrumentation::accessibilitySettingsDidChangeImpl(InstrumentingA +@@ -863,6 +866,12 @@ void InspectorInstrumentation::accessibilitySettingsDidChangeImpl(InstrumentingA inspectorPageAgent->accessibilitySettingsDidChange(); } @@ -3084,7 +3141,7 @@ index 77762fb85ad8da6d9636fc62ef697df457d22d72..809848bf49fc3e4361a6054c5fad78f2 #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) void InspectorInstrumentation::defaultAppearanceDidChangeImpl(InstrumentingAgents& instrumentingAgents) { -@@ -1054,6 +1063,12 @@ void InspectorInstrumentation::consoleStopRecordingCanvasImpl(InstrumentingAgent +@@ -1051,6 +1060,12 @@ void InspectorInstrumentation::consoleStopRecordingCanvasImpl(InstrumentingAgent canvasAgent->consoleStopRecordingCanvas(context); } @@ -3097,7 +3154,7 @@ index 77762fb85ad8da6d9636fc62ef697df457d22d72..809848bf49fc3e4361a6054c5fad78f2 void InspectorInstrumentation::didOpenDatabaseImpl(InstrumentingAgents& instrumentingAgents, Database& database) { if (auto* databaseAgent = instrumentingAgents.enabledDatabaseAgent()) -@@ -1354,6 +1369,36 @@ void InspectorInstrumentation::renderLayerDestroyedImpl(InstrumentingAgents& ins +@@ -1351,6 +1366,36 @@ void InspectorInstrumentation::renderLayerDestroyedImpl(InstrumentingAgents& ins layerTreeAgent->renderLayerDestroyed(renderLayer); } @@ -3134,7 +3191,7 @@ index 77762fb85ad8da6d9636fc62ef697df457d22d72..809848bf49fc3e4361a6054c5fad78f2 InstrumentingAgents& InspectorInstrumentation::instrumentingAgents(WorkerOrWorkletGlobalScope& globalScope) { return globalScope.inspectorController().m_instrumentingAgents; -@@ -1365,6 +1410,13 @@ InstrumentingAgents& InspectorInstrumentation::instrumentingAgents(Page& page) +@@ -1362,6 +1407,13 @@ InstrumentingAgents& InspectorInstrumentation::instrumentingAgents(Page& page) return page.inspectorController().m_instrumentingAgents.get(); } @@ -3149,7 +3206,7 @@ index 77762fb85ad8da6d9636fc62ef697df457d22d72..809848bf49fc3e4361a6054c5fad78f2 { if (is(context)) diff --git a/Source/WebCore/inspector/InspectorInstrumentation.h b/Source/WebCore/inspector/InspectorInstrumentation.h -index 976fc9aad131795489c8bc2e5ae4bb9f1b730e51..32602f3c919c573ca13149cd52386dc63f84cec1 100644 +index e1c01081c9f6ad3683b1510bda02b9c27d8d0db3..fadc5a9f33aa1aeabe6fe88ad7bff7c866956df9 100644 --- a/Source/WebCore/inspector/InspectorInstrumentation.h +++ b/Source/WebCore/inspector/InspectorInstrumentation.h @@ -31,6 +31,7 @@ @@ -3291,7 +3348,7 @@ index 976fc9aad131795489c8bc2e5ae4bb9f1b730e51..32602f3c919c573ca13149cd52386dc6 static InstrumentingAgents& instrumentingAgents(Page&); static InstrumentingAgents& instrumentingAgents(WorkerOrWorkletGlobalScope&); -@@ -1067,6 +1090,13 @@ inline void InspectorInstrumentation::applyUserAgentOverride(LocalFrame& frame, +@@ -1066,6 +1089,13 @@ inline void InspectorInstrumentation::applyUserAgentOverride(LocalFrame& frame, applyUserAgentOverrideImpl(*agents, userAgent); } @@ -3305,7 +3362,7 @@ index 976fc9aad131795489c8bc2e5ae4bb9f1b730e51..32602f3c919c573ca13149cd52386dc6 inline void InspectorInstrumentation::applyEmulatedMedia(LocalFrame& frame, AtomString& media) { FAST_RETURN_IF_NO_FRONTENDS(void()); -@@ -1169,6 +1199,13 @@ inline void InspectorInstrumentation::didFailLoading(WorkerOrWorkletGlobalScope& +@@ -1168,6 +1198,13 @@ inline void InspectorInstrumentation::didFailLoading(WorkerOrWorkletGlobalScope& didFailLoadingImpl(instrumentingAgents(globalScope), identifier, nullptr, error); } @@ -3319,7 +3376,7 @@ index 976fc9aad131795489c8bc2e5ae4bb9f1b730e51..32602f3c919c573ca13149cd52386dc6 inline void InspectorInstrumentation::continueAfterXFrameOptionsDenied(LocalFrame& frame, ResourceLoaderIdentifier identifier, DocumentLoader& loader, const ResourceResponse& response) { // Treat the same as didReceiveResponse. -@@ -1259,13 +1296,6 @@ inline void InspectorInstrumentation::frameDocumentUpdated(LocalFrame& frame) +@@ -1258,13 +1295,6 @@ inline void InspectorInstrumentation::frameDocumentUpdated(LocalFrame& frame) frameDocumentUpdatedImpl(*agents, frame); } @@ -3333,7 +3390,7 @@ index 976fc9aad131795489c8bc2e5ae4bb9f1b730e51..32602f3c919c573ca13149cd52386dc6 inline void InspectorInstrumentation::frameStartedLoading(LocalFrame& frame) { FAST_RETURN_IF_NO_FRONTENDS(void()); -@@ -1287,11 +1317,11 @@ inline void InspectorInstrumentation::frameStoppedLoading(LocalFrame& frame) +@@ -1286,11 +1316,11 @@ inline void InspectorInstrumentation::frameStoppedLoading(LocalFrame& frame) frameStoppedLoadingImpl(*agents, frame); } @@ -3347,7 +3404,7 @@ index 976fc9aad131795489c8bc2e5ae4bb9f1b730e51..32602f3c919c573ca13149cd52386dc6 } inline void InspectorInstrumentation::frameClearedScheduledNavigation(Frame& frame) -@@ -1307,6 +1337,13 @@ inline void InspectorInstrumentation::accessibilitySettingsDidChange(Page& page) +@@ -1306,6 +1336,13 @@ inline void InspectorInstrumentation::accessibilitySettingsDidChange(Page& page) accessibilitySettingsDidChangeImpl(instrumentingAgents(page)); } @@ -3361,7 +3418,7 @@ index 976fc9aad131795489c8bc2e5ae4bb9f1b730e51..32602f3c919c573ca13149cd52386dc6 #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) inline void InspectorInstrumentation::defaultAppearanceDidChange(Page& page) { -@@ -1688,6 +1725,11 @@ inline void InspectorInstrumentation::performanceMark(ScriptExecutionContext& co +@@ -1687,6 +1724,11 @@ inline void InspectorInstrumentation::performanceMark(ScriptExecutionContext& co performanceMarkImpl(*agents, label, WTFMove(startTime), frame); } @@ -3373,7 +3430,7 @@ index 976fc9aad131795489c8bc2e5ae4bb9f1b730e51..32602f3c919c573ca13149cd52386dc6 inline void InspectorInstrumentation::didRequestAnimationFrame(Document& document, int callbackId) { FAST_RETURN_IF_NO_FRONTENDS(void()); -@@ -1744,6 +1786,42 @@ inline void InspectorInstrumentation::renderLayerDestroyed(Page* page, const Ren +@@ -1743,6 +1785,42 @@ inline void InspectorInstrumentation::renderLayerDestroyed(Page* page, const Ren renderLayerDestroyedImpl(*agents, renderLayer); } @@ -3417,7 +3474,7 @@ index 976fc9aad131795489c8bc2e5ae4bb9f1b730e51..32602f3c919c573ca13149cd52386dc6 { return context ? instrumentingAgents(*context) : nullptr; diff --git a/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp b/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp -index 013473bef1ec4452204b3e686b2dc8dca815c72f..80813bf50fd9a7a5d92b4a137dc07bc1e942d780 100644 +index 30dee14fcf9001418a453f54a4b0bf85976a48ed..d2567ba1fe2baa21ef47b5561781dbcdaf89032d 100644 --- a/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp @@ -61,10 +61,14 @@ @@ -3961,7 +4018,7 @@ index c6ebcc9d7e399a35f71350c9374df0f2107c518b..3bfa03ae7f27d9128fe207c1de1bfea9 // InspectorInstrumentation void willRecalculateStyle(); diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp -index 2c8fa3981b36f9bd53320791c278c67049f9fae8..5e0cf25e376b536e7d1f283441a73a99664401ca 100644 +index 0a015134788986e4b829b887377c976ee2673b6b..e2924cf0d8863281f2a5102e7998e2814361393c 100644 --- a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp @@ -32,19 +32,27 @@ @@ -5506,18 +5563,18 @@ index fe3de3ee1ff4b61f66cc92bc0b9c2136c05769a3..3206e3ae64611c02abcfd6cc2e2a7b6f } // namespace WebCore diff --git a/Source/WebCore/loader/CookieJar.h b/Source/WebCore/loader/CookieJar.h -index 141be33c172d7323a95e99f4fb1e5de75cfa667c..e587ab60d5b3839f43f0139cc8c227422a855275 100644 +index 7efc7c39d4ea689063c3371c9d9f5d25e433b3ae..c18f0b38ef9a22b594b60287d6c205b155bc8bee 100644 --- a/Source/WebCore/loader/CookieJar.h +++ b/Source/WebCore/loader/CookieJar.h -@@ -45,6 +45,7 @@ struct CookieStoreGetOptions; +@@ -46,6 +46,7 @@ struct CookieStoreGetOptions; class NetworkStorageSession; class StorageSessionProvider; struct SameSiteInfo; +class ResourceLoader; - class WEBCORE_EXPORT CookieJar : public RefCounted { + class WEBCORE_EXPORT CookieJar : public RefCounted, public CanMakeWeakPtr { public: -@@ -71,6 +72,9 @@ public: +@@ -77,6 +78,9 @@ public: virtual void clearCache() { } virtual void clearCacheForHost(const String&) { } @@ -5528,10 +5585,10 @@ index 141be33c172d7323a95e99f4fb1e5de75cfa667c..e587ab60d5b3839f43f0139cc8c22742 protected: static SameSiteInfo sameSiteInfo(const Document&, IsForDOMCookieAccess = IsForDOMCookieAccess::No); diff --git a/Source/WebCore/loader/DocumentLoader.cpp b/Source/WebCore/loader/DocumentLoader.cpp -index 49b4ea4d4ec481066d4630036ca8f1ec500ea1df..b61def9309c5bf47c216f77e39cc9ba7317f31ab 100644 +index 5442846cef667a81cf7c08b1d653ee46d66812bb..d4390a1518dae85d067f7808ef0b06a54451c4c5 100644 --- a/Source/WebCore/loader/DocumentLoader.cpp +++ b/Source/WebCore/loader/DocumentLoader.cpp -@@ -750,8 +750,10 @@ void DocumentLoader::willSendRequest(ResourceRequest&& newRequest, const Resourc +@@ -765,8 +765,10 @@ void DocumentLoader::willSendRequest(ResourceRequest&& newRequest, const Resourc if (!didReceiveRedirectResponse) return completionHandler(WTFMove(newRequest)); @@ -5541,8 +5598,8 @@ index 49b4ea4d4ec481066d4630036ca8f1ec500ea1df..b61def9309c5bf47c216f77e39cc9ba7 + InspectorInstrumentation::didCheckNavigationPolicy(protectedFrame.get(), navigationPolicyDecision != NavigationPolicyDecision::ContinueLoad); switch (navigationPolicyDecision) { case NavigationPolicyDecision::IgnoreLoad: - case NavigationPolicyDecision::StopAllLoads: -@@ -1534,8 +1536,6 @@ void DocumentLoader::detachFromFrame() + case NavigationPolicyDecision::LoadWillContinueInAnotherProcess: +@@ -1549,8 +1551,6 @@ void DocumentLoader::detachFromFrame() if (!m_frame) return; @@ -5552,7 +5609,7 @@ index 49b4ea4d4ec481066d4630036ca8f1ec500ea1df..b61def9309c5bf47c216f77e39cc9ba7 } diff --git a/Source/WebCore/loader/DocumentLoader.h b/Source/WebCore/loader/DocumentLoader.h -index 8fc09af3f1e35e4d35db94940c3be6cee801cc2d..2f6d64f64857191b0bbdbba9531acd0eebbc780d 100644 +index 4c9176db0a582a075fb3d68c921dcd960c271e86..3363380982c54cea74bd853e2682068b5e8ea95a 100644 --- a/Source/WebCore/loader/DocumentLoader.h +++ b/Source/WebCore/loader/DocumentLoader.h @@ -187,9 +187,13 @@ public: @@ -5570,10 +5627,10 @@ index 8fc09af3f1e35e4d35db94940c3be6cee801cc2d..2f6d64f64857191b0bbdbba9531acd0e DocumentWriter& writer() const { return m_writer; } diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp -index 6c1b53509ac4ee47e8bd61fa37d83cdca6e58cfc..0cdb89685eecb21088871bbb81e0570fe98813d7 100644 +index e97907da3295916577044fc2d4503bc39e5359b3..22d43a8a2814486dea3e7ac3af4348d3d812bfe9 100644 --- a/Source/WebCore/loader/FrameLoader.cpp +++ b/Source/WebCore/loader/FrameLoader.cpp -@@ -1214,6 +1214,7 @@ void FrameLoader::loadInSameDocument(URL url, RefPtr stat +@@ -1219,6 +1219,7 @@ void FrameLoader::loadInSameDocument(URL url, RefPtr stat } m_client->dispatchDidNavigateWithinPage(); @@ -5581,7 +5638,7 @@ index 6c1b53509ac4ee47e8bd61fa37d83cdca6e58cfc..0cdb89685eecb21088871bbb81e0570f m_frame.document()->statePopped(stateObject ? stateObject.releaseNonNull() : SerializedScriptValue::nullValue()); m_client->dispatchDidPopStateWithinPage(); -@@ -1663,6 +1664,8 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t +@@ -1675,6 +1676,8 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t const String& httpMethod = loader->request().httpMethod(); if (shouldPerformFragmentNavigation(isFormSubmission, httpMethod, policyChecker().loadType(), newURL)) { @@ -5590,7 +5647,7 @@ index 6c1b53509ac4ee47e8bd61fa37d83cdca6e58cfc..0cdb89685eecb21088871bbb81e0570f RefPtr oldDocumentLoader = m_documentLoader; NavigationAction action { *m_frame.document(), loader->request(), InitiatedByMainFrame::Unknown, policyChecker().loadType(), isFormSubmission }; action.setIsRequestFromClientOrUserInput(loader->isRequestFromClientOrUserInput()); -@@ -1695,7 +1698,9 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t +@@ -1707,7 +1710,9 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t } RELEASE_ASSERT(!isBackForwardLoadType(policyChecker().loadType()) || history().provisionalItem()); @@ -5600,7 +5657,7 @@ index 6c1b53509ac4ee47e8bd61fa37d83cdca6e58cfc..0cdb89685eecb21088871bbb81e0570f continueLoadAfterNavigationPolicy(request, formState.get(), navigationPolicyDecision, allowNavigationToInvalidURL); completionHandler(); }, PolicyDecisionMode::Asynchronous); -@@ -2948,14 +2953,19 @@ String FrameLoader::userAgent(const URL& url) const +@@ -2967,14 +2972,19 @@ String FrameLoader::userAgent(const URL& url) const String FrameLoader::navigatorPlatform() const { @@ -5622,7 +5679,7 @@ index 6c1b53509ac4ee47e8bd61fa37d83cdca6e58cfc..0cdb89685eecb21088871bbb81e0570f } void FrameLoader::dispatchOnloadEvents() -@@ -3377,6 +3387,8 @@ void FrameLoader::receivedMainResourceError(const ResourceError& error) +@@ -3401,6 +3411,8 @@ void FrameLoader::receivedMainResourceError(const ResourceError& error) checkCompleted(); if (m_frame.page()) checkLoadComplete(); @@ -5631,7 +5688,7 @@ index 6c1b53509ac4ee47e8bd61fa37d83cdca6e58cfc..0cdb89685eecb21088871bbb81e0570f } void FrameLoader::continueFragmentScrollAfterNavigationPolicy(const ResourceRequest& request, const SecurityOrigin* requesterOrigin, bool shouldContinue) -@@ -4207,9 +4219,6 @@ String FrameLoader::referrer() const +@@ -4236,9 +4248,6 @@ String FrameLoader::referrer() const void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() { @@ -5641,7 +5698,7 @@ index 6c1b53509ac4ee47e8bd61fa37d83cdca6e58cfc..0cdb89685eecb21088871bbb81e0570f Vector> worlds; ScriptController::getAllWorlds(worlds); for (auto& world : worlds) -@@ -4218,13 +4227,13 @@ void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() +@@ -4247,13 +4256,13 @@ void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() void FrameLoader::dispatchDidClearWindowObjectInWorld(DOMWrapperWorld& world) { @@ -5674,7 +5731,7 @@ 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 4e222e82af9d35ccff71c4ac758b430ada2d512d..a219dabfd7ba5a7b5989fac9029058d41e7b4bbd 100644 +index f2fd6e524daa7ec31bddf7b692777dccd1f62585..8252ebf7fdf96b44db3ea6f9c47a9ce8180ea3bd 100644 --- a/Source/WebCore/loader/NavigationScheduler.cpp +++ b/Source/WebCore/loader/NavigationScheduler.cpp @@ -682,7 +682,7 @@ void NavigationScheduler::startTimer() @@ -5687,7 +5744,7 @@ index 4e222e82af9d35ccff71c4ac758b430ada2d512d..a219dabfd7ba5a7b5989fac9029058d4 } diff --git a/Source/WebCore/loader/PolicyChecker.cpp b/Source/WebCore/loader/PolicyChecker.cpp -index 40b6c39d9997acfadeb2668e443358b1d3f6ad07..c935a647248619a5c38a9538d8806292ae647b2f 100644 +index 900ac50c29df6cfdbb9d66edee57eb2e213a2b92..fc8ed6120a4f7a030af0c3d55706f582ef7144dd 100644 --- a/Source/WebCore/loader/PolicyChecker.cpp +++ b/Source/WebCore/loader/PolicyChecker.cpp @@ -43,6 +43,7 @@ @@ -5699,7 +5756,7 @@ index 40b6c39d9997acfadeb2668e443358b1d3f6ad07..c935a647248619a5c38a9538d8806292 #include "LocalFrame.h" #include "LocalFrameLoaderClient.h" diff --git a/Source/WebCore/loader/ProgressTracker.cpp b/Source/WebCore/loader/ProgressTracker.cpp -index 258b45354b3f4c1854373c3cd2679d379fa60302..79c7abd308276ffec67686b145edc422c382e5db 100644 +index 273f7815c6fd1553b78a117c78eaa460085d1272..ccf6e96daebad01d5bfabe5062d29c3a1bcf6043 100644 --- a/Source/WebCore/loader/ProgressTracker.cpp +++ b/Source/WebCore/loader/ProgressTracker.cpp @@ -160,6 +160,8 @@ void ProgressTracker::progressCompleted(LocalFrame& frame) @@ -5721,10 +5778,10 @@ index 258b45354b3f4c1854373c3cd2679d379fa60302..79c7abd308276ffec67686b145edc422 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 3497de3aab88b96893895e6c7b6baff9ca499d47..6787a76f4bbfb845175407f9558f907bde91b44c 100644 +index cc2916050d7bff5290dd8079d5b77c68c6dd4649..94622e922f4624a4d07896a9983901e4c91d1a79 100644 --- a/Source/WebCore/loader/cache/CachedResourceLoader.cpp +++ b/Source/WebCore/loader/cache/CachedResourceLoader.cpp -@@ -1033,8 +1033,11 @@ ResourceErrorOr> CachedResourceLoader::requ +@@ -1025,8 +1025,11 @@ ResourceErrorOr> CachedResourceLoader::requ request.updateReferrerPolicy(document() ? document()->referrerPolicy() : ReferrerPolicy::Default); @@ -5738,7 +5795,7 @@ index 3497de3aab88b96893895e6c7b6baff9ca499d47..6787a76f4bbfb845175407f9558f907b auto& page = *frame.page(); -@@ -1688,8 +1691,9 @@ Vector> CachedResourceLoader::allCachedSVGImages() const +@@ -1678,8 +1681,9 @@ Vector> CachedResourceLoader::allCachedSVGImages() const ResourceErrorOr> CachedResourceLoader::preload(CachedResource::Type type, CachedResourceRequest&& request) { @@ -5751,7 +5808,7 @@ index 3497de3aab88b96893895e6c7b6baff9ca499d47..6787a76f4bbfb845175407f9558f907b ASSERT(m_document); if (request.charset().isEmpty() && m_document && (type == CachedResource::Type::Script || type == CachedResource::Type::CSSStyleSheet)) diff --git a/Source/WebCore/page/ChromeClient.h b/Source/WebCore/page/ChromeClient.h -index 4dae0fda41f9a8de7917b031f3d2943355f934d3..6ee544226cbc1448623fc7cc9553edb7f83d5bbc 100644 +index de70dc20b757150c82c5327fc151742331f1f305..e7eba51632049fe0264faf10837491873bd78286 100644 --- a/Source/WebCore/page/ChromeClient.h +++ b/Source/WebCore/page/ChromeClient.h @@ -325,7 +325,7 @@ public: @@ -5764,7 +5821,7 @@ index 4dae0fda41f9a8de7917b031f3d2943355f934d3..6ee544226cbc1448623fc7cc9553edb7 #if ENABLE(INPUT_TYPE_COLOR) diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp -index be034224c6a9fc224433f87c8de76327b1d4718c..d10edcf00a8256410dcf74e65e6e93ded9ca434b 100644 +index f34a453825002e7e176ab07f83d38cee4fe312d9..5bf4e02dfe2f77593199615afb5ff4777d44fb73 100644 --- a/Source/WebCore/page/EventHandler.cpp +++ b/Source/WebCore/page/EventHandler.cpp @@ -145,6 +145,7 @@ @@ -5862,7 +5919,7 @@ index be034224c6a9fc224433f87c8de76327b1d4718c..d10edcf00a8256410dcf74e65e6e93de return swallowEvent; } -@@ -4242,7 +4242,14 @@ bool EventHandler::handleDrag(const MouseEventWithHitTestResults& event, CheckDr +@@ -4246,7 +4246,14 @@ bool EventHandler::handleDrag(const MouseEventWithHitTestResults& event, CheckDr if (!m_frame.document()) return false; @@ -5878,7 +5935,7 @@ index be034224c6a9fc224433f87c8de76327b1d4718c..d10edcf00a8256410dcf74e65e6e93de auto hasNonDefaultPasteboardData = HasNonDefaultPasteboardData::No; if (dragState().shouldDispatchEvents) { -@@ -4927,11 +4934,6 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) +@@ -4931,11 +4938,6 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) document.page()->pointerCaptureController().dispatchEventForTouchAtIndex( *touchTarget, cancelEvent, index, !index, *document.windowProxy(), { 0, 0 }); } @@ -5890,7 +5947,7 @@ index be034224c6a9fc224433f87c8de76327b1d4718c..d10edcf00a8256410dcf74e65e6e93de #endif if (&m_frame != targetFrame) { -@@ -4973,6 +4975,9 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) +@@ -4977,6 +4979,9 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) changedTouches[pointState].m_touches->append(WTFMove(touch)); changedTouches[pointState].m_targets.add(touchTarget); } @@ -5901,7 +5958,7 @@ index be034224c6a9fc224433f87c8de76327b1d4718c..d10edcf00a8256410dcf74e65e6e93de m_touchPressed = touches->length() > 0; if (allTouchReleased) diff --git a/Source/WebCore/page/EventHandler.h b/Source/WebCore/page/EventHandler.h -index 7ab1b7513cf878700ee960bbbbf76dda37fcb16e..d186f310bf01de85e19f540b01bfe133a2456c6f 100644 +index 13dd8153250bb5c4a26fe8ed5411b6ff8b8694b2..46ae6da891196750275b2eff404117712a190903 100644 --- a/Source/WebCore/page/EventHandler.h +++ b/Source/WebCore/page/EventHandler.h @@ -138,9 +138,7 @@ public: @@ -6039,7 +6096,7 @@ index a6537109eeecdeb6d541fff3469c3c8f3a061ca2..d8fa86589e6d0ddcb3f84f2d6afed722 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 7812be88553edb2a6764694f12954bc9cb78b8f4..db7c1de434cb119e14cc52bcb822a8513c3fdbe3 100644 +index 0efefdcb28dd9083c99b16e719ea100fb1352dcf..8400b6cf505342727cca716330f87807d5be9e30 100644 --- a/Source/WebCore/page/LocalFrame.cpp +++ b/Source/WebCore/page/LocalFrame.cpp @@ -40,6 +40,7 @@ @@ -6066,7 +6123,7 @@ index 7812be88553edb2a6764694f12954bc9cb78b8f4..db7c1de434cb119e14cc52bcb822a851 #include "NodeTraversal.h" #include "Page.h" #include "ProcessWarming.h" -@@ -176,6 +179,7 @@ LocalFrame::LocalFrame(Page& page, UniqueRef&& frameLoad +@@ -173,6 +176,7 @@ LocalFrame::LocalFrame(Page& page, UniqueRef&& frameLoad void LocalFrame::init() { @@ -6074,7 +6131,7 @@ index 7812be88553edb2a6764694f12954bc9cb78b8f4..db7c1de434cb119e14cc52bcb822a851 m_loader->init(); } -@@ -379,7 +383,7 @@ void LocalFrame::orientationChanged() +@@ -381,7 +385,7 @@ void LocalFrame::orientationChanged() IntDegrees LocalFrame::orientation() const { if (auto* page = this->page()) @@ -6083,7 +6140,7 @@ index 7812be88553edb2a6764694f12954bc9cb78b8f4..db7c1de434cb119e14cc52bcb822a851 return 0; } #endif // ENABLE(ORIENTATION_EVENTS) -@@ -1181,6 +1185,362 @@ DataDetectionResultsStorage& LocalFrame::dataDetectionResults() +@@ -1182,6 +1186,362 @@ DataDetectionResultsStorage& LocalFrame::dataDetectionResults() #endif @@ -6447,7 +6504,7 @@ index 7812be88553edb2a6764694f12954bc9cb78b8f4..db7c1de434cb119e14cc52bcb822a851 #undef FRAME_RELEASE_LOG_ERROR diff --git a/Source/WebCore/page/LocalFrame.h b/Source/WebCore/page/LocalFrame.h -index 7b01d4a4d92ed03bc0f14a2a638ba49499d05440..de7ff66522be6957efd605e7fdb4046607273aa9 100644 +index 95458a16c7d0fd5e30ef8db0b84f8ff951a95e0b..292763c72ebf7f41b0447ba09117c28e54f621bc 100644 --- a/Source/WebCore/page/LocalFrame.h +++ b/Source/WebCore/page/LocalFrame.h @@ -28,8 +28,10 @@ @@ -6509,7 +6566,7 @@ index 7b01d4a4d92ed03bc0f14a2a638ba49499d05440..de7ff66522be6957efd605e7fdb40466 void selfOnlyRef(); void selfOnlyDeref(); -@@ -314,7 +316,6 @@ private: +@@ -315,7 +317,6 @@ private: #if ENABLE(DATA_DETECTION) std::unique_ptr m_dataDetectionResults; #endif @@ -6517,7 +6574,7 @@ index 7b01d4a4d92ed03bc0f14a2a638ba49499d05440..de7ff66522be6957efd605e7fdb40466 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); -@@ -322,6 +323,7 @@ private: +@@ -323,6 +324,7 @@ private: enum class ShouldFindRootEditableElement : bool { No, Yes }; Node* qualifyingNodeAtViewportLocation(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation, const NodeQualifier&, ShouldApproximate, ShouldFindRootEditableElement = ShouldFindRootEditableElement::Yes); @@ -6526,10 +6583,10 @@ index 7b01d4a4d92ed03bc0f14a2a638ba49499d05440..de7ff66522be6957efd605e7fdb40466 ViewportArguments m_viewportArguments; diff --git a/Source/WebCore/page/Page.cpp b/Source/WebCore/page/Page.cpp -index e2974d0f1eed92b889b136fd1b0983c4cfa71c9e..caec5653de0fff9d0f85ab814524cb3868458e54 100644 +index 39ffd9497dc9ef93f770f3eb8d2a492b59f76af1..fce232374cc127be90a273563f4838a56f8e85c7 100644 --- a/Source/WebCore/page/Page.cpp +++ b/Source/WebCore/page/Page.cpp -@@ -519,6 +519,45 @@ void Page::setOverrideViewportArguments(const std::optional& +@@ -526,6 +526,45 @@ void Page::setOverrideViewportArguments(const std::optional& document->updateViewportArguments(); } @@ -6575,7 +6632,7 @@ index e2974d0f1eed92b889b136fd1b0983c4cfa71c9e..caec5653de0fff9d0f85ab814524cb38 ScrollingCoordinator* Page::scrollingCoordinator() { if (!m_scrollingCoordinator && m_settings->scrollingCoordinatorEnabled()) { -@@ -3718,6 +3757,26 @@ void Page::setUseDarkAppearanceOverride(std::optional valueOverride) +@@ -3753,6 +3792,26 @@ void Page::setUseDarkAppearanceOverride(std::optional valueOverride) #endif } @@ -6603,10 +6660,10 @@ index e2974d0f1eed92b889b136fd1b0983c4cfa71c9e..caec5653de0fff9d0f85ab814524cb38 { if (insets == m_fullscreenInsets) diff --git a/Source/WebCore/page/Page.h b/Source/WebCore/page/Page.h -index 1956781b21ddb0ceab3d5d46120e6b99ec93a5a5..9a340b30628ff4b3fb4a6bae12d24838d58da2e6 100644 +index 0941d8324e74a84b140441863c13bcabdc411c0e..eb91d294bacdb9e9078f8c5d53ff76db6165e9d4 100644 --- a/Source/WebCore/page/Page.h +++ b/Source/WebCore/page/Page.h -@@ -314,6 +314,9 @@ public: +@@ -309,6 +309,9 @@ public: const std::optional& overrideViewportArguments() const { return m_overrideViewportArguments; } WEBCORE_EXPORT void setOverrideViewportArguments(const std::optional&); @@ -6616,7 +6673,7 @@ index 1956781b21ddb0ceab3d5d46120e6b99ec93a5a5..9a340b30628ff4b3fb4a6bae12d24838 static void refreshPlugins(bool reload); WEBCORE_EXPORT PluginData& pluginData(); void clearPluginData(); -@@ -375,6 +378,10 @@ public: +@@ -370,6 +373,10 @@ public: #if ENABLE(DRAG_SUPPORT) DragController& dragController() { return m_dragController.get(); } const DragController& dragController() const { return m_dragController.get(); } @@ -6627,7 +6684,7 @@ index 1956781b21ddb0ceab3d5d46120e6b99ec93a5a5..9a340b30628ff4b3fb4a6bae12d24838 #endif FocusController& focusController() const { return *m_focusController; } #if ENABLE(CONTEXT_MENUS) -@@ -545,6 +552,10 @@ public: +@@ -539,6 +546,10 @@ public: WEBCORE_EXPORT void effectiveAppearanceDidChange(bool useDarkAppearance, bool useElevatedUserInterfaceLevel); bool defaultUseDarkAppearance() const { return m_useDarkAppearance; } void setUseDarkAppearanceOverride(std::optional); @@ -6638,7 +6695,7 @@ index 1956781b21ddb0ceab3d5d46120e6b99ec93a5a5..9a340b30628ff4b3fb4a6bae12d24838 #if ENABLE(TEXT_AUTOSIZING) float textAutosizingWidth() const { return m_textAutosizingWidth; } -@@ -981,6 +992,11 @@ public: +@@ -976,6 +987,11 @@ public: WEBCORE_EXPORT void setInteractionRegionsEnabled(bool); #endif @@ -6650,7 +6707,7 @@ index 1956781b21ddb0ceab3d5d46120e6b99ec93a5a5..9a340b30628ff4b3fb4a6bae12d24838 #if ENABLE(DEVICE_ORIENTATION) && PLATFORM(IOS_FAMILY) DeviceOrientationUpdateProvider* deviceOrientationUpdateProvider() const { return m_deviceOrientationUpdateProvider.get(); } #endif -@@ -1118,6 +1134,9 @@ private: +@@ -1115,6 +1131,9 @@ private: #if ENABLE(DRAG_SUPPORT) UniqueRef m_dragController; @@ -6660,7 +6717,7 @@ index 1956781b21ddb0ceab3d5d46120e6b99ec93a5a5..9a340b30628ff4b3fb4a6bae12d24838 #endif std::unique_ptr m_focusController; #if ENABLE(CONTEXT_MENUS) -@@ -1199,6 +1218,8 @@ private: +@@ -1195,6 +1214,8 @@ private: bool m_useElevatedUserInterfaceLevel { false }; bool m_useDarkAppearance { false }; std::optional m_useDarkAppearanceOverride; @@ -6669,7 +6726,7 @@ index 1956781b21ddb0ceab3d5d46120e6b99ec93a5a5..9a340b30628ff4b3fb4a6bae12d24838 #if ENABLE(TEXT_AUTOSIZING) float m_textAutosizingWidth { 0 }; -@@ -1373,6 +1394,11 @@ private: +@@ -1370,6 +1391,11 @@ private: #endif std::optional m_overrideViewportArguments; @@ -7072,7 +7129,7 @@ index 4aa768e1c2a8da63004f34ccbf0d347b2484c37b..515c99ed21cde6c157bb9a1378a78372 #endif diff --git a/Source/WebCore/platform/PlatformScreen.cpp b/Source/WebCore/platform/PlatformScreen.cpp -index ba50b688ab6d0bae5d199fa0bac4b7e2004baf81..f27481c6039ed2450209179b4ed08d9d09842cd3 100644 +index 8c8bc5f6060e10b59cacc92765542c85407f3c1b..fad09775881af6d15e16256a90e3c89d2b968d16 100644 --- a/Source/WebCore/platform/PlatformScreen.cpp +++ b/Source/WebCore/platform/PlatformScreen.cpp @@ -25,6 +25,7 @@ @@ -7081,12 +7138,12 @@ index ba50b688ab6d0bae5d199fa0bac4b7e2004baf81..f27481c6039ed2450209179b4ed08d9d #include "PlatformScreen.h" +#include "DeprecatedGlobalSettings.h" - #if PLATFORM(COCOA) + #if PLATFORM(COCOA) || PLATFORM(GTK) @@ -72,3 +73,25 @@ const ScreenData* screenData(PlatformDisplayID screenDisplayID) } // namespace WebCore - #endif // PLATFORM(COCOA) + #endif // PLATFORM(COCOA) || PLATFORM(GTK) + +#if ENABLE(TOUCH_EVENTS) +namespace WebCore { @@ -7110,10 +7167,10 @@ index ba50b688ab6d0bae5d199fa0bac4b7e2004baf81..f27481c6039ed2450209179b4ed08d9d +} // namespace WebCore +#endif diff --git a/Source/WebCore/platform/PlatformScreen.h b/Source/WebCore/platform/PlatformScreen.h -index 44799e0b2a93cbcf25f4315d62a3d95896c02f3d..ec593ea30f6e45c355f5d6806290f2462729ed8f 100644 +index efa9c30953573d88c18e28110e5f86be339656fb..d6cc2afe8026ceebf80d2b0acac478cb7a923b12 100644 --- a/Source/WebCore/platform/PlatformScreen.h +++ b/Source/WebCore/platform/PlatformScreen.h -@@ -151,15 +151,20 @@ WEBCORE_EXPORT float screenScaleFactor(UIScreen * = nullptr); +@@ -150,13 +150,18 @@ WEBCORE_EXPORT float screenScaleFactor(UIScreen * = nullptr); #endif #if ENABLE(TOUCH_EVENTS) @@ -7135,8 +7192,6 @@ index 44799e0b2a93cbcf25f4315d62a3d95896c02f3d..ec593ea30f6e45c355f5d6806290f246 + } // namespace WebCore - - namespace WTF { diff --git a/Source/WebCore/platform/adwaita/ScrollbarThemeAdwaita.cpp b/Source/WebCore/platform/adwaita/ScrollbarThemeAdwaita.cpp index 62df6fb981bd1543adff14632408979a804217f3..b78a9effdcf473d7af71684a2039ef3e7141b9b9 100644 --- a/Source/WebCore/platform/adwaita/ScrollbarThemeAdwaita.cpp @@ -7579,10 +7634,10 @@ index 62ff097c43f0fcf0ad4f25376da113de2f1754c6..49923d505d6d41c38520431a92dc905b { switch (val) { diff --git a/Source/WebCore/platform/gtk/PlatformScreenGtk.cpp b/Source/WebCore/platform/gtk/PlatformScreenGtk.cpp -index d16c5990bd872a76b9ea01a25a1a0f8035977cb2..b438aaa1063d61321f16942e47ecc85b6927e071 100644 +index 9049189fde4e939feff4db303b0aa25eadeb7180..efa236e9b8330456889fb4c888ba5f3905d7e557 100644 --- a/Source/WebCore/platform/gtk/PlatformScreenGtk.cpp +++ b/Source/WebCore/platform/gtk/PlatformScreenGtk.cpp -@@ -225,7 +225,7 @@ bool screenSupportsExtendedColor(Widget*) +@@ -117,7 +117,7 @@ bool screenSupportsExtendedColor(Widget*) } #if ENABLE(TOUCH_EVENTS) @@ -7591,7 +7646,7 @@ index d16c5990bd872a76b9ea01a25a1a0f8035977cb2..b438aaa1063d61321f16942e47ecc85b { auto* display = gdk_display_get_default(); if (!display) -@@ -235,7 +235,7 @@ bool screenHasTouchDevice() +@@ -127,7 +127,7 @@ bool screenHasTouchDevice() return seat ? gdk_seat_get_capabilities(seat) & GDK_SEAT_CAPABILITY_TOUCH : true; } @@ -8402,7 +8457,7 @@ index 423a2f825e7c3090fbdab8d2963ad1b45b71af9a..dfa43d953dda13ba9ab6a928bc6c7b27 WEBCORE_EXPORT void send(CurlStreamID, UniqueArray&&, size_t); diff --git a/Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp b/Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp -index b96b847f80d6600830697ab5f334f657aab79a30..1b89eed6c572a04041354af3deabc3954482161d 100644 +index 2d71778577d753be47359c7daf4a72d897914024..8f024d481bdbf9c8c870321a4528e110bef7f5b1 100644 --- a/Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp +++ b/Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp @@ -141,6 +141,12 @@ void NetworkStorageSession::setCookieAcceptPolicy(CookieAcceptPolicy policy) con @@ -9072,10 +9127,10 @@ index 1d8488e0d36288e09cd5662bd7f770ade95dfee3..dee07f87b47d62d4ef8ede45824bdb2f WorkerOrWorkletGlobalScope& m_globalScope; }; diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp -index 2feb2c86099e21d95b9ceacc98c1f24047ae96a1..f025f529625e254db85fa6444f5a45e56c636bc0 100644 +index 4206bd668f41c059cf20ec5513274418a573740b..cc6b604eff4c3b73b6b8ff9075014b8ca2fc6b30 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp -@@ -93,6 +93,8 @@ +@@ -95,6 +95,8 @@ #if PLATFORM(COCOA) #include @@ -9084,7 +9139,7 @@ index 2feb2c86099e21d95b9ceacc98c1f24047ae96a1..f025f529625e254db85fa6444f5a45e5 #endif #if ENABLE(APPLE_PAY_REMOTE_UI) -@@ -1074,6 +1076,14 @@ void NetworkConnectionToWebProcess::clearPageSpecificData(PageIdentifier pageID) +@@ -1076,6 +1078,14 @@ void NetworkConnectionToWebProcess::clearPageSpecificData(PageIdentifier pageID) #endif } @@ -9100,10 +9155,10 @@ index 2feb2c86099e21d95b9ceacc98c1f24047ae96a1..f025f529625e254db85fa6444f5a45e5 void NetworkConnectionToWebProcess::removeStorageAccessForFrame(FrameIdentifier frameID, PageIdentifier pageID) { diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h -index 6cdb62c688cfa4b236532bf67e170589e5aafb44..fe833d3b25341ad55d31bb0ad9c884b8c0468d20 100644 +index 2bf91f53c3775f8c961cf7f14e000681231cbe5e..2f5ed58455deda2d55a198eb7d7bc204c3857153 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h -@@ -326,6 +326,8 @@ private: +@@ -328,6 +328,8 @@ private: void clearPageSpecificData(WebCore::PageIdentifier); @@ -9113,10 +9168,10 @@ index 6cdb62c688cfa4b236532bf67e170589e5aafb44..fe833d3b25341ad55d31bb0ad9c884b8 void removeStorageAccessForFrame(WebCore::FrameIdentifier, WebCore::PageIdentifier); diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in -index b2a9a1c442c28d46d1d5eb232e723be9d1ed5f97..64d1adee2004b879c07139e5540e5a483145f25b 100644 +index 2367ada0de191766c89ef2855a4f30a66ebe328a..b0e7951d30cc087c3bfb307c707779a5bb550e32 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in -@@ -70,6 +70,8 @@ messages -> NetworkConnectionToWebProcess LegacyReceiver { +@@ -71,6 +71,8 @@ messages -> NetworkConnectionToWebProcess LegacyReceiver { ClearPageSpecificData(WebCore::PageIdentifier pageID); @@ -9126,10 +9181,10 @@ index b2a9a1c442c28d46d1d5eb232e723be9d1ed5f97..64d1adee2004b879c07139e5540e5a48 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 c5746d6c9453e77056944dd59236a9b061dc230e..8555f74f19b04d43f6a6a97bc2ba9ec7cfb9871b 100644 +index 172177e7cd3749a446a9143c1566363f932b7a49..a632fc51d7e28e2f9bd8545f4e26f0a06eb8d035 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.cpp +++ b/Source/WebKit/NetworkProcess/NetworkProcess.cpp -@@ -621,6 +621,12 @@ void NetworkProcess::registrableDomainsExemptFromWebsiteDataDeletion(PAL::Sessio +@@ -625,6 +625,12 @@ void NetworkProcess::registrableDomainsExemptFromWebsiteDataDeletion(PAL::Sessio completionHandler({ }); } @@ -9143,18 +9198,18 @@ index c5746d6c9453e77056944dd59236a9b061dc230e..8555f74f19b04d43f6a6a97bc2ba9ec7 void NetworkProcess::dumpResourceLoadStatistics(PAL::SessionID sessionID, CompletionHandler&& completionHandler) { diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.h b/Source/WebKit/NetworkProcess/NetworkProcess.h -index 4daaf8300203a6815d98ee24340cc6ebc9c03fa8..01e3f20ff8b1a37bfbce9942002fd4c7100672c8 100644 +index a072b511e5ce431d443a423a509497558ef26b18..bc5f4f3e9a5fff415ff89272907d4111205e9e0c 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.h +++ b/Source/WebKit/NetworkProcess/NetworkProcess.h -@@ -37,6 +37,7 @@ +@@ -33,6 +33,7 @@ + #include "DownloadManager.h" + #include "NetworkContentRuleListManager.h" #include "QuotaIncreaseRequestIdentifier.h" - #include "RTCDataChannelRemoteManagerProxy.h" - #include "SandboxExtension.h" +#include "StorageNamespaceIdentifier.h" #include "WebPageProxyIdentifier.h" #include "WebResourceLoadStatisticsStore.h" #include "WebsiteData.h" -@@ -84,6 +85,7 @@ class SessionID; +@@ -80,6 +81,7 @@ class SessionID; namespace WebCore { class CertificateInfo; @@ -9162,7 +9217,7 @@ index 4daaf8300203a6815d98ee24340cc6ebc9c03fa8..01e3f20ff8b1a37bfbce9942002fd4c7 class CurlProxySettings; class ProtectionSpace; class NetworkStorageSession; -@@ -207,6 +209,9 @@ public: +@@ -209,6 +211,9 @@ public: void registrableDomainsWithLastAccessedTime(PAL::SessionID, CompletionHandler>)>&&); void registrableDomainsExemptFromWebsiteDataDeletion(PAL::SessionID, CompletionHandler)>&&); @@ -9173,12 +9228,12 @@ index 4daaf8300203a6815d98ee24340cc6ebc9c03fa8..01e3f20ff8b1a37bfbce9942002fd4c7 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 21a59cf46b16c6cd7f5a06476ddea0a28e052673..854c87669925ef9d2e572562df1f2ca19a1feb7f 100644 +index 20d7d32baf524e43a11a86ef208c404696d8ace7..2e6fa5ca2266d9868b6683540a5ba999819005ba 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in +++ b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in -@@ -77,6 +77,8 @@ messages -> NetworkProcess LegacyReceiver { - - PreconnectTo(PAL::SessionID sessionID, WebKit::WebPageProxyIdentifier webPageProxyID, WebCore::PageIdentifier webPageID, WebCore::ResourceRequest request, enum:uint8_t WebCore::StoredCredentialsPolicy storedCredentialsPolicy, std::optional isNavigatingToAppBoundDomain); +@@ -85,6 +85,8 @@ messages -> NetworkProcess LegacyReceiver { + SetInspectionForServiceWorkersAllowed(PAL::SessionID sessionID, bool inspectable) + #endif + SetIgnoreCertificateErrors(PAL::SessionID sessionID, bool ignoreTLSErrors) + @@ -9186,10 +9241,10 @@ index 21a59cf46b16c6cd7f5a06476ddea0a28e052673..854c87669925ef9d2e572562df1f2ca1 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 088ae72ade1ba0fd98b9e4c78e4489a58535983d..03b82d729d3ed9b15e008cd173c7020c9c99c369 100644 +index 986309ce9567147c5b0b0d047de82d26ee230ba3..36f67b7bf663d7398de33d7e361b0dd4d4574cc4 100644 --- a/Source/WebKit/NetworkProcess/NetworkSession.h +++ b/Source/WebKit/NetworkProcess/NetworkSession.h -@@ -204,6 +204,9 @@ public: +@@ -205,6 +205,9 @@ public: void lowMemoryHandler(WTF::Critical); @@ -9199,7 +9254,7 @@ index 088ae72ade1ba0fd98b9e4c78e4489a58535983d..03b82d729d3ed9b15e008cd173c7020c #if ENABLE(SERVICE_WORKER) void removeSoftUpdateLoader(ServiceWorkerSoftUpdateLoader* loader) { m_softUpdateLoaders.remove(loader); } void addNavigationPreloaderTask(ServiceWorkerFetchTask&); -@@ -320,6 +323,7 @@ protected: +@@ -327,6 +330,7 @@ protected: bool m_privateClickMeasurementDebugModeEnabled { false }; std::optional m_ephemeralMeasurement; bool m_isRunningEphemeralMeasurementTest { false }; @@ -9208,19 +9263,19 @@ index 088ae72ade1ba0fd98b9e4c78e4489a58535983d..03b82d729d3ed9b15e008cd173c7020c HashSet> m_keptAliveLoads; diff --git a/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm b/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm -index 5c915e87872f0b40924ee4032d532e00728d47f6..d221102880ea9cc7f1ef85e530ef89e39301a74b 100644 +index 6fab2cc458410ed58d263c3162014fca9cb9501c..f51327e9691d4f716891848ca9f06314d8572b21 100644 --- a/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm +++ b/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm -@@ -766,7 +766,7 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didRece +@@ -766,6 +766,8 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didRece if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { sessionCocoa->setClientAuditToken(challenge); -- if (NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost(challenge)) -+ if (sessionCocoa->ignoreCertificateErrors() || sessionCocoa->allowsSpecificHTTPSCertificateForHost(challenge)) - return completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]); ++ if (sessionCocoa->ignoreCertificateErrors()) ++ return completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]); NSURLSessionTaskTransactionMetrics *metrics = task._incompleteTaskMetrics.transactionMetrics.lastObject; -@@ -1107,6 +1107,13 @@ ALLOW_DEPRECATED_DECLARATIONS_END + auto tlsVersion = (tls_protocol_version_t)metrics.negotiatedTLSProtocolVersion.unsignedShortValue; +@@ -1105,6 +1107,13 @@ ALLOW_DEPRECATED_DECLARATIONS_END resourceResponse.setDeprecatedNetworkLoadMetrics(WebCore::copyTimingData(taskMetrics, networkDataTask->networkLoadMetrics())); @@ -9235,10 +9290,10 @@ index 5c915e87872f0b40924ee4032d532e00728d47f6..d221102880ea9cc7f1ef85e530ef89e3 #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 f9c7627a36bef332c19d102a6f88f11bdf9c6e3b..ac4a3a80f2dd4a3596b40d2c8dc40a264edfa29f 100644 +index 8ef8c83a4b1cc6bca6167214c3a1ee9cec8fa235..e0b40605da9adb8b81240838189d9559fb882c3e 100644 --- a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp +++ b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp -@@ -84,10 +84,18 @@ NetworkDataTaskCurl::NetworkDataTaskCurl(NetworkSession& session, NetworkDataTas +@@ -82,10 +82,18 @@ NetworkDataTaskCurl::NetworkDataTaskCurl(NetworkSession& session, NetworkDataTas #endif restrictRequestReferrerToOriginIfNeeded(request); @@ -9261,7 +9316,7 @@ index f9c7627a36bef332c19d102a6f88f11bdf9c6e3b..ac4a3a80f2dd4a3596b40d2c8dc40a26 } } -@@ -165,6 +173,7 @@ void NetworkDataTaskCurl::curlDidReceiveResponse(CurlRequest& request, CurlRespo +@@ -163,6 +171,7 @@ void NetworkDataTaskCurl::curlDidReceiveResponse(CurlRequest& request, CurlRespo updateNetworkLoadMetrics(receivedResponse.networkLoadMetrics); m_response.setDeprecatedNetworkLoadMetrics(Box::create(WTFMove(receivedResponse.networkLoadMetrics))); @@ -9269,7 +9324,7 @@ index f9c7627a36bef332c19d102a6f88f11bdf9c6e3b..ac4a3a80f2dd4a3596b40d2c8dc40a26 handleCookieHeaders(request.resourceRequest(), receivedResponse); -@@ -289,6 +298,36 @@ bool NetworkDataTaskCurl::shouldRedirectAsGET(const ResourceRequest& request, bo +@@ -287,6 +296,36 @@ bool NetworkDataTaskCurl::shouldRedirectAsGET(const ResourceRequest& request, bo return false; } @@ -9306,7 +9361,7 @@ index f9c7627a36bef332c19d102a6f88f11bdf9c6e3b..ac4a3a80f2dd4a3596b40d2c8dc40a26 void NetworkDataTaskCurl::invokeDidReceiveResponse() { didReceiveResponse(ResourceResponse(m_response), NegotiatedLegacyTLS::No, PrivateRelayed::No, [this, protectedThis = Ref { *this }](PolicyAction policyAction) { -@@ -319,6 +358,8 @@ void NetworkDataTaskCurl::invokeDidReceiveResponse() +@@ -317,6 +356,8 @@ void NetworkDataTaskCurl::invokeDidReceiveResponse() downloadPtr->didCreateDestination(m_pendingDownloadLocation); if (m_curlRequest) m_curlRequest->completeDidReceiveResponse(); @@ -9315,7 +9370,7 @@ index f9c7627a36bef332c19d102a6f88f11bdf9c6e3b..ac4a3a80f2dd4a3596b40d2c8dc40a26 break; } default: -@@ -402,6 +443,8 @@ void NetworkDataTaskCurl::willPerformHTTPRedirection() +@@ -405,6 +446,8 @@ void NetworkDataTaskCurl::willPerformHTTPRedirection() m_curlRequest->setUserPass(m_initialCredential.user(), m_initialCredential.password()); m_curlRequest->setAuthenticationScheme(ProtectionSpace::AuthenticationScheme::HTTPBasic); } @@ -9414,10 +9469,10 @@ index c74bf9aec3de138ca91699b822e09a6243e3f229..df1a8367585e3f43c490880ebe08b95c void sendString(const IPC::DataReference&, CompletionHandler&&); diff --git a/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp b/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp -index 7645a361822dc1cebc024552943793b5ac8dc0ab..660d340daa64225aaf31539871b034eabf06628f 100644 +index 04fd5ee23155aa792821b7da717bbb2fb09409c1..76a314a450c7d933c8e86de9915044300028954d 100644 --- a/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp +++ b/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp -@@ -471,6 +471,8 @@ void NetworkDataTaskSoup::didSendRequest(GRefPtr&& inputStream) +@@ -469,6 +469,8 @@ void NetworkDataTaskSoup::didSendRequest(GRefPtr&& inputStream) m_networkLoadMetrics.failsTAOCheck = !passesTimingAllowOriginCheck(m_response, *origin); } @@ -9426,7 +9481,7 @@ index 7645a361822dc1cebc024552943793b5ac8dc0ab..660d340daa64225aaf31539871b034ea dispatchDidReceiveResponse(); } -@@ -568,6 +570,8 @@ bool NetworkDataTaskSoup::acceptCertificate(GTlsCertificate* certificate, GTlsCe +@@ -566,6 +568,8 @@ bool NetworkDataTaskSoup::acceptCertificate(GTlsCertificate* certificate, GTlsCe { ASSERT(m_soupMessage); URL url = soupURIToURL(soup_message_get_uri(m_soupMessage.get())); @@ -9436,11 +9491,11 @@ index 7645a361822dc1cebc024552943793b5ac8dc0ab..660d340daa64225aaf31539871b034ea if (!error) return true; diff --git a/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp b/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp -index 13e557214edc7f060dd01ef10c2ab97fe0e9c41e..447de79164619e5c877e65a71b97cd643bbdeaad 100644 +index 13e557214edc7f060dd01ef10c2ab97fe0e9c41e..6ec6ea5328eab0cc9f5247ee14e15c560a406d1b 100644 --- a/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp +++ b/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp -@@ -109,6 +109,11 @@ static gboolean webSocketAcceptCertificateCallback(GTlsConnection* connection, G - return !session->soupNetworkSession().checkTLSErrors(soupURIToURL(soup_message_get_uri(soupMessage)), certificate, errors); +@@ -99,6 +99,11 @@ void NetworkSessionSoup::clearCredentials(WallTime) + #endif } +static gboolean webSocketAcceptCertificateCallbackIgnoreTLSErrors(GTlsConnection* connection, GTlsCertificate* certificate, GTlsCertificateFlags errors, NetworkSessionSoup* session) @@ -9448,9 +9503,9 @@ index 13e557214edc7f060dd01ef10c2ab97fe0e9c41e..447de79164619e5c877e65a71b97cd64 + return TRUE; +} + - static void webSocketMessageNetworkEventCallback(SoupMessage* soupMessage, GSocketClientEvent event, GIOStream* connection, NetworkSessionSoup* session) + #if USE(SOUP2) + static gboolean webSocketAcceptCertificateCallback(GTlsConnection* connection, GTlsCertificate* certificate, GTlsCertificateFlags errors, NetworkSessionSoup* session) { - if (event != G_SOCKET_CLIENT_TLS_HANDSHAKING) @@ -119,6 +124,15 @@ static void webSocketMessageNetworkEventCallback(SoupMessage* soupMessage, GSock } #endif @@ -9497,10 +9552,10 @@ index 13e557214edc7f060dd01ef10c2ab97fe0e9c41e..447de79164619e5c877e65a71b97cd64 } diff --git a/Source/WebKit/PlatformGTK.cmake b/Source/WebKit/PlatformGTK.cmake -index 9be529c090972173e8af8a6733f3346b7f514770..8605ec08968338eee059c3e1fa10ab955f397c81 100644 +index 229843e90a0d3e66762221e60c9e25b77ceccd6e..c39b8b8b5675cf03704ad88b9bc1c9fbc20fc4ad 100644 --- a/Source/WebKit/PlatformGTK.cmake +++ b/Source/WebKit/PlatformGTK.cmake -@@ -305,6 +305,9 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES +@@ -306,6 +306,9 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES ${GSTREAMER_PBUTILS_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${LIBSOUP_INCLUDE_DIRS} @@ -9510,7 +9565,7 @@ index 9be529c090972173e8af8a6733f3346b7f514770..8605ec08968338eee059c3e1fa10ab95 ) list(APPEND WebKit_INTERFACE_INCLUDE_DIRECTORIES -@@ -351,6 +354,9 @@ if (USE_LIBWEBRTC) +@@ -352,6 +355,9 @@ if (USE_LIBWEBRTC) list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES "${THIRDPARTY_DIR}/libwebrtc/Source/" "${THIRDPARTY_DIR}/libwebrtc/Source/webrtc" @@ -9520,7 +9575,7 @@ index 9be529c090972173e8af8a6733f3346b7f514770..8605ec08968338eee059c3e1fa10ab95 ) endif () -@@ -394,6 +400,12 @@ else () +@@ -395,6 +401,12 @@ else () set(WebKitGTK_ENUM_HEADER_TEMPLATE ${WEBKIT_DIR}/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in) endif () @@ -9534,7 +9589,7 @@ index 9be529c090972173e8af8a6733f3346b7f514770..8605ec08968338eee059c3e1fa10ab95 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 783f72ed591d3a68426a8fd90f311f75ebc0b54d..2c0c5edb22f9bc0a455fcc64ab6c7510b6fbd3da 100644 +index 9a80143b3e079290c646340b932b7029845a2e05..3b31af45d209851d568eab5868b6d80ef1cf9723 100644 --- a/Source/WebKit/PlatformWPE.cmake +++ b/Source/WebKit/PlatformWPE.cmake @@ -191,6 +191,7 @@ set(WPE_API_HEADER_TEMPLATES @@ -9545,7 +9600,7 @@ index 783f72ed591d3a68426a8fd90f311f75ebc0b54d..2c0c5edb22f9bc0a455fcc64ab6c7510 ) if (ENABLE_2022_GLIB_API) -@@ -367,6 +368,7 @@ list(APPEND WebKit_PRIVATE_INCLUDE_DIRECTORIES +@@ -368,6 +369,7 @@ list(APPEND WebKit_PRIVATE_INCLUDE_DIRECTORIES "${WEBKIT_DIR}/UIProcess/Launcher/libwpe" "${WEBKIT_DIR}/UIProcess/Notifications/glib/" "${WEBKIT_DIR}/UIProcess/geoclue" @@ -9553,7 +9608,7 @@ index 783f72ed591d3a68426a8fd90f311f75ebc0b54d..2c0c5edb22f9bc0a455fcc64ab6c7510 "${WEBKIT_DIR}/UIProcess/gstreamer" "${WEBKIT_DIR}/UIProcess/linux" "${WEBKIT_DIR}/UIProcess/soup" -@@ -390,8 +392,17 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES +@@ -391,8 +393,17 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES ${GIO_UNIX_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS} ${LIBSOUP_INCLUDE_DIRS} @@ -9572,7 +9627,7 @@ index 783f72ed591d3a68426a8fd90f311f75ebc0b54d..2c0c5edb22f9bc0a455fcc64ab6c7510 Cairo::Cairo Freetype::Freetype diff --git a/Source/WebKit/PlatformWin.cmake b/Source/WebKit/PlatformWin.cmake -index 31e89593232657ba6dc9993a3ba1ce7b2e8a27ad..0b64f22fe7e99fecc8be60d4d5bc8ef46fbe809e 100644 +index c530389b879f03806702007d0f142ee94f149e6b..97244d8abda433481f882fc3cd32aa69006466f4 100644 --- a/Source/WebKit/PlatformWin.cmake +++ b/Source/WebKit/PlatformWin.cmake @@ -92,8 +92,12 @@ list(APPEND WebKit_SOURCES @@ -9596,7 +9651,7 @@ index 31e89593232657ba6dc9993a3ba1ce7b2e8a27ad..0b64f22fe7e99fecc8be60d4d5bc8ef4 WebProcess/WebPage/AcceleratedSurface.cpp -@@ -178,8 +183,84 @@ list(APPEND WebKit_SERIALIZATION_IN_FILES +@@ -180,8 +185,84 @@ list(APPEND WebKit_SERIALIZATION_IN_FILES list(APPEND WebKit_PRIVATE_LIBRARIES comctl32 @@ -9785,7 +9840,7 @@ index 72ad2880160a374e8fa663e561d59becf9d2f36d..372ae6953199245fe4fc55a49813c7ca #endif }; diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.cpp b/Source/WebKit/Shared/WebCoreArgumentCoders.cpp -index 0bf360afe2dce36935f0f69f535962eb8f523410..6bfcddd278085cc24150af70852ee2140b5d67f4 100644 +index 33d83803d0284b3471cfe848aa8b0ae86735ce28..cf76a4b330469bba86fb2c72ee82c2ead0c34b77 100644 --- a/Source/WebKit/Shared/WebCoreArgumentCoders.cpp +++ b/Source/WebKit/Shared/WebCoreArgumentCoders.cpp @@ -193,6 +193,10 @@ @@ -9800,10 +9855,10 @@ index 0bf360afe2dce36935f0f69f535962eb8f523410..6bfcddd278085cc24150af70852ee214 namespace IPC { diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -index 41b78b16f26f9f41ef65697a14751a5503ebfafa..92690b48fa0ba61974fdc72976f0be4b884eef2a 100644 +index b106303da85a8226327a6f9e986c4646d39b4bbc..56c69d19af821e0ebdfa77c6873ca0c5d165dc7f 100644 --- a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in +++ b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -@@ -2320,6 +2320,9 @@ class WebCore::AuthenticationChallenge { +@@ -2338,6 +2338,9 @@ class WebCore::AuthenticationChallenge { class WebCore::DragData { #if PLATFORM(COCOA) String pasteboardName(); @@ -9813,7 +9868,7 @@ index 41b78b16f26f9f41ef65697a14751a5503ebfafa..92690b48fa0ba61974fdc72976f0be4b #endif WebCore::IntPoint clientPosition(); WebCore::IntPoint globalPosition(); -@@ -2826,6 +2829,7 @@ enum class WebCore::ResourceLoadPriority : uint8_t { +@@ -2860,6 +2863,7 @@ enum class WebCore::ResourceLoadPriority : uint8_t { AtomString m_httpStatusText; AtomString m_httpVersion; WebCore::HTTPHeaderMap m_httpHeaderFields; @@ -10229,10 +10284,10 @@ index 0000000000000000000000000000000000000000..789a0d7cf69704c8f665a9ed79348fbc + +} // namespace IPC diff --git a/Source/WebKit/Sources.txt b/Source/WebKit/Sources.txt -index 2f1071128424ddcfe2ab04596f1cba63574b4ddf..00547e02e8b7cfadbb60947647dcb1ec0e2081ee 100644 +index d38b9735d6f7730b4fc97863274805d44081516a..43f9cd8ceae182313451753507ad15c2ee7701ff 100644 --- a/Source/WebKit/Sources.txt +++ b/Source/WebKit/Sources.txt -@@ -387,21 +387,26 @@ Shared/XR/XRDeviceProxy.cpp +@@ -384,21 +384,26 @@ Shared/XR/XRDeviceProxy.cpp UIProcess/AuxiliaryProcessProxy.cpp UIProcess/BackgroundProcessResponsivenessTimer.cpp @@ -10259,7 +10314,7 @@ index 2f1071128424ddcfe2ab04596f1cba63574b4ddf..00547e02e8b7cfadbb60947647dcb1ec UIProcess/RemotePageDrawingAreaProxy.cpp UIProcess/RemotePageProxy.cpp UIProcess/ResponsivenessTimer.cpp -@@ -445,6 +450,8 @@ UIProcess/WebOpenPanelResultListenerProxy.cpp +@@ -442,6 +447,8 @@ UIProcess/WebOpenPanelResultListenerProxy.cpp UIProcess/WebPageDiagnosticLoggingClient.cpp UIProcess/WebPageGroup.cpp UIProcess/WebPageInjectedBundleClient.cpp @@ -10268,7 +10323,7 @@ index 2f1071128424ddcfe2ab04596f1cba63574b4ddf..00547e02e8b7cfadbb60947647dcb1ec UIProcess/WebPageProxy.cpp UIProcess/WebPageProxyMessageReceiverRegistration.cpp UIProcess/WebPasteboardProxy.cpp -@@ -576,7 +583,11 @@ UIProcess/Inspector/WebInspectorUtilities.cpp +@@ -573,7 +580,11 @@ UIProcess/Inspector/WebInspectorUtilities.cpp UIProcess/Inspector/WebPageDebuggable.cpp UIProcess/Inspector/WebPageInspectorController.cpp @@ -10281,7 +10336,7 @@ index 2f1071128424ddcfe2ab04596f1cba63574b4ddf..00547e02e8b7cfadbb60947647dcb1ec UIProcess/Media/AudioSessionRoutingArbitratorProxy.cpp UIProcess/Media/MediaUsageManager.cpp diff --git a/Source/WebKit/SourcesCocoa.txt b/Source/WebKit/SourcesCocoa.txt -index 93c543428097c0f72625fe8dd0944220b7d63d21..cf38bb242c292f1d1e79db234941c0fbd3cbb046 100644 +index 58047624cd374a6e074e1e6bee1d891829d8ff43..f8670e9474dff752e03dab613b62c42f191262df 100644 --- a/Source/WebKit/SourcesCocoa.txt +++ b/Source/WebKit/SourcesCocoa.txt @@ -258,6 +258,7 @@ UIProcess/API/Cocoa/_WKApplicationManifest.mm @@ -10301,7 +10356,7 @@ index 93c543428097c0f72625fe8dd0944220b7d63d21..cf38bb242c292f1d1e79db234941c0fb UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm UIProcess/Inspector/mac/WKInspectorViewController.mm diff --git a/Source/WebKit/SourcesGTK.txt b/Source/WebKit/SourcesGTK.txt -index 31560deabc825bf5554a8f1fa913c225d35c349f..107736f9c12438af23b81e2208c90cdcef0a9615 100644 +index 2a57e2ade1be21cc7603fd246702db002f5f1d9c..d552d6fc58a650ff17283ba2661b69a8ef7ddf93 100644 --- a/Source/WebKit/SourcesGTK.txt +++ b/Source/WebKit/SourcesGTK.txt @@ -137,6 +137,7 @@ UIProcess/API/glib/WebKitAutomationSession.cpp @no-unify @@ -10328,7 +10383,7 @@ index 31560deabc825bf5554a8f1fa913c225d35c349f..107736f9c12438af23b81e2208c90cdc UIProcess/gtk/KeyBindingTranslator.cpp UIProcess/gtk/PointerLockManager.cpp @no-unify UIProcess/gtk/PointerLockManagerWayland.cpp @no-unify -@@ -287,6 +290,8 @@ UIProcess/gtk/ViewGestureControllerGtk.cpp +@@ -288,6 +291,8 @@ UIProcess/gtk/ViewGestureControllerGtk.cpp UIProcess/gtk/WebColorPickerGtk.cpp UIProcess/gtk/WebContextMenuProxyGtk.cpp UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp @@ -10505,10 +10560,10 @@ index 026121d114c5fcad84c1396be8d692625beaa3bd..edd6e5cae033124c589959a42522fde0 } #endif diff --git a/Source/WebKit/UIProcess/API/C/WKPage.cpp b/Source/WebKit/UIProcess/API/C/WKPage.cpp -index d2190dbd578451401793938e1f875fce325cd870..6b96b50351d82e3de08c059ed48dc12bffc65a10 100644 +index f008969cf4d83c58d2c2b94642dc7f5d7a08bc4a..ec827835cfdb8c9fb4b872c41d0b9e5d6197a363 100644 --- a/Source/WebKit/UIProcess/API/C/WKPage.cpp +++ b/Source/WebKit/UIProcess/API/C/WKPage.cpp -@@ -1764,6 +1764,13 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient +@@ -1784,6 +1784,13 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient completionHandler(String()); } @@ -10522,7 +10577,7 @@ index d2190dbd578451401793938e1f875fce325cd870..6b96b50351d82e3de08c059ed48dc12b void setStatusText(WebPageProxy* page, const String& text) final { if (!m_client.setStatusText) -@@ -1793,6 +1800,8 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient +@@ -1813,6 +1820,8 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient { if (!m_client.didNotHandleKeyEvent) return; @@ -10613,7 +10668,7 @@ index fd1619cf0f9c3bea676e90ae81a84fa023f4b209..ad224273f275e697676ab4586da96dcd { return _preferences->inactiveMediaCaptureSteamRepromptIntervalInMinutes(); diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h b/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h -index cc434efae7e94c8c1e4f6f9a4a023a84b48def3a..3253e67d1787d4349458a61a90fac7fa06cf7dfe 100644 +index 6b22ff70ebf73b69fb2ad02eed21d0dc016fb5e1..1df25b413da2e5b358597b8b500bc2ea921e9c6f 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h +++ b/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h @@ -122,6 +122,7 @@ typedef NS_ENUM(NSInteger, _WKPitchCorrectionAlgorithm) { @@ -10642,7 +10697,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 68b33e071dd563f5c87d85c356a120d96e595bcc..f83ec16472519cd3d0d0700ca395627533e7e70d 100644 +index fe711453fd4ef346ff7d88bfec878642b6eb32d6..c3e4fcf0b51e827b6945c89613f22b17ab55f5fb 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.h +++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.h @@ -24,7 +24,6 @@ @@ -10663,7 +10718,7 @@ index 68b33e071dd563f5c87d85c356a120d96e595bcc..f83ec16472519cd3d0d0700ca3956275 NS_ASSUME_NONNULL_END diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm -index 4ff41ea6ecca17413404dda7e5a229019e3ea430..bbef2980091abd200ef8770075a5e03382ca3c44 100644 +index d19ba0dec9f449f10ca00d7aa86e4aef760c6044..19f6b7c82cc9fc5b3db708f428563ac5a888955d 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm @@ -50,6 +50,7 @@ @@ -10749,7 +10804,7 @@ index 0000000000000000000000000000000000000000..5fabe06a3289689246c36dfd96eb9900 + diff --git a/Source/WebKit/UIProcess/API/Cocoa/_WKBrowserInspector.mm b/Source/WebKit/UIProcess/API/Cocoa/_WKBrowserInspector.mm new file mode 100644 -index 0000000000000000000000000000000000000000..e7143513ea2be8e1cdab5c86a28643fffea626dd +index 0000000000000000000000000000000000000000..69eb9c6aa30beb8ea21a0ef647e463043a868ab8 --- /dev/null +++ b/Source/WebKit/UIProcess/API/Cocoa/_WKBrowserInspector.mm @@ -0,0 +1,60 @@ @@ -10797,7 +10852,7 @@ index 0000000000000000000000000000000000000000..e7143513ea2be8e1cdab5c86a28643ff +#if ENABLE(REMOTE_INSPECTOR) + InitializeWebKit2(); + PageClientImpl::setHeadless(headless); -+ initializeBrowserInspectorPipe(makeUnique(delegate)); ++ initializeBrowserInspectorPipe(makeUnique(delegate, headless)); +#endif +} + @@ -10814,7 +10869,7 @@ index 0000000000000000000000000000000000000000..e7143513ea2be8e1cdab5c86a28643ff +} +@end diff --git a/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h b/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h -index 0f47ef0127f90a975675651d50c98cd7807f2924..3e24d0b75a0b5ce84f7db8b196ed312b5583438d 100644 +index f3ace77b4d203c03dc28b31711245dd42d339f67..9006770a34b95b48c346066dc5e447eda15c46f4 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h +++ b/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h @@ -67,6 +67,7 @@ WK_CLASS_AVAILABLE(macos(10.10), ios(8.0)) @@ -11100,7 +11155,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 e7f316fcd23487da0a356b36c467024503d491b3..427348163a9376ba76d9993f107986d2bd4bd57c 100644 +index e7f316fcd23487da0a356b36c467024503d491b3..b2a3717793e262d2c6a4338fef059cc02df062b5 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 @@ -11132,6 +11187,33 @@ index e7f316fcd23487da0a356b36c467024503d491b3..427348163a9376ba76d9993f107986d2 WebKitWebContextPrivate* priv = WEBKIT_WEB_CONTEXT(object)->priv; if (!priv->clientsDetached) { priv->clientsDetached = true; +@@ -932,6 +943,11 @@ WebKitNetworkSession* webkit_web_context_get_network_session_for_automation(WebK + return nullptr; + #endif + } ++ ++void webkit_web_context_set_network_session_for_automation(WebKitWebContext* context, WebKitNetworkSession* session) ++{ ++ context->priv->automationNetworkSession = session; ++} + #endif + /** + * webkit_web_context_set_cache_model: +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.h.in b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.h.in +index fa559936ba819425cfca7ad0f26e9d373690180a..112eb9f64b9c08385eb9a7ac4d6815f574efed0e 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.h.in ++++ b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.h.in +@@ -161,6 +161,10 @@ webkit_web_context_set_automation_allowed (WebKitWebContext + #if ENABLE(2022_GLIB_API) + WEBKIT_API WebKitNetworkSession * + webkit_web_context_get_network_session_for_automation(WebKitWebContext *context); ++ ++WEBKIT_API void ++webkit_web_context_set_network_session_for_automation(WebKitWebContext *context, ++ WebKitNetworkSession *session); + #endif + + WEBKIT_API void diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebContextPrivate.h b/Source/WebKit/UIProcess/API/glib/WebKitWebContextPrivate.h index e994309b097c1b140abfa4373fd2fafee46c05ec..6e0cc677a3bf33683ae8c89d12a4819144b3df89 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebContextPrivate.h @@ -11142,7 +11224,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 755caa084856e52e2cbbfe02d3e438688b5097a4..6090f3f98e4d1e8f355e0a4eaf99c51c4ae4a8c9 100644 +index f7b6b9edc676320c8e557e20551411eaa07aad0f..1881ca72d1b6adf15d3c7e9148615c0fa47f6e4f 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp @@ -34,6 +34,7 @@ @@ -11162,7 +11244,7 @@ index 755caa084856e52e2cbbfe02d3e438688b5097a4..6090f3f98e4d1e8f355e0a4eaf99c51c #include "WebKitResponsePolicyDecision.h" #include "WebKitScriptDialogPrivate.h" @@ -91,7 +93,6 @@ - #if PLATFORM(GTK) + #include "GtkSettingsManager.h" #include "WebKitFaviconDatabasePrivate.h" #include "WebKitInputMethodContextImplGtk.h" -#include "WebKitPointerLockPermissionRequest.h" @@ -11187,7 +11269,19 @@ index 755caa084856e52e2cbbfe02d3e438688b5097a4..6090f3f98e4d1e8f355e0a4eaf99c51c { SetForScope inFrameDisplayedGuard(m_webView->priv->inFrameDisplayed, true); for (const auto& callback : m_webView->priv->frameDisplayedCallbacks) { -@@ -591,7 +596,7 @@ static gboolean webkitWebViewDecidePolicy(WebKitWebView*, WebKitPolicyDecision* +@@ -505,6 +510,11 @@ void WebKitWebViewClient::frameDisplayed(WKWPE::View&) + } + } + ++cairo_surface_t* WebKitWebViewClient::takeViewScreenshot() ++{ ++ return webkitWebViewBackendTakeScreenshot(m_webView->priv->backend.get()); ++} ++ + void WebKitWebViewClient::willStartLoad(WKWPE::View&) + { + webkitWebViewWillStartLoad(m_webView); +@@ -591,7 +601,7 @@ static gboolean webkitWebViewDecidePolicy(WebKitWebView*, WebKitPolicyDecision* static gboolean webkitWebViewPermissionRequest(WebKitWebView*, WebKitPermissionRequest* request) { @@ -11196,7 +11290,7 @@ index 755caa084856e52e2cbbfe02d3e438688b5097a4..6090f3f98e4d1e8f355e0a4eaf99c51c if (WEBKIT_IS_POINTER_LOCK_PERMISSION_REQUEST(request)) { webkit_permission_request_allow(request); return TRUE; -@@ -1838,6 +1843,15 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) +@@ -1849,6 +1859,15 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) G_TYPE_BOOLEAN, 1, WEBKIT_TYPE_SCRIPT_DIALOG); @@ -11212,7 +11306,7 @@ index 755caa084856e52e2cbbfe02d3e438688b5097a4..6090f3f98e4d1e8f355e0a4eaf99c51c /** * WebKitWebView::decide-policy: * @web_view: the #WebKitWebView on which the signal is emitted -@@ -2636,6 +2650,23 @@ void webkitWebViewRunJavaScriptBeforeUnloadConfirm(WebKitWebView* webView, const +@@ -2647,6 +2666,23 @@ void webkitWebViewRunJavaScriptBeforeUnloadConfirm(WebKitWebView* webView, const webkit_script_dialog_unref(webView->priv->currentScriptDialog); } @@ -11261,7 +11355,7 @@ index 805f9f638c1630b5e9310494ae2970262de001cc..add3e80896c2e82bdd12cee15c8014bf #include <@API_INCLUDE_PREFIX@/WebKitClipboardPermissionRequest.h> #include <@API_INCLUDE_PREFIX@/WebKitColorChooserRequest.h> diff --git a/Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp b/Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp -index 8abaceabaa129b7d2ae369c8840bdfc41699f580..884609c9d6ba56bb88e6160f7f8b771759428c2e 100644 +index 8abaceabaa129b7d2ae369c8840bdfc41699f580..51f8e259b424a7416f1613f4d7e40a5f4cd8b8e8 100644 --- a/Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp +++ b/Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp @@ -257,6 +257,8 @@ void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent& event, bool @@ -11273,6 +11367,31 @@ index 8abaceabaa129b7d2ae369c8840bdfc41699f580..884609c9d6ba56bb88e6160f7f8b7717 // Always consider arrow keys as handled, otherwise the GtkWindow key bindings will move the focus. guint keyval; +@@ -351,9 +353,9 @@ void PageClientImpl::selectionDidChange() + webkitWebViewSelectionDidChange(WEBKIT_WEB_VIEW(m_viewWidget)); + } + +-RefPtr PageClientImpl::takeViewSnapshot(std::optional&& clipRect) ++RefPtr PageClientImpl::takeViewSnapshot(std::optional&& clipRect, bool nominalResolution) + { +- return webkitWebViewBaseTakeViewSnapshot(WEBKIT_WEB_VIEW_BASE(m_viewWidget), WTFMove(clipRect)); ++ return webkitWebViewBaseTakeViewSnapshot(WEBKIT_WEB_VIEW_BASE(m_viewWidget), WTFMove(clipRect), nominalResolution); + } + + void PageClientImpl::didChangeContentSize(const IntSize& size) +diff --git a/Source/WebKit/UIProcess/API/gtk/PageClientImpl.h b/Source/WebKit/UIProcess/API/gtk/PageClientImpl.h +index 4f76c28957f07642dc1b0002368c722f40797900..b31bfdd45e6a7fb959143f5c8979d117f2766646 100644 +--- a/Source/WebKit/UIProcess/API/gtk/PageClientImpl.h ++++ b/Source/WebKit/UIProcess/API/gtk/PageClientImpl.h +@@ -103,7 +103,7 @@ private: + #endif + Ref createValidationBubble(const String& message, const WebCore::ValidationBubble::Settings&) final; + void selectionDidChange() override; +- RefPtr takeViewSnapshot(std::optional&&) override; ++ RefPtr takeViewSnapshot(std::optional&&, bool nominalResolution = false) override; + #if ENABLE(DRAG_SUPPORT) + void startDrag(WebCore::SelectionData&&, OptionSet, RefPtr&& dragImage, WebCore::IntPoint&& dragImageHotspot) override; + void didPerformDragControllerAction() override; diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitBrowserInspector.h b/Source/WebKit/UIProcess/API/gtk/WebKitBrowserInspector.h new file mode 100644 index 0000000000000000000000000000000000000000..45221096280941d747ef3f46749b1466b2d70090 @@ -11374,10 +11493,10 @@ index 496079da90993ac37689b060b69ecd4a67c2b6a8..af30181ca922f16c0f6e245c70e5ce7d G_BEGIN_DECLS diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -index 0c844b6d97e161bf0a5540814ff5eb52ad1ecff5..0290f997b83364bd93fa55ac4dafc9185aac1de5 100644 +index 6eb11ae3ae2cd7667d10d165de33342713306cd7..41c420b6e395a67218b9942e7ef879c7958515fb 100644 --- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp +++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -@@ -2801,6 +2801,11 @@ void webkitWebViewBaseResetClickCounter(WebKitWebViewBase* webkitWebViewBase) +@@ -2823,6 +2823,11 @@ void webkitWebViewBaseResetClickCounter(WebKitWebViewBase* webkitWebViewBase) #endif } @@ -11389,8 +11508,23 @@ index 0c844b6d97e161bf0a5540814ff5eb52ad1ecff5..0290f997b83364bd93fa55ac4dafc918 void webkitWebViewBaseEnterAcceleratedCompositingMode(WebKitWebViewBase* webkitWebViewBase, const LayerTreeContext& layerTreeContext) { ASSERT(webkitWebViewBase->priv->acceleratedBackingStore); +@@ -2883,12 +2888,12 @@ void webkitWebViewBasePageClosed(WebKitWebViewBase* webkitWebViewBase) + webkitWebViewBase->priv->acceleratedBackingStore->update({ }); + } + +-RefPtr webkitWebViewBaseTakeViewSnapshot(WebKitWebViewBase* webkitWebViewBase, std::optional&& clipRect) ++RefPtr webkitWebViewBaseTakeViewSnapshot(WebKitWebViewBase* webkitWebViewBase, std::optional&& clipRect, bool nominalResolution) + { + WebPageProxy* page = webkitWebViewBase->priv->pageProxy.get(); + + IntSize size = clipRect ? clipRect->size() : page->viewSize(); +- float deviceScale = page->deviceScaleFactor(); ++ float deviceScale = nominalResolution ? 1 : page->deviceScaleFactor(); + size.scale(deviceScale); + + #if !USE(GTK4) diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h -index 1204b4342c1cf8d38d215c1c8628bd7eb1fbd415..8534e582f54a343dc3bf6e01b8e43270adda74f2 100644 +index 1204b4342c1cf8d38d215c1c8628bd7eb1fbd415..43265c737ecaa3ee24513ad50ca3c3650ebeb698 100644 --- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h +++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h @@ -27,6 +27,7 @@ @@ -11401,14 +11535,45 @@ index 1204b4342c1cf8d38d215c1c8628bd7eb1fbd415..8534e582f54a343dc3bf6e01b8e43270 #include "APIPageConfiguration.h" #include "InputMethodState.h" #include "SameDocumentNavigationType.h" +@@ -97,7 +98,7 @@ void webkitWebViewBaseStartDrag(WebKitWebViewBase*, WebCore::SelectionData&&, Op + void webkitWebViewBaseDidPerformDragControllerAction(WebKitWebViewBase*); + #endif + +-RefPtr webkitWebViewBaseTakeViewSnapshot(WebKitWebViewBase*, std::optional&&); ++RefPtr webkitWebViewBaseTakeViewSnapshot(WebKitWebViewBase*, std::optional&&, bool nominalResolution); + void webkitWebViewBaseSetEnableBackForwardNavigationGesture(WebKitWebViewBase*, bool enabled); + WebKit::ViewGestureController* webkitWebViewBaseViewGestureController(WebKitWebViewBase*); + @@ -130,3 +131,5 @@ void webkitWebViewBaseSynthesizeWheelEvent(WebKitWebViewBase*, const GdkEvent*, void webkitWebViewBaseMakeBlank(WebKitWebViewBase*, bool); void webkitWebViewBasePageGrabbedTouch(WebKitWebViewBase*); void webkitWebViewBaseSetShouldNotifyFocusEvents(WebKitWebViewBase*, bool); + +WebKit::AcceleratedBackingStore* webkitWebViewBaseGetAcceleratedBackingStore(WebKitWebViewBase*); +diff --git a/Source/WebKit/UIProcess/API/wpe/APIViewClient.h b/Source/WebKit/UIProcess/API/wpe/APIViewClient.h +index 5506eb798d7df211e975b88f293428d7a00e8f65..41b4a0169a4479a0f2131227aadc7350e976d6a1 100644 +--- a/Source/WebKit/UIProcess/API/wpe/APIViewClient.h ++++ b/Source/WebKit/UIProcess/API/wpe/APIViewClient.h +@@ -26,6 +26,7 @@ + #pragma once + + #include "UserMessage.h" ++#include + #include + + typedef struct OpaqueJSContext* JSGlobalContextRef; +@@ -49,6 +50,9 @@ public: + virtual bool isGLibBasedAPI() { return false; } + + virtual void frameDisplayed(WKWPE::View&) { } ++// Playwright begin ++ virtual cairo_surface_t* takeViewScreenshot() { return nullptr; } ++// Playwright end + virtual void willStartLoad(WKWPE::View&) { } + virtual void didChangePageID(WKWPE::View&) { } + virtual void didReceiveUserMessage(WKWPE::View&, WebKit::UserMessage&&, CompletionHandler&& completionHandler) { completionHandler(WebKit::UserMessage()); } diff --git a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp -index 7a1548fcbe2667f71602bfa69cdd0b25fc7a6056..4d9927e2f1a4205c778ee3fb9d3e93dd98fc1db1 100644 +index 7a1548fcbe2667f71602bfa69cdd0b25fc7a6056..24e1db8e7b9f65fa0c064b8a741adb4c6bbba45e 100644 --- a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp +++ b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp @@ -33,8 +33,11 @@ @@ -11432,7 +11597,39 @@ index 7a1548fcbe2667f71602bfa69cdd0b25fc7a6056..4d9927e2f1a4205c778ee3fb9d3e93dd } void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent&, bool) -@@ -432,4 +435,23 @@ WebKitWebResourceLoadManager* PageClientImpl::webResourceLoadManager() +@@ -427,9 +430,55 @@ void PageClientImpl::selectionDidChange() + m_view.selectionDidChange(); + } + ++RefPtr PageClientImpl::takeViewSnapshot(std::optional&& clipRect, bool nominalResolution) ++{ ++ RefPtr fullScreenshot = adoptRef(m_view.client().takeViewScreenshot()); ++ float deviceScale = m_view.page().deviceScaleFactor(); ++ if (!clipRect && (!nominalResolution || deviceScale == 1)) ++ return fullScreenshot; ++ ++ WebCore::IntSize size = clipRect ? clipRect->size() : m_view.page().viewSize(); ++ if (!nominalResolution) { ++ size.scale(deviceScale); ++ if (clipRect) ++ clipRect->scale(deviceScale); ++ } ++ RefPtr surface = adoptRef(cairo_image_surface_create(CAIRO_FORMAT_RGB24, size.width(), size.height())); ++ RefPtr cr = adoptRef(cairo_create(surface.get())); ++ if (clipRect) { ++ cairo_translate(cr.get(), -clipRect->x(), -clipRect->y()); ++ cairo_rectangle(cr.get(), clipRect->x(), clipRect->y(), clipRect->width(), clipRect->height()); ++ cairo_clip(cr.get()); ++ } ++ if (nominalResolution) ++ cairo_scale(cr.get(), 1/deviceScale, 1/deviceScale); ++ cairo_set_source_surface(cr.get(), fullScreenshot.get(), 0, 0); ++ cairo_paint(cr.get()); ++ return surface; ++} ++ + WebKitWebResourceLoadManager* PageClientImpl::webResourceLoadManager() + { return m_view.webResourceLoadManager(); } @@ -11457,10 +11654,14 @@ index 7a1548fcbe2667f71602bfa69cdd0b25fc7a6056..4d9927e2f1a4205c778ee3fb9d3e93dd + } // namespace WebKit diff --git a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h -index d14abff9ca046b2c3a1423c4a47341210b7198d1..842d95fa1ee1a65e4d5b01cb98f2dda9e3a61dc9 100644 +index d14abff9ca046b2c3a1423c4a47341210b7198d1..f717239df9de9097bfa31193b817e26b3495f162 100644 --- a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h +++ b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h -@@ -164,6 +164,17 @@ private: +@@ -161,9 +161,21 @@ private: + void didChangeWebPageID() const override; + + void selectionDidChange() override; ++ RefPtr takeViewSnapshot(std::optional&&, bool nominalResolution) override; WebKitWebResourceLoadManager* webResourceLoadManager() override; @@ -11772,8 +11973,22 @@ index e4b92ace1531090ae38a7aec3d3d4febf19aee84..43690f9ef4969a39084501613bfc00a7 void webkitWebViewBackendUnref(WebKitWebViewBackend*); + +cairo_surface_t* webkitWebViewBackendTakeScreenshot(WebKitWebViewBackend*); +diff --git a/Source/WebKit/UIProcess/API/wpe/WebKitWebViewClient.h b/Source/WebKit/UIProcess/API/wpe/WebKitWebViewClient.h +index 8a8356b94e0632118a24bb9adf5a1fe72f10fb8d..f332ffe5e633dce8e8a7f0f2a411ca2905cd21a7 100644 +--- a/Source/WebKit/UIProcess/API/wpe/WebKitWebViewClient.h ++++ b/Source/WebKit/UIProcess/API/wpe/WebKitWebViewClient.h +@@ -50,6 +50,9 @@ private: + bool isGLibBasedAPI() override { return true; } + + void frameDisplayed(WKWPE::View&) override; ++// Playwright begin ++ cairo_surface_t* takeViewScreenshot() override; ++// Playwright end + void willStartLoad(WKWPE::View&) override; + void didChangePageID(WKWPE::View&) override; + void didReceiveUserMessage(WKWPE::View&, WebKit::UserMessage&&, CompletionHandler&&) override; diff --git a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp -index afae4930cd2c1b3deed49663bc9ac90b001f5275..e74252ef7a34f660ecd5089673e27b71633564dd 100644 +index f297d86285bcc3f975638be9b7750ae7ce11f05f..85b07321c8b155bcf6433f0d7c7807224039e342 100644 --- a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp +++ b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp @@ -127,7 +127,11 @@ void AuxiliaryProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& lau @@ -11789,10 +12004,10 @@ index afae4930cd2c1b3deed49663bc9ac90b001f5275..e74252ef7a34f660ecd5089673e27b71 platformGetLaunchOptions(launchOptions); } diff --git a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h -index fd2864f487a76e38508c272ef78dcb6056ec034c..5d794b358a04cd21ee042c32ba53f6fded46c38e 100644 +index 90e6a8f4292c8fbcbd0cc36fa3618f8b7d2d62cc..14ac561735f2de4ccd0b2ef74e7e7a1f41c1d983 100644 --- a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h +++ b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h -@@ -206,13 +206,16 @@ protected: +@@ -208,13 +208,16 @@ protected: static RefPtr fetchAudioComponentServerRegistrations(); #endif @@ -11975,7 +12190,7 @@ index 7b4841ee8a15252d24fa7378a2005efb2db96f6f..d3eb7886316c7c1b45fb4673df15b743 bool webViewRunBeforeUnloadConfirmPanelWithMessageInitiatedByFrameCompletionHandler : 1; bool webViewRequestGeolocationPermissionForFrameDecisionHandler : 1; diff --git a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm -index 797397d5cba83e028502b875fa18564c79a472b9..d246954031787a4bcfb8edd1b76badbd2cce5b75 100644 +index 17e89992472d58c617b5c9c0bd0d478b7c1e9123..aea3be250928924fd68910e0309c835a0dac2446 100644 --- a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm +++ b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm @@ -117,6 +117,7 @@ void UIDelegate::setDelegate(id delegate) @@ -12003,7 +12218,7 @@ index 797397d5cba83e028502b875fa18564c79a472b9..d246954031787a4bcfb8edd1b76badbd { if (!m_uiDelegate) diff --git a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm -index 71829d0d1b8d463a400fbbd158f0d24e87295d17..97edc0aa92e408470204cccc3d0f4ededdef5330 100644 +index 361bf358f4a63482d7cc1a2358ce93e6965b5289..c9545d1937f5526741bba0d7558c8cde2dc083c0 100644 --- a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm +++ b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm @@ -37,6 +37,7 @@ @@ -12014,7 +12229,7 @@ index 71829d0d1b8d463a400fbbd158f0d24e87295d17..97edc0aa92e408470204cccc3d0f4ede #import "PlaybackSessionManagerProxy.h" #import "QuickLookThumbnailLoader.h" #import "RemoteLayerTreeTransaction.h" -@@ -294,10 +295,87 @@ bool WebPageProxy::scrollingUpdatesDisabledForTesting() +@@ -278,10 +279,87 @@ bool WebPageProxy::scrollingUpdatesDisabledForTesting() void WebPageProxy::startDrag(const DragItem& dragItem, ShareableBitmap::Handle&& dragImageHandle) { @@ -12104,10 +12319,10 @@ index 71829d0d1b8d463a400fbbd158f0d24e87295d17..97edc0aa92e408470204cccc3d0f4ede #if ENABLE(ATTACHMENT_ELEMENT) diff --git a/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm b/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm -index f00d74b233277111e582e2f8a34123e3a75412f0..8c8e7e99372f671be9696e8673cec8c1576feffd 100644 +index f064a1cfe684ce89caa2c45ccae4cd673b0d526d..65e866b3a6b9ab535c0cddcfef19c9db10c75103 100644 --- a/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm +++ b/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm -@@ -456,7 +456,7 @@ ALLOW_DEPRECATED_DECLARATIONS_END +@@ -457,7 +457,7 @@ ALLOW_DEPRECATED_DECLARATIONS_END auto screenProperties = WebCore::collectScreenProperties(); parameters.screenProperties = WTFMove(screenProperties); #if PLATFORM(MAC) @@ -12116,7 +12331,7 @@ index f00d74b233277111e582e2f8a34123e3a75412f0..8c8e7e99372f671be9696e8673cec8c1 #endif #if (PLATFORM(IOS) || PLATFORM(VISION)) && HAVE(AGX_COMPILER_SERVICE) -@@ -737,8 +737,8 @@ void WebProcessPool::registerNotificationObservers() +@@ -741,8 +741,8 @@ void WebProcessPool::registerNotificationObservers() }]; m_scrollerStyleNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSPreferredScrollerStyleDidChangeNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) { @@ -12128,7 +12343,7 @@ index f00d74b233277111e582e2f8a34123e3a75412f0..8c8e7e99372f671be9696e8673cec8c1 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 45b5f4ccc1e178336499356a4fd41b99764980fd..a69212defad2502da15678929462fb192f13849b 100644 +index bf1ede749837580db8c5e487e5bacaf916d9c270..c1d38acabec8c59bc460dab264088abc377976d0 100644 --- a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp +++ b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp @@ -33,12 +33,15 @@ @@ -12161,7 +12376,7 @@ index 45b5f4ccc1e178336499356a4fd41b99764980fd..a69212defad2502da15678929462fb19 namespace WebKit { using namespace WebCore; -@@ -101,6 +111,11 @@ void DrawingAreaProxyCoordinatedGraphics::deviceScaleFactorDidChange() +@@ -149,6 +159,11 @@ void DrawingAreaProxyCoordinatedGraphics::deviceScaleFactorDidChange() m_webPageProxy.send(Messages::DrawingArea::SetDeviceScaleFactor(m_webPageProxy.deviceScaleFactor()), m_identifier); } @@ -12170,10 +12385,10 @@ index 45b5f4ccc1e178336499356a4fd41b99764980fd..a69212defad2502da15678929462fb19 + m_callbacks.append(WTFMove(callback)); +} + - void DrawingAreaProxyCoordinatedGraphics::waitForBackingStoreUpdateOnNextPaint() + void DrawingAreaProxyCoordinatedGraphics::setBackingStoreIsDiscardable(bool isBackingStoreDiscardable) { - m_hasReceivedFirstUpdate = true; -@@ -172,6 +187,45 @@ void DrawingAreaProxyCoordinatedGraphics::targetRefreshRateDidChange(unsigned ra + #if !PLATFORM(WPE) +@@ -215,6 +230,45 @@ void DrawingAreaProxyCoordinatedGraphics::targetRefreshRateDidChange(unsigned ra m_webPageProxy.send(Messages::DrawingArea::TargetRefreshRateDidChange(rate), m_identifier); } @@ -12216,10 +12431,10 @@ index 45b5f4ccc1e178336499356a4fd41b99764980fd..a69212defad2502da15678929462fb19 +} +#endif + - #if !PLATFORM(WPE) - void DrawingAreaProxyCoordinatedGraphics::incorporateUpdate(UpdateInfo&& updateInfo) + bool DrawingAreaProxyCoordinatedGraphics::alwaysUseCompositing() const { -@@ -250,6 +304,11 @@ void DrawingAreaProxyCoordinatedGraphics::didUpdateGeometry() + return m_webPageProxy.preferences().acceleratedCompositingEnabled() && m_webPageProxy.preferences().forceCompositingMode(); +@@ -269,6 +323,11 @@ void DrawingAreaProxyCoordinatedGraphics::didUpdateGeometry() // we need to resend the new size here. if (m_lastSentSize != m_size) sendUpdateGeometry(); @@ -12232,7 +12447,7 @@ index 45b5f4ccc1e178336499356a4fd41b99764980fd..a69212defad2502da15678929462fb19 #if !PLATFORM(WPE) diff --git a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h -index d2b7ea6ee7c62ceba39098aad864b7c96e03e44c..3241006dee9b3e7d2ba9b4a6d15eabd27d6b3b2f 100644 +index 482795eb9d23e54d3e0dca1f7fb38aaab58818db..3c20d84970d6304392a760db1726baa3acf62e7f 100644 --- a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h +++ b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h @@ -30,6 +30,7 @@ @@ -12254,7 +12469,7 @@ index d2b7ea6ee7c62ceba39098aad864b7c96e03e44c..3241006dee9b3e7d2ba9b4a6d15eabd2 void dispatchAfterEnsuringDrawing(CompletionHandler&&); -@@ -70,6 +75,9 @@ private: +@@ -69,6 +74,9 @@ private: void exitAcceleratedCompositingMode(uint64_t backingStoreStateID, UpdateInfo&&) override; void updateAcceleratedCompositingMode(uint64_t backingStoreStateID, const LayerTreeContext&) override; void targetRefreshRateDidChange(unsigned) override; @@ -12264,7 +12479,7 @@ index d2b7ea6ee7c62ceba39098aad864b7c96e03e44c..3241006dee9b3e7d2ba9b4a6d15eabd2 bool shouldSendWheelEventsToEventDispatcher() const override { return true; } -@@ -124,6 +132,7 @@ private: +@@ -118,6 +126,7 @@ private: // The last size we sent to the web process. WebCore::IntSize m_lastSentSize; @@ -12272,7 +12487,7 @@ index d2b7ea6ee7c62ceba39098aad864b7c96e03e44c..3241006dee9b3e7d2ba9b4a6d15eabd2 #if !PLATFORM(WPE) bool m_isBackingStoreDiscardable { true }; -@@ -131,6 +140,10 @@ private: +@@ -126,6 +135,10 @@ private: RunLoop::Timer m_discardBackingStoreTimer; #endif std::unique_ptr m_drawingMonitor; @@ -12284,7 +12499,7 @@ index d2b7ea6ee7c62ceba39098aad864b7c96e03e44c..3241006dee9b3e7d2ba9b4a6d15eabd2 } // namespace WebKit diff --git a/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp b/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp -index f7678d26a5576db91363b229df216f619895b4e5..9a74d7b9795819723a8ac45602435dc4ef9e3641 100644 +index 3778bb4b451fb4e61dba05293fef541c39022e02..689e54828a1cf2536169feb0d30971908fb81137 100644 --- a/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp +++ b/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp @@ -41,8 +41,10 @@ @@ -12323,7 +12538,7 @@ index f7678d26a5576db91363b229df216f619895b4e5..9a74d7b9795819723a8ac45602435dc4 m_downloadProxyMap.downloadFinished(*this); }); } else -@@ -163,6 +171,21 @@ void DownloadProxy::decideDestinationWithSuggestedFilename(const WebCore::Resour +@@ -166,6 +174,21 @@ void DownloadProxy::decideDestinationWithSuggestedFilename(const WebCore::Resour suggestedFilename = m_suggestedFilename; suggestedFilename = MIMETypeRegistry::appendFileExtensionIfNecessary(suggestedFilename, response.mimeType()); @@ -12345,7 +12560,7 @@ index f7678d26a5576db91363b229df216f619895b4e5..9a74d7b9795819723a8ac45602435dc4 m_client->decideDestinationWithSuggestedFilename(*this, response, ResourceResponseBase::sanitizeSuggestedFilename(suggestedFilename), [this, protectedThis = Ref { *this }, completionHandler = WTFMove(completionHandler)] (AllowOverwrite allowOverwrite, String destination) mutable { SandboxExtension::Handle sandboxExtensionHandle; if (!destination.isNull()) { -@@ -211,6 +234,8 @@ void DownloadProxy::didFinish() +@@ -214,6 +237,8 @@ void DownloadProxy::didFinish() updateQuarantinePropertiesIfPossible(); #endif m_client->didFinish(*this); @@ -12354,7 +12569,7 @@ index f7678d26a5576db91363b229df216f619895b4e5..9a74d7b9795819723a8ac45602435dc4 // This can cause the DownloadProxy object to be deleted. m_downloadProxyMap.downloadFinished(*this); -@@ -221,6 +246,8 @@ void DownloadProxy::didFail(const ResourceError& error, const IPC::DataReference +@@ -224,6 +249,8 @@ void DownloadProxy::didFail(const ResourceError& error, const IPC::DataReference m_legacyResumeData = createData(resumeData); m_client->didFail(*this, error, m_legacyResumeData.get()); @@ -12364,7 +12579,7 @@ index f7678d26a5576db91363b229df216f619895b4e5..9a74d7b9795819723a8ac45602435dc4 // 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 6ec99825d6c232c391986aed9099d0595857ce75..818341cf6549ffb68209c1472cc648395873dd6c 100644 +index 9b69cad753b5b2e3844caac57b44c067507e68e7..1e898d7311a2cb8cb6d9a4042f91f41c552dcea3 100644 --- a/Source/WebKit/UIProcess/Downloads/DownloadProxy.h +++ b/Source/WebKit/UIProcess/Downloads/DownloadProxy.h @@ -144,6 +144,7 @@ private: @@ -12376,10 +12591,10 @@ index 6ec99825d6c232c391986aed9099d0595857ce75..818341cf6549ffb68209c1472cc64839 } // namespace WebKit diff --git a/Source/WebKit/UIProcess/DrawingAreaProxy.h b/Source/WebKit/UIProcess/DrawingAreaProxy.h -index de6f4d3453e1e1625bad616a4def94c108afde41..71311fbefdf8ca10d145f79d0a4432f6a5acb765 100644 +index 6df5f84736de1e30958171ee39cbc91ff786798d..4c084b4c223580487a4f90f59e416a6c1c0f4854 100644 --- a/Source/WebKit/UIProcess/DrawingAreaProxy.h +++ b/Source/WebKit/UIProcess/DrawingAreaProxy.h -@@ -87,6 +87,7 @@ public: +@@ -86,6 +86,7 @@ public: const WebCore::IntSize& size() const { return m_size; } bool setSize(const WebCore::IntSize&, const WebCore::IntSize& scrollOffset = { }); @@ -12387,7 +12602,7 @@ index de6f4d3453e1e1625bad616a4def94c108afde41..71311fbefdf8ca10d145f79d0a4432f6 #if USE(COORDINATED_GRAPHICS) || USE(TEXTURE_MAPPER) virtual void targetRefreshRateDidChange(unsigned) { } -@@ -161,6 +162,10 @@ private: +@@ -163,6 +164,10 @@ private: virtual void update(uint64_t /* backingStoreStateID */, UpdateInfo&&) { } virtual void exitAcceleratedCompositingMode(uint64_t /* backingStoreStateID */, UpdateInfo&&) { } #endif @@ -12399,11 +12614,11 @@ index de6f4d3453e1e1625bad616a4def94c108afde41..71311fbefdf8ca10d145f79d0a4432f6 } // namespace WebKit diff --git a/Source/WebKit/UIProcess/DrawingAreaProxy.messages.in b/Source/WebKit/UIProcess/DrawingAreaProxy.messages.in -index 0eb42c7c689ec97a5ebacd46969ee07d169200a6..529e80f65de845639552ed0466ba494a4e18f60f 100644 +index fc5c53f18ad2dee2c2f40cdbb86ca7f24b262d8d..d93d804d3a8ebaa30856710df544f3db5aa7ad2d 100644 --- a/Source/WebKit/UIProcess/DrawingAreaProxy.messages.in +++ b/Source/WebKit/UIProcess/DrawingAreaProxy.messages.in @@ -30,4 +30,7 @@ messages -> DrawingAreaProxy NotRefCounted { - Update(uint64_t stateID, struct WebKit::UpdateInfo updateInfo) + Update(uint64_t stateID, struct WebKit::UpdateInfo updateInfo) CanDispatchOutOfOrder ExitAcceleratedCompositingMode(uint64_t backingStoreStateID, struct WebKit::UpdateInfo updateInfo) #endif +#if PLATFORM(WIN) @@ -14531,10 +14746,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..db8531d153be488a63a4f261ab4d29b4da33b8eb +index 0000000000000000000000000000000000000000..5a3010759c8ed1934e105ebda0a7c9b508a3c824 --- /dev/null +++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp -@@ -0,0 +1,984 @@ +@@ -0,0 +1,1003 @@ +/* + * Copyright (C) 2019 Microsoft Corporation. + * @@ -14607,7 +14822,6 @@ index 0000000000000000000000000000000000000000..db8531d153be488a63a4f261ab4d29b4 +#include +#include + -+ +using namespace Inspector; + +namespace WebKit { @@ -15261,6 +15475,26 @@ index 0000000000000000000000000000000000000000..db8531d153be488a63a4f261ab4d29b4 + return { }; +} + ++Inspector::Protocol::ErrorStringOr InspectorPlaywrightAgent::takePageScreenshot(const String& pageProxyID, int x, int y, int width, int height, std::optional&& omitDeviceScaleFactor) ++{ ++#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE) ++ auto* pageProxyChannel = m_pageProxyChannels.get(pageProxyID); ++ if (!pageProxyChannel) ++ return makeUnexpected("Unknown pageProxyID"_s); ++ ++ bool nominalResolution = omitDeviceScaleFactor.has_value() && *omitDeviceScaleFactor; ++ WebCore::IntRect clip(x, y, width, height); ++ String error; ++ String screenshot = m_client->takePageScreenshot(error, pageProxyChannel->page(), WTFMove(clip), nominalResolution); ++ if (!error.isEmpty()) ++ return makeUnexpected(error); ++ return screenshot; ++#else ++ return makeUnexpected("This method is only supported on macOS."_s); ++#endif ++} ++ ++ +Inspector::Protocol::ErrorStringOr InspectorPlaywrightAgent::setIgnoreCertificateErrors(const String& browserContextID, bool ignore) +{ + String errorString; @@ -15441,7 +15675,7 @@ index 0000000000000000000000000000000000000000..db8531d153be488a63a4f261ab4d29b4 +{ + if (!m_isEnabled) + return; -+ String frameID = WebCore::InspectorPageAgent::makeFrameID(page->process().coreProcessIdentifier(), frameInfoData.frameID ? *frameInfoData.frameID : page->mainFrame()->frameID()); ++ String frameID = WebCore::InspectorPageAgent::makeFrameID(page->process().coreProcessIdentifier(), frameInfoData.frameID); + m_downloads.set(uuid, download); + m_frontendDispatcher->downloadCreated( + toPageProxyIDProtocolString(*page), @@ -15521,10 +15755,10 @@ index 0000000000000000000000000000000000000000..db8531d153be488a63a4f261ab4d29b4 +#endif // ENABLE(REMOTE_INSPECTOR) diff --git a/Source/WebKit/UIProcess/InspectorPlaywrightAgent.h b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.h new file mode 100644 -index 0000000000000000000000000000000000000000..32f72c4128907d544acefa8bbaad10c6ff5a01d2 +index 0000000000000000000000000000000000000000..5e370940b08031fb552bc8b419874deb1ce59233 --- /dev/null +++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.h -@@ -0,0 +1,128 @@ +@@ -0,0 +1,129 @@ +/* + * Copyright (C) 2019 Microsoft Corporation. + * @@ -15614,6 +15848,7 @@ index 0000000000000000000000000000000000000000..32f72c4128907d544acefa8bbaad10c6 + Inspector::Protocol::ErrorStringOr createPage(const String& browserContextID) override; + void navigate(const String& url, const String& pageProxyID, const String& frameId, const String& referrer, Ref&&) override; + Inspector::Protocol::ErrorStringOr grantFileReadAccess(const String& pageProxyID, Ref&& paths) override; ++ Inspector::Protocol::ErrorStringOr takePageScreenshot(const String& pageProxyID, int x, int y, int width, int height, std::optional&& omitDeviceScaleFactor) override; + Inspector::Protocol::ErrorStringOr setIgnoreCertificateErrors(const String& browserContextID, bool ignore) override; + + void getAllCookies(const String& browserContextID, Ref&&) override; @@ -15655,10 +15890,10 @@ index 0000000000000000000000000000000000000000..32f72c4128907d544acefa8bbaad10c6 +#endif // ENABLE(REMOTE_INSPECTOR) diff --git a/Source/WebKit/UIProcess/InspectorPlaywrightAgentClient.h b/Source/WebKit/UIProcess/InspectorPlaywrightAgentClient.h new file mode 100644 -index 0000000000000000000000000000000000000000..c9f2d7ec888e819a49cb898803432013f6270c2a +index 0000000000000000000000000000000000000000..6815001186506b5926ef089d03f6fce46b9f249d --- /dev/null +++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgentClient.h -@@ -0,0 +1,69 @@ +@@ -0,0 +1,73 @@ +/* + * Copyright (C) 2019 Microsoft Corporation. + * @@ -15690,6 +15925,7 @@ index 0000000000000000000000000000000000000000..c9f2d7ec888e819a49cb898803432013 + +#include +#include ++#include +#include +#include +#include @@ -15723,6 +15959,9 @@ index 0000000000000000000000000000000000000000..c9f2d7ec888e819a49cb898803432013 + virtual void closeBrowser() = 0; + virtual std::unique_ptr createBrowserContext(WTF::String& error, const WTF::String& proxyServer, const WTF::String& proxyBypassList) = 0; + virtual void deleteBrowserContext(WTF::String& error, PAL::SessionID) = 0; ++#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE) ++ virtual String takePageScreenshot(WTF::String& error, WebPageProxy&, WebCore::IntRect&& clip, bool nominalResolution) = 0; ++#endif +}; + +} // namespace WebKit @@ -15758,21 +15997,38 @@ index 3fe0abcfe36bef7ca45bed5661a737ed2bfe56d0..510656948af01ec65d4543c805e9667a #include "RemoteMediaSessionCoordinatorProxyMessages.h" #include "WebPageProxy.h" diff --git a/Source/WebKit/UIProcess/PageClient.h b/Source/WebKit/UIProcess/PageClient.h -index 290c016a047960d38fe60f78d4a0fc1c64ac5d38..1514060efe1c3dc43a3dcdbc8cc3b63e2db27992 100644 +index 290c016a047960d38fe60f78d4a0fc1c64ac5d38..82e01ed83f9159ba7f2af3f5bd5082f162a778b9 100644 --- a/Source/WebKit/UIProcess/PageClient.h +++ b/Source/WebKit/UIProcess/PageClient.h -@@ -332,6 +332,11 @@ public: +@@ -84,6 +84,10 @@ OBJC_CLASS WKView; + #endif + #endif + ++#if PLATFORM(GTK) || PLATFORM(WPE) ++#include ++#endif ++ + namespace API { + class Attachment; + class HitTestResult; +@@ -332,7 +336,16 @@ public: virtual void selectionDidChange() = 0; #endif +-#if PLATFORM(COCOA) || PLATFORM(GTK) +// Paywright begin +#if PLATFORM(COCOA) + virtual RetainPtr takeSnapshotForAutomation() = 0; ++#elif PLATFORM(WPE) ++ virtual RefPtr takeViewSnapshot(std::optional&&, bool nominalResolution = false) = 0; ++#elif PLATFORM(GTK) ++ virtual RefPtr takeViewSnapshot(std::optional&&, bool nominalResolution = false) = 0; +#endif +// Paywright end - #if PLATFORM(COCOA) || PLATFORM(GTK) ++#if PLATFORM(COCOA) 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 @@ -15899,7 +16155,7 @@ index 0000000000000000000000000000000000000000..3c8fd0549f1847515d35092f0f49b060 + +#endif // ENABLE(FULLSCREEN_API) diff --git a/Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp b/Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp -index c3e89b97b75df7a5d8cddd917035236b166ac067..595880ec060679d876a556b2d39875ae18185ba3 100644 +index d37c0fdab3545ea166e1f062e7bd40107180c056..9e3f20f9f709786ff7093c746c0ae20022ee134c 100644 --- a/Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp +++ b/Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp @@ -25,6 +25,7 @@ @@ -15908,8 +16164,8 @@ index c3e89b97b75df7a5d8cddd917035236b166ac067..595880ec060679d876a556b2d39875ae #include "ProvisionalFrameProxy.h" +#include "WebFrameProxy.h" + #include "RemotePageProxy.h" #include "VisitedLinkStore.h" - #include "WebFrameProxy.h" diff --git a/Source/WebKit/UIProcess/RemoteInspectorPipe.cpp b/Source/WebKit/UIProcess/RemoteInspectorPipe.cpp new file mode 100644 index 0000000000000000000000000000000000000000..967d6e05836be7e46c8aecfd4c3243bb9f422b96 @@ -16229,10 +16485,10 @@ index f8c06bc779b6be310018840147a044b7c34fed3c..0c35907c6d0e0d2c3bba1f40b2ef59fb namespace WebCore { class PlatformWheelEvent; diff --git a/Source/WebKit/UIProcess/RemotePageProxy.cpp b/Source/WebKit/UIProcess/RemotePageProxy.cpp -index 9d2b760c27a34ca42526011df5ab2fbfb52245d2..cb8b85279f558c8a7957de7f5422dcc8261643c9 100644 +index 962ee6cae7dc76a19243f77f4c01b90163a2e8ba..2aebb41f50dcd87f738daafe0b5aa244844df227 100644 --- a/Source/WebKit/UIProcess/RemotePageProxy.cpp +++ b/Source/WebKit/UIProcess/RemotePageProxy.cpp -@@ -37,6 +37,7 @@ +@@ -39,6 +39,7 @@ #include "WebPageProxyMessages.h" #include "WebProcessMessages.h" #include "WebProcessProxy.h" @@ -16265,7 +16521,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 0b8c3ebdb972da482164cea082dd79b0878feed7..85e913d14c44a2cdcdc5b4834d1523026b2c60d0 100644 +index 0f2875d0465b3267f210e065a9e5ce0830353abb..837b65eeacd48b75fef7d3bb274eddb3a0393639 100644 --- a/Source/WebKit/UIProcess/WebFrameProxy.cpp +++ b/Source/WebKit/UIProcess/WebFrameProxy.cpp @@ -30,6 +30,7 @@ @@ -16971,10 +17227,10 @@ index 0000000000000000000000000000000000000000..3e87bf40ced2301f4fb145c6cb31f2cf + +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp -index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77a18e158d 100644 +index 279ab83cbd781b921d30055998baad70faa8156a..186553172243117291f9773dc8db54bbd24752a6 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.cpp +++ b/Source/WebKit/UIProcess/WebPageProxy.cpp -@@ -169,12 +169,14 @@ +@@ -171,12 +171,14 @@ #include #include #include @@ -16989,7 +17245,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 #include #include #include -@@ -193,16 +195,19 @@ +@@ -195,16 +197,19 @@ #include #include #include @@ -17009,7 +17265,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 #include #include #include -@@ -274,6 +279,9 @@ +@@ -272,6 +277,9 @@ #if PLATFORM(GTK) #include "GtkSettingsManager.h" @@ -17019,7 +17275,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 #include #endif -@@ -383,6 +391,8 @@ static constexpr Seconds tryCloseTimeoutDelay = 50_ms; +@@ -381,6 +389,8 @@ static constexpr Seconds tryCloseTimeoutDelay = 50_ms; static constexpr Seconds audibleActivityClearDelay = 10_s; #endif @@ -17028,7 +17284,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, webPageProxyCounter, ("WebPageProxy")); class StorageRequests { -@@ -749,6 +759,10 @@ WebPageProxy::~WebPageProxy() +@@ -747,6 +757,10 @@ WebPageProxy::~WebPageProxy() internals().remotePageProxyInOpenerProcess = nullptr; internals().openedRemotePageProxies.clear(); @@ -17039,15 +17295,15 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 } void WebPageProxy::addAllMessageReceivers() -@@ -1198,6 +1212,7 @@ void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason) +@@ -1204,6 +1218,7 @@ void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason) + + pageClient().didRelaunchProcess(); internals().pageLoadState.didSwapWebProcesses(); - if (reason != ProcessLaunchReason::InitialProcess) - m_drawingArea->waitForBackingStoreUpdateOnNextPaint(); + m_inspectorController->didFinishAttachingToWebProcess(); } void WebPageProxy::didAttachToRunningProcess() -@@ -1206,7 +1221,7 @@ void WebPageProxy::didAttachToRunningProcess() +@@ -1212,7 +1227,7 @@ void WebPageProxy::didAttachToRunningProcess() #if ENABLE(FULLSCREEN_API) ASSERT(!m_fullScreenManager); @@ -17056,7 +17312,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 #endif #if ENABLE(VIDEO_PRESENTATION_MODE) ASSERT(!m_playbackSessionManager); -@@ -1590,6 +1605,21 @@ WebProcessProxy& WebPageProxy::ensureRunningProcess() +@@ -1600,6 +1615,21 @@ WebProcessProxy& WebPageProxy::ensureRunningProcess() return m_process; } @@ -17078,7 +17334,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 RefPtr WebPageProxy::loadRequest(ResourceRequest&& request, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, API::Object* userData) { if (m_isClosed) -@@ -2150,6 +2180,32 @@ void WebPageProxy::setControlledByAutomation(bool controlled) +@@ -2160,6 +2190,32 @@ void WebPageProxy::setControlledByAutomation(bool controlled) websiteDataStore().networkProcess().send(Messages::NetworkProcess::SetSessionIsControlledByAutomation(m_websiteDataStore->sessionID(), m_controlledByAutomation), 0); } @@ -17111,7 +17367,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 void WebPageProxy::createInspectorTarget(const String& targetId, Inspector::InspectorTargetType type) { MESSAGE_CHECK(m_process, !targetId.isEmpty()); -@@ -2386,6 +2442,25 @@ void WebPageProxy::updateActivityState(OptionSet flagsToUpdate) +@@ -2402,6 +2458,25 @@ void WebPageProxy::updateActivityState(OptionSet flagsToUpdate) { bool wasVisible = isViewVisible(); internals().activityState.remove(flagsToUpdate); @@ -17137,7 +17393,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 if (flagsToUpdate & ActivityState::IsFocused && pageClient().isViewFocused()) internals().activityState.add(ActivityState::IsFocused); if (flagsToUpdate & ActivityState::WindowIsActive && pageClient().isViewWindowActive()) -@@ -3071,6 +3146,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag +@@ -3087,6 +3162,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag { if (!hasRunningProcess()) return; @@ -17146,7 +17402,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 #if PLATFORM(GTK) UNUSED_PARAM(dragStorageName); UNUSED_PARAM(sandboxExtensionHandle); -@@ -3081,6 +3158,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag +@@ -3097,6 +3174,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag m_process->assumeReadAccessToBaseURL(*this, url); ASSERT(dragData.platformData()); @@ -17155,7 +17411,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 send(Messages::WebPage::PerformDragControllerAction(action, dragData.clientPosition(), dragData.globalPosition(), dragData.draggingSourceOperationMask(), *dragData.platformData(), dragData.flags())); #else send(Messages::WebPage::PerformDragControllerAction(action, dragData, sandboxExtensionHandle, sandboxExtensionsForUpload)); -@@ -3096,18 +3175,41 @@ void WebPageProxy::didPerformDragControllerAction(std::optional dragOperationMask) { if (!hasRunningProcess()) -@@ -3116,6 +3218,24 @@ void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& glo +@@ -3132,6 +3234,24 @@ void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& glo setDragCaretRect({ }); } @@ -17225,7 +17481,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 void WebPageProxy::didPerformDragOperation(bool handled) { pageClient().didPerformDragOperation(handled); -@@ -3128,6 +3248,16 @@ void WebPageProxy::didStartDrag() +@@ -3144,6 +3264,16 @@ void WebPageProxy::didStartDrag() discardQueuedMouseEvents(); send(Messages::WebPage::DidStartDrag()); @@ -17242,7 +17498,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 } void WebPageProxy::dragCancelled() -@@ -3245,17 +3375,39 @@ void WebPageProxy::processNextQueuedMouseEvent() +@@ -3267,17 +3397,37 @@ void WebPageProxy::processNextQueuedMouseEvent() m_process->startResponsivenessTimer(); } @@ -17258,27 +17514,26 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 + 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 -+ + #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(m_mainFrame->frameID(), event, sandboxExtensions)); + 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)); ++ send(Messages::WebPage::MouseEvent(m_mainFrame->frameID(), event, sandboxExtensions)); + } else { +#if PLATFORM(WIN) || PLATFORM(COCOA) + 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; @@ -17289,7 +17544,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 } void WebPageProxy::doAfterProcessingAllPendingMouseEvents(WTF::Function&& action) -@@ -3408,6 +3560,8 @@ void WebPageProxy::wheelEventHandlingCompleted(bool wasHandled) +@@ -3437,6 +3587,8 @@ void WebPageProxy::wheelEventHandlingCompleted(bool wasHandled) if (auto* automationSession = process().processPool().automationSession()) automationSession->wheelEventsFlushedForPage(*this); @@ -17298,7 +17553,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 } void WebPageProxy::cacheWheelEventScrollingAccelerationCurve(const NativeWebWheelEvent& nativeWheelEvent) -@@ -3531,7 +3685,7 @@ static TrackingType mergeTrackingTypes(TrackingType a, TrackingType b) +@@ -3565,7 +3717,7 @@ static TrackingType mergeTrackingTypes(TrackingType a, TrackingType b) void WebPageProxy::updateTouchEventTracking(const WebTouchEvent& touchStartEvent) { @@ -17307,24 +17562,24 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 for (auto& touchPoint : touchStartEvent.touchPoints()) { auto location = touchPoint.location(); auto update = [this, location](TrackingType& trackingType, EventTrackingRegions::EventType eventType) { -@@ -3952,6 +4106,8 @@ void WebPageProxy::receivedNavigationPolicyDecision(WebProcessProxy& processNavi +@@ -3981,6 +4133,8 @@ void WebPageProxy::receivedNavigationPolicyDecision(WebProcessProxy& processNavi if (policyAction != PolicyAction::Use || (!preferences().siteIsolationEnabled() && !frame.isMainFrame()) || !navigation) { + if (policyAction == PolicyAction::Download && navigation) + internals().decidePolicyForResponseRequest = navigation->currentRequest(); + auto previousPendingNavigationID = internals().pageLoadState.pendingAPIRequest().navigationID; receivedPolicyDecision(policyAction, navigation, navigation->websitePolicies(), WTFMove(navigationAction), WTFMove(sender), WillContinueLoadInNewProcess::No, std::nullopt); - return; - } -@@ -4044,6 +4200,7 @@ void WebPageProxy::receivedNavigationPolicyDecision(WebProcessProxy& processNavi + #if HAVE(APP_SSO) +@@ -4087,6 +4241,7 @@ void WebPageProxy::receivedNavigationPolicyDecision(WebProcessProxy& processNavi void WebPageProxy::receivedPolicyDecision(PolicyAction action, API::Navigation* navigation, RefPtr&& websitePolicies, std::variant, Ref>&& navigationActionOrResponse, Ref&& sender, WillContinueLoadInNewProcess willContinueLoadInNewProcess, std::optional sandboxExtensionHandle) { + m_inspectorController->didReceivePolicyDecision(action, navigation ? navigation->navigationID() : 0); if (!hasRunningProcess()) { - sender->send(PolicyDecision { sender->identifier(), isNavigatingToAppBoundDomain() }); + sender->send(PolicyDecision { isNavigatingToAppBoundDomain() }); return; -@@ -4896,6 +5053,11 @@ void WebPageProxy::pageScaleFactorDidChange(double scaleFactor) +@@ -4939,6 +5094,11 @@ void WebPageProxy::pageScaleFactorDidChange(double scaleFactor) m_pageScaleFactor = scaleFactor; } @@ -17336,7 +17591,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 void WebPageProxy::pluginScaleFactorDidChange(double pluginScaleFactor) { MESSAGE_CHECK(m_process, scaleFactorIsValid(pluginScaleFactor)); -@@ -5383,6 +5545,7 @@ void WebPageProxy::didDestroyNavigationShared(Ref&& process, ui +@@ -5419,6 +5579,7 @@ void WebPageProxy::didDestroyNavigationShared(Ref&& process, ui PageClientProtector protector(pageClient()); m_navigationState->didDestroyNavigation(process->coreProcessIdentifier(), navigationID); @@ -17344,7 +17599,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 } void WebPageProxy::didStartProvisionalLoadForFrame(FrameIdentifier frameID, FrameInfoData&& frameInfo, ResourceRequest&& request, uint64_t navigationID, URL&& url, URL&& unreachableURL, const UserData& userData) -@@ -5615,6 +5778,8 @@ void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref&& p +@@ -5665,6 +5826,8 @@ void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref&& p m_failingProvisionalLoadURL = { }; @@ -17353,23 +17608,24 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 // 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; -@@ -6215,7 +6380,14 @@ void WebPageProxy::decidePolicyForNavigationActionAsync(IPC::Connection& connect +@@ -6274,7 +6437,15 @@ void WebPageProxy::beginSafeBrowsingCheck(const URL&, bool, WebFramePolicyListen + + void WebPageProxy::decidePolicyForNavigationActionAsync(FrameInfoData&& frameInfo, uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& originatingFrameInfo, std::optional originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, CompletionHandler&& completionHandler) { - RefPtr frame = WebFrameProxy::webFrame(frameID); - MESSAGE_CHECK_BASE(frame, &connection); -- decidePolicyForNavigationActionAsyncShared(Ref { process() }, internals().webPageID, frameID, WTFMove(frameInfo), identifier, navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), listenerID); +- decidePolicyForNavigationActionAsyncShared(Ref { process() }, internals().webPageID, WTFMove(frameInfo), navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(completionHandler)); + if (m_inspectorController->shouldPauseLoading()) { -+ m_inspectorController->setContinueLoadingCallback([this, protectedThis = Ref { *this }, frame, frameID, frameInfo = WTFMove(frameInfo), identifier, navigationID, navigationActionData = WTFMove(navigationActionData), -+ originatingFrameInfo = WTFMove(originatingFrameInfo), originatingPageID, originalRequest, request = WTFMove(request), requestBody = WTFMove(requestBody), redirectResponse = WTFMove(redirectResponse), listenerID] () mutable { -+ decidePolicyForNavigationActionAsyncShared(Ref { process() }, internals().webPageID, frameID, WTFMove(frameInfo), identifier, navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), listenerID); ++ decidePolicyForNavigationActionAsyncShared(Ref { process() }, internals().webPageID, WTFMove(frameInfo), navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(completionHandler)); ++ m_inspectorController->setContinueLoadingCallback([this, protectedThis = Ref { *this }, frameInfo = WTFMove(frameInfo), navigationID, navigationActionData = WTFMove(navigationActionData), ++ originatingFrameInfo = WTFMove(originatingFrameInfo), originatingPageID, originalRequest, request = WTFMove(request), requestBody = WTFMove(requestBody), completionHandler = WTFMove(completionHandler)] () mutable { ++ decidePolicyForNavigationActionAsyncShared(Ref { process() }, internals().webPageID, WTFMove(frameInfo), navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(completionHandler)); + }); + } else { -+ decidePolicyForNavigationActionAsyncShared(Ref { process() }, internals().webPageID, frameID, WTFMove(frameInfo), identifier, navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), listenerID); ++ decidePolicyForNavigationActionAsyncShared(Ref { process() }, internals().webPageID, WTFMove(frameInfo), navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(completionHandler)); + } } - 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) -@@ -6813,6 +6985,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa + void WebPageProxy::decidePolicyForNavigationActionAsyncShared(Ref&& process, PageIdentifier webPageID, FrameInfoData&& frameInfo, uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& originatingFrameInfo, std::optional originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, CompletionHandler&& completionHandler) +@@ -6856,6 +7027,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa if (auto* page = originatingFrameInfo->page()) openerAppInitiatedState = page->lastNavigationWasAppInitiated(); @@ -17377,7 +17633,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 auto completionHandler = [this, protectedThis = Ref { *this }, mainFrameURL, request, reply = WTFMove(reply), privateClickMeasurement = navigationActionData.privateClickMeasurement, openerAppInitiatedState = WTFMove(openerAppInitiatedState), openerFrameID = originatingFrameInfoData.frameID] (RefPtr newPage) mutable { if (!newPage) { reply(std::nullopt, std::nullopt); -@@ -6873,6 +7046,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa +@@ -6903,6 +7075,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa void WebPageProxy::showPage() { m_uiClient->showPage(this); @@ -17385,7 +17641,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 } bool WebPageProxy::hasOpenedPage() const -@@ -6952,6 +7126,10 @@ void WebPageProxy::closePage() +@@ -6982,6 +7155,10 @@ void WebPageProxy::closePage() if (isClosed()) return; @@ -17396,7 +17652,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 WEBPAGEPROXY_RELEASE_LOG(Process, "closePage:"); pageClient().clearAllEditCommands(); m_uiClient->close(this); -@@ -6988,6 +7166,8 @@ void WebPageProxy::runJavaScriptAlert(FrameIdentifier frameID, FrameInfoData&& f +@@ -7018,6 +7195,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 { @@ -17405,7 +17661,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 page.m_uiClient->runJavaScriptAlert(page, message, frame, WTFMove(frameInfo), [reply = WTFMove(reply), completion = WTFMove(completion)]() mutable { reply(); completion(); -@@ -7009,6 +7189,8 @@ void WebPageProxy::runJavaScriptConfirm(FrameIdentifier frameID, FrameInfoData&& +@@ -7039,6 +7218,8 @@ void WebPageProxy::runJavaScriptConfirm(FrameIdentifier frameID, FrameInfoData&& if (auto* automationSession = process().processPool().automationSession()) automationSession->willShowJavaScriptDialog(*this); } @@ -17414,7 +17670,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 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 { -@@ -7032,6 +7214,8 @@ void WebPageProxy::runJavaScriptPrompt(FrameIdentifier frameID, FrameInfoData&& +@@ -7062,6 +7243,8 @@ void WebPageProxy::runJavaScriptPrompt(FrameIdentifier frameID, FrameInfoData&& if (auto* automationSession = process().processPool().automationSession()) automationSession->willShowJavaScriptDialog(*this); } @@ -17423,7 +17679,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 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 { -@@ -7146,6 +7330,8 @@ void WebPageProxy::runBeforeUnloadConfirmPanel(FrameIdentifier frameID, FrameInf +@@ -7176,6 +7359,8 @@ void WebPageProxy::runBeforeUnloadConfirmPanel(FrameIdentifier frameID, FrameInf return; } } @@ -17432,7 +17688,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 // Since runBeforeUnloadConfirmPanel() can spin a nested run loop we need to turn off the responsiveness timer and the tryClose timer. m_process->stopResponsivenessTimer(); -@@ -7591,6 +7777,11 @@ void WebPageProxy::resourceLoadDidCompleteWithError(ResourceLoadInfo&& loadInfo, +@@ -7626,6 +7811,11 @@ void WebPageProxy::resourceLoadDidCompleteWithError(ResourceLoadInfo&& loadInfo, } #if ENABLE(FULLSCREEN_API) @@ -17444,7 +17700,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 WebFullScreenManagerProxy* WebPageProxy::fullScreenManager() { return m_fullScreenManager.get(); -@@ -8511,6 +8702,8 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) +@@ -8546,6 +8736,8 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) if (auto* automationSession = process().processPool().automationSession()) automationSession->mouseEventsFlushedForPage(*this); didFinishProcessingAllPendingMouseEvents(); @@ -17453,7 +17709,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 } break; } -@@ -8549,7 +8742,6 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) +@@ -8584,7 +8776,6 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) // The call to doneWithKeyEvent may close this WebPage. // Protect against this being destroyed. Ref protect(*this); @@ -17461,7 +17717,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 pageClient().doneWithKeyEvent(event, handled); if (!handled) m_uiClient->didNotHandleKeyEvent(this, event); -@@ -8558,6 +8750,7 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) +@@ -8593,6 +8784,7 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) if (!canProcessMoreKeyEvents) { if (auto* automationSession = process().processPool().automationSession()) automationSession->keyboardEventsFlushedForPage(*this); @@ -17469,7 +17725,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 } break; } -@@ -8911,7 +9104,10 @@ void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason) +@@ -8946,7 +9138,10 @@ void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason) { WEBPAGEPROXY_RELEASE_LOG_ERROR(Loading, "dispatchProcessDidTerminate: reason=%" PUBLIC_LOG_STRING, processTerminationReasonToString(reason)); @@ -17481,7 +17737,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 if (m_loaderClient) handledByClient = reason != ProcessTerminationReason::RequestedByClient && m_loaderClient->processDidCrash(*this); else -@@ -9284,6 +9480,7 @@ bool WebPageProxy::useGPUProcessForDOMRenderingEnabled() const +@@ -9319,6 +9514,7 @@ bool WebPageProxy::useGPUProcessForDOMRenderingEnabled() const WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& process, DrawingAreaProxy& drawingArea, RefPtr&& websitePolicies) { @@ -17489,7 +17745,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 WebPageCreationParameters parameters; parameters.processDisplayName = configuration().processDisplayName(); -@@ -9485,6 +9682,8 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc +@@ -9520,6 +9716,8 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc parameters.httpsUpgradeEnabled = preferences().upgradeKnownHostsToHTTPSEnabled() ? m_configuration->httpsUpgradeEnabled() : false; @@ -17498,7 +17754,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 #if PLATFORM(IOS) || PLATFORM(VISION) // FIXME: This is also being passed over the to WebProcess via the PreferencesStore. parameters.allowsDeprecatedSynchronousXMLHttpRequestDuringUnload = allowsDeprecatedSynchronousXMLHttpRequestDuringUnload(); -@@ -9569,8 +9768,42 @@ void WebPageProxy::gamepadActivity(const Vector>& gam +@@ -9604,8 +9802,42 @@ void WebPageProxy::gamepadActivity(const Vector>& gam #endif @@ -17541,7 +17797,7 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 if (negotiatedLegacyTLS == NegotiatedLegacyTLS::Yes) { m_navigationClient->shouldAllowLegacyTLS(*this, authenticationChallenge.get(), [this, protectedThis = Ref { *this }, authenticationChallenge] (bool shouldAllowLegacyTLS) { if (shouldAllowLegacyTLS) -@@ -9674,6 +9907,15 @@ void WebPageProxy::requestGeolocationPermissionForFrame(GeolocationIdentifier ge +@@ -9709,6 +9941,15 @@ void WebPageProxy::requestGeolocationPermissionForFrame(GeolocationIdentifier ge request->deny(); }; @@ -17558,18 +17814,19 @@ index ce864e1c97baa224614649b21702ef7e6fc5a96e..03b2367cd95bd4e4631d4239f9787c77 // 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 d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945afefe759c 100644 +index 41b18adc02933918be11cbff5569b13f9f8f8cc1..6769f624d2f67e1442722b759a10693e476dad44 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.h +++ b/Source/WebKit/UIProcess/WebPageProxy.h -@@ -26,12 +26,31 @@ +@@ -26,6 +26,7 @@ #pragma once #include "APIObject.h" +#include "APIWebsitePolicies.h" #include "MessageReceiver.h" #include "MessageSender.h" - #include #include +@@ -33,6 +34,24 @@ + #include #include #include +#include "InspectorDialogAgent.h" @@ -17593,7 +17850,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a namespace API { class Attachment; -@@ -92,6 +111,7 @@ class DestinationColorSpace; +@@ -93,6 +112,7 @@ class DestinationColorSpace; class DragData; class FloatPoint; class FloatQuad; @@ -17601,7 +17858,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a class FloatRect; class FloatSize; class FontAttributeChanges; -@@ -380,6 +400,7 @@ class WebExtensionController; +@@ -381,6 +401,7 @@ class WebExtensionController; class WebFramePolicyListenerProxy; class WebFrameProxy; class WebFullScreenManagerProxy; @@ -17609,7 +17866,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a class WebInspectorUIProxy; class WebKeyboardEvent; class WebMouseEvent; -@@ -577,6 +598,8 @@ public: +@@ -576,6 +597,8 @@ public: void setControlledByAutomation(bool); WebPageInspectorController& inspectorController() { return *m_inspectorController; } @@ -17618,7 +17875,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a #if PLATFORM(IOS_FAMILY) void showInspectorIndication(); -@@ -607,6 +630,7 @@ public: +@@ -606,6 +629,7 @@ public: bool hasSleepDisabler() const; #if ENABLE(FULLSCREEN_API) @@ -17626,7 +17883,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a WebFullScreenManagerProxy* fullScreenManager(); API::FullscreenClient& fullscreenClient() const { return *m_fullscreenClient; } -@@ -695,6 +719,11 @@ public: +@@ -694,6 +718,11 @@ public: void setPageLoadStateObserver(std::unique_ptr&&); @@ -17638,7 +17895,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a void initializeWebPage(); void setDrawingArea(std::unique_ptr&&); -@@ -721,6 +750,7 @@ public: +@@ -720,6 +749,7 @@ public: void addPlatformLoadParameters(WebProcessProxy&, LoadParameters&); RefPtr loadRequest(WebCore::ResourceRequest&&); RefPtr loadRequest(WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy, API::Object* userData = nullptr); @@ -17646,7 +17903,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a 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); -@@ -1293,6 +1323,7 @@ public: +@@ -1288,6 +1318,7 @@ public: #endif void pageScaleFactorDidChange(double); @@ -17654,7 +17911,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a void pluginScaleFactorDidChange(double); void pluginZoomFactorDidChange(double); -@@ -1383,14 +1414,20 @@ public: +@@ -1377,14 +1408,20 @@ public: void didStartDrag(); void dragCancelled(); void setDragCaretRect(const WebCore::IntRect&); @@ -17676,7 +17933,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a #endif void processDidBecomeUnresponsive(); -@@ -1607,6 +1644,7 @@ public: +@@ -1601,6 +1638,7 @@ public: void setViewportSizeForCSSViewportUnits(const WebCore::FloatSize&); WebCore::FloatSize viewportSizeForCSSViewportUnits() const; @@ -17684,7 +17941,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a void didReceiveAuthenticationChallengeProxy(Ref&&, NegotiatedLegacyTLS); void negotiatedLegacyTLS(); void didNegotiateModernTLS(const URL&); -@@ -1641,6 +1679,8 @@ public: +@@ -1635,6 +1673,8 @@ public: #if PLATFORM(COCOA) || PLATFORM(GTK) RefPtr takeViewSnapshot(std::optional&&); @@ -17693,7 +17950,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a #endif #if ENABLE(WEB_CRYPTO) -@@ -2927,8 +2967,10 @@ private: +@@ -2907,8 +2947,10 @@ private: String m_overrideContentSecurityPolicy; RefPtr m_inspector; @@ -17704,7 +17961,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a std::unique_ptr m_fullScreenManager; std::unique_ptr m_fullscreenClient; #endif -@@ -3110,6 +3152,22 @@ private: +@@ -3090,6 +3132,22 @@ private: std::optional m_currentDragOperation; bool m_currentDragIsOverFileInput { false }; unsigned m_currentDragNumberOfFilesToBeAccepted { 0 }; @@ -17727,7 +17984,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a #endif bool m_mainFrameHasHorizontalScrollbar { false }; -@@ -3277,6 +3335,10 @@ private: +@@ -3257,6 +3315,10 @@ private: RefPtr messageBody; }; Vector m_pendingInjectedBundleMessages; @@ -17739,7 +17996,7 @@ index d2b7db056aeb206ba15da70eedb82e079665522b..d9a2e14cbfae43fd0142903acdb4945a #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 983a8a5d3e7393b5b32f65e01b16a343def8aaa5..2dd587845bc076ca575032100da10fdf84c419a4 100644 +index 3501a297012db004b25d91c8a92d149b47a5c98d..845a929a0aa4b1af1047a0c7234feedecdaf4403 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.messages.in +++ b/Source/WebKit/UIProcess/WebPageProxy.messages.in @@ -29,6 +29,7 @@ messages -> WebPageProxy { @@ -17789,7 +18046,7 @@ index 58e39fd6df029efb3801ad914dfc96f4e6a8d8dc..7b47e3f1e08d6f974889def778fcee35 } diff --git a/Source/WebKit/UIProcess/WebProcessPool.cpp b/Source/WebKit/UIProcess/WebProcessPool.cpp -index c116ecd626f03556678c50a617c7806cd750ff86..f516ffdd657e213d491c5847d6513df5ece79d56 100644 +index b5b404aeacee13c1d1f08cf2be9ccd19eeae8175..ba574e9613171e0591dd6ec70ee310965a33e2c5 100644 --- a/Source/WebKit/UIProcess/WebProcessPool.cpp +++ b/Source/WebKit/UIProcess/WebProcessPool.cpp @@ -384,10 +384,10 @@ void WebProcessPool::setAutomationClient(std::unique_ptr& @@ -17817,7 +18074,7 @@ index c116ecd626f03556678c50a617c7806cd750ff86..f516ffdd657e213d491c5847d6513df5 void WebProcessPool::fullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled) { -@@ -539,6 +540,14 @@ void WebProcessPool::establishRemoteWorkerContextConnectionToNetworkProcess(Remo +@@ -542,6 +543,14 @@ void WebProcessPool::establishRemoteWorkerContextConnectionToNetworkProcess(Remo RefPtr requestingProcess = requestingProcessIdentifier ? WebProcessProxy::processForIdentifier(*requestingProcessIdentifier) : nullptr; WebProcessPool* processPool = requestingProcess ? &requestingProcess->processPool() : processPools()[0]; @@ -17832,7 +18089,7 @@ index c116ecd626f03556678c50a617c7806cd750ff86..f516ffdd657e213d491c5847d6513df5 ASSERT(processPool); WebProcessProxy* remoteWorkerProcessProxy { nullptr }; -@@ -843,7 +852,7 @@ void WebProcessPool::initializeNewWebProcess(WebProcessProxy& process, WebsiteDa +@@ -850,7 +859,7 @@ void WebProcessPool::initializeNewWebProcess(WebProcessProxy& process, WebsiteDa #endif parameters.cacheModel = LegacyGlobalSettings::singleton().cacheModel(); @@ -17842,10 +18099,10 @@ index c116ecd626f03556678c50a617c7806cd750ff86..f516ffdd657e213d491c5847d6513df5 parameters.urlSchemesRegisteredAsEmptyDocument = copyToVector(m_schemesToRegisterAsEmptyDocument); diff --git a/Source/WebKit/UIProcess/WebProcessProxy.cpp b/Source/WebKit/UIProcess/WebProcessProxy.cpp -index c2c5398d3c0ef7573b6dfa4125c3f0a4cea0302d..3852e40c086ba698169203ddfc14770305379bd7 100644 +index e25e43bc48460a221afc2594dcda553942def734..05033d41747ea2def5b591e156c1d98e086e8d29 100644 --- a/Source/WebKit/UIProcess/WebProcessProxy.cpp +++ b/Source/WebKit/UIProcess/WebProcessProxy.cpp -@@ -169,6 +169,11 @@ Vector> WebProcessProxy::allProcesses() +@@ -170,6 +170,11 @@ Vector> WebProcessProxy::allProcesses() }); } @@ -17857,7 +18114,7 @@ index c2c5398d3c0ef7573b6dfa4125c3f0a4cea0302d..3852e40c086ba698169203ddfc147703 RefPtr WebProcessProxy::processForIdentifier(ProcessIdentifier identifier) { return allProcessMap().get(identifier).get(); -@@ -501,6 +506,26 @@ void WebProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOpt +@@ -502,6 +507,26 @@ void WebProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOpt if (WebKit::isInspectorProcessPool(processPool())) launchOptions.extraInitializationData.add("inspector-process"_s, "1"_s); @@ -17885,7 +18142,7 @@ index c2c5398d3c0ef7573b6dfa4125c3f0a4cea0302d..3852e40c086ba698169203ddfc147703 if (isPrewarmed()) diff --git a/Source/WebKit/UIProcess/WebProcessProxy.h b/Source/WebKit/UIProcess/WebProcessProxy.h -index f041968f2b0efec8cd146e1add58053f28207c83..20d5777ae9861d515c34b4b316a4e5036ae57ab0 100644 +index f88872f19589ef5c40b4b6c40937ff280a580503..949588f6f8cf7c7f010e1f8f811bbbf6cb6c1fea 100644 --- a/Source/WebKit/UIProcess/WebProcessProxy.h +++ b/Source/WebKit/UIProcess/WebProcessProxy.h @@ -163,6 +163,7 @@ public: @@ -17897,11 +18154,21 @@ index f041968f2b0efec8cd146e1add58053f28207c83..20d5777ae9861d515c34b4b316a4e503 WebConnection* webConnection() const { return m_webConnection.get(); } diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp -index 44f4f2cba70da6d9f1ecb9dc86f9aaf41db1efe0..fd4a98ebb13bef1979756a50ff27590b2b98cd0d 100644 +index 3fc97e96b47acf364b0fcb17bf9150567cf4f1dc..2ab6808401a9b975d48f7bd30a5215ff2b0f0551 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp -@@ -2204,6 +2204,12 @@ void WebsiteDataStore::originDirectoryForTesting(WebCore::ClientOrigin&& origin, - networkProcess().websiteDataOriginDirectoryForTesting(m_sessionID, WTFMove(origin), type, WTFMove(completionHandler)); +@@ -293,7 +293,8 @@ SOAuthorizationCoordinator& WebsiteDataStore::soAuthorizationCoordinator(const W + + static Ref networkProcessForSession(PAL::SessionID sessionID) + { +-#if ((PLATFORM(GTK) || PLATFORM(WPE)) && !ENABLE(2022_GLIB_API)) ++// Playwright wants to isolate per BrowserContext. ++#if ((PLATFORM(GTK) || PLATFORM(WPE))) + if (sessionID.isEphemeral()) { + // Reuse a previous persistent session network process for ephemeral sessions. + for (auto* dataStore : allDataStores().values()) { +@@ -2211,6 +2212,12 @@ void WebsiteDataStore::originDirectoryForTesting(WebCore::ClientOrigin&& origin, + protectedNetworkProcess()->websiteDataOriginDirectoryForTesting(m_sessionID, WTFMove(origin), type, WTFMove(completionHandler)); } +void WebsiteDataStore::setDownloadForAutomation(std::optional allow, const String& downloadPath) @@ -17914,7 +18181,7 @@ index 44f4f2cba70da6d9f1ecb9dc86f9aaf41db1efe0..fd4a98ebb13bef1979756a50ff27590b void WebsiteDataStore::hasAppBoundSession(CompletionHandler&& completionHandler) const { diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h -index 8dab7e885ee7647e814c1a2ab286b5c575473627..afac4c91d83913fd536f76234fc842a7e369ef88 100644 +index 8b2b390229d48baaadf725b6e4cf3e1313e2d2d8..7bbb2d6ad89d8dfcef6fb48c03fb951dee98f8f6 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h @@ -95,6 +95,7 @@ class DeviceIdHashSaltStorage; @@ -17948,7 +18215,7 @@ index 8dab7e885ee7647e814c1a2ab286b5c575473627..afac4c91d83913fd536f76234fc842a7 class WebsiteDataStore : public API::ObjectImpl, public Identified, public CanMakeWeakPtr { public: static Ref defaultDataStore(); -@@ -314,11 +324,13 @@ public: +@@ -316,11 +326,13 @@ public: const WebCore::CurlProxySettings& networkProxySettings() const { return m_proxySettings; } #endif @@ -17963,7 +18230,7 @@ index 8dab7e885ee7647e814c1a2ab286b5c575473627..afac4c91d83913fd536f76234fc842a7 void setNetworkProxySettings(WebCore::SoupNetworkProxySettings&&); const WebCore::SoupNetworkProxySettings& networkProxySettings() const { return m_networkProxySettings; } void setCookiePersistentStorage(const String&, SoupCookiePersistentStorageType); -@@ -403,6 +415,12 @@ public: +@@ -405,6 +417,12 @@ public: static const String& defaultBaseDataDirectory(); #endif @@ -17976,7 +18243,7 @@ index 8dab7e885ee7647e814c1a2ab286b5c575473627..afac4c91d83913fd536f76234fc842a7 void resetQuota(CompletionHandler&&); void resetStoragePersistedState(CompletionHandler&&); #if PLATFORM(IOS_FAMILY) -@@ -550,9 +568,11 @@ private: +@@ -560,9 +578,11 @@ private: WebCore::CurlProxySettings m_proxySettings; #endif @@ -17989,7 +18256,7 @@ index 8dab7e885ee7647e814c1a2ab286b5c575473627..afac4c91d83913fd536f76234fc842a7 WebCore::SoupNetworkProxySettings m_networkProxySettings; String m_cookiePersistentStoragePath; SoupCookiePersistentStorageType m_cookiePersistentStorageType { SoupCookiePersistentStorageType::SQLite }; -@@ -580,6 +600,10 @@ private: +@@ -591,6 +611,10 @@ private: RefPtr m_cookieStore; RefPtr m_networkProcess; @@ -18081,10 +18348,10 @@ index db15435ed4581388a631547cdc92c092362ff84a..de45cfe0b737a0450455bafbda91887d }; diff --git a/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.cpp b/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..20a7cd2c65be39b3bcab356f6eee0b82d084c6bf +index 0000000000000000000000000000000000000000..da579b964f8ff0c4b4f79283a6661d7a8672c4d9 --- /dev/null +++ b/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.cpp -@@ -0,0 +1,152 @@ +@@ -0,0 +1,181 @@ +/* + * Copyright (C) 2019 Microsoft Corporation. + * @@ -18116,16 +18383,21 @@ index 0000000000000000000000000000000000000000..20a7cd2c65be39b3bcab356f6eee0b82 +#if ENABLE(REMOTE_INSPECTOR) + +#include "InspectorPlaywrightAgent.h" ++#include "PageClient.h" ++#include "ViewSnapshotStore.h" +#include "WebKitBrowserInspectorPrivate.h" +#include "WebKitWebContextPrivate.h" +#include "WebKitWebsiteDataManagerPrivate.h" +#include "WebKitWebViewPrivate.h" +#include "WebPageProxy.h" ++#include +#include +#include ++#include +#include +#include + ++ +namespace WebKit { + +static WebCore::SoupNetworkProxySettings parseRawProxySettings(const String& proxyServer, const char* const* ignoreHosts) @@ -18194,17 +18466,15 @@ index 0000000000000000000000000000000000000000..20a7cd2c65be39b3bcab356f6eee0b82 + fprintf(stderr, "LEAK: %d contexts are still alive when closing browser\n", webkitWebContextExistingCount()); +} + -+static PAL::SessionID sessionIDFromContext(WebKitWebContext* context) -+{ -+ WebKitWebsiteDataManager* data_manager = webkit_web_context_get_website_data_manager(context); -+ WebsiteDataStore& websiteDataStore = webkitWebsiteDataManagerGetDataStore(data_manager); -+ return websiteDataStore.sessionID(); -+} -+ +std::unique_ptr InspectorPlaywrightAgentClientGlib::createBrowserContext(WTF::String& error, const WTF::String& proxyServer, const WTF::String& proxyBypassList) +{ ++#if !ENABLE(2022_GLIB_API) + GRefPtr data_manager = adoptGRef(webkit_website_data_manager_new_ephemeral()); -+ GRefPtr context = adoptGRef(WEBKIT_WEB_CONTEXT(g_object_new(WEBKIT_TYPE_WEB_CONTEXT, "website-data-manager", data_manager.get(), ++#endif ++ GRefPtr context = adoptGRef(WEBKIT_WEB_CONTEXT(g_object_new(WEBKIT_TYPE_WEB_CONTEXT, ++#if !ENABLE(2022_GLIB_API) ++ "website-data-manager", data_manager.get(), ++#endif + // WPE has PSON enabled by default and doesn't have such parameter. +#if PLATFORM(GTK) + "process-swap-on-cross-site-navigation-enabled", true, @@ -18214,10 +18484,17 @@ index 0000000000000000000000000000000000000000..20a7cd2c65be39b3bcab356f6eee0b82 + error = "Failed to create GLib ephemeral context"_s; + return nullptr; + } ++ ++#if ENABLE(2022_GLIB_API) ++ GRefPtr networkSession = adoptGRef(webkit_network_session_new_ephemeral()); ++ webkit_web_context_set_network_session_for_automation(context.get(), networkSession.get()); ++ GRefPtr data_manager = webkit_network_session_get_website_data_manager(networkSession.get()); ++#endif ++ + auto browserContext = std::make_unique(); + browserContext->processPool = &webkitWebContextGetProcessPool(context.get()); + browserContext->dataStore = &webkitWebsiteDataManagerGetDataStore(data_manager.get()); -+ PAL::SessionID sessionID = sessionIDFromContext(context.get()); ++ PAL::SessionID sessionID = browserContext.get()->dataStore->sessionID(); + m_idToContext.set(sessionID, WTFMove(context)); + + if (!proxyServer.isEmpty()) { @@ -18234,15 +18511,34 @@ index 0000000000000000000000000000000000000000..20a7cd2c65be39b3bcab356f6eee0b82 + m_idToContext.remove(sessionID); +} + ++String InspectorPlaywrightAgentClientGlib::takePageScreenshot(WTF::String& error, WebPageProxy& page, WebCore::IntRect&& clip, bool nominalResolution) ++{ ++ cairo_surface_t* surface = nullptr; ++#if PLATFORM(GTK) ++ RefPtr viewSnapshot = page.pageClient().takeViewSnapshot(WTFMove(clip), nominalResolution); ++ if (viewSnapshot) ++ surface = viewSnapshot->surface(); ++#elif PLATFORM(WPE) ++ RefPtr protectPtr = page.pageClient().takeViewSnapshot(WTFMove(clip), nominalResolution); ++ surface = protectPtr.get(); ++#endif ++ if (surface) { ++ Vector encodeData = WebCore::encodeData(surface, "image/png"_s, std::nullopt); ++ return makeString("data:image/png;base64,"_s, base64Encoded(encodeData)); ++ } ++ error = "Failed to take screenshot"_s; ++ return String(); ++} ++ +} // namespace WebKit + +#endif // ENABLE(REMOTE_INSPECTOR) diff --git a/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.h b/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.h new file mode 100644 -index 0000000000000000000000000000000000000000..8006336003a4512b4c63bc8272d4b3507bb63159 +index 0000000000000000000000000000000000000000..7280da5ef80c76bb34fc0a905efe70bbe5dcc3c8 --- /dev/null +++ b/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.h -@@ -0,0 +1,60 @@ +@@ -0,0 +1,61 @@ +/* + * Copyright (C) 2019 Microsoft Corporation. + * @@ -18292,6 +18588,7 @@ index 0000000000000000000000000000000000000000..8006336003a4512b4c63bc8272d4b350 + void closeBrowser() override; + std::unique_ptr createBrowserContext(WTF::String& error, const WTF::String& proxyServer, const WTF::String& proxyBypassList) override; + void deleteBrowserContext(WTF::String& error, PAL::SessionID) override; ++ String takePageScreenshot(WTF::String& error, WebPageProxy&, WebCore::IntRect&& clip, bool nominalResolution) override; + +private: + WebKitWebContext* findContext(WTF::String& error, PAL::SessionID); @@ -18325,7 +18622,7 @@ 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 1a208de31a054b630448d0e6d4799fdf05ae5d21..d8cd1d26962394cf6dc643f5f571d11adf4b46cb 100644 +index 63b699e8944ee87f8546496aca281cf4efd78869..a1ecfb5f4467555ad3a370d23f4005678fb2f443 100644 --- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp +++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp @@ -386,6 +386,25 @@ void AcceleratedBackingStoreDMABuf::Surface::paint(GtkWidget*, cairo_t* cr, cons @@ -18354,7 +18651,7 @@ index 1a208de31a054b630448d0e6d4799fdf05ae5d21..d8cd1d26962394cf6dc643f5f571d11a void AcceleratedBackingStoreDMABuf::configure(UnixFileDescriptor&& backFD, UnixFileDescriptor&& frontFD, UnixFileDescriptor&& displayFD, const WebCore::IntSize& size, uint32_t format, uint32_t offset, uint32_t stride, uint64_t modifier) { m_isSoftwareRast = false; -@@ -576,4 +595,13 @@ bool AcceleratedBackingStoreDMABuf::paint(cairo_t* cr, const WebCore::IntRect& c +@@ -571,4 +590,13 @@ bool AcceleratedBackingStoreDMABuf::paint(cairo_t* cr, const WebCore::IntRect& c } #endif @@ -18687,7 +18984,7 @@ index a5d22fb2ded1af0b22d3633e2c0f27390883679f..3a5672f959161ed6c8c6e159bb037379 } diff --git a/Source/WebKit/UIProcess/mac/DisplayCaptureSessionManager.mm b/Source/WebKit/UIProcess/mac/DisplayCaptureSessionManager.mm -index e325ac426faa1c8bf443df12ba041a44e3bf9786..5a986315779adb9e8a76423b505cc110f93571bd 100644 +index b966690dded104d2d3debd5a25fa4a7ba3e5539b..ec12c90073fc3498a1fe8d78e943c57441e1c607 100644 --- a/Source/WebKit/UIProcess/mac/DisplayCaptureSessionManager.mm +++ b/Source/WebKit/UIProcess/mac/DisplayCaptureSessionManager.mm @@ -245,7 +245,7 @@ void DisplayCaptureSessionManager::promptForGetDisplayMedia(UserMediaPermissionR @@ -18701,10 +18998,10 @@ index e325ac426faa1c8bf443df12ba041a44e3bf9786..5a986315779adb9e8a76423b505cc110 } diff --git a/Source/WebKit/UIProcess/mac/InspectorPlaywrightAgentClientMac.h b/Source/WebKit/UIProcess/mac/InspectorPlaywrightAgentClientMac.h new file mode 100644 -index 0000000000000000000000000000000000000000..a16815a6759da61a6a61e3d79058228af887fd7c +index 0000000000000000000000000000000000000000..a56c14a89afef09890174e72895733a6499543a1 --- /dev/null +++ b/Source/WebKit/UIProcess/mac/InspectorPlaywrightAgentClientMac.h -@@ -0,0 +1,51 @@ +@@ -0,0 +1,53 @@ +/* + * Copyright (C) 2019 Microsoft Corporation. + * @@ -18742,26 +19039,28 @@ index 0000000000000000000000000000000000000000..a16815a6759da61a6a61e3d79058228a +class InspectorPlaywrightAgentClientMac : public InspectorPlaywrightAgentClient { + WTF_MAKE_FAST_ALLOCATED; +public: -+ InspectorPlaywrightAgentClientMac(_WKBrowserInspectorDelegate* delegate); ++ InspectorPlaywrightAgentClientMac(_WKBrowserInspectorDelegate* delegate, bool headless); + ~InspectorPlaywrightAgentClientMac() override = default; + + RefPtr createPage(WTF::String& error, const BrowserContext&) override; + void closeBrowser() override; + std::unique_ptr createBrowserContext(WTF::String& error, const WTF::String& proxyServer, const WTF::String& proxyBypassList) override; + void deleteBrowserContext(WTF::String& error, PAL::SessionID) override; ++ String takePageScreenshot(WTF::String& error, WebPageProxy&, WebCore::IntRect&& clip, bool nominalResolution) override; + +private: + _WKBrowserInspectorDelegate* delegate_; ++ bool headless_; +}; + + +} // namespace API diff --git a/Source/WebKit/UIProcess/mac/InspectorPlaywrightAgentClientMac.mm b/Source/WebKit/UIProcess/mac/InspectorPlaywrightAgentClientMac.mm new file mode 100644 -index 0000000000000000000000000000000000000000..8e588f7b8c8c29fb53dd37ea41d46f3d753077fd +index 0000000000000000000000000000000000000000..a30d408d97c383929036626691020923f9dbfbd7 --- /dev/null +++ b/Source/WebKit/UIProcess/mac/InspectorPlaywrightAgentClientMac.mm -@@ -0,0 +1,77 @@ +@@ -0,0 +1,94 @@ +/* + * Copyright (C) 2019 Microsoft Corporation. + * @@ -18790,8 +19089,7 @@ index 0000000000000000000000000000000000000000..8e588f7b8c8c29fb53dd37ea41d46f3d +#import "config.h" +#import "InspectorPlaywrightAgentClientMac.h" + -+#import -+#import ++#import "PageClient.h" +#import "WebPageProxy.h" +#import "WebProcessPool.h" +#import "WebsiteDataStore.h" @@ -18800,11 +19098,15 @@ index 0000000000000000000000000000000000000000..8e588f7b8c8c29fb53dd37ea41d46f3d +#import "WKWebsiteDataStoreInternal.h" +#import "WKWebView.h" +#import "WKWebViewInternal.h" ++#import ++#import ++#import + +namespace WebKit { + -+InspectorPlaywrightAgentClientMac::InspectorPlaywrightAgentClientMac(_WKBrowserInspectorDelegate* delegate) -+ : delegate_(delegate) ++InspectorPlaywrightAgentClientMac::InspectorPlaywrightAgentClientMac(_WKBrowserInspectorDelegate* delegate, bool headless) ++ : delegate_(delegate), ++ headless_(headless) +{ +} + @@ -18838,6 +19140,20 @@ index 0000000000000000000000000000000000000000..8e588f7b8c8c29fb53dd37ea41d46f3d + [delegate_ deleteBrowserContext:sessionID.toUInt64()]; +} + ++String InspectorPlaywrightAgentClientMac::takePageScreenshot(WTF::String& error, WebPageProxy& page, WebCore::IntRect&& clipRect, bool) ++{ ++ RetainPtr imageRef = page.pageClient().takeSnapshotForAutomation(); ++ if (!imageRef) { ++ error = "Could not take view snapshot"_s; ++ return String(); ++ } ++ ++ int toolbarHeight = headless_ ? 0 : 59; ++ clipRect.move(0, toolbarHeight); ++ RetainPtr transformedImageRef = adoptCF(CGImageCreateWithImageInRect(imageRef.get(), clipRect)); ++ return WebCore::dataURL(transformedImageRef.get(), "image/png"_s, std::nullopt); ++} ++ +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/mac/InspectorTargetProxyMac.mm b/Source/WebKit/UIProcess/mac/InspectorTargetProxyMac.mm new file mode 100644 @@ -19042,6 +19358,18 @@ index f57fbfcb950259723f5d7672198ec811491003a2..30eb73f44f4b8d2dc8888f86128b2215 return m_impl->windowIsFrontWindowUnderMouse(event.nativeEvent()); } +diff --git a/Source/WebKit/UIProcess/mac/WKImmediateActionController.h b/Source/WebKit/UIProcess/mac/WKImmediateActionController.h +index 74db97569f5179f3065f0a48dbb228777ddc6925..853d6ed84648ccb60f63ed464dddfeedfe374178 100644 +--- a/Source/WebKit/UIProcess/mac/WKImmediateActionController.h ++++ b/Source/WebKit/UIProcess/mac/WKImmediateActionController.h +@@ -31,6 +31,7 @@ + #import "WKImmediateActionTypes.h" + #import "WebHitTestResultData.h" + #import ++#import + #import + #import + #import diff --git a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h b/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h index 46aaf12accb35a2e7685d61887e76f0fe14d76c5..37f418197dcc3f6c74fac258ba77d00df0effeb2 100644 --- a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h @@ -19055,7 +19383,7 @@ index 46aaf12accb35a2e7685d61887e76f0fe14d76c5..37f418197dcc3f6c74fac258ba77d00d bool showAfterPostProcessingContextData(); diff --git a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm b/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm -index 24b96cf7d9881c7f90759b0493f44183373ec61a..88ac06a09e4375e2ca12451d351a31606e133fb3 100644 +index a38ea69b1ad0d77f4736b3de5e0e81741c0b9a98..86ce1429522e5f76fc432e3e903e72d920fc5791 100644 --- a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm +++ b/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm @@ -480,6 +480,12 @@ void WebContextMenuProxyMac::getShareMenuItem(CompletionHandler #import #import -@@ -2369,6 +2371,11 @@ WebCore::DestinationColorSpace WebViewImpl::colorSpace() +@@ -2340,6 +2342,11 @@ WebCore::DestinationColorSpace WebViewImpl::colorSpace() if (!m_colorSpace) m_colorSpace = [NSColorSpace sRGBColorSpace]; } @@ -19303,7 +19631,7 @@ index 099fc04d0901e8922938710ba8b76567491483ec..3557d27afbd88fd9286e9c67847d4741 ASSERT(m_colorSpace); return WebCore::DestinationColorSpace { [m_colorSpace CGColorSpace] }; -@@ -4435,6 +4442,18 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN +@@ -4406,6 +4413,18 @@ ALLOW_DEPRECATED_DECLARATIONS_BEGIN ALLOW_DEPRECATED_DECLARATIONS_END } @@ -19322,7 +19650,7 @@ index 099fc04d0901e8922938710ba8b76567491483ec..3557d27afbd88fd9286e9c67847d4741 RefPtr WebViewImpl::takeViewSnapshot() { NSWindow *window = [m_view window]; -@@ -5031,11 +5050,11 @@ static Vector compositionHighlights(NSAttributedS +@@ -5002,11 +5021,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; @@ -19336,7 +19664,7 @@ index 099fc04d0901e8922938710ba8b76567491483ec..3557d27afbd88fd9286e9c67847d4741 foregroundHighlightColor = WebCore::colorFromCocoaColor(foregroundColor); highlights.append({ static_cast(range.location), static_cast(NSMaxRange(range)), backgroundHighlightColor, foregroundHighlightColor }); -@@ -5127,7 +5146,7 @@ static Vector compositionUnderlines(NSAttributedS +@@ -5098,7 +5117,7 @@ static Vector compositionUnderlines(NSAttributedS return mergedUnderlines; } @@ -19345,7 +19673,7 @@ index 099fc04d0901e8922938710ba8b76567491483ec..3557d27afbd88fd9286e9c67847d4741 { if (!string.length) return { }; -@@ -5140,7 +5159,7 @@ static HashMap> compositionAnnotations(NSAttribut +@@ -5111,7 +5130,7 @@ static HashMap> compositionAnnotations(NSAttribut }); #endif @@ -19354,7 +19682,7 @@ index 099fc04d0901e8922938710ba8b76567491483ec..3557d27afbd88fd9286e9c67847d4741 [string enumerateAttributesInRange:NSMakeRange(0, string.length) options:0 usingBlock:[&annotations](NSDictionary *attributes, NSRange range, BOOL *) { [attributes enumerateKeysAndObjectsUsingBlock:[&annotations, &range](NSAttributedStringKey key, id value, BOOL *) { -@@ -5149,7 +5168,7 @@ static HashMap> compositionAnnotations(NSAttribut +@@ -5120,7 +5139,7 @@ static HashMap> compositionAnnotations(NSAttribut auto it = annotations.find(key); if (it == annotations.end()) @@ -19363,7 +19691,7 @@ index 099fc04d0901e8922938710ba8b76567491483ec..3557d27afbd88fd9286e9c67847d4741 auto& vector = it->value; // Coalesce this range into the previous one if possible -@@ -5176,7 +5195,7 @@ void WebViewImpl::setMarkedText(id string, NSRange selectedRange, NSRange replac +@@ -5147,7 +5166,7 @@ void WebViewImpl::setMarkedText(id string, NSRange selectedRange, NSRange replac Vector underlines; Vector highlights; @@ -19372,7 +19700,7 @@ index 099fc04d0901e8922938710ba8b76567491483ec..3557d27afbd88fd9286e9c67847d4741 NSString *text; if (isAttributedString) { -@@ -6040,7 +6059,7 @@ void WebViewImpl::updateMediaPlaybackControlsManager() +@@ -6011,7 +6030,7 @@ void WebViewImpl::updateMediaPlaybackControlsManager() [m_playbackControlsManager setCanTogglePictureInPicture:NO]; } @@ -20141,10 +20469,10 @@ index 0000000000000000000000000000000000000000..a7d88f8c745f95af21db71dcfce368ba + +} // namespace WebKit diff --git a/Source/WebKit/WebKit.xcodeproj/project.pbxproj b/Source/WebKit/WebKit.xcodeproj/project.pbxproj -index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a8ae222cd 100644 +index 4d2b0f95ee9155c2609dde955b557a9ab470ff24..b577c3453e36f94e9b7919db453b7852cf7f5457 100644 --- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj +++ b/Source/WebKit/WebKit.xcodeproj/project.pbxproj -@@ -1336,6 +1336,7 @@ +@@ -1350,6 +1350,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 */; }; @@ -20152,7 +20480,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 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 @@ +@@ -2109,6 +2110,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 */; }; @@ -20171,7 +20499,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 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, ); }; }; -@@ -2158,6 +2171,8 @@ +@@ -2174,6 +2187,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 */; }; @@ -20180,7 +20508,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 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 */; }; -@@ -2176,6 +2191,9 @@ +@@ -2192,6 +2207,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, ); }; }; @@ -20190,7 +20518,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 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 */; }; -@@ -5426,6 +5444,7 @@ +@@ -5459,6 +5477,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 = ""; }; @@ -20198,7 +20526,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 5CAECB5E27465AE300AB78D0 /* UnifiedSource115.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = UnifiedSource115.cpp; sourceTree = ""; }; 5CAF7AA426F93A750003F19E /* adattributiond */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = adattributiond; sourceTree = BUILT_PRODUCTS_DIR; }; 5CAF7AA526F93A950003F19E /* adattributiond.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = adattributiond.cpp; sourceTree = ""; }; -@@ -7022,6 +7041,19 @@ +@@ -7058,6 +7077,19 @@ DF0C5F24252ECB8D00D921DB /* WKDownload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDownload.h; sourceTree = ""; }; DF0C5F25252ECB8E00D921DB /* WKDownloadInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDownloadInternal.h; sourceTree = ""; }; DF0C5F26252ECB8E00D921DB /* WKDownloadDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDownloadDelegate.h; sourceTree = ""; }; @@ -20218,7 +20546,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 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 = ""; }; -@@ -7159,6 +7191,8 @@ +@@ -7193,6 +7225,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 = ""; }; @@ -20227,7 +20555,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 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 = ""; }; -@@ -7182,6 +7216,14 @@ +@@ -7216,6 +7250,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 = ""; }; @@ -20242,7 +20570,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 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 = ""; }; -@@ -7354,6 +7396,7 @@ +@@ -7390,6 +7432,7 @@ 3766F9EE189A1241003CF19B /* JavaScriptCore.framework in Frameworks */, 3766F9F1189A1254003CF19B /* libicucore.dylib in Frameworks */, 7B9FC5BB28A5233B007570E7 /* libWebKitPlatform.a in Frameworks */, @@ -20250,7 +20578,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 3766F9EF189A1244003CF19B /* QuartzCore.framework in Frameworks */, 37694525184FC6B600CDE21F /* Security.framework in Frameworks */, 37BEC4DD1948FC6A008B4286 /* WebCore.framework in Frameworks */, -@@ -9865,6 +9908,7 @@ +@@ -9911,6 +9954,7 @@ 99788ACA1F421DCA00C08000 /* _WKAutomationSessionConfiguration.mm */, 990D28A81C6404B000986977 /* _WKAutomationSessionDelegate.h */, 990D28AF1C65203900986977 /* _WKAutomationSessionInternal.h */, @@ -20258,7 +20586,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 5C4609E222430E4C009943C2 /* _WKContentRuleListAction.h */, 5C4609E322430E4D009943C2 /* _WKContentRuleListAction.mm */, 5C4609E422430E4D009943C2 /* _WKContentRuleListActionInternal.h */, -@@ -11012,6 +11056,7 @@ +@@ -11062,6 +11106,7 @@ E34B110C27C46BC6006D2F2E /* libWebCoreTestShim.dylib */, E34B110F27C46D09006D2F2E /* libWebCoreTestSupport.dylib */, DDE992F4278D06D900F60D26 /* libWebKitAdditions.a */, @@ -20266,7 +20594,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 57A9FF15252C6AEF006A2040 /* libWTF.a */, 5750F32A2032D4E500389347 /* LocalAuthentication.framework */, 570DAAB0230273D200E8FC04 /* NearField.framework */, -@@ -11564,6 +11609,12 @@ +@@ -11601,6 +11646,12 @@ children = ( 9197940423DBC4BB00257892 /* InspectorBrowserAgent.cpp */, 9197940323DBC4BB00257892 /* InspectorBrowserAgent.h */, @@ -20279,7 +20607,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a ); path = Agents; sourceTree = ""; -@@ -11572,6 +11623,7 @@ +@@ -11609,6 +11660,7 @@ isa = PBXGroup; children = ( A5D3504D1D78F0D2005124A9 /* RemoteWebInspectorUIProxyMac.mm */, @@ -20287,7 +20615,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 1CA8B935127C774E00576C2B /* WebInspectorUIProxyMac.mm */, 99A7ACE326012919006D57FD /* WKInspectorResourceURLSchemeHandler.h */, 99A7ACE42601291A006D57FD /* WKInspectorResourceURLSchemeHandler.mm */, -@@ -12166,6 +12218,7 @@ +@@ -12214,6 +12266,7 @@ E1513C65166EABB200149FCB /* AuxiliaryProcessProxy.h */, 46A2B6061E5675A200C3DEDA /* BackgroundProcessResponsivenessTimer.cpp */, 46A2B6071E5675A200C3DEDA /* BackgroundProcessResponsivenessTimer.h */, @@ -20295,7 +20623,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 07297F9C1C1711EA003F0735 /* DeviceIdHashSaltStorage.cpp */, 07297F9D1C17BBEA223F0735 /* DeviceIdHashSaltStorage.h */, BC2652121182608100243E12 /* DrawingAreaProxy.cpp */, -@@ -12181,6 +12234,8 @@ +@@ -12229,6 +12282,8 @@ 2DD5A72A1EBF09A7009BA597 /* HiddenPageThrottlingAutoIncreasesCounter.h */, 839A2F2F1E2067390039057E /* HighPerformanceGraphicsUsageSampler.cpp */, 839A2F301E2067390039057E /* HighPerformanceGraphicsUsageSampler.h */, @@ -20304,7 +20632,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 5CEABA2B2333251400797797 /* LegacyGlobalSettings.cpp */, 5CEABA2A2333247700797797 /* LegacyGlobalSettings.h */, 31607F3819627002009B87DA /* LegacySessionStateCoding.h */, -@@ -12215,6 +12270,7 @@ +@@ -12263,6 +12318,7 @@ 1A0C227D2451130A00ED614D /* QuickLookThumbnailingSoftLink.mm */, 1AEE57232409F142002005D6 /* QuickLookThumbnailLoader.h */, 1AEE57242409F142002005D6 /* QuickLookThumbnailLoader.mm */, @@ -20312,7 +20640,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 5CCB54DC2A4FEA6A0005FAA8 /* RemotePageDrawingAreaProxy.cpp */, 5CCB54DB2A4FEA6A0005FAA8 /* RemotePageDrawingAreaProxy.h */, 5C907E9A294D507100B3402D /* RemotePageProxy.cpp */, -@@ -12320,6 +12376,8 @@ +@@ -12368,6 +12424,8 @@ BC7B6204129A0A6700D174A4 /* WebPageGroup.h */, 2D9EA3101A96D9EB002D2807 /* WebPageInjectedBundleClient.cpp */, 2D9EA30E1A96CBFF002D2807 /* WebPageInjectedBundleClient.h */, @@ -20321,7 +20649,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a BC111B0B112F5E4F00337BAB /* WebPageProxy.cpp */, BC032DCB10F4389F0058C15A /* WebPageProxy.h */, BCBD38FA125BAB9A00D2C29F /* WebPageProxy.messages.in */, -@@ -12482,6 +12540,7 @@ +@@ -12530,6 +12588,7 @@ BC646C1911DD399F006455B0 /* WKBackForwardListItemRef.h */, BC646C1611DD399F006455B0 /* WKBackForwardListRef.cpp */, BC646C1711DD399F006455B0 /* WKBackForwardListRef.h */, @@ -20329,7 +20657,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a BCB9E24A1120E15C00A137E0 /* WKContext.cpp */, BCB9E2491120E15C00A137E0 /* WKContext.h */, 1AE52F9319201F6B00A1FA37 /* WKContextConfigurationRef.cpp */, -@@ -13063,6 +13122,9 @@ +@@ -13109,6 +13168,9 @@ 0F49294628FF0F4B00AF8509 /* DisplayLinkProcessProxyClient.h */, 31ABA79C215AF9E000C90E31 /* HighPerformanceGPUManager.h */, 31ABA79D215AF9E000C90E31 /* HighPerformanceGPUManager.mm */, @@ -20339,7 +20667,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 1AFDE65B1954E8D500C48FFA /* LegacySessionStateCoding.cpp */, 0FCB4E5818BBE3D9000FCFC9 /* PageClientImplMac.h */, 0FCB4E5918BBE3D9000FCFC9 /* PageClientImplMac.mm */, -@@ -13086,6 +13148,8 @@ +@@ -13132,6 +13194,8 @@ E568B92120A3AC6A00E3C856 /* WebDataListSuggestionsDropdownMac.mm */, E55CD20124D09F1F0042DB9C /* WebDateTimePickerMac.h */, E55CD20224D09F1F0042DB9C /* WebDateTimePickerMac.mm */, @@ -20348,7 +20676,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a BC857E8512B71EBB00EDEB2E /* WebPageProxyMac.mm */, BC5750951268F3C6006F0F12 /* WebPopupMenuProxyMac.h */, BC5750961268F3C6006F0F12 /* WebPopupMenuProxyMac.mm */, -@@ -14002,6 +14066,7 @@ +@@ -14055,6 +14119,7 @@ 99788ACB1F421DDA00C08000 /* _WKAutomationSessionConfiguration.h in Headers */, 990D28AC1C6420CF00986977 /* _WKAutomationSessionDelegate.h in Headers */, 990D28B11C65208D00986977 /* _WKAutomationSessionInternal.h in Headers */, @@ -20356,7 +20684,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 5C4609E7224317B4009943C2 /* _WKContentRuleListAction.h in Headers */, 5C4609E8224317BB009943C2 /* _WKContentRuleListActionInternal.h in Headers */, 1A5704F81BE01FF400874AF1 /* _WKContextMenuElementInfo.h in Headers */, -@@ -14273,6 +14338,7 @@ +@@ -14330,6 +14395,7 @@ E170876C16D6CA6900F99226 /* BlobRegistryProxy.h in Headers */, 4F601432155C5AA2001FBDE0 /* BlockingResponseMap.h in Headers */, 1A5705111BE410E600874AF1 /* BlockSPI.h in Headers */, @@ -20364,7 +20692,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a BC3065FA1259344E00E71278 /* CacheModel.h in Headers */, 935BF7FC2936BF1A00B41326 /* CacheStorageCache.h in Headers */, 934CF817294B884C00304F7D /* CacheStorageDiskStore.h in Headers */, -@@ -14407,7 +14473,11 @@ +@@ -14465,7 +14531,11 @@ BC14DF77120B5B7900826C0C /* InjectedBundleScriptWorld.h in Headers */, CE550E152283752200D28791 /* InsertTextOptions.h in Headers */, 9197940523DBC4BB00257892 /* InspectorBrowserAgent.h in Headers */, @@ -20374,9 +20702,9 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a + D71A94322370E025002C4D9E /* InspectorPlaywrightAgentClientMac.h in Headers */, + F3867F0A24607D4E008F0F31 /* InspectorScreencastAgent.h in Headers */, A5E391FD2183C1F800C8FB31 /* InspectorTargetProxy.h in Headers */, - 51E9049C27BCB9D400929E7E /* InstallCoordinationSPI.h in Headers */, C5BCE5DF1C50766A00CDE3FA /* InteractionInformationAtPosition.h in Headers */, -@@ -14637,6 +14707,7 @@ + 2D4D2C811DF60BF3002EB10C /* InteractionInformationRequest.h in Headers */, +@@ -14693,6 +14763,7 @@ CDAC20CA23FC2F750021DEE3 /* RemoteCDMInstanceSession.h in Headers */, CDAC20C923FC2F750021DEE3 /* RemoteCDMInstanceSessionIdentifier.h in Headers */, F451C0FE2703B263002BA03B /* RemoteDisplayListRecorderProxy.h in Headers */, @@ -20384,7 +20712,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 2D47B56D1810714E003A3AEE /* RemoteLayerBackingStore.h in Headers */, 2DDF731518E95060004F5A66 /* RemoteLayerBackingStoreCollection.h in Headers */, 1AB16AEA164B3A8800290D62 /* RemoteLayerTreeContext.h in Headers */, -@@ -14688,6 +14759,7 @@ +@@ -14744,6 +14815,7 @@ E1E552C516AE065F004ED653 /* SandboxInitializationParameters.h in Headers */, E36FF00327F36FBD004BE21A /* SandboxStateVariables.h in Headers */, 7BAB111025DD02B3008FC479 /* ScopedActiveMessageReceiveQueue.h in Headers */, @@ -20392,7 +20720,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a E4D54D0421F1D72D007E3C36 /* ScrollingTreeFrameScrollingNodeRemoteIOS.h in Headers */, 0F931C1C18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.h in Headers */, 0F931C1C18C5711900DBB8D4 /* ScrollingTreeScrollingNodeDelegateIOS.h in Headers */, -@@ -14977,6 +15049,8 @@ +@@ -15041,6 +15113,8 @@ 939EF87029D112EE00F23AEE /* WebPageInlines.h in Headers */, 9197940823DBC4CB00257892 /* WebPageInspectorAgentBase.h in Headers */, A513F5402154A5D700662841 /* WebPageInspectorController.h in Headers */, @@ -20401,16 +20729,16 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a A543E30C215C8A8D00279CD9 /* WebPageInspectorTarget.h in Headers */, A543E30D215C8A9000279CD9 /* WebPageInspectorTargetController.h in Headers */, A543E307215AD13700279CD9 /* WebPageInspectorTargetFrontendChannel.h in Headers */, -@@ -17031,6 +17105,8 @@ - 51E9049727BCB3D900929E7E /* ICAppBundle.mm in Sources */, +@@ -17095,6 +17169,8 @@ + 522F792928D50EBB0069B45B /* HidService.mm in Sources */, 2749F6442146561B008380BF /* InjectedBundleNodeHandle.cpp in Sources */, 2749F6452146561E008380BF /* InjectedBundleRangeHandle.cpp in Sources */, + D7EB04E72372A73B00F744CE /* InspectorPlaywrightAgentClientMac.mm in Sources */, + D79902B2236E9404005D6F7E /* InspectorTargetProxyMac.mm in Sources */, + 1C2B4D4B2A819D0D00C528A1 /* JSWebExtensionAPIAlarms.mm in Sources */, B6114A7F29394A1600380B1B /* JSWebExtensionAPIEvent.mm in Sources */, 1C5DC471290B33A20061EC62 /* JSWebExtensionAPIExtension.mm in Sources */, - 1C5DC4552908AC900061EC62 /* JSWebExtensionAPINamespace.mm in Sources */, -@@ -17401,6 +17477,8 @@ +@@ -17473,6 +17549,8 @@ E3816B3D27E2463A005EAFC0 /* WebMockContentFilterManager.cpp in Sources */, 31BA924D148831260062EDB5 /* WebNotificationManagerMessageReceiver.cpp in Sources */, 2DF6FE52212E110900469030 /* WebPage.cpp in Sources */, @@ -20420,7 +20748,7 @@ index 454ceb27dc6295a8ed80bbdcff790180f5360d98..d10391b6b13ed6ec79bafef99173542a 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 db04dda4a0e2b1de5268956616b11d1210327803..c609d1b71a3fe45cecf58fb6dc88457f53bfabfd 100644 +index 96ca9aa77753f7ca5684185cfe0c6c61b4fa778d..93a415117af807fa7048a7a6e2e602839176af3b 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 @@ -20462,7 +20790,7 @@ index db04dda4a0e2b1de5268956616b11d1210327803..c609d1b71a3fe45cecf58fb6dc88457f loadParameters.identifier = identifier; loadParameters.webPageProxyID = trackingParameters.webPageProxyID; loadParameters.webPageID = trackingParameters.pageID; -@@ -481,14 +486,11 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -484,14 +489,11 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL if (loadParameters.options.mode != FetchOptions::Mode::Navigate) { ASSERT(loadParameters.sourceOrigin); @@ -20480,7 +20808,7 @@ index db04dda4a0e2b1de5268956616b11d1210327803..c609d1b71a3fe45cecf58fb6dc88457f loadParameters.isMainFrameNavigation = isMainFrameNavigation; if (loadParameters.isMainFrameNavigation && document) -@@ -524,12 +526,24 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -527,12 +529,24 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL } ASSERT((loadParameters.webPageID && loadParameters.webFrameID) || loadParameters.clientCredentialPolicy == ClientCredentialPolicy::CannotAskClientForCredentials); @@ -20502,10 +20830,10 @@ index db04dda4a0e2b1de5268956616b11d1210327803..c609d1b71a3fe45cecf58fb6dc88457f WEBLOADERSTRATEGY_RELEASE_LOG("scheduleLoad: Resource is being scheduled with the NetworkProcess (priority=%d, existingNetworkResourceLoadIdentifierToResume=%" PRIu64 ")", static_cast(resourceLoader.request().priority()), valueOrDefault(existingNetworkResourceLoadIdentifierToResume).toUInt64()); + auto* frame = resourceLoader.frame(); - if (frame && !frame->settings().siteIsolationEnabled() && loadParameters.request.allowCookies() && !WebProcess::singleton().allowsFirstPartyForCookies(loadParameters.request.firstPartyForCookies())) + if (frame && !frame->settings().siteIsolationEnabled() && !WebProcess::singleton().allowsFirstPartyForCookies(loadParameters.request.firstPartyForCookies())) RELEASE_LOG_FAULT(IPC, "scheduleLoad: Process will terminate due to failed allowsFirstPartyForCookies check"); -@@ -542,7 +556,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -545,7 +559,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL } auto loader = WebResourceLoader::create(resourceLoader, trackingParameters); @@ -20514,7 +20842,7 @@ index db04dda4a0e2b1de5268956616b11d1210327803..c609d1b71a3fe45cecf58fb6dc88457f } void WebLoaderStrategy::scheduleInternallyFailedLoad(WebCore::ResourceLoader& resourceLoader) -@@ -956,7 +970,7 @@ void WebLoaderStrategy::didFinishPreconnection(WebCore::ResourceLoaderIdentifier +@@ -959,7 +973,7 @@ void WebLoaderStrategy::didFinishPreconnection(WebCore::ResourceLoaderIdentifier bool WebLoaderStrategy::isOnLine() const { @@ -20523,7 +20851,7 @@ index db04dda4a0e2b1de5268956616b11d1210327803..c609d1b71a3fe45cecf58fb6dc88457f } void WebLoaderStrategy::addOnlineStateChangeListener(Function&& listener) -@@ -983,6 +997,11 @@ void WebLoaderStrategy::isResourceLoadFinished(CachedResource& resource, Complet +@@ -986,6 +1000,11 @@ void WebLoaderStrategy::isResourceLoadFinished(CachedResource& resource, Complet void WebLoaderStrategy::setOnLineState(bool isOnLine) { @@ -20535,7 +20863,7 @@ index db04dda4a0e2b1de5268956616b11d1210327803..c609d1b71a3fe45cecf58fb6dc88457f if (m_isOnLine == isOnLine) return; -@@ -991,6 +1010,12 @@ void WebLoaderStrategy::setOnLineState(bool isOnLine) +@@ -994,6 +1013,12 @@ void WebLoaderStrategy::setOnLineState(bool isOnLine) listener(isOnLine); } @@ -20579,7 +20907,7 @@ index 3a3e596fa167fadaf36cfafdf8fd91dd0d7c8a8e..a6a305585706f9a407375fd2e365c52b } // namespace WebKit diff --git a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp -index 8b0cc12f3f0a953e8a24a0f3f9bea6756f508aba..ce35f7a4cf33908649d00ab2ca3a41b1d5f8c9d0 100644 +index 3d4a9612fd50f92fa1922f3918926c1f89c8aed7..ba5f0baafe3035386cd6f9bb0b044bb40000e752 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 @@ -20602,7 +20930,7 @@ index 8b0cc12f3f0a953e8a24a0f3f9bea6756f508aba..ce35f7a4cf33908649d00ab2ca3a41b1 } diff --git a/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp b/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp -index 777d8c44883adc46d0bb782dc411dedc8c2b2213..1e3611ffedbf6c57f73a99df3d4122bfdefffd65 100644 +index ee9c3c4f48c328daaa015e2122235e51349bd999..5b3a4d3e742147195e0ff9e88176759df1b799db 100644 --- a/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp +++ b/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp @@ -85,7 +85,7 @@ void NotificationPermissionRequestManager::startRequest(const SecurityOriginData @@ -20615,10 +20943,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 83fa6434db76f329c4f92f62de030ba10a7fac2c..e5bf2a62d857b593ad73004131e3c9912bfa2680 100644 +index 888dc9b6f2edb6347901611bc9cd4622b4b0a08a..3bf71068c4a17cf8fb165f32cb39b6b324a407b2 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp +++ b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp -@@ -443,6 +443,8 @@ void WebChromeClient::setResizable(bool resizable) +@@ -425,6 +425,8 @@ void WebChromeClient::setResizable(bool resizable) void WebChromeClient::addMessageToConsole(MessageSource source, MessageLevel level, const String& message, unsigned lineNumber, unsigned columnNumber, const String& sourceID) { @@ -20655,10 +20983,10 @@ index 87121e8b57e5ad7ef74857685f0db65e164a5bf8..580dca6ca0709a2d620d3999beb69856 { } diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp -index f7ac066d15020bf3ec90e742b4c6c125888caa47..91b862d76d930fec7478e65277af03bbd19fb8e0 100644 +index 38d6259743caae4f32be376a8f54194d80571885..8a221e35850842113070ebf8da570ba6cdcdea1b 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp +++ b/Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp -@@ -1543,14 +1543,6 @@ void WebLocalFrameLoaderClient::transitionToCommittedForNewPage() +@@ -1548,14 +1548,6 @@ void WebLocalFrameLoaderClient::transitionToCommittedForNewPage() if (webPage->scrollPinningBehavior() != ScrollPinningBehavior::DoNotPin) view->setScrollPinningBehavior(webPage->scrollPinningBehavior()); @@ -20817,7 +21145,7 @@ index 0000000000000000000000000000000000000000..ddc4b5e736252135a63d5787065c20fa + +#endif // ENABLE(DRAG_SUPPORT) diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp -index b5e509dd8cc747cd0a0ebaebea0d68cef950c625..474753a3ac9298ee09afc94c2afd6c2e7869e3b2 100644 +index 703e35bdff1dd1ac1c603fb17ba161b23f258225..eb04eff245fbfab332b6b720feb7e04e43ec53e2 100644 --- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp +++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp @@ -39,6 +39,7 @@ @@ -20828,13 +21156,13 @@ index b5e509dd8cc747cd0a0ebaebea0d68cef950c625..474753a3ac9298ee09afc94c2afd6c2e #include #include #include -@@ -113,6 +114,16 @@ void DrawingAreaCoordinatedGraphics::scroll(const IntRect& scrollRect, const Int +@@ -114,6 +115,16 @@ void DrawingAreaCoordinatedGraphics::scroll(const IntRect& scrollRect, const Int ASSERT(m_scrollRect.isEmpty()); ASSERT(m_scrollOffset.isEmpty()); ASSERT(m_dirtyRegion.isEmpty()); +// Playwright begin +#if !PLATFORM(WIN) -+ if (m_webPage.mainFrameView() && m_webPage.mainFrameView()->useFixedLayout()) { ++ if (m_webPage->mainFrameView() && m_webPage->mainFrameView()->useFixedLayout()) { + IntRect visibleRect = IntRect(m_layerTreeHost->viewportController().visibleContentsRect()); + visibleRect.move(-scrollDelta.width(), -scrollDelta.height()); + m_layerTreeHost->scrollNonCompositedContents(visibleRect); @@ -20845,7 +21173,7 @@ index b5e509dd8cc747cd0a0ebaebea0d68cef950c625..474753a3ac9298ee09afc94c2afd6c2e m_layerTreeHost->scrollNonCompositedContents(scrollRect); return; } -@@ -237,6 +248,7 @@ void DrawingAreaCoordinatedGraphics::updatePreferences(const WebPreferencesStore +@@ -241,6 +252,7 @@ void DrawingAreaCoordinatedGraphics::updatePreferences(const WebPreferencesStore settings.setAcceleratedCompositingEnabled(false); } #endif @@ -20853,7 +21181,7 @@ index b5e509dd8cc747cd0a0ebaebea0d68cef950c625..474753a3ac9298ee09afc94c2afd6c2e settings.setForceCompositingMode(store.getBoolValueForKey(WebPreferencesKey::forceCompositingModeKey())); // Fixed position elements need to be composited and create stacking contexts // in order to be scrolled by the ScrollingCoordinator. -@@ -606,6 +618,11 @@ void DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode(GraphicsLay +@@ -618,6 +630,11 @@ void DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode(GraphicsLay m_scrollOffset = IntSize(); m_displayTimer.stop(); m_isWaitingForDidUpdate = false; @@ -20865,7 +21193,7 @@ index b5e509dd8cc747cd0a0ebaebea0d68cef950c625..474753a3ac9298ee09afc94c2afd6c2e } void DrawingAreaCoordinatedGraphics::sendEnterAcceleratedCompositingModeIfNeeded() -@@ -664,6 +681,11 @@ void DrawingAreaCoordinatedGraphics::exitAcceleratedCompositingMode() +@@ -677,6 +694,11 @@ void DrawingAreaCoordinatedGraphics::exitAcceleratedCompositingMode() // UI process, we still need to let it know about the new contents, so send an Update message. send(Messages::DrawingAreaProxy::Update(0, WTFMove(updateInfo))); } @@ -20878,13 +21206,13 @@ index b5e509dd8cc747cd0a0ebaebea0d68cef950c625..474753a3ac9298ee09afc94c2afd6c2e void DrawingAreaCoordinatedGraphics::scheduleDisplay() diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp -index 6acdee1b52497142573449fbc0158feb47d0e056..c3289afb9bb064e55e7d610b09405b0e85b2a8b6 100644 +index 063deca3282a25c46dda53769673aeab501390e1..e6c462d6b21340bd7992e168e09f5fdbcea34c88 100644 --- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp +++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp @@ -187,8 +187,16 @@ void LayerTreeHost::setViewOverlayRootLayer(GraphicsLayer* viewOverlayRootLayer) void LayerTreeHost::scrollNonCompositedContents(const IntRect& rect) { - auto* frameView = m_webPage.mainFrameView(); + auto* frameView = m_webPage.localMainFrameView(); + +// Playwright begin +#if PLATFORM(WIN) @@ -20928,7 +21256,7 @@ index 6749e66ac5f8cc7968595365beff19cfdee7861f..7a222444342eb1255bd2744d6647993a #if USE(COORDINATED_GRAPHICS) void layerFlushTimerFired(); diff --git a/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp b/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp -index 4eff97ae17b6c1b56181a4ae2b7e1b74c6c007a2..9bbeb368f89d71a2968d93b305dd1ffc773730e8 100644 +index 30c1f55828df6bf4e48543cc3347dde1ee41e10f..e71997ca8292530c5c01ce141443ad426aeeff0a 100644 --- a/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp +++ b/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp @@ -27,6 +27,7 @@ @@ -20954,10 +21282,10 @@ index 4eff97ae17b6c1b56181a4ae2b7e1b74c6c007a2..9bbeb368f89d71a2968d93b305dd1ffc { if (m_hasRemovedMessageReceiver) diff --git a/Source/WebKit/WebProcess/WebPage/DrawingArea.h b/Source/WebKit/WebProcess/WebPage/DrawingArea.h -index 9f42cd506c17777dc6436faed41b476320155241..b7979270c71d36d5098a47e44227362f25819d7f 100644 +index 0a7b4194c982a5ce21c1f3e7da2a6c174bbf2954..6c8dc22966ed0d457622698f1c2f4079f183025f 100644 --- a/Source/WebKit/WebProcess/WebPage/DrawingArea.h +++ b/Source/WebKit/WebProcess/WebPage/DrawingArea.h -@@ -164,6 +164,9 @@ public: +@@ -169,6 +169,9 @@ public: virtual void didChangeViewportAttributes(WebCore::ViewportAttributes&&) = 0; virtual void deviceOrPageScaleFactorChanged() = 0; #endif @@ -20968,7 +21296,7 @@ index 9f42cd506c17777dc6436faed41b476320155241..b7979270c71d36d5098a47e44227362f 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 a7d1c201c99de0f287089f3fd8d43be7fc2ca585..0db71c43d67dc01b9fff79bf9541f8eead31e32a 100644 +index a920f9ced33557bc3aac077f7c81574f77ced97b..0badffab778609cf5636594caeac4c03e3a446d1 100644 --- a/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp @@ -41,6 +41,7 @@ @@ -20979,9 +21307,9 @@ index a7d1c201c99de0f287089f3fd8d43be7fc2ca585..0db71c43d67dc01b9fff79bf9541f8ee #include #include #include -@@ -310,4 +311,10 @@ void WebCookieJar::setCookieAsync(WebCore::Document& document, const URL& url, c - WebProcess::singleton().ensureNetworkProcessConnection().connection().sendWithAsyncReply(Messages::NetworkConnectionToWebProcess::SetCookieFromDOMAsync(document.firstPartyForCookies(), sameSiteInfo, url, frameID, pageID, applyTrackingPreventionInNetworkProcess, shouldRelaxThirdPartyCookieBlocking(webFrame), cookie), WTFMove(completionHandler)); +@@ -349,4 +350,10 @@ void WebCookieJar::removeChangeListener(const String& host, const WebCore::Cooki } + #endif +void WebCookieJar::setCookieFromResponse(ResourceLoader& loader, const String& setCookieValue) +{ @@ -20991,10 +21319,10 @@ index a7d1c201c99de0f287089f3fd8d43be7fc2ca585..0db71c43d67dc01b9fff79bf9541f8ee + } // namespace WebKit diff --git a/Source/WebKit/WebProcess/WebPage/WebCookieJar.h b/Source/WebKit/WebProcess/WebPage/WebCookieJar.h -index 29ec1a12eed6accdb3d952c2d590255f349656b8..838f8a971d35ae04d49a3be79fd71305c1b52ee7 100644 +index 2aebbbd13594712f8cb3cd1de16da6818bbf4706..125d77abfafe41c2a49568f02a7cde6ee7ad0e1b 100644 --- a/Source/WebKit/WebProcess/WebPage/WebCookieJar.h +++ b/Source/WebKit/WebProcess/WebPage/WebCookieJar.h -@@ -60,6 +60,8 @@ public: +@@ -69,6 +69,8 @@ public: void clearCache() final; @@ -21004,7 +21332,7 @@ index 29ec1a12eed6accdb3d952c2d590255f349656b8..838f8a971d35ae04d49a3be79fd71305 WebCookieJar(); diff --git a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp -index e5a8e585fae251c918dd7b953e8940d179394760..7098834b70f33fa51a67093dcb673bb7e240e09f 100644 +index 7fbf65c821f3c4fddea9ca7dc88f5968fdd7a744..ebd73ea59effe391210552c3d5e0e769043e9dc0 100644 --- a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp @@ -46,6 +46,14 @@ void WebDocumentLoader::detachFromFrame() @@ -21023,7 +21351,7 @@ index e5a8e585fae251c918dd7b953e8940d179394760..7098834b70f33fa51a67093dcb673bb7 { ASSERT(navigationID); diff --git a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h -index c3248e8505d0e446ea0e1c1886bf1ed0a628b45b..49381c222e255ebc94229d2a0aae1f38b18f7cf4 100644 +index 04efd703491f1c32009c066a84647d7dda3d79ce..473fa1b3a7b7ccf375bfe26f528417d4e5b8ef6d 100644 --- a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h +++ b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h @@ -27,6 +27,7 @@ @@ -21046,10 +21374,10 @@ index c3248e8505d0e446ea0e1c1886bf1ed0a628b45b..49381c222e255ebc94229d2a0aae1f38 uint64_t m_navigationID { 0 }; }; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -index edc4716cce55be27879a89c19e11d14da0daee88..7971b24d6bea9f48a11e3ec1816e76f5fb1e637b 100644 +index df07dd55ff15dfd26d47b6aa6bc768256cb01038..b9f174a31f93b938a34c13bb35f43a101d65ebc9 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -@@ -1035,6 +1035,9 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) +@@ -1039,6 +1039,9 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) #endif #endif // HAVE(SANDBOX_STATE_FLAGS) @@ -21059,7 +21387,7 @@ index edc4716cce55be27879a89c19e11d14da0daee88..7971b24d6bea9f48a11e3ec1816e76f5 updateThrottleState(); #if ENABLE(ACCESSIBILITY_ANIMATION_CONTROL) updateImageAnimationEnabled(); -@@ -1885,6 +1888,22 @@ void WebPage::transitionFrameToLocal(LocalFrameCreationParameters&& creationPara +@@ -1884,6 +1887,22 @@ void WebPage::transitionFrameToLocal(LocalFrameCreationParameters&& creationPara frame->transitionToLocal(creationParameters.layerHostingContextIdentifier); } @@ -21082,7 +21410,7 @@ index edc4716cce55be27879a89c19e11d14da0daee88..7971b24d6bea9f48a11e3ec1816e76f5 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()); -@@ -2154,25 +2173,21 @@ void WebPage::setSize(const WebCore::IntSize& viewSize) +@@ -2168,17 +2187,14 @@ void WebPage::setSize(const WebCore::IntSize& viewSize) view->resize(viewSize); m_drawingArea->setNeedsDisplay(); @@ -21099,17 +21427,8 @@ index edc4716cce55be27879a89c19e11d14da0daee88..7971b24d6bea9f48a11e3ec1816e76f5 -#if USE(COORDINATED_GRAPHICS) void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArguments) { - auto* localMainFrame = dynamicDowncast(m_page->mainFrame()); - if (!localMainFrame) - return; - -- auto* view = localMainFrame->view(); -- ASSERT(view && view->useFixedLayout()); -+ ASSERT(localMainFrame->view() && localMainFrame->view()->useFixedLayout()); - - // Viewport properties have no impact on zero sized fixed viewports. - if (m_viewSize.isEmpty()) -@@ -2189,20 +2204,18 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg + RefPtr localMainFrame = dynamicDowncast(m_page->mainFrame()); +@@ -2203,20 +2219,18 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg ViewportAttributes attr = computeViewportAttributes(viewportArguments, minimumLayoutFallbackWidth, deviceWidth, deviceHeight, 1, m_viewSize); @@ -21137,7 +21456,7 @@ index edc4716cce55be27879a89c19e11d14da0daee88..7971b24d6bea9f48a11e3ec1816e76f5 #if USE(COORDINATED_GRAPHICS) m_drawingArea->didChangeViewportAttributes(WTFMove(attr)); -@@ -2210,7 +2223,6 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg +@@ -2224,7 +2238,6 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg send(Messages::WebPageProxy::DidChangeViewportProperties(attr)); #endif } @@ -21145,7 +21464,7 @@ index edc4716cce55be27879a89c19e11d14da0daee88..7971b24d6bea9f48a11e3ec1816e76f5 void WebPage::scrollMainFrameIfNotAtMaxScrollPosition(const IntSize& scrollOffset) { -@@ -2502,6 +2514,7 @@ void WebPage::scaleView(double scale) +@@ -2520,6 +2533,7 @@ void WebPage::scaleView(double scale) } m_page->setViewScaleFactor(scale); @@ -21153,13 +21472,13 @@ index edc4716cce55be27879a89c19e11d14da0daee88..7971b24d6bea9f48a11e3ec1816e76f5 scalePage(pageScale, scrollPositionAtNewScale); } -@@ -2681,18 +2694,14 @@ void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArgum +@@ -2699,18 +2713,14 @@ void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArgum viewportConfigurationChanged(); #endif -#if USE(COORDINATED_GRAPHICS) - auto* localMainFrame = dynamicDowncast(m_page->mainFrame()); - auto* view = localMainFrame ? localMainFrame->view() : nullptr; + RefPtr localMainFrame = dynamicDowncast(m_page->mainFrame()); + RefPtr view = localMainFrame ? localMainFrame->view() : nullptr; if (view && view->useFixedLayout()) sendViewportAttributesChanged(viewportArguments); +#if USE(COORDINATED_GRAPHICS) @@ -21173,7 +21492,7 @@ index edc4716cce55be27879a89c19e11d14da0daee88..7971b24d6bea9f48a11e3ec1816e76f5 } #if !PLATFORM(IOS_FAMILY) -@@ -3745,6 +3754,97 @@ void WebPage::touchEvent(const WebTouchEvent& touchEvent) +@@ -3671,6 +3681,97 @@ void WebPage::touchEvent(const WebTouchEvent& touchEvent) send(Messages::WebPageProxy::DidReceiveEvent(touchEvent.type(), handled)); } @@ -21271,7 +21590,7 @@ index edc4716cce55be27879a89c19e11d14da0daee88..7971b24d6bea9f48a11e3ec1816e76f5 #endif void WebPage::cancelPointer(WebCore::PointerID pointerId, const WebCore::IntPoint& documentPoint) -@@ -3822,6 +3922,11 @@ void WebPage::sendMessageToTargetBackend(const String& targetId, const String& m +@@ -3748,6 +3849,11 @@ void WebPage::sendMessageToTargetBackend(const String& targetId, const String& m m_inspectorTargetController->sendMessageToTargetBackend(targetId, message); } @@ -21283,7 +21602,7 @@ index edc4716cce55be27879a89c19e11d14da0daee88..7971b24d6bea9f48a11e3ec1816e76f5 void WebPage::insertNewlineInQuotedContent() { Ref frame = CheckedRef(m_page->focusController())->focusedOrMainFrame(); -@@ -4054,6 +4159,7 @@ void WebPage::didCompletePageTransition() +@@ -3959,6 +4065,7 @@ void WebPage::didCompletePageTransition() void WebPage::show() { send(Messages::WebPageProxy::ShowPage()); @@ -21291,7 +21610,7 @@ index edc4716cce55be27879a89c19e11d14da0daee88..7971b24d6bea9f48a11e3ec1816e76f5 } void WebPage::setIsTakingSnapshotsForApplicationSuspension(bool isTakingSnapshotsForApplicationSuspension) -@@ -5042,7 +5148,7 @@ NotificationPermissionRequestManager* WebPage::notificationPermissionRequestMana +@@ -4964,7 +5071,7 @@ NotificationPermissionRequestManager* WebPage::notificationPermissionRequestMana #if ENABLE(DRAG_SUPPORT) @@ -21300,7 +21619,7 @@ index edc4716cce55be27879a89c19e11d14da0daee88..7971b24d6bea9f48a11e3ec1816e76f5 void WebPage::performDragControllerAction(DragControllerAction action, const IntPoint& clientPosition, const IntPoint& globalPosition, OptionSet draggingSourceOperationMask, SelectionData&& selectionData, OptionSet flags) { if (!m_page) { -@@ -7579,6 +7685,9 @@ Ref WebPage::createDocumentLoader(LocalFrame& frame, const Resou +@@ -7449,6 +7556,9 @@ Ref WebPage::createDocumentLoader(LocalFrame& frame, const Resou WebsitePoliciesData::applyToDocumentLoader(WTFMove(*m_pendingWebsitePolicies), documentLoader); m_pendingWebsitePolicies = std::nullopt; } @@ -21311,10 +21630,18 @@ index edc4716cce55be27879a89c19e11d14da0daee88..7971b24d6bea9f48a11e3ec1816e76f5 return documentLoader; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.h b/Source/WebKit/WebProcess/WebPage/WebPage.h -index ef32381609f28e7edbe241c389f0b2ad8d19e88c..203fd209834c3be962a4ced7815c420b8eccd94a 100644 +index 8953b900362dba8d3e83c8a61a87bc33d47c4c84..4df44385d11d65778da2090807153577b6e51bc2 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.h +++ b/Source/WebKit/WebProcess/WebPage/WebPage.h -@@ -123,6 +123,10 @@ +@@ -69,6 +69,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -109,6 +110,10 @@ #include "WebPrintOperationGtk.h" #endif @@ -21325,7 +21652,7 @@ index ef32381609f28e7edbe241c389f0b2ad8d19e88c..203fd209834c3be962a4ced7815c420b #if PLATFORM(GTK) || PLATFORM(WPE) #include "InputMethodState.h" #endif -@@ -1082,11 +1086,11 @@ public: +@@ -1085,11 +1090,11 @@ public: void clearSelection(); void restoreSelectionInFocusedEditableElement(); @@ -21339,7 +21666,7 @@ index ef32381609f28e7edbe241c389f0b2ad8d19e88c..203fd209834c3be962a4ced7815c420b void performDragControllerAction(DragControllerAction, WebCore::DragData&&, SandboxExtension::Handle&&, Vector&&); #endif -@@ -1100,6 +1104,9 @@ public: +@@ -1103,6 +1108,9 @@ public: void didStartDrag(); void dragCancelled(); OptionSet allowedDragSourceActions() const { return m_allowedDragSourceActions; } @@ -21349,7 +21676,7 @@ index ef32381609f28e7edbe241c389f0b2ad8d19e88c..203fd209834c3be962a4ced7815c420b #endif void beginPrinting(WebCore::FrameIdentifier, const PrintInfo&); -@@ -1334,6 +1341,7 @@ public: +@@ -1337,6 +1345,7 @@ public: void connectInspector(const String& targetId, Inspector::FrontendChannel::ConnectionType); void disconnectInspector(const String& targetId); void sendMessageToTargetBackend(const String& targetId, const String& message); @@ -21357,7 +21684,7 @@ index ef32381609f28e7edbe241c389f0b2ad8d19e88c..203fd209834c3be962a4ced7815c420b void insertNewlineInQuotedContent(); -@@ -1771,6 +1779,7 @@ private: +@@ -1766,6 +1775,7 @@ private: void tryClose(CompletionHandler&&); void platformDidReceiveLoadParameters(const LoadParameters&); void transitionFrameToLocal(LocalFrameCreationParameters&&, WebCore::FrameIdentifier); @@ -21365,7 +21692,7 @@ index ef32381609f28e7edbe241c389f0b2ad8d19e88c..203fd209834c3be962a4ced7815c420b void loadRequest(LoadParameters&&); [[noreturn]] void loadRequestWaitingForProcessLaunch(LoadParameters&&, URL&&, WebPageProxyIdentifier, bool); void loadData(LoadParameters&&); -@@ -1808,6 +1817,7 @@ private: +@@ -1804,6 +1814,7 @@ private: void updatePotentialTapSecurityOrigin(const WebTouchEvent&, bool wasHandled); #elif ENABLE(TOUCH_EVENTS) void touchEvent(const WebTouchEvent&); @@ -21373,7 +21700,7 @@ index ef32381609f28e7edbe241c389f0b2ad8d19e88c..203fd209834c3be962a4ced7815c420b #endif void cancelPointer(WebCore::PointerID, const WebCore::IntPoint&); -@@ -1953,9 +1963,7 @@ private: +@@ -1943,9 +1954,7 @@ private: void addLayerForFindOverlay(CompletionHandler&&); void removeLayerForFindOverlay(CompletionHandler&&); @@ -21383,7 +21710,7 @@ index ef32381609f28e7edbe241c389f0b2ad8d19e88c..203fd209834c3be962a4ced7815c420b void didChangeSelectedIndexForActivePopupMenu(int32_t newIndex); void setTextForActivePopupMenu(int32_t index); -@@ -2507,6 +2515,7 @@ private: +@@ -2493,6 +2502,7 @@ private: UserActivity m_userActivity; uint64_t m_pendingNavigationID { 0 }; @@ -21392,7 +21719,7 @@ index ef32381609f28e7edbe241c389f0b2ad8d19e88c..203fd209834c3be962a4ced7815c420b bool m_mainFrameProgressCompleted { false }; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.messages.in b/Source/WebKit/WebProcess/WebPage/WebPage.messages.in -index c19f2eb9314e832886f6f8b82e0c2fbd526f90da..b7b96fa5529bbae4ed548b5ecdc45eb7bff56dd3 100644 +index a5e984aa25e5ba55138267c09d481f859ce0525f..97a548233aea66f34fcb57e4eaffde208383d7b3 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.messages.in +++ b/Source/WebKit/WebProcess/WebPage/WebPage.messages.in @@ -149,6 +149,7 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType @@ -21411,7 +21738,7 @@ index c19f2eb9314e832886f6f8b82e0c2fbd526f90da..b7b96fa5529bbae4ed548b5ecdc45eb7 #endif CancelPointer(WebCore::PointerID pointerId, WebCore::IntPoint documentPoint) -@@ -189,6 +191,7 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -190,6 +192,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) TransitionFrameToLocal(struct WebKit::LocalFrameCreationParameters creationParameters, WebCore::FrameIdentifier frameID) @@ -21419,7 +21746,7 @@ index c19f2eb9314e832886f6f8b82e0c2fbd526f90da..b7b96fa5529bbae4ed548b5ecdc45eb7 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) -@@ -358,10 +361,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -351,10 +354,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType AddMIMETypeWithCustomContentProvider(String mimeType) # Drag and drop. @@ -21432,7 +21759,7 @@ index c19f2eb9314e832886f6f8b82e0c2fbd526f90da..b7b96fa5529bbae4ed548b5ecdc45eb7 PerformDragControllerAction(enum:uint8_t WebKit::DragControllerAction action, WebCore::DragData dragData, WebKit::SandboxExtension::Handle sandboxExtensionHandle, Vector sandboxExtensionsForUpload) #endif #if ENABLE(DRAG_SUPPORT) -@@ -370,6 +373,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -363,6 +366,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType DragCancelled() #endif @@ -21444,10 +21771,10 @@ index c19f2eb9314e832886f6f8b82e0c2fbd526f90da..b7b96fa5529bbae4ed548b5ecdc45eb7 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 b8b292cda067efddcd384a97db869043ee336342..22509c81abe5c7e19e23f4f79290dcb1b59ccd0f 100644 +index c751d39c0abb0640be6428cb7d943b9a7441d430..ad8d59e8ab375e45116620c2499064481528c234 100644 --- a/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm +++ b/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm -@@ -824,21 +824,37 @@ String WebPage::platformUserAgent(const URL&) const +@@ -825,21 +825,37 @@ String WebPage::platformUserAgent(const URL&) const bool WebPage::hoverSupportedByPrimaryPointingDevice() const { @@ -21536,7 +21863,7 @@ index f17f5d719d892309ed9c7093384945866b5117b9..1dba47bbf0dbd0362548423a74b38034 } diff --git a/Source/WebKit/WebProcess/WebProcess.cpp b/Source/WebKit/WebProcess/WebProcess.cpp -index 069839f13c48f7376a0f741b104c73afb2c2646c..13f02ee144eea5afc63c613ab34bd023c3b2665e 100644 +index 63302a57fe4dbf666bbf79333df6f3a046ea2005..acdf07c37d6fd1d9641c6f9ee59ceb5ef646d8be 100644 --- a/Source/WebKit/WebProcess/WebProcess.cpp +++ b/Source/WebKit/WebProcess/WebProcess.cpp @@ -94,6 +94,7 @@ @@ -21557,10 +21884,10 @@ index 069839f13c48f7376a0f741b104c73afb2c2646c..13f02ee144eea5afc63c613ab34bd023 void WebProcess::initializeConnection(IPC::Connection* connection) diff --git a/Source/WebKit/WebProcess/WebProcess.h b/Source/WebKit/WebProcess/WebProcess.h -index 14c298a0f41bf415316ce8755d60822b9fa19e25..ce91de223e7db97ea241df35894352b61cd4e995 100644 +index 4d1c197aaa4d77e763674d6b02f5e35f5613dc1e..54d8ed73743dfd46aff1efaf35302d4202c54f94 100644 --- a/Source/WebKit/WebProcess/WebProcess.h +++ b/Source/WebKit/WebProcess/WebProcess.h -@@ -743,7 +743,7 @@ private: +@@ -745,7 +745,7 @@ private: WeakHashMap m_userGestureTokens; @@ -21598,10 +21925,10 @@ index 22c698f09790446fb2c80400b55ba6b4ead49658..885104f89f84c7d82490c7c1ca646e74 - (void)touch:(WebEvent *)event { diff --git a/Source/WebKitLegacy/mac/WebView/WebView.mm b/Source/WebKitLegacy/mac/WebView/WebView.mm -index 35090def553d2ab580ae58db94cb562af4234635..ac67108431eaed4286234f3944480028a7ab9fef 100644 +index b2da18013c630a85d5739361c7e2a946bd50d36c..65884693855ccb25e4e0ca191e3b43055202931a 100644 --- a/Source/WebKitLegacy/mac/WebView/WebView.mm +++ b/Source/WebKitLegacy/mac/WebView/WebView.mm -@@ -3961,7 +3961,7 @@ + (void)_doNotStartObservingNetworkReachability +@@ -3962,7 +3962,7 @@ + (void)_doNotStartObservingNetworkReachability } #endif // PLATFORM(IOS_FAMILY) @@ -21610,7 +21937,7 @@ index 35090def553d2ab580ae58db94cb562af4234635..ac67108431eaed4286234f3944480028 - (NSArray *)_touchEventRegions { -@@ -4003,7 +4003,7 @@ - (NSArray *)_touchEventRegions +@@ -4004,7 +4004,7 @@ - (NSArray *)_touchEventRegions }).autorelease(); } @@ -21651,7 +21978,7 @@ index 0000000000000000000000000000000000000000..dd6a53e2d57318489b7e49dd7373706d + LIBVPX_LIBRARIES +) diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake -index 5914e61449953f48a0b6c7a8c0c96e6abe22fd20..f4c5dcca111b7c53f44f790e1897370112687cc7 100644 +index ffd106fe4ad44ef1610c5341e7d16c18bdbd102e..73732f416b5f25a2c79816fb33e5526d9d6be976 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 @@ -21679,7 +22006,7 @@ index 5914e61449953f48a0b6c7a8c0c96e6abe22fd20..f4c5dcca111b7c53f44f790e18973701 include(GStreamerDefinitions) SET_AND_EXPOSE_TO_BUILD(USE_CAIRO TRUE) -@@ -58,7 +67,7 @@ WEBKIT_OPTION_DEFINE(USE_LIBHYPHEN "Whether to enable the default automatic hyph +@@ -59,7 +68,7 @@ WEBKIT_OPTION_DEFINE(USE_LIBHYPHEN "Whether to enable the default automatic hyph WEBKIT_OPTION_DEFINE(USE_LIBSECRET "Whether to enable the persistent credential storage using libsecret." PUBLIC ON) WEBKIT_OPTION_DEFINE(USE_OPENGL_OR_ES "Whether to use OpenGL or ES." PUBLIC ON) WEBKIT_OPTION_DEFINE(USE_OPENJPEG "Whether to enable support for JPEG2000 images." PUBLIC ON) @@ -21688,7 +22015,7 @@ index 5914e61449953f48a0b6c7a8c0c96e6abe22fd20..f4c5dcca111b7c53f44f790e18973701 WEBKIT_OPTION_DEFINE(USE_WOFF2 "Whether to enable support for WOFF2 Web Fonts." PUBLIC ON) WEBKIT_OPTION_DEPEND(ENABLE_DOCUMENTATION ENABLE_INTROSPECTION) -@@ -95,15 +104,15 @@ endif () +@@ -97,15 +106,15 @@ endif () # without approval from a GTK reviewer. There must be strong reason to support # changing the value of the option. WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PUBLIC ON) @@ -21707,7 +22034,7 @@ index 5914e61449953f48a0b6c7a8c0c96e6abe22fd20..f4c5dcca111b7c53f44f790e18973701 WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_JPEGXL PUBLIC ON) # Private options shared with other WebKit ports. Add options here when -@@ -130,7 +139,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_TIME PRIVATE ON) +@@ -132,7 +141,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_TIME PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_WEEK PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TRACKING_PREVENTION PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LAYER_BASED_SVG_ENGINE PRIVATE ON) @@ -21716,7 +22043,7 @@ index 5914e61449953f48a0b6c7a8c0c96e6abe22fd20..f4c5dcca111b7c53f44f790e18973701 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) -@@ -143,7 +152,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_CACHE_SPECULATIVE_REVALIDATION P +@@ -145,7 +154,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_CACHE_SPECULATIVE_REVALIDATION P WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_CACHE_STALE_WHILE_REVALIDATE PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_OFFSCREEN_CANVAS PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_OFFSCREEN_CANVAS_IN_WORKERS PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) @@ -21725,7 +22052,7 @@ index 5914e61449953f48a0b6c7a8c0c96e6abe22fd20..f4c5dcca111b7c53f44f790e18973701 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PERIODIC_MEMORY_MONITOR PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_POINTER_LOCK PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SERVICE_WORKER PRIVATE ON) -@@ -154,6 +163,15 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_API_STATISTICS PRIVATE ON) +@@ -156,6 +165,15 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_API_STATISTICS PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_CODECS PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_RTC PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) @@ -21741,7 +22068,7 @@ index 5914e61449953f48a0b6c7a8c0c96e6abe22fd20..f4c5dcca111b7c53f44f790e18973701 include(GStreamerDependencies) # Finalize the value for all options. Do not attempt to use an option before -@@ -269,6 +287,7 @@ if (NOT EXISTS "${TOOLS_DIR}/glib/apply-build-revision-to-files.py") +@@ -271,6 +289,7 @@ if (NOT EXISTS "${TOOLS_DIR}/glib/apply-build-revision-to-files.py") endif () SET_AND_EXPOSE_TO_BUILD(USE_ATSPI ${ENABLE_ACCESSIBILITY}) @@ -21750,7 +22077,7 @@ index 5914e61449953f48a0b6c7a8c0c96e6abe22fd20..f4c5dcca111b7c53f44f790e18973701 SET_AND_EXPOSE_TO_BUILD(HAVE_OS_DARK_MODE_SUPPORT 1) diff --git a/Source/cmake/OptionsWPE.cmake b/Source/cmake/OptionsWPE.cmake -index 718c81f960363c2c06ba8843322d68709f7ae10d..6163b28428ff6b524268815941b10756be9d48d5 100644 +index 003934385b37e49bb34f5767f6cfd11d5a0abafb..e97930ad9eab516cb7ee06e51cff16969c72cb25 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 @@ -21800,7 +22127,7 @@ index 718c81f960363c2c06ba8843322d68709f7ae10d..6163b28428ff6b524268815941b10756 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}) -@@ -88,18 +93,35 @@ if (WPE_VERSION VERSION_GREATER_EQUAL 1.13.90) +@@ -88,19 +93,36 @@ if (WPE_VERSION VERSION_GREATER_EQUAL 1.13.90) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD PUBLIC ON) endif () @@ -21830,8 +22157,9 @@ index 718c81f960363c2c06ba8843322d68709f7ae10d..6163b28428ff6b524268815941b10756 -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_GBM "Whether to enable usage of GBM." PUBLIC ON) WEBKIT_OPTION_DEFINE(USE_LCMS "Whether to enable support for image color management using libcms2." PUBLIC ON) + WEBKIT_OPTION_DEFINE(USE_LIBDRM "Whether to enable usage of libdrm." PUBLIC ON) WEBKIT_OPTION_DEFINE(USE_OPENJPEG "Whether to enable support for JPEG2000 images." PUBLIC ON) -WEBKIT_OPTION_DEFINE(USE_SOUP2 "Whether to enable usage of Soup 2 instead of Soup 3." PUBLIC OFF) +WEBKIT_OPTION_DEFINE(USE_SOUP2 "Whether to enable usage of Soup 2 instead of Soup 3." PUBLIC ON) @@ -22217,7 +22545,7 @@ index 8be643a541511ba58255eaea7fd27dee12fbaa87..fd823c12ec853a7ae70cc343195546b4 return exitAfterLoad && webProcessCrashed ? 1 : 0; diff --git a/Tools/MiniBrowser/wpe/main.cpp b/Tools/MiniBrowser/wpe/main.cpp -index 1d3cb1aeb14068a69cee73a60ce82cfb059322ba..248b86032924bb74ce2488cb2d7abd0b1e6de25c 100644 +index 1d3cb1aeb14068a69cee73a60ce82cfb059322ba..fb282a323701a45ee98396b0b40e4de7de261e57 100644 --- a/Tools/MiniBrowser/wpe/main.cpp +++ b/Tools/MiniBrowser/wpe/main.cpp @@ -45,6 +45,9 @@ static gboolean headlessMode; @@ -22323,7 +22651,7 @@ index 1d3cb1aeb14068a69cee73a60ce82cfb059322ba..248b86032924bb74ce2488cb2d7abd0b return newWebView; } -@@ -201,9 +249,78 @@ static WebKitFeature* findFeature(WebKitFeatureList* featureList, const char* id +@@ -201,13 +249,89 @@ static WebKitFeature* findFeature(WebKitFeatureList* featureList, const char* id return nullptr; } @@ -22402,12 +22730,25 @@ index 1d3cb1aeb14068a69cee73a60ce82cfb059322ba..248b86032924bb74ce2488cb2d7abd0b #if ENABLE_2022_GLIB_API WebKitNetworkSession* networkSession = nullptr; if (!automationMode) { -@@ -234,10 +351,16 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +- networkSession = privateMode ? webkit_network_session_new_ephemeral() : webkit_network_session_new(nullptr, nullptr); ++ if (userDataDir) { ++ networkSession = webkit_network_session_new(userDataDir, userDataDir); ++ cookiesFile = g_build_filename(userDataDir, "cookies.txt", nullptr); ++ } else if (inspectorPipe || privateMode || automationMode) { ++ networkSession = webkit_network_session_new_ephemeral(); ++ } else { ++ networkSession = webkit_network_session_new(nullptr, nullptr); ++ } + webkit_network_session_set_itp_enabled(networkSession, enableITP); + + if (proxy) { +@@ -234,10 +358,18 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* webkit_cookie_manager_set_persistent_storage(cookieManager, cookiesFile, storageType); } } - -- auto* webContext = WEBKIT_WEB_CONTEXT(g_object_new(WEBKIT_TYPE_WEB_CONTEXT, "time-zone-override", timeZone, nullptr)); + auto* webContext = WEBKIT_WEB_CONTEXT(g_object_new(WEBKIT_TYPE_WEB_CONTEXT, "time-zone-override", timeZone, nullptr)); ++ webkit_web_context_set_network_session_for_automation(webContext, networkSession); #else - auto* manager = (privateMode || automationMode) ? webkit_website_data_manager_new_ephemeral() : webkit_website_data_manager_new(nullptr); + WebKitWebsiteDataManager *manager; @@ -22422,7 +22763,7 @@ index 1d3cb1aeb14068a69cee73a60ce82cfb059322ba..248b86032924bb74ce2488cb2d7abd0b webkit_website_data_manager_set_itp_enabled(manager, enableITP); if (proxy) { -@@ -268,6 +391,7 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -268,6 +400,7 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* } #endif @@ -22430,7 +22771,7 @@ index 1d3cb1aeb14068a69cee73a60ce82cfb059322ba..248b86032924bb74ce2488cb2d7abd0b WebKitUserContentManager* userContentManager = nullptr; if (contentFilter) { GFile* contentFilterFile = g_file_new_for_commandline_arg(contentFilter); -@@ -335,6 +459,15 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -335,6 +468,15 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* delete static_cast(data); }, backend); @@ -22446,7 +22787,7 @@ index 1d3cb1aeb14068a69cee73a60ce82cfb059322ba..248b86032924bb74ce2488cb2d7abd0b auto* webView = WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW, "backend", viewBackend, "web-context", webContext, -@@ -354,8 +487,6 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -354,8 +496,6 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* backend->setAccessibleChild(ATK_OBJECT(accessible)); #endif @@ -22455,7 +22796,7 @@ index 1d3cb1aeb14068a69cee73a60ce82cfb059322ba..248b86032924bb74ce2488cb2d7abd0b 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); -@@ -368,16 +499,9 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -368,16 +508,9 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* webkit_web_view_set_background_color(webView, &color); if (uriArguments) { @@ -22475,7 +22816,7 @@ index 1d3cb1aeb14068a69cee73a60ce82cfb059322ba..248b86032924bb74ce2488cb2d7abd0b webkit_web_view_load_uri(webView, "about:blank"); else webkit_web_view_load_uri(webView, "https://wpewebkit.org"); -@@ -449,8 +573,14 @@ int main(int argc, char *argv[]) +@@ -449,8 +582,14 @@ int main(int argc, char *argv[]) return 1; } @@ -22531,10 +22872,10 @@ 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 803ed948db90890d47aedf97a3b53a7c60fb79cf..5718011d8c4b7e4d103bb1c33392c2b065192f13 100644 +index c59538891446072875ce019bbc95079227765a30..a943e94b2e8710aa8bab87170f14a0d58fe0bfc5 100644 --- a/Tools/WebKitTestRunner/TestController.cpp +++ b/Tools/WebKitTestRunner/TestController.cpp -@@ -964,6 +964,7 @@ void TestController::createWebViewWithOptions(const TestOptions& options) +@@ -962,6 +962,7 @@ void TestController::createWebViewWithOptions(const TestOptions& options) 0, // requestStorageAccessConfirm shouldAllowDeviceOrientationAndMotionAccess, runWebAuthenticationPanel, @@ -22599,7 +22940,7 @@ index fd94bd470a356591a88212836717113864184127..2a04ca6026fd23222fdf00517e564576 + } // namespace WTR diff --git a/Tools/glib/dependencies/apt b/Tools/glib/dependencies/apt -index 4c2cca7f30f8ecaf8a22e28e515686794b86b87f..1d8ccc075f43a4d9d3724526faa9666290c0aff3 100644 +index 77b192427f149554081d94fa074cc19ee8768cc9..159ccf2836e56b512a221e7b9825f870995627f6 100644 --- a/Tools/glib/dependencies/apt +++ b/Tools/glib/dependencies/apt @@ -1,11 +1,11 @@ @@ -22616,12 +22957,13 @@ index 4c2cca7f30f8ecaf8a22e28e515686794b86b87f..1d8ccc075f43a4d9d3724526faa96662 echo $2 fi } -@@ -69,9 +69,11 @@ PACKAGES=( +@@ -69,10 +69,12 @@ PACKAGES=( $(aptIfExists libwpe-1.0-dev) $(aptIfExists libwpebackend-fdo-1.0-dev) libxml2-utils + libxcb-glx0-dev libxslt1-dev + mesa-common-dev ninja-build patch + patchelf @@ -22643,7 +22985,7 @@ index 6af7a5608ff76205702e659d1c2393897c56eaad..401436dddf714e2616b44f61ed1b3330 # These are dependencies necessary for running tests. cups-daemon diff --git a/Tools/jhbuild/jhbuild-minimal.modules b/Tools/jhbuild/jhbuild-minimal.modules -index 57e506c8b68d19aab72a0d5ef363edef6341b97e..f6eff2f5b667469d4abe574355360c5f8071b96c 100644 +index 4e3ec374e700c3459bcec321f9711ae2b61a1412..f6eff2f5b667469d4abe574355360c5f8071b96c 100644 --- a/Tools/jhbuild/jhbuild-minimal.modules +++ b/Tools/jhbuild/jhbuild-minimal.modules @@ -26,7 +26,6 @@ @@ -22658,9 +23000,9 @@ index 57e506c8b68d19aab72a0d5ef363edef6341b97e..f6eff2f5b667469d4abe574355360c5f -DJPEGXL_ENABLE_SKCMS=ON"> libjxl.pc