From 53755968fb97b248592ba96f97d9d5e636b9e708 Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Tue, 26 Mar 2024 15:01:07 -0700 Subject: [PATCH] chore: update browser patches to 475e15 (#30134) --- browser_patches/firefox/UPSTREAM_CONFIG.sh | 2 +- .../firefox/juggler/NetworkObserver.js | 6 +- .../firefox/juggler/content/PageAgent.js | 1 - .../firefox/patches/bootstrap.diff | 269 ++- .../firefox/preferences/playwright.cfg | 6 + browser_patches/webkit/UPSTREAM_CONFIG.sh | 2 +- browser_patches/webkit/patches/bootstrap.diff | 2059 +++++++++-------- 7 files changed, 1204 insertions(+), 1141 deletions(-) diff --git a/browser_patches/firefox/UPSTREAM_CONFIG.sh b/browser_patches/firefox/UPSTREAM_CONFIG.sh index c107d01d86..b13f5e0fa7 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="a32b8662993085139ac91212a297123b632fc1c0" +BASE_REVISION="f8704c84a751716bad093b9bdc482db53fe5b3ea" diff --git a/browser_patches/firefox/juggler/NetworkObserver.js b/browser_patches/firefox/juggler/NetworkObserver.js index 628c6fcb37..0ac5064909 100644 --- a/browser_patches/firefox/juggler/NetworkObserver.js +++ b/browser_patches/firefox/juggler/NetworkObserver.js @@ -553,7 +553,11 @@ class NetworkRequest { _sendOnRequestFinished() { const pageNetwork = this._pageNetwork; - if (pageNetwork) { + // Undefined |responseEndTime| means there has been no response yet. + // This happens when request interception API is used to redirect + // the request to a different URL. + // In this case, we should not emit "requestFinished" event. + if (pageNetwork && this.httpChannel.responseEndTime !== undefined) { let protocolVersion = undefined; try { protocolVersion = this.httpChannel.protocolVersion; diff --git a/browser_patches/firefox/juggler/content/PageAgent.js b/browser_patches/firefox/juggler/content/PageAgent.js index aa69432958..a3359228bc 100644 --- a/browser_patches/firefox/juggler/content/PageAgent.js +++ b/browser_patches/firefox/juggler/content/PageAgent.js @@ -62,7 +62,6 @@ class PageAgent { const docShell = frameTree.mainFrame().docShell(); this._docShell = docShell; - this._initialDPPX = docShell.contentViewer.overrideDPPX; // Dispatch frameAttached events for all initial frames for (const frame of this._frameTree.frames()) { diff --git a/browser_patches/firefox/patches/bootstrap.diff b/browser_patches/firefox/patches/bootstrap.diff index e325f549de..a44d9e646b 100644 --- a/browser_patches/firefox/patches/bootstrap.diff +++ b/browser_patches/firefox/patches/bootstrap.diff @@ -89,10 +89,10 @@ index b40e0fceb567c0d217adf284e13f434e49cc8467..2c4e6d5fbf8da40954ad6a5b15e41249 DWORD creationFlags = CREATE_SUSPENDED | CREATE_UNICODE_ENVIRONMENT; diff --git a/browser/installer/allowed-dupes.mn b/browser/installer/allowed-dupes.mn -index 24a6f228c617c034ccc4926c238aa15e32c964f6..38c4ed9936f5033abe7a4ac7997aea2d92747733 100644 +index f6d425f36a965f03ac82dbe3ab6cde06f12751ac..d60999ab2658b1e1e5f07a8aee530451c44f2957 100644 --- a/browser/installer/allowed-dupes.mn +++ b/browser/installer/allowed-dupes.mn -@@ -71,6 +71,12 @@ browser/features/webcompat@mozilla.org/shims/empty-shim.txt +@@ -73,6 +73,12 @@ browser/features/webcompat@mozilla.org/shims/empty-shim.txt removed-files #endif @@ -106,10 +106,10 @@ index 24a6f228c617c034ccc4926c238aa15e32c964f6..38c4ed9936f5033abe7a4ac7997aea2d browser/chrome/browser/search-extensions/amazon/favicon.ico browser/chrome/browser/search-extensions/amazondotcn/favicon.ico diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in -index b3213b8c4498b0467d7863d53c5fc4240e4609be..5ca6b68c6c7aaebd41a81999974f69810876f82b 100644 +index 4068c0c165fcebd0a72f4d780bc0cbd680fe7a9c..fec7f8505d22485fa6ad4193d59387f493bd1ef8 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in -@@ -195,6 +195,9 @@ +@@ -197,6 +197,9 @@ @RESPATH@/chrome/remote.manifest #endif @@ -167,7 +167,7 @@ index 4236ec2921bd57c58cfffdf1cdcf509d76fca3db..23d0cb1f06bb8c7a1cac8fcec94a99fb const transportProvider = { setListener(upgradeListener) { diff --git a/docshell/base/BrowsingContext.cpp b/docshell/base/BrowsingContext.cpp -index 211f83a476caa08281b3a0158da42cb08b01a374..47d78411e67d3f9b67c48ff10379e117b8631ab6 100644 +index 0ef5e02d2ae365b4e7b30fd49771e547c030bcfc..0787518696fc90bba3dce8c1e1c00387c3e7a6c9 100644 --- a/docshell/base/BrowsingContext.cpp +++ b/docshell/base/BrowsingContext.cpp @@ -114,6 +114,20 @@ struct ParamTraits @@ -191,7 +191,7 @@ index 211f83a476caa08281b3a0158da42cb08b01a374..47d78411e67d3f9b67c48ff10379e117 template <> struct ParamTraits : public ContiguousEnumSerializer< -@@ -2781,6 +2795,40 @@ void BrowsingContext::DidSet(FieldIndex, +@@ -2793,6 +2807,40 @@ void BrowsingContext::DidSet(FieldIndex, PresContextAffectingFieldChanged(); } @@ -233,7 +233,7 @@ index 211f83a476caa08281b3a0158da42cb08b01a374..47d78411e67d3f9b67c48ff10379e117 nsString&& aOldValue) { MOZ_ASSERT(IsTop()); diff --git a/docshell/base/BrowsingContext.h b/docshell/base/BrowsingContext.h -index 84532563e1db1941abca5afa74a7d68473d391ef..84d6f605d5f70d11b355ba76b0f5af868864ac18 100644 +index 7554128cf49ce929c973aeddf5f50ede01829c28..81ae7ec9523b944654c048af6a9f6844799eb4f3 100644 --- a/docshell/base/BrowsingContext.h +++ b/docshell/base/BrowsingContext.h @@ -200,10 +200,10 @@ struct EmbedderColorSchemes { @@ -260,7 +260,7 @@ index 84532563e1db1941abca5afa74a7d68473d391ef..84d6f605d5f70d11b355ba76b0f5af86 /* The number of entries added to the session history because of this \ * browsing context. */ \ FIELD(HistoryEntryCount, uint32_t) \ -@@ -923,6 +927,14 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { +@@ -933,6 +937,14 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { return GetPrefersColorSchemeOverride(); } @@ -275,7 +275,7 @@ index 84532563e1db1941abca5afa74a7d68473d391ef..84d6f605d5f70d11b355ba76b0f5af86 bool IsInBFCache() const; bool AllowJavascript() const { return GetAllowJavascript(); } -@@ -1087,6 +1099,23 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { +@@ -1097,6 +1109,23 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache { void WalkPresContexts(Callback&&); void PresContextAffectingFieldChanged(); @@ -300,7 +300,7 @@ index 84532563e1db1941abca5afa74a7d68473d391ef..84d6f605d5f70d11b355ba76b0f5af86 bool CanSet(FieldIndex, bool, ContentParent*) { diff --git a/docshell/base/CanonicalBrowsingContext.cpp b/docshell/base/CanonicalBrowsingContext.cpp -index 044df3a801ed55e08347464397821261bb6761c0..8aa8e4844e4ba5364cbb0547c5397ce695798861 100644 +index d5f85b1e571a7840425164a3c7715e8c70ed5c8b..5ba7484b1e7f817b2bb21dd6b5b35c6ffe2c1ca5 100644 --- a/docshell/base/CanonicalBrowsingContext.cpp +++ b/docshell/base/CanonicalBrowsingContext.cpp @@ -1466,6 +1466,12 @@ void CanonicalBrowsingContext::LoadURI(nsIURI* aURI, @@ -317,7 +317,7 @@ index 044df3a801ed55e08347464397821261bb6761c0..8aa8e4844e4ba5364cbb0547c5397ce6 } diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp -index f4d8843e2df614b0037d2bfa47f02e328c7dff6c..596208d570d6625fa6b99fd75e7a037e8aa888bf 100644 +index 0b8212fbf3f81ef6264f17fc8e84f91cde39c0f7..99d43d662978c0418231b8ea55d670f81b5618d7 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -15,6 +15,12 @@ @@ -350,7 +350,7 @@ index f4d8843e2df614b0037d2bfa47f02e328c7dff6c..596208d570d6625fa6b99fd75e7a037e #include "mozilla/net/DocumentChannelChild.h" #include "mozilla/net/ParentChannelWrapper.h" @@ -111,6 +119,7 @@ - #include "nsIDocShellTreeOwner.h" + #include "nsIDocumentViewer.h" #include "mozilla/dom/Document.h" #include "nsHTMLDocument.h" +#include "mozilla/dom/Element.h" @@ -379,7 +379,7 @@ index f4d8843e2df614b0037d2bfa47f02e328c7dff6c..596208d570d6625fa6b99fd75e7a037e mAllowAuth(mItemType == typeContent), mAllowKeywordFixup(false), mDisableMetaRefreshWhenInactive(false), -@@ -3147,6 +3164,214 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) { +@@ -3115,6 +3132,214 @@ nsDocShell::GetMessageManager(ContentFrameMessageManager** aMessageManager) { return NS_OK; } @@ -594,7 +594,7 @@ index f4d8843e2df614b0037d2bfa47f02e328c7dff6c..596208d570d6625fa6b99fd75e7a037e NS_IMETHODIMP nsDocShell::GetIsNavigating(bool* aOut) { *aOut = mIsNavigating; -@@ -4835,7 +5060,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { +@@ -4803,7 +5028,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { } void nsDocShell::ActivenessMaybeChanged() { @@ -603,7 +603,7 @@ index f4d8843e2df614b0037d2bfa47f02e328c7dff6c..596208d570d6625fa6b99fd75e7a037e if (RefPtr presShell = GetPresShell()) { presShell->ActivenessMaybeChanged(); } -@@ -6753,6 +6978,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, +@@ -6722,6 +6947,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, return false; // no entry to save into } @@ -613,8 +613,8 @@ index f4d8843e2df614b0037d2bfa47f02e328c7dff6c..596208d570d6625fa6b99fd75e7a037e + MOZ_ASSERT(!mozilla::SessionHistoryInParent(), "mOSHE cannot be non-null with SHIP"); - nsCOMPtr viewer = mOSHE->GetContentViewer(); -@@ -8536,6 +8765,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { + nsCOMPtr viewer = mOSHE->GetDocumentViewer(); +@@ -8454,6 +8683,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { true, // aForceNoOpener getter_AddRefs(newBC)); MOZ_ASSERT(!newBC); @@ -627,7 +627,7 @@ index f4d8843e2df614b0037d2bfa47f02e328c7dff6c..596208d570d6625fa6b99fd75e7a037e return rv; } -@@ -9611,6 +9846,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, +@@ -9566,6 +9801,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, nsINetworkPredictor::PREDICT_LOAD, attrs, nullptr); nsCOMPtr req; @@ -644,7 +644,7 @@ index f4d8843e2df614b0037d2bfa47f02e328c7dff6c..596208d570d6625fa6b99fd75e7a037e rv = DoURILoad(aLoadState, aCacheKey, getter_AddRefs(req)); if (NS_SUCCEEDED(rv)) { -@@ -12768,6 +13013,9 @@ class OnLinkClickEvent : public Runnable { +@@ -12714,6 +12959,9 @@ class OnLinkClickEvent : public Runnable { mHandler->OnLinkClickSync(mContent, mLoadState, mNoOpenerImplied, mTriggeringPrincipal); } @@ -654,7 +654,7 @@ index f4d8843e2df614b0037d2bfa47f02e328c7dff6c..596208d570d6625fa6b99fd75e7a037e return NS_OK; } -@@ -12852,6 +13100,8 @@ nsresult nsDocShell::OnLinkClick( +@@ -12798,6 +13046,8 @@ nsresult nsDocShell::OnLinkClick( nsCOMPtr ev = new OnLinkClickEvent(this, aContent, loadState, noOpenerImplied, aIsTrusted, aTriggeringPrincipal); @@ -664,7 +664,7 @@ index f4d8843e2df614b0037d2bfa47f02e328c7dff6c..596208d570d6625fa6b99fd75e7a037e } diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h -index 237cf8dc1a54ed8d0523272aaaebfd6f10f9213f..73c096a2850850921aff97037457cde598ffef2a 100644 +index 9f2d9a17dc0d54be4bd09f8e04da6e85f987fe34..8ff6e67fedef0bf73297c4cfed569b8f2ced36d9 100644 --- a/docshell/base/nsDocShell.h +++ b/docshell/base/nsDocShell.h @@ -15,6 +15,7 @@ @@ -683,7 +683,7 @@ index 237cf8dc1a54ed8d0523272aaaebfd6f10f9213f..73c096a2850850921aff97037457cde5 class nsGlobalWindowOuter; class FramingChecker; -@@ -408,6 +410,15 @@ class nsDocShell final : public nsDocLoader, +@@ -401,6 +403,15 @@ class nsDocShell final : public nsDocLoader, void SetWillChangeProcess() { mWillChangeProcess = true; } bool WillChangeProcess() { return mWillChangeProcess; } @@ -698,8 +698,8 @@ index 237cf8dc1a54ed8d0523272aaaebfd6f10f9213f..73c096a2850850921aff97037457cde5 + // Create a content viewer within this nsDocShell for the given // `WindowGlobalChild` actor. - nsresult CreateContentViewerForActor( -@@ -1010,6 +1021,8 @@ class nsDocShell final : public nsDocLoader, + nsresult CreateDocumentViewerForActor( +@@ -1003,6 +1014,8 @@ class nsDocShell final : public nsDocLoader, bool CSSErrorReportingEnabled() const { return mCSSErrorReportingEnabled; } @@ -708,7 +708,7 @@ index 237cf8dc1a54ed8d0523272aaaebfd6f10f9213f..73c096a2850850921aff97037457cde5 // 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 -@@ -1300,6 +1313,16 @@ class nsDocShell final : public nsDocLoader, +@@ -1294,6 +1307,16 @@ class nsDocShell final : public nsDocLoader, bool mAllowDNSPrefetch : 1; bool mAllowWindowControl : 1; bool mCSSErrorReportingEnabled : 1; @@ -726,18 +726,18 @@ index 237cf8dc1a54ed8d0523272aaaebfd6f10f9213f..73c096a2850850921aff97037457cde5 bool mAllowKeywordFixup : 1; bool mDisableMetaRefreshWhenInactive : 1; diff --git a/docshell/base/nsIDocShell.idl b/docshell/base/nsIDocShell.idl -index a3ee2c3944018c64c93c02c5658c527ec5f9d2cb..272e5147568b95bf313ac7a940619382a0c42763 100644 +index 9e79b6831a74c6de7c6a6c56d9a024d29c1c704b..db5cd5586b74ec65d788480f9c5fca93eb562c21 100644 --- a/docshell/base/nsIDocShell.idl +++ b/docshell/base/nsIDocShell.idl @@ -44,6 +44,7 @@ interface nsIURI; interface nsIChannel; - interface nsIContentViewer; interface nsIContentSecurityPolicy; + interface nsIDocumentViewer; +interface nsIDOMGeoPosition; interface nsIEditor; interface nsIEditingSession; interface nsIInputStream; -@@ -760,6 +761,36 @@ interface nsIDocShell : nsIDocShellTreeItem +@@ -767,6 +768,36 @@ interface nsIDocShell : nsIDocShellTreeItem */ void synchronizeLayoutHistoryState(); @@ -775,10 +775,10 @@ index a3ee2c3944018c64c93c02c5658c527ec5f9d2cb..272e5147568b95bf313ac7a940619382 * 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 ff78b31699fe28e60915703b7642a72d540f6f99..dd8f4dd0283e3d0ce1b5ae8745312fcb64126c75 100644 +index 0a2f5be08d0dcad40cd11f4b064a1287b8141e2f..a845203c6aaea8384e8835cbe005669767a1b196 100644 --- a/dom/base/Document.cpp +++ b/dom/base/Document.cpp -@@ -3682,6 +3682,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { +@@ -3705,6 +3705,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { } void Document::ApplySettingsFromCSP(bool aSpeculative) { @@ -788,7 +788,7 @@ index ff78b31699fe28e60915703b7642a72d540f6f99..dd8f4dd0283e3d0ce1b5ae8745312fcb nsresult rv = NS_OK; if (!aSpeculative) { // 1) apply settings from regular CSP -@@ -3739,6 +3742,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { +@@ -3762,6 +3765,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { MOZ_ASSERT(!mScriptGlobalObject, "CSP must be initialized before mScriptGlobalObject is set!"); @@ -800,7 +800,7 @@ index ff78b31699fe28e60915703b7642a72d540f6f99..dd8f4dd0283e3d0ce1b5ae8745312fcb // If this is a data document - no need to set CSP. if (mLoadedAsData) { return NS_OK; -@@ -4534,6 +4542,10 @@ bool Document::HasFocus(ErrorResult& rv) const { +@@ -4557,6 +4565,10 @@ bool Document::HasFocus(ErrorResult& rv) const { return false; } @@ -811,7 +811,7 @@ index ff78b31699fe28e60915703b7642a72d540f6f99..dd8f4dd0283e3d0ce1b5ae8745312fcb if (!fm->IsInActiveWindow(bc)) { return false; } -@@ -18736,6 +18748,68 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { +@@ -18878,6 +18890,68 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { return PreferenceSheet::PrefsFor(*this).mColorScheme; } @@ -881,10 +881,10 @@ index ff78b31699fe28e60915703b7642a72d540f6f99..dd8f4dd0283e3d0ce1b5ae8745312fcb if (!sLoadingForegroundTopLevelContentDocument) { return false; diff --git a/dom/base/Document.h b/dom/base/Document.h -index 55e4f71d5b33cca55454ac0d4e16d4a96137a616..8ad7117047ee6d0b5de2538cd086d60ae9837594 100644 +index 3f8032594868b8aa1c8bec2d25b789518170eb0e..5017b426369378b892a224a88410f18e743da45f 100644 --- a/dom/base/Document.h +++ b/dom/base/Document.h -@@ -4030,6 +4030,9 @@ class Document : public nsINode, +@@ -4051,6 +4051,9 @@ class Document : public nsINode, // color-scheme meta tag. ColorScheme DefaultColorScheme() const; @@ -895,10 +895,10 @@ index 55e4f71d5b33cca55454ac0d4e16d4a96137a616..8ad7117047ee6d0b5de2538cd086d60a static bool AutomaticStorageAccessPermissionCanBeGranted( diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp -index 7e54ac18ad9a646e981e7bc356e75de273c75845..1e673db0fd8adc9a4096a826184425e939d5e926 100644 +index d4b04f809228fecc3e2dbf33dac42151ffc24b11..39dfddff7404e878cd9fcc8f3b9bb734ab72d743 100644 --- a/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp -@@ -331,14 +331,18 @@ void Navigator::GetAppName(nsAString& aAppName) const { +@@ -335,14 +335,18 @@ void Navigator::GetAppName(nsAString& aAppName) const { * for more detail. */ /* static */ @@ -919,7 +919,7 @@ index 7e54ac18ad9a646e981e7bc356e75de273c75845..1e673db0fd8adc9a4096a826184425e9 // Split values on commas. for (nsDependentSubstring lang : -@@ -390,7 +394,13 @@ void Navigator::GetLanguage(nsAString& aLanguage) { +@@ -394,7 +398,13 @@ void Navigator::GetLanguage(nsAString& aLanguage) { } void Navigator::GetLanguages(nsTArray& aLanguages) { @@ -935,10 +935,10 @@ index 7e54ac18ad9a646e981e7bc356e75de273c75845..1e673db0fd8adc9a4096a826184425e9 // 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 diff --git a/dom/base/Navigator.h b/dom/base/Navigator.h -index 851b681570e35ba86341f56912684bc8ec7001f3..2fd4d6fd9deafaa42604428dc17798142ce77e19 100644 +index 998328cfc6f36fd579e4fe26629a92a1ceefa9fa..c73e48d8dfe5a66fb9eb7f6bf49527f88cabc884 100644 --- a/dom/base/Navigator.h +++ b/dom/base/Navigator.h -@@ -214,7 +214,7 @@ class Navigator final : public nsISupports, public nsWrapperCache { +@@ -216,7 +216,7 @@ class Navigator final : public nsISupports, public nsWrapperCache { StorageManager* Storage(); @@ -948,10 +948,10 @@ index 851b681570e35ba86341f56912684bc8ec7001f3..2fd4d6fd9deafaa42604428dc1779814 dom::MediaCapabilities* MediaCapabilities(); dom::MediaSession* MediaSession(); diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp -index a5fee753ce551826e5b974ca01aff1f541754f6b..f1a80d1bb25175c12345acbc27b82d96793e061d 100644 +index 6d3a9f8937a7b37bf82a18362d7ee525e4e267f4..c598acdcda9d47cdd193011e8faa916988872a18 100644 --- a/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp -@@ -8598,7 +8598,8 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8697,7 +8697,8 @@ nsresult nsContentUtils::SendMouseEvent( bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, PreventDefaultResult* aPreventDefault, bool aIsDOMEventSynthesized, @@ -961,7 +961,7 @@ index a5fee753ce551826e5b974ca01aff1f541754f6b..f1a80d1bb25175c12345acbc27b82d96 nsPoint offset; nsCOMPtr widget = GetWidget(aPresShell, &offset); if (!widget) return NS_ERROR_FAILURE; -@@ -8606,6 +8607,7 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8705,6 +8706,7 @@ nsresult nsContentUtils::SendMouseEvent( EventMessage msg; Maybe exitFrom; bool contextMenuKey = false; @@ -969,7 +969,7 @@ index a5fee753ce551826e5b974ca01aff1f541754f6b..f1a80d1bb25175c12345acbc27b82d96 if (aType.EqualsLiteral("mousedown")) { msg = eMouseDown; } else if (aType.EqualsLiteral("mouseup")) { -@@ -8630,6 +8632,12 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8729,6 +8731,12 @@ nsresult nsContentUtils::SendMouseEvent( msg = eMouseHitTest; } else if (aType.EqualsLiteral("MozMouseExploreByTouch")) { msg = eMouseExploreByTouch; @@ -982,7 +982,7 @@ index a5fee753ce551826e5b974ca01aff1f541754f6b..f1a80d1bb25175c12345acbc27b82d96 } else { return NS_ERROR_FAILURE; } -@@ -8638,12 +8646,21 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8737,12 +8745,21 @@ nsresult nsContentUtils::SendMouseEvent( aInputSourceArg = MouseEvent_Binding::MOZ_SOURCE_MOUSE; } @@ -1006,7 +1006,7 @@ index a5fee753ce551826e5b974ca01aff1f541754f6b..f1a80d1bb25175c12345acbc27b82d96 event.pointerId = aIdentifier; event.mModifiers = GetWidgetModifiers(aModifiers); event.mButton = aButton; -@@ -8654,8 +8671,10 @@ nsresult nsContentUtils::SendMouseEvent( +@@ -8753,8 +8770,10 @@ nsresult nsContentUtils::SendMouseEvent( event.mPressure = aPressure; event.mInputSource = aInputSourceArg; event.mClickCount = aClickCount; @@ -1018,10 +1018,10 @@ index a5fee753ce551826e5b974ca01aff1f541754f6b..f1a80d1bb25175c12345acbc27b82d96 nsPresContext* presContext = aPresShell->GetPresContext(); if (!presContext) return NS_ERROR_FAILURE; diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h -index 36c1a4f4eeba0fa75d79715f79de0d705719e5c5..6ad5426612ef37d7326bafd771a4c2d6d9142cb5 100644 +index db68b67c5a3e60ac214231ac82fd9f652a697858..529b49b2c6c5f693747d847bca85e93415b9159c 100644 --- a/dom/base/nsContentUtils.h +++ b/dom/base/nsContentUtils.h -@@ -2963,7 +2963,8 @@ class nsContentUtils { +@@ -2958,7 +2958,8 @@ class nsContentUtils { int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, mozilla::PreventDefaultResult* aPreventDefault, @@ -1032,10 +1032,10 @@ index 36c1a4f4eeba0fa75d79715f79de0d705719e5c5..6ad5426612ef37d7326bafd771a4c2d6 static void FirePageShowEventForFrameLoaderSwap( nsIDocShellTreeItem* aItem, diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp -index e6762018cce8e4c8691703ed15ea29e709f31cf2..4d0b679c4700e8fe18408a186b7e4d512a71dc30 100644 +index 6c547a9fd8604ac7fd7b965be473bc4120b2fdf7..c9aa1951da7af70913f77c76bb7c68ba144adaeb 100644 --- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp -@@ -684,6 +684,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) { +@@ -685,6 +685,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) { return NS_ERROR_FAILURE; } @@ -1062,7 +1062,7 @@ index e6762018cce8e4c8691703ed15ea29e709f31cf2..4d0b679c4700e8fe18408a186b7e4d51 NS_IMETHODIMP nsDOMWindowUtils::SendMouseEvent( const nsAString& aType, float aX, float aY, int32_t aButton, -@@ -698,7 +718,7 @@ nsDOMWindowUtils::SendMouseEvent( +@@ -699,7 +719,7 @@ nsDOMWindowUtils::SendMouseEvent( aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, false, aPreventDefault, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true, aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false, @@ -1071,7 +1071,7 @@ index e6762018cce8e4c8691703ed15ea29e709f31cf2..4d0b679c4700e8fe18408a186b7e4d51 } NS_IMETHODIMP -@@ -716,7 +736,7 @@ nsDOMWindowUtils::SendMouseEventToWindow( +@@ -717,7 +737,7 @@ nsDOMWindowUtils::SendMouseEventToWindow( aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, true, nullptr, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true, aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false, @@ -1080,7 +1080,7 @@ index e6762018cce8e4c8691703ed15ea29e709f31cf2..4d0b679c4700e8fe18408a186b7e4d51 } NS_IMETHODIMP -@@ -725,13 +745,13 @@ nsDOMWindowUtils::SendMouseEventCommon( +@@ -726,13 +746,13 @@ nsDOMWindowUtils::SendMouseEventCommon( int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, uint32_t aPointerId, bool aToWindow, bool* aPreventDefault, bool aIsDOMEventSynthesized, @@ -1110,7 +1110,7 @@ index 63968c9b7a4e418e4c0de6e7a75fa215a36a9105..decf3ea3833ccdffd49a7aded2d600f9 MOZ_CAN_RUN_SCRIPT nsresult SendTouchEventCommon( diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp -index 0d9e4df42f7efcbb0068bc162dfbb17003cd3802..55c0e9e8cfa434c5b8c7dbd27651bf94d5b9a2d1 100644 +index 60f45157cdfceb7ebf4f9a1681d0e59dc1822360..964d7cc1b847cd8ef21cef29be4fdc11168b18d8 100644 --- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp @@ -1673,6 +1673,10 @@ Maybe nsFocusManager::SetFocusInner(Element* aNewContent, @@ -1136,10 +1136,10 @@ index 0d9e4df42f7efcbb0068bc162dfbb17003cd3802..55c0e9e8cfa434c5b8c7dbd27651bf94 // 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 97d967175822e4f62079c21152f96e5540dbb98f..c5bf0d155649e6715aa3af6ca29c237b1dab6ead 100644 +index a10808b95d5f7c81942d2a513f63a72c7821061e..027b9a3c87811b794816bddb90ff67bc271f7faa 100644 --- a/dom/base/nsGlobalWindowOuter.cpp +++ b/dom/base/nsGlobalWindowOuter.cpp -@@ -2509,10 +2509,16 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, +@@ -2510,10 +2510,16 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, }(); if (!isContentAboutBlankInChromeDocshell) { @@ -1160,7 +1160,7 @@ index 97d967175822e4f62079c21152f96e5540dbb98f..c5bf0d155649e6715aa3af6ca29c237b } } -@@ -2632,6 +2638,19 @@ void nsGlobalWindowOuter::DispatchDOMWindowCreated() { +@@ -2633,6 +2639,19 @@ void nsGlobalWindowOuter::DispatchDOMWindowCreated() { } } @@ -1193,10 +1193,10 @@ index 8337a7353fb8e97372f0b57bd0fd867506a9129f..e7dedd6d26125e481e1145337a0be6ab // Outer windows only. virtual void EnsureSizeAndPositionUpToDate() override; diff --git a/dom/base/nsINode.cpp b/dom/base/nsINode.cpp -index 369bb41fe459c8ef4c10c61c1530f52d51b3f6de..15ef3c6824cc70e756777612f0fd148e5678c795 100644 +index 11ca350f483458ba11f0ee170ce38e9785e8c70f..6bb310f6e96239388b4c92bd7bdf2d698fac8139 100644 --- a/dom/base/nsINode.cpp +++ b/dom/base/nsINode.cpp -@@ -1359,6 +1359,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, +@@ -1362,6 +1362,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, mozilla::GetBoxQuadsFromWindowOrigin(this, aOptions, aResult, aRv); } @@ -1259,10 +1259,10 @@ index 369bb41fe459c8ef4c10c61c1530f52d51b3f6de..15ef3c6824cc70e756777612f0fd148e DOMQuad& aQuad, const GeometryNode& aFrom, const ConvertCoordinateOptions& aOptions, CallerType aCallerType, diff --git a/dom/base/nsINode.h b/dom/base/nsINode.h -index 807deebaad78f531c59d18aac2c2833e38d13946..3754b573ef119854e2c41b51b0dd0a43d7c53315 100644 +index 0ba44cb08ffffde3bf9616e7e3b1fb33317181b6..b698e309e7bf658739b3a69a1d68f657a6c84e6e 100644 --- a/dom/base/nsINode.h +++ b/dom/base/nsINode.h -@@ -2229,6 +2229,10 @@ class nsINode : public mozilla::dom::EventTarget { +@@ -2235,6 +2235,10 @@ class nsINode : public mozilla::dom::EventTarget { nsTArray>& aResult, ErrorResult& aRv); @@ -1274,7 +1274,7 @@ index 807deebaad78f531c59d18aac2c2833e38d13946..3754b573ef119854e2c41b51b0dd0a43 DOMQuad& aQuad, const TextOrElementOrDocument& aFrom, const ConvertCoordinateOptions& aOptions, CallerType aCallerType, diff --git a/dom/base/nsJSUtils.cpp b/dom/base/nsJSUtils.cpp -index bb280d9a15aed8b7d82a93214e82222e9b5a14ae..d64cd52877c1643148ce5912eec26bd1569acdac 100644 +index cf8037cd580013efe5eb578c43f45c0d21946c6a..583460796fdef633e8075013597f7c315ce4ab06 100644 --- a/dom/base/nsJSUtils.cpp +++ b/dom/base/nsJSUtils.cpp @@ -177,6 +177,11 @@ bool nsJSUtils::GetScopeChainForElement( @@ -1290,7 +1290,7 @@ index bb280d9a15aed8b7d82a93214e82222e9b5a14ae..d64cd52877c1643148ce5912eec26bd1 void nsJSUtils::ResetTimeZone() { JS::ResetTimeZone(); } diff --git a/dom/base/nsJSUtils.h b/dom/base/nsJSUtils.h -index 36e906061588aab50dee129cc46dd2e4d3e153f8..c3591f98d4df19b166fc5c99332e559b1d499049 100644 +index cceb725d393d5e5f83c8f87491089c3fa1d57cc3..e906a7fb7c3fd72554613f640dcc272e6984d929 100644 --- a/dom/base/nsJSUtils.h +++ b/dom/base/nsJSUtils.h @@ -79,6 +79,7 @@ class nsJSUtils { @@ -1302,7 +1302,7 @@ index 36e906061588aab50dee129cc46dd2e4d3e153f8..c3591f98d4df19b166fc5c99332e559b static bool DumpEnabled(); diff --git a/dom/chrome-webidl/BrowsingContext.webidl b/dom/chrome-webidl/BrowsingContext.webidl -index 2e8abd50793dd1392a876e53e99ad806a256f755..695b9e8ffff846d663b645e3ca6fc83a39f6f126 100644 +index 8600a844634eed78e0b8470eaf11144f8ebd230b..853a4c98b78092181ad15542ae48cd41e9c49a82 100644 --- a/dom/chrome-webidl/BrowsingContext.webidl +++ b/dom/chrome-webidl/BrowsingContext.webidl @@ -53,6 +53,24 @@ enum PrefersColorSchemeOverride { @@ -1443,7 +1443,7 @@ index 7e1af00d05fbafa2d828e2c7e4dcc5c82d115f5b..e85af9718d064e4d2865bc944e9d4ba1 ~Geolocation(); diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp -index 09d57823aa37f596ac04261025862975f414bd7c..8cee0ae86ae1ed3aeda879cbf55f381a772dfa8b 100644 +index ae2c4af82c3827a521a79f8879a6f941ea68feca..92ea48eba6fb575ea1415d8713b49707b895561b 100644 --- a/dom/html/HTMLInputElement.cpp +++ b/dom/html/HTMLInputElement.cpp @@ -58,6 +58,7 @@ @@ -1454,7 +1454,7 @@ index 09d57823aa37f596ac04261025862975f414bd7c..8cee0ae86ae1ed3aeda879cbf55f381a #include "nsIFormControlFrame.h" #include "nsITextControlFrame.h" #include "nsIFrame.h" -@@ -783,6 +784,12 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) { +@@ -784,6 +785,12 @@ nsresult HTMLInputElement::InitFilePicker(FilePickerType aType) { return NS_ERROR_FAILURE; } @@ -1468,7 +1468,7 @@ index 09d57823aa37f596ac04261025862975f414bd7c..8cee0ae86ae1ed3aeda879cbf55f381a return NS_OK; } diff --git a/dom/interfaces/base/nsIDOMWindowUtils.idl b/dom/interfaces/base/nsIDOMWindowUtils.idl -index 4170a79023a2503831d080a6e65d5e143f34f241..3af08d6ea5f1cfbdc373774764a0c45fe3aa0e27 100644 +index 564b24e3f89e0ce6e683902a7fc4e1c3a6f5faac..e4264b251e580bb13aa2941b26227541c74d3371 100644 --- a/dom/interfaces/base/nsIDOMWindowUtils.idl +++ b/dom/interfaces/base/nsIDOMWindowUtils.idl @@ -373,6 +373,26 @@ interface nsIDOMWindowUtils : nsISupports { @@ -1499,10 +1499,10 @@ index 4170a79023a2503831d080a6e65d5e143f34f241..3af08d6ea5f1cfbdc373774764a0c45f * touchstart, touchend, touchmove, and touchcancel * diff --git a/dom/ipc/BrowserChild.cpp b/dom/ipc/BrowserChild.cpp -index 2e69547612aa1ef91d726ee54475a5f8e638e214..2b7aae36d1b4b7a7a7a7a6117104d3455e1768e3 100644 +index 830ad8579a39d262a1fd2c86479f2ddc77c01ae2..b840b68c9b5545fc974e1dafacac2e74372f4e41 100644 --- a/dom/ipc/BrowserChild.cpp +++ b/dom/ipc/BrowserChild.cpp -@@ -1647,6 +1647,21 @@ void BrowserChild::HandleRealMouseButtonEvent(const WidgetMouseEvent& aEvent, +@@ -1651,6 +1651,21 @@ void BrowserChild::HandleRealMouseButtonEvent(const WidgetMouseEvent& aEvent, if (postLayerization) { postLayerization->Register(); } @@ -1539,7 +1539,7 @@ index 5aa445d2e0a6169e57c44569974d557b3baf7064..671f71979b407f0ca17c66f13805e851 } diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.cc b/dom/media/systemservices/video_engine/desktop_capture_impl.cc -index 532605b813d4e4a7693e6c82f6792075ef2565de..d225ffaf3439739d989b21f858c1763942beee9e 100644 +index a966ff06d4a52e2ff70ce71df3a6a607a67e3eda..eb6bb16413df43217ddd85048c02d41d15e8431f 100644 --- a/dom/media/systemservices/video_engine/desktop_capture_impl.cc +++ b/dom/media/systemservices/video_engine/desktop_capture_impl.cc @@ -135,11 +135,12 @@ int32_t ScreenDeviceInfoImpl::GetOrientation(const char* aDeviceUniqueIdUTF8, @@ -1644,7 +1644,7 @@ index 532605b813d4e4a7693e6c82f6792075ef2565de..d225ffaf3439739d989b21f858c17639 frameInfo.width * frameInfo.height * DesktopFrame::kBytesPerPixel; diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.h b/dom/media/systemservices/video_engine/desktop_capture_impl.h -index 64eadb140131ea807db8b55431630523342a88ce..371e093fef6e225302da6aaf6e1ede05b93efd74 100644 +index 7292f6c8a70298d4bf103080804843fa9bba1d15..7a50fee0d2fcaad475302d010892800a6e3c4e75 100644 --- a/dom/media/systemservices/video_engine/desktop_capture_impl.h +++ b/dom/media/systemservices/video_engine/desktop_capture_impl.h @@ -24,6 +24,7 @@ @@ -1677,7 +1677,7 @@ index 64eadb140131ea807db8b55431630523342a88ce..371e093fef6e225302da6aaf6e1ede05 // simulate deviceInfo interface for video engine, bridge screen/application and // real screen/application device info -@@ -155,13 +171,13 @@ class BrowserDeviceInfoImpl : public VideoCaptureModule::DeviceInfo { +@@ -158,13 +174,13 @@ class BrowserDeviceInfoImpl : public VideoCaptureModule::DeviceInfo { // As with video, DesktopCaptureImpl is a proxy for screen sharing // and follows the video pipeline design class DesktopCaptureImpl : public DesktopCapturer::Callback, @@ -1694,7 +1694,7 @@ index 64eadb140131ea807db8b55431630523342a88ce..371e093fef6e225302da6aaf6e1ede05 [[nodiscard]] static std::shared_ptr CreateDeviceInfo(const int32_t aId, -@@ -175,6 +191,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, +@@ -178,6 +194,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, void DeRegisterCaptureDataCallback( rtc::VideoSinkInterface* aCallback) override; int32_t StopCaptureIfAllClientsClose() override; @@ -1703,7 +1703,7 @@ index 64eadb140131ea807db8b55431630523342a88ce..371e093fef6e225302da6aaf6e1ede05 int32_t SetCaptureRotation(VideoRotation aRotation) override; bool SetApplyRotation(bool aEnable) override; -@@ -197,7 +215,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, +@@ -200,7 +218,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, protected: DesktopCaptureImpl(const int32_t aId, const char* aUniqueId, @@ -1713,7 +1713,7 @@ index 64eadb140131ea807db8b55431630523342a88ce..371e093fef6e225302da6aaf6e1ede05 virtual ~DesktopCaptureImpl(); private: -@@ -205,6 +224,9 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, +@@ -208,6 +227,9 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, static constexpr uint32_t kMaxDesktopCaptureCpuUsage = 50; void InitOnThread(std::unique_ptr aCapturer, int aFramerate); void ShutdownOnThread(); @@ -1723,7 +1723,7 @@ index 64eadb140131ea807db8b55431630523342a88ce..371e093fef6e225302da6aaf6e1ede05 // DesktopCapturer::Callback interface. void OnCaptureResult(DesktopCapturer::Result aResult, std::unique_ptr aFrame) override; -@@ -212,6 +234,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, +@@ -215,6 +237,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, // Notifies all mCallbacks of OnFrame(). mCaptureThread only. void NotifyOnFrame(const VideoFrame& aFrame); @@ -1777,7 +1777,7 @@ index 3b39538e51840cd9b1685b2efd2ff2e9ec83608a..c7bf4f2d53b58bbacb22b3ebebf6f3fc return aGlobalOrNull; diff --git a/dom/security/nsCSPUtils.cpp b/dom/security/nsCSPUtils.cpp -index d1bd1d060d749de3ac16bd6e9fd3383383e4dd9a..e6262c210accf12c3d071d42031b432b2a6332b5 100644 +index 50730b691b06409f47cb9172570866a7bb519abc..e5ae4f31b8f93f17943c24108a82c6370470e9f2 100644 --- a/dom/security/nsCSPUtils.cpp +++ b/dom/security/nsCSPUtils.cpp @@ -22,6 +22,7 @@ @@ -1824,7 +1824,7 @@ index 2f71b284ee5f7e11f117c447834b48355784448c..2640bd57123c2b03bf4b06a2419cd020 * returned quads are further translated relative to the window * origin -- which is not the layout origin. Further translation diff --git a/dom/workers/RuntimeService.cpp b/dom/workers/RuntimeService.cpp -index 4fc3db17b202f768cadc7fa3921badc4374a9f7a..be58abf2b7906e7307dd8f106f5f8bd2206793bc 100644 +index bcfbe33925afb97e68305394fb38e42481682540..47bc46f34a93991f112292c851c539a6bc97778f 100644 --- a/dom/workers/RuntimeService.cpp +++ b/dom/workers/RuntimeService.cpp @@ -985,7 +985,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) { @@ -1902,7 +1902,7 @@ index d10dabb5c5ff8e17851edf2bd2efc08e74584d8e..53c4070c5fde43b27fb8fbfdcf4c23d8 bool IsWorkerGlobal(JSObject* global); diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp -index ed8a07bcdc25f77a93079c8b9f113c59b9befaf9..2f09a961603f28a658f2d29321a389b7623482b9 100644 +index acef06ba3abb006932f26f8a96fd73028f015150..940210c603d906ae0469d826b81ba8f537e7fef5 100644 --- a/dom/workers/WorkerPrivate.cpp +++ b/dom/workers/WorkerPrivate.cpp @@ -679,6 +679,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { @@ -1924,7 +1924,7 @@ index ed8a07bcdc25f77a93079c8b9f113c59b9befaf9..2f09a961603f28a658f2d29321a389b7 class UpdateLanguagesRunnable final : public WorkerRunnable { nsTArray mLanguages; -@@ -1949,6 +1961,16 @@ void WorkerPrivate::UpdateContextOptions( +@@ -1977,6 +1989,16 @@ void WorkerPrivate::UpdateContextOptions( } } @@ -1941,7 +1941,7 @@ index ed8a07bcdc25f77a93079c8b9f113c59b9befaf9..2f09a961603f28a658f2d29321a389b7 void WorkerPrivate::UpdateLanguages(const nsTArray& aLanguages) { AssertIsOnParentThread(); -@@ -5450,6 +5472,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( +@@ -5480,6 +5502,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( } } @@ -1958,7 +1958,7 @@ index ed8a07bcdc25f77a93079c8b9f113c59b9befaf9..2f09a961603f28a658f2d29321a389b7 const nsTArray& aLanguages) { WorkerGlobalScope* globalScope = GlobalScope(); diff --git a/dom/workers/WorkerPrivate.h b/dom/workers/WorkerPrivate.h -index a134d4846f9ad0f273f61fe2c2daa10af7b3c7a6..38bb391cb542a560f93a0c302a1d942aad8135a6 100644 +index a670d009759d101cf9574cde3c2481b8aa2737f6..ac87b7f27dfcc060adb52387b146c45eed996fa7 100644 --- a/dom/workers/WorkerPrivate.h +++ b/dom/workers/WorkerPrivate.h @@ -417,6 +417,8 @@ class WorkerPrivate final @@ -2019,10 +2019,10 @@ index 9d0423ef13958d5c443cc3531269603c4801c338..f0c4ba7c528d2be466e0f7669a1e37e8 * Set the default time zone. */ diff --git a/js/public/Date.h b/js/public/Date.h -index 422ea0b2c0daafd4447d0d83500ea73545c99b76..7f03adc302112e0de3d842d7ce6bc0909b50f76a 100644 +index 523e84c8c93f4221701f90f2e8ee146ec8e1adbd..98d5b1176e5378431b859a2dbd4d4e778d236e78 100644 --- a/js/public/Date.h +++ b/js/public/Date.h -@@ -54,6 +54,8 @@ namespace JS { +@@ -55,6 +55,8 @@ namespace JS { */ extern JS_PUBLIC_API void ResetTimeZone(); @@ -2032,10 +2032,10 @@ index 422ea0b2c0daafd4447d0d83500ea73545c99b76..7f03adc302112e0de3d842d7ce6bc090 inline ClippedTime TimeClip(double time); diff --git a/js/src/debugger/Object.cpp b/js/src/debugger/Object.cpp -index 2cb72597fdf2a10fdc53bf03d6cc98d9bc16af58..b3ce8a99c37fc8c503206ea2b47b7e000fc4bf3b 100644 +index c5a4f1f6dcf95922b5c8506d6bd24ad4fd2f1efc..a79bb0ad42d1bbd0434cda27c118cdd099013ab2 100644 --- a/js/src/debugger/Object.cpp +++ b/js/src/debugger/Object.cpp -@@ -2446,7 +2446,11 @@ Maybe DebuggerObject::call(JSContext* cx, +@@ -2450,7 +2450,11 @@ Maybe DebuggerObject::call(JSContext* cx, invokeArgs[i].set(args2[i]); } @@ -2202,10 +2202,10 @@ index dac899f7558b26d6848da8b98ed8a93555c8751a..2a07d67fa1c2840b25085566e84dc3b2 // No boxes to return return; diff --git a/layout/base/PresShell.cpp b/layout/base/PresShell.cpp -index 6e27e39f432d678376cec3bfd8491e5f20ebd893..a69211527a0a2411b6ef4a69de0183428114139d 100644 +index 4afd2b10dfdab527b63f17919c52a559b3ac3de6..787283c004d9baa7227f00c338e0322dca88f949 100644 --- a/layout/base/PresShell.cpp +++ b/layout/base/PresShell.cpp -@@ -10906,7 +10906,9 @@ bool PresShell::ComputeActiveness() const { +@@ -10963,7 +10963,9 @@ bool PresShell::ComputeActiveness() const { if (!browserChild->IsVisible()) { MOZ_LOG(gLog, LogLevel::Debug, (" > BrowserChild %p is not visible", browserChild)); @@ -2217,10 +2217,10 @@ index 6e27e39f432d678376cec3bfd8491e5f20ebd893..a69211527a0a2411b6ef4a69de018342 // 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 327b3d587844c0ad81f5b9c2c622bf52315380bf..d5eefde23dfa3d5666f04af90b7dda1ffa38f6bd 100644 +index 7bb839ae18835d128dc9285b7f9dc5b5e06335af..09e3979d07447522ace740daf2b818a6c551ceba 100644 --- a/layout/style/GeckoBindings.h +++ b/layout/style/GeckoBindings.h -@@ -632,6 +632,7 @@ float Gecko_MediaFeatures_GetResolution(const mozilla::dom::Document*); +@@ -625,6 +625,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*); @@ -2229,10 +2229,10 @@ index 327b3d587844c0ad81f5b9c2c622bf52315380bf..d5eefde23dfa3d5666f04af90b7dda1f const mozilla::dom::Document*); mozilla::StylePrefersColorScheme Gecko_MediaFeatures_PrefersColorScheme( diff --git a/layout/style/nsMediaFeatures.cpp b/layout/style/nsMediaFeatures.cpp -index f10c779512c8d6a778ccd2fe98f069745a58adab..8534639ff3c256820846c6e014185783bb317efe 100644 +index c99eecb4867c623b8ccc6e6fb42986d71f795cc0..d127837d7e069818daaeb73ef42497226ff95e26 100644 --- a/layout/style/nsMediaFeatures.cpp +++ b/layout/style/nsMediaFeatures.cpp -@@ -261,11 +261,11 @@ bool Gecko_MediaFeatures_MatchesPlatform(StylePlatform aPlatform) { +@@ -257,11 +257,11 @@ bool Gecko_MediaFeatures_MatchesPlatform(StylePlatform aPlatform) { } bool Gecko_MediaFeatures_PrefersReducedMotion(const Document* aDocument) { @@ -2250,10 +2250,10 @@ index f10c779512c8d6a778ccd2fe98f069745a58adab..8534639ff3c256820846c6e014185783 bool Gecko_MediaFeatures_PrefersReducedTransparency(const Document* aDocument) { diff --git a/netwerk/base/LoadInfo.cpp b/netwerk/base/LoadInfo.cpp -index 7e8b75f0156b059c19c9a2322087c2d79d28f961..d8899ca4ec66a1d1cafba5cb09205fa3b7d41384 100644 +index b15f24fffd7ea5a8a00319451fa7ebf9df32ec05..0279f6626f2ac938b0456d370fd956f2a23a036b 100644 --- a/netwerk/base/LoadInfo.cpp +++ b/netwerk/base/LoadInfo.cpp -@@ -647,7 +647,8 @@ LoadInfo::LoadInfo(const LoadInfo& rhs) +@@ -653,7 +653,8 @@ LoadInfo::LoadInfo(const LoadInfo& rhs) mInterceptionInfo(rhs.mInterceptionInfo), mHasInjectedCookieForCookieBannerHandling( rhs.mHasInjectedCookieForCookieBannerHandling), @@ -2263,7 +2263,7 @@ index 7e8b75f0156b059c19c9a2322087c2d79d28f961..d8899ca4ec66a1d1cafba5cb09205fa3 } LoadInfo::LoadInfo( -@@ -2363,4 +2364,16 @@ LoadInfo::SetWasSchemelessInput(bool aWasSchemelessInput) { +@@ -2369,4 +2370,16 @@ LoadInfo::SetWasSchemelessInput(bool aWasSchemelessInput) { return NS_OK; } @@ -2314,10 +2314,10 @@ index 920e7623a7f912296fc23361f66ab35a30c35f1e..dfea0d0f7a72da9699615d7ff778e429 } // namespace net } // namespace mozilla diff --git a/netwerk/base/nsILoadInfo.idl b/netwerk/base/nsILoadInfo.idl -index ccceadc42ce12bec8e9878124904f0ba3914a030..56ec55af399e7b831558ca5d2a71513d9c919839 100644 +index ddfcb223e6126c943b58e9d198f0e2fa767c3de1..4280b836c55e5778ad4c94226ea537facb19c436 100644 --- a/netwerk/base/nsILoadInfo.idl +++ b/netwerk/base/nsILoadInfo.idl -@@ -1531,4 +1531,6 @@ interface nsILoadInfo : nsISupports +@@ -1532,4 +1532,6 @@ interface nsILoadInfo : nsISupports * Whether the load has gone through the URL bar, where the fixup had to add * the protocol scheme. */ [infallible] attribute boolean wasSchemelessInput; @@ -2325,7 +2325,7 @@ index ccceadc42ce12bec8e9878124904f0ba3914a030..56ec55af399e7b831558ca5d2a71513d + [infallible] attribute unsigned long long jugglerLoadIdentifier; }; diff --git a/netwerk/base/nsINetworkInterceptController.idl b/netwerk/base/nsINetworkInterceptController.idl -index d72dc570dc82ff9d576942b9e7c23d8a74d68049..a5fcddc4b0e53a862e5a77120b4ccff8a27cfbab 100644 +index 155daa5cd52c4e93e1cc4559875868f4faf2c37e..02e8a2614a27a4cc9e1de760d4c48617eba25d4d 100644 --- a/netwerk/base/nsINetworkInterceptController.idl +++ b/netwerk/base/nsINetworkInterceptController.idl @@ -59,6 +59,7 @@ interface nsIInterceptedChannel : nsISupports @@ -2337,7 +2337,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 995560e4818c69f89959e36164fa9eba39925037..3d92280cfd73c5b09926151aac36857775f48e30 100644 +index ca1f59e8847bd399fcf3018ede95d318265c374c..d114f0bcaddedc3553780ff7b97e395e28aff91e 100644 --- a/netwerk/ipc/DocumentLoadListener.cpp +++ b/netwerk/ipc/DocumentLoadListener.cpp @@ -167,6 +167,7 @@ static auto CreateDocumentLoadInfo(CanonicalBrowsingContext* aBrowsingContext, @@ -2349,7 +2349,7 @@ index 995560e4818c69f89959e36164fa9eba39925037..3d92280cfd73c5b09926151aac368577 return loadInfo.forget(); } diff --git a/netwerk/protocol/http/InterceptedHttpChannel.cpp b/netwerk/protocol/http/InterceptedHttpChannel.cpp -index 4bee70faf21db77daf381f40a562840470f788f4..93986ccb252bca67f2a0b291c915d523f5dad9eb 100644 +index c58fbc96391f8dcb585bd00b5ae8cba9088abd82..c121c891b61c9d60df770020c4ad09521d2bbfe6 100644 --- a/netwerk/protocol/http/InterceptedHttpChannel.cpp +++ b/netwerk/protocol/http/InterceptedHttpChannel.cpp @@ -727,6 +727,14 @@ NS_IMPL_ISUPPORTS(ResetInterceptionHeaderVisitor, nsIHttpHeaderVisitor) @@ -2367,7 +2367,7 @@ index 4bee70faf21db77daf381f40a562840470f788f4..93986ccb252bca67f2a0b291c915d523 NS_IMETHODIMP InterceptedHttpChannel::ResetInterception(bool aBypass) { INTERCEPTED_LOG(("InterceptedHttpChannel::ResetInterception [%p] bypass: %s", -@@ -1070,11 +1078,18 @@ InterceptedHttpChannel::OnStartRequest(nsIRequest* aRequest) { +@@ -1140,11 +1148,18 @@ InterceptedHttpChannel::OnStartRequest(nsIRequest* aRequest) { GetCallback(mProgressSink); } @@ -2387,10 +2387,10 @@ index 4bee70faf21db77daf381f40a562840470f788f4..93986ccb252bca67f2a0b291c915d523 if (mPump && mLoadFlags & LOAD_CALL_CONTENT_SNIFFERS) { mPump->PeekStream(CallTypeSniffers, static_cast(this)); diff --git a/parser/html/nsHtml5TreeOpExecutor.cpp b/parser/html/nsHtml5TreeOpExecutor.cpp -index 125728fa73180bbe57bfc1f53379ec637f108eb7..5fd60bebebbfa0f2de99cb14762cf0d52dbdb0cb 100644 +index 3cb38dcf28a5cb3a8e70c336c8b1c822be59268f..4d9ae3ab666d4ba7b42730d50367720870f0183f 100644 --- a/parser/html/nsHtml5TreeOpExecutor.cpp +++ b/parser/html/nsHtml5TreeOpExecutor.cpp -@@ -1376,6 +1376,10 @@ void nsHtml5TreeOpExecutor::UpdateReferrerInfoFromMeta( +@@ -1381,6 +1381,10 @@ void nsHtml5TreeOpExecutor::UpdateReferrerInfoFromMeta( void nsHtml5TreeOpExecutor::AddSpeculationCSP(const nsAString& aCSP) { NS_ASSERTION(NS_IsMainThread(), "Wrong thread!"); @@ -2488,7 +2488,7 @@ index 73c83e526be1a3a252f995d0718e3975d50bffa7..4b05141c8ab8b084d977341127f36ea6 : AppConstants.REMOTE_SETTINGS_SERVER_URL; }, diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs -index 014248a26f7b070850edf1d7db0990fd8ef26a10..9846ae282d959c406f15052791aae3ec9351326f 100644 +index c9ad30b28b069a122cf01c5e97b83dc68ef022ff..f32dbcfe26fe2f6b8a0d066d6dfd208f1afc510d 100644 --- a/servo/components/style/gecko/media_features.rs +++ b/servo/components/style/gecko/media_features.rs @@ -293,10 +293,15 @@ pub enum ForcedColors { @@ -2511,21 +2511,21 @@ index 014248a26f7b070850edf1d7db0990fd8ef26a10..9846ae282d959c406f15052791aae3ec } diff --git a/toolkit/components/browser/nsIWebBrowserChrome.idl b/toolkit/components/browser/nsIWebBrowserChrome.idl -index 54de3abab5757dd706e3d909ccef6a0bed5deacc..f5c5480cd052ede0c76e5eec733dbb9283389045 100644 +index 517c87a285dd93220cb2654d6ba7bb05c66cdeb7..e3010421d8dbe5ed5ed72feedb9f15805b32503e 100644 --- a/toolkit/components/browser/nsIWebBrowserChrome.idl +++ b/toolkit/components/browser/nsIWebBrowserChrome.idl -@@ -71,6 +71,9 @@ interface nsIWebBrowserChrome : nsISupports +@@ -74,6 +74,9 @@ interface nsIWebBrowserChrome : nsISupports // Whether this window should use out-of-process cross-origin subframes. - const unsigned long CHROME_FISSION_WINDOW = 0x00200000; + const unsigned long CHROME_FISSION_WINDOW = 1 << 21; + // Whether this window has "width" or "height" defined in features + const unsigned long JUGGLER_WINDOW_EXPLICIT_SIZE = 0x00400000; + // Prevents new window animations on MacOS and Windows. Currently // ignored for Linux. - const unsigned long CHROME_SUPPRESS_ANIMATION = 0x01000000; + const unsigned long CHROME_SUPPRESS_ANIMATION = 1 << 24; diff --git a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs -index 61eda006f090e391b3c0f209e9400920f480c115..8fea8caf17913a2736884caca8f6087f1fb48d15 100644 +index 15fa2193c6116b5bd0cf2ee608eb5971f3d24370..aa92eb63b8f907e0df9ef8df60fd076aa3d6a472 100644 --- a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs +++ b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs @@ -108,6 +108,12 @@ EnterprisePoliciesManager.prototype = { @@ -2570,10 +2570,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 144924a7a6b3d11c0de3992d1e1f99a04f7611b4..b7646200f7843d42ef3fb1919e5a1d3057eaf14c 100644 +index 209af157a35cf9c4586424421ee19b3f680796b6..1feb61e2f18e9a13631addc935f00da07739291e 100644 --- a/toolkit/components/windowwatcher/nsWindowWatcher.cpp +++ b/toolkit/components/windowwatcher/nsWindowWatcher.cpp -@@ -1880,7 +1880,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent( +@@ -1853,7 +1853,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent( // Open a minimal popup. *aIsPopupRequested = true; @@ -2587,7 +2587,7 @@ index 144924a7a6b3d11c0de3992d1e1f99a04f7611b4..b7646200f7843d42ef3fb1919e5a1d30 /** diff --git a/toolkit/mozapps/update/UpdateService.sys.mjs b/toolkit/mozapps/update/UpdateService.sys.mjs -index fcb142e5d74ab40515fd6e3b7848a661771d459c..592d4b759958283b1c53c52a648f35f97110705b 100644 +index 290344c58bf488b4aa955c2c58bdaa11048e2f48..2d419b90e6c5a910d3038380cd6c819eb8b0c768 100644 --- a/toolkit/mozapps/update/UpdateService.sys.mjs +++ b/toolkit/mozapps/update/UpdateService.sys.mjs @@ -3853,6 +3853,8 @@ UpdateService.prototype = { @@ -2600,15 +2600,15 @@ index fcb142e5d74ab40515fd6e3b7848a661771d459c..592d4b759958283b1c53c52a648f35f9 (Cu.isInAutomation || lazy.Marionette.running || diff --git a/toolkit/toolkit.mozbuild b/toolkit/toolkit.mozbuild -index 2e3721e8a5807936c02cce6c21240df3b4c92c97..ecd1ca11d96c14ba6db4b09d4d9c10ef757e690b 100644 +index f554b692f7e874dd21be1ef783e899ba602ee7f3..dd6c94f8723ca227611c8390d9dcd4f292939703 100644 --- a/toolkit/toolkit.mozbuild +++ b/toolkit/toolkit.mozbuild -@@ -155,6 +155,7 @@ if CONFIG['ENABLE_WEBDRIVER']: - '/remote', - '/testing/firefox-ui', - '/testing/marionette', -+ '/juggler', - '/toolkit/components/telemetry/tests/marionette', +@@ -155,6 +155,7 @@ if CONFIG["ENABLE_WEBDRIVER"]: + "/remote", + "/testing/firefox-ui", + "/testing/marionette", ++ "/juggler", + "/toolkit/components/telemetry/tests/marionette", ] diff --git a/toolkit/xre/nsWindowsWMain.cpp b/toolkit/xre/nsWindowsWMain.cpp @@ -2647,23 +2647,22 @@ index 7eb9e1104682d4eb47060654f43a1efa8b2a6bb2..a8315d6decf654b5302bea5beeea3414 // Only run this code if LauncherProcessWin.h was included beforehand, thus // signalling that the hosting process should support launcher mode. diff --git a/uriloader/base/nsDocLoader.cpp b/uriloader/base/nsDocLoader.cpp -index d54be4a4d7697851cc5279a39a49b06c745b7630..abb455116db3011dc7f84df86631da5eb7030700 100644 +index fe72a2715da8846146377e719559c16e6ef1f7ff..a5959143bac8f62ee359fa3883a844f3fe541685 100644 --- a/uriloader/base/nsDocLoader.cpp +++ b/uriloader/base/nsDocLoader.cpp -@@ -828,6 +828,13 @@ void nsDocLoader::DocLoaderIsEmpty(bool aFlushLayout, - ("DocLoader:%p: Firing load event for document.open\n", - this)); +@@ -813,6 +813,12 @@ void nsDocLoader::DocLoaderIsEmpty(bool aFlushLayout, + ("DocLoader:%p: Firing load event for document.open\n", + this)); -+ nsCOMPtr os = mozilla::services::GetObserverService(); -+ if (os) { -+ nsIPrincipal* principal = doc->NodePrincipal(); -+ if (!principal->IsSystemPrincipal()) -+ os->NotifyObservers(ToSupports(doc), "juggler-document-open-loaded", nullptr); -+ } -+ - // This is a very cut-down version of - // nsDocumentViewer::LoadComplete that doesn't do various things - // that are not relevant here because this wasn't an actual ++ nsCOMPtr os = mozilla::services::GetObserverService(); ++ if (os) { ++ nsIPrincipal* principal = doc->NodePrincipal(); ++ if (!principal->IsSystemPrincipal()) ++ os->NotifyObservers(ToSupports(doc), "juggler-document-open-loaded", nullptr); ++ } + // This is a very cut-down version of + // nsDocumentViewer::LoadComplete that doesn't do various things + // that are not relevant here because this wasn't an actual diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp index 4573e28470c5112f5ac2c5dd53e7a9d1ceedb943..b53b86d8e39f1de4b0d0f1a8d5d7295ea050b878 100644 --- a/uriloader/exthandler/nsExternalHelperAppService.cpp @@ -2877,7 +2876,7 @@ index 1c25e9d9a101233f71e92288a0f93125b81ac1c5..22cf67b0f6e3ddd2b3ed725a314ba6a9 } #endif diff --git a/widget/MouseEvents.h b/widget/MouseEvents.h -index 7ad7d82cd68810d9557adaa31ad5c7cb80bfb079..7a3d0116ce924e1e26a1cc6976abe11ed6f4a62c 100644 +index ea714704df53af78a55065ce7626798e0e674a23..a108e0459aeac9789adac7d7ec166abf94646454 100644 --- a/widget/MouseEvents.h +++ b/widget/MouseEvents.h @@ -258,6 +258,7 @@ class WidgetMouseEvent : public WidgetMouseEventBase, @@ -3202,7 +3201,7 @@ index 9856991ef32f25f51942f8cd664a09bec2192c70..948947a421179e91c51005aeb83ed0d1 ~HeadlessWidget(); bool mEnabled; diff --git a/widget/nsGUIEventIPC.h b/widget/nsGUIEventIPC.h -index a3d7aaf1b6c651fedbab7875c1a38647103d08ed..ac3b09e50216524cce90d96b013007f7b07472da 100644 +index 8ba46829357fc4acc47bf20842fd869902efa000..a1b5b2c5230d90981bd563d4df2d2bf1c2e05cef 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 e5b7bdc953..3d54e07f49 100644 --- a/browser_patches/firefox/preferences/playwright.cfg +++ b/browser_patches/firefox/preferences/playwright.cfg @@ -15,6 +15,9 @@ pref("datareporting.policy.dataSubmissionPolicyBypassNotification", true); // Force pdfs into downloads. pref("pdfjs.disabled", true); +// This preference breaks our authentication flow. +pref("network.auth.use_redirect_for_retries", false); + // Disable cross-process iframes, but not cross-process navigations. pref("fission.webContentIsolationStrategy", 0); @@ -308,3 +311,6 @@ pref("devtools.toolbox.host", "window"); // Disable auto translations pref("browser.translations.enable", false); + +// Disable spell check +pref("layout.spellcheckDefault", 0); diff --git a/browser_patches/webkit/UPSTREAM_CONFIG.sh b/browser_patches/webkit/UPSTREAM_CONFIG.sh index 1260c15690..f6a773c3cb 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="3db3a794a844d2c7e4cda8fc6a7588f8e62ee85a" +BASE_REVISION="d477c762a9ecbbc8dedf3ca7a6a2a079577bf60c" diff --git a/browser_patches/webkit/patches/bootstrap.diff b/browser_patches/webkit/patches/bootstrap.diff index 70ccfe70c5..db62b8da94 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 ebb0626fd9e56c4cbdb17f1723ef8052155cea58..b87e04448c219703d18fc3d04693892423d36de2 100644 +index 5fbb9a3bc1101b829db1cea0184187b982a2c9d2..7b9398f9feb2345b536d1058f61b596d75a17b3d 100644 --- a/Source/JavaScriptCore/CMakeLists.txt +++ b/Source/JavaScriptCore/CMakeLists.txt -@@ -1436,22 +1436,27 @@ set(JavaScriptCore_INSPECTOR_DOMAINS +@@ -1419,22 +1419,27 @@ set(JavaScriptCore_INSPECTOR_DOMAINS ${JAVASCRIPTCORE_DIR}/inspector/protocol/CSS.json ${JAVASCRIPTCORE_DIR}/inspector/protocol/Canvas.json ${JAVASCRIPTCORE_DIR}/inspector/protocol/Console.json @@ -172,7 +172,7 @@ index 820a08fc660633e09675d0e647bd0c50d2fa905a..5ca5ee5a6897b7ef332d906018b45712 // We could be called re-entrantly from a nested run loop, so restore the previous id. SetForScope scopedRequestId(m_currentRequestId, requestId); diff --git a/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h b/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h -index 37c4f9833d4981b47bcd8debd4a79109254641a2..1c82cc9783618234bef7024d91821ce509912526 100644 +index 31957be19b946aa90d316dc978a301f80956dd9c..d1a01e7546996535eb3884524c251c50a998eb33 100644 --- a/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h +++ b/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h @@ -83,7 +83,10 @@ public: @@ -222,7 +222,7 @@ index 0cc2127c9c12c2d82dea9550bad73f4ffb99ba24..8ca65cc042d435cbc0e05dcc5c5dfc95 } diff --git a/Source/JavaScriptCore/inspector/InspectorTarget.h b/Source/JavaScriptCore/inspector/InspectorTarget.h -index 80559d39722b74e325d513ea22054b0d399a4e8f..24977f9dfcfcdb29a20d178be608aca855cca532 100644 +index 88b72e94c4e8636de88419733b0a63ad4e0b9a73..153ee84f2c7ef86c548c62a65d6ad99214090230 100644 --- a/Source/JavaScriptCore/inspector/InspectorTarget.h +++ b/Source/JavaScriptCore/inspector/InspectorTarget.h @@ -57,8 +57,12 @@ public: @@ -392,7 +392,7 @@ index 4edcbf5f4aee2eb8e5675a23b9db67e9d640ef7f..a32b0f3a5de49e58b8a35cec9202b788 // FrontendChannel FrontendChannel::ConnectionType connectionType() const; diff --git a/Source/JavaScriptCore/inspector/protocol/DOM.json b/Source/JavaScriptCore/inspector/protocol/DOM.json -index da665b28060846786b6b2687c355ee68cc398875..81b012a976ad43871d7792edb38d4c0a89021d7b 100644 +index fc7612613d09e03f481c567a8a4a121884e2cb6c..b0a7b284684bccaa7dfb0892a64d4a803357ccc1 100644 --- a/Source/JavaScriptCore/inspector/protocol/DOM.json +++ b/Source/JavaScriptCore/inspector/protocol/DOM.json @@ -80,6 +80,16 @@ @@ -412,10 +412,10 @@ index da665b28060846786b6b2687c355ee68cc398875..81b012a976ad43871d7792edb38d4c0a { "id": "EventListener", "type": "object", -@@ -199,6 +209,16 @@ - { "name": "pseudoId", "$ref": "CSS.PseudoId", "optional": true } - ], - "description": "An object referencing a node and a pseudo-element, primarily used to identify an animation effect target." +@@ -267,6 +277,16 @@ + { "name": "width", "type": "number" }, + { "name": "height", "type": "number" } + ] + }, + { + "id": "FilePayload", @@ -429,7 +429,7 @@ index da665b28060846786b6b2687c355ee68cc398875..81b012a976ad43871d7792edb38d4c0a } ], "commands": [ -@@ -628,7 +648,10 @@ +@@ -696,7 +716,10 @@ "description": "Resolves JavaScript node object for given node id.", "targetTypes": ["page"], "parameters": [ @@ -441,9 +441,9 @@ index da665b28060846786b6b2687c355ee68cc398875..81b012a976ad43871d7792edb38d4c0a { "name": "objectGroup", "type": "string", "optional": true, "description": "Symbolic group name that can be used to release multiple objects." } ], "returns": [ -@@ -695,6 +718,46 @@ - "parameters": [ - { "name": "allow", "type": "boolean" } +@@ -773,6 +796,46 @@ + "returns": [ + { "name": "mediaStats", "$ref": "MediaStats", "description": "An interleaved array of node attribute names and values." } ] + }, + { @@ -1659,7 +1659,7 @@ index 72c81757450ad5ebacd5fd20d2a16095514802ec..b7d8ab1e04d3850180079870468b28ef private: enum ArgumentRequirement { ArgumentRequired, ArgumentNotRequired }; diff --git a/Source/ThirdParty/libwebrtc/CMakeLists.txt b/Source/ThirdParty/libwebrtc/CMakeLists.txt -index c205e2646ba6504bf2d865efe27f37ce4299c3cc..57ef4fa64b8b118fa4a3f7b77eb7d3df98d7ab83 100644 +index afbb586ab7d4325ff66320556797154a456ff957..1ae308637b190d0d219c5ec245d10014b9f38f26 100644 --- a/Source/ThirdParty/libwebrtc/CMakeLists.txt +++ b/Source/ThirdParty/libwebrtc/CMakeLists.txt @@ -452,6 +452,7 @@ set(webrtc_SOURCES @@ -1670,10 +1670,10 @@ index c205e2646ba6504bf2d865efe27f37ce4299c3cc..57ef4fa64b8b118fa4a3f7b77eb7d3df Source/third_party/boringssl/src/decrepit/bio/base64_bio.c Source/third_party/boringssl/src/decrepit/blowfish/blowfish.c Source/third_party/boringssl/src/decrepit/cast/cast.c -@@ -565,6 +566,11 @@ set(webrtc_SOURCES - Source/third_party/boringssl/src/tool/transport_common.cc - Source/third_party/boringssl/src/util/fipstools/acvp/modulewrapper/main.cc - Source/third_party/boringssl/src/util/fipstools/acvp/modulewrapper/modulewrapper.cc +@@ -530,6 +531,11 @@ set(webrtc_SOURCES + Source/third_party/crc32c/src/src/crc32c.cc + Source/third_party/crc32c/src/src/crc32c_portable.cc + Source/third_party/crc32c/src/src/crc32c_sse42.cc +# Playwright begin + Source/third_party/libwebm/mkvmuxer/mkvmuxer.cc + Source/third_party/libwebm/mkvmuxer/mkvmuxerutil.cc @@ -1682,7 +1682,7 @@ index c205e2646ba6504bf2d865efe27f37ce4299c3cc..57ef4fa64b8b118fa4a3f7b77eb7d3df Source/third_party/libyuv/source/compare.cc Source/third_party/libyuv/source/compare_common.cc Source/third_party/libyuv/source/compare_gcc.cc -@@ -2198,6 +2204,10 @@ set(webrtc_INCLUDE_DIRECTORIES PRIVATE +@@ -2241,6 +2247,10 @@ set(webrtc_INCLUDE_DIRECTORIES PRIVATE Source/third_party/libsrtp/config Source/third_party/libsrtp/crypto/include Source/third_party/libsrtp/include @@ -1694,7 +1694,7 @@ index c205e2646ba6504bf2d865efe27f37ce4299c3cc..57ef4fa64b8b118fa4a3f7b77eb7d3df Source/third_party/opus/src/celt Source/third_party/opus/src/include diff --git a/Source/ThirdParty/libwebrtc/Configurations/Base-libwebrtc.xcconfig b/Source/ThirdParty/libwebrtc/Configurations/Base-libwebrtc.xcconfig -index 8f79bffda497f6144e9e82c23397a182a6745cf3..d22f4fd1b54d535288994c44a5bd61405a1791cb 100644 +index 94f6675a8b7ca64e12aaf1c3b01848f0a6b737a8..20660f511914ebb7877e050bb5bc232c3df2daa5 100644 --- a/Source/ThirdParty/libwebrtc/Configurations/Base-libwebrtc.xcconfig +++ b/Source/ThirdParty/libwebrtc/Configurations/Base-libwebrtc.xcconfig @@ -21,7 +21,7 @@ @@ -1707,13 +1707,13 @@ index 8f79bffda497f6144e9e82c23397a182a6745cf3..d22f4fd1b54d535288994c44a5bd6140 WARNING_CFLAGS = -Wno-deprecated-declarations $(inherited); diff --git a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp -index bad4a4b2202135e367949695c5222e42739e003f..8f0ba977deb361225062445e6a950ee8bdf2345d 100644 +index a01284369bedab3d44e7a3c2671590b3ca2b18fc..6a75fd2d366386e12dc612bdcfb914613c636478 100644 --- a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp +++ b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp -@@ -394,3 +394,24 @@ __ZN6webrtc8RtpCodecD1Ev - __ZN7cricket16CreateVideoCodecERKN6webrtc14SdpVideoFormatE - __ZN7cricket5CodecD1Ev - __ZTVN3rtc17AsyncPacketSocketE +@@ -402,3 +402,24 @@ __ZN3rtc7LogSink12OnLogMessageENSt3__117basic_string_viewIcNS1_11char_traitsIcEE + __ZN3rtc7LogSink12OnLogMessageERKNS_10LogLineRefE + __ZN3rtc7LogSink12OnLogMessageERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS_15LoggingSeverityEPKc + __ZTVN3rtc7LogSinkE +__ZN8mkvmuxer11SegmentInfo15set_writing_appEPKc +__ZN8mkvmuxer11SegmentInfo4InitEv +__ZN8mkvmuxer7Segment10OutputCuesEb @@ -1748,7 +1748,7 @@ index 625cb7fefc6a699d9e2f28c6acc1bc7681ea3984..cd6677a7ffd3321978427a9fc6fbed51 #include "modules/rtp_rtcp/include/receive_statistics.h" #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h" diff --git a/Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_format_h264.h b/Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_format_h264.h -index 80709f1f43aa74428bb05b2a3ca4bb9d0631cd3d..1dde8c58f853cce5a6a2787c4bbcf381f0674582 100644 +index f95c3b6c6b73a01974f26d88bcc533e5032ddb66..6a9368c60824cd32649c93286522d779cac59bd2 100644 --- a/Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_format_h264.h +++ b/Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_format_h264.h @@ -16,6 +16,7 @@ @@ -1760,10 +1760,10 @@ index 80709f1f43aa74428bb05b2a3ca4bb9d0631cd3d..1dde8c58f853cce5a6a2787c4bbcf381 #include "api/array_view.h" diff --git a/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj b/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj -index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14fe99ee0e 100644 +index 810ef5c6d20ac29f35afba47689a0b5298bd4a89..84ba906e541ecd991fbc3243837fdd8d0198ab6e 100644 --- a/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj +++ b/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj -@@ -32,6 +32,20 @@ +@@ -34,6 +34,20 @@ }; /* End PBXAggregateTarget section */ @@ -1784,7 +1784,7 @@ index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14 /* Begin PBXBuildFile section */ 2D6BFF60280A93DF00A1A74F /* video_coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 4131C45B234C81710028A615 /* video_coding.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2D6BFF61280A93EC00A1A74F /* video_codec_initializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4131C45E234C81720028A615 /* video_codec_initializer.h */; settings = {ATTRIBUTES = (Public, ); }; }; -@@ -5104,6 +5118,9 @@ +@@ -5114,6 +5128,9 @@ DDF30D9127C5C725006A526F /* receive_side_congestion_controller.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF30D9027C5C725006A526F /* receive_side_congestion_controller.h */; }; DDF30D9527C5C756006A526F /* bwe_defines.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF30D9327C5C756006A526F /* bwe_defines.h */; }; DDF30D9627C5C756006A526F /* remote_bitrate_estimator.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF30D9427C5C756006A526F /* remote_bitrate_estimator.h */; }; @@ -1794,7 +1794,7 @@ index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14 /* End PBXBuildFile section */ /* Begin PBXBuildRule section */ -@@ -5550,6 +5567,13 @@ +@@ -5588,6 +5605,13 @@ remoteGlobalIDString = DDF30D0527C5C003006A526F; remoteInfo = absl; }; @@ -1808,7 +1808,7 @@ index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14 /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ -@@ -11084,6 +11108,9 @@ +@@ -11131,6 +11155,9 @@ DDF30D9027C5C725006A526F /* receive_side_congestion_controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = receive_side_congestion_controller.h; sourceTree = ""; }; DDF30D9327C5C756006A526F /* bwe_defines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bwe_defines.h; sourceTree = ""; }; DDF30D9427C5C756006A526F /* remote_bitrate_estimator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remote_bitrate_estimator.h; sourceTree = ""; }; @@ -1818,7 +1818,7 @@ index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14 FB39D0D11200F0E300088E69 /* libwebrtc.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libwebrtc.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ -@@ -19876,6 +19903,7 @@ +@@ -19938,6 +19965,7 @@ isa = PBXGroup; children = ( CDFD2F9224C4B2F90048DAC3 /* common */, @@ -1826,7 +1826,7 @@ index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14 CDEBB19224C0191800ADBD44 /* webm_parser */, ); path = libwebm; -@@ -20302,6 +20330,16 @@ +@@ -20364,6 +20392,16 @@ path = include; sourceTree = ""; }; @@ -1843,7 +1843,7 @@ index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14 FB39D06E1200ED9200088E69 = { isa = PBXGroup; children = ( -@@ -23504,6 +23542,7 @@ +@@ -23620,6 +23658,7 @@ ); dependencies = ( 410B3827292B73E90003E515 /* PBXTargetDependency */, @@ -1851,7 +1851,7 @@ index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14 DD2E76E827C6B69A00F2A74C /* PBXTargetDependency */, CDEBB4CC24C01AB400ADBD44 /* PBXTargetDependency */, 411ED040212E0811004320BA /* PBXTargetDependency */, -@@ -23583,6 +23622,7 @@ +@@ -23701,6 +23740,7 @@ 4460B89B2B155B2E00392062 /* vp9_depacketizer_fuzzer */, 4460B8B92B155B6A00392062 /* vp9_qp_parser_fuzzer */, 444A6EF02AEADFC9005FE121 /* vp9_replay_fuzzer */, @@ -1859,7 +1859,7 @@ index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14 ); }; /* End PBXProject section */ -@@ -23666,6 +23706,23 @@ +@@ -23784,6 +23824,23 @@ shellPath = /bin/sh; shellScript = "\"${SRCROOT}/Scripts/create-symlink-to-altroot.sh\"\n"; }; @@ -1883,7 +1883,7 @@ index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14 /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ -@@ -25612,6 +25669,9 @@ +@@ -25749,6 +25806,9 @@ 5CDD865E1E43B8B500621E92 /* min_max_operations.c in Sources */, 4189395B242A71F5007FDC41 /* min_video_bitrate_experiment.cc in Sources */, 41B8D8FB28CB85CB00E5FA37 /* missing_mandatory_parameter_cause.cc in Sources */, @@ -1893,7 +1893,7 @@ index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14 4131C387234B957D0028A615 /* moving_average.cc in Sources */, 41FCBB1521B1F7AA00A5DF27 /* moving_average.cc in Sources */, 5CD286101E6A64C90094FDC8 /* moving_max.cc in Sources */, -@@ -26454,6 +26514,11 @@ +@@ -26616,6 +26676,11 @@ target = DDF30D0527C5C003006A526F /* absl */; targetProxy = DD2E76E727C6B69A00F2A74C /* PBXContainerItemProxy */; }; @@ -1905,7 +1905,7 @@ index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14 /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ -@@ -26999,6 +27064,27 @@ +@@ -27209,6 +27274,27 @@ }; name = Production; }; @@ -1933,7 +1933,7 @@ index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14 FB39D0711200ED9200088E69 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 5D7C59C71208C68B001C873E /* DebugRelease.xcconfig */; -@@ -27271,6 +27357,16 @@ +@@ -27501,6 +27587,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Production; }; @@ -1951,18 +1951,18 @@ index c9fa28d80575ccee5c9ffbe7e1c72f438a2031dd..9d1ea54dfb66a92f1b1295e457666b14 isa = XCConfigurationList; buildConfigurations = ( diff --git a/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml b/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml -index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74bf69c640 100644 +index 9a7a20bcdf56471f8709ce4b4e2cf216e1b44dd9..0f4d2454f3b9aaece6f281729eb5c81a9fea2fec 100644 --- a/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml +++ b/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml -@@ -567,6 +567,7 @@ AriaTextRoleEnabled: - default: false +@@ -576,6 +576,7 @@ AriaReflectionForElementReferencesEnabled: + default: true # FIXME: This is on by default in WebKit2 PLATFORM(COCOA). Perhaps we should consider turning it on for WebKitLegacy as well. +# Playwright: enable on all platforms to align with Safari. AsyncClipboardAPIEnabled: type: bool status: mature -@@ -577,7 +578,7 @@ AsyncClipboardAPIEnabled: +@@ -586,7 +587,7 @@ AsyncClipboardAPIEnabled: default: false WebKit: "PLATFORM(COCOA) || PLATFORM(GTK)" : true @@ -1971,7 +1971,7 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 WebCore: default: false -@@ -1899,9 +1900,10 @@ CrossOriginEmbedderPolicyEnabled: +@@ -1949,9 +1950,10 @@ CrossOriginEmbedderPolicyEnabled: WebCore: default: false @@ -1983,7 +1983,7 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 category: security humanReadableName: "Cross-Origin-Opener-Policy (COOP) header" humanReadableDescription: "Support for Cross-Origin-Opener-Policy (COOP) header" -@@ -1909,7 +1911,7 @@ CrossOriginOpenerPolicyEnabled: +@@ -1959,7 +1961,7 @@ CrossOriginOpenerPolicyEnabled: WebKitLegacy: default: false WebKit: @@ -1992,7 +1992,7 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 WebCore: default: false -@@ -1939,7 +1941,7 @@ CustomPasteboardDataEnabled: +@@ -2003,7 +2005,7 @@ CustomPasteboardDataEnabled: WebKitLegacy: default: false WebKit: @@ -2001,7 +2001,7 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 default: false CustomStateSetEnabled: -@@ -1998,6 +2000,7 @@ DOMAudioSessionFullEnabled: +@@ -2062,6 +2064,7 @@ DOMAudioSessionFullEnabled: WebCore: default: false @@ -2009,7 +2009,7 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 DOMPasteAccessRequestsEnabled: type: bool status: internal -@@ -2009,7 +2012,7 @@ DOMPasteAccessRequestsEnabled: +@@ -2073,7 +2076,7 @@ DOMPasteAccessRequestsEnabled: default: false WebKit: "PLATFORM(IOS) || PLATFORM(MAC) || PLATFORM(GTK) || PLATFORM(VISION)": true @@ -2018,7 +2018,7 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 WebCore: default: false -@@ -3421,6 +3424,7 @@ InspectorAttachmentSide: +@@ -3542,6 +3545,7 @@ InspectorAttachmentSide: WebKit: default: 0 @@ -2026,7 +2026,7 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 InspectorStartsAttached: type: bool status: embedder -@@ -3428,7 +3432,7 @@ InspectorStartsAttached: +@@ -3549,7 +3553,7 @@ InspectorStartsAttached: exposed: [ WebKit ] defaultValue: WebKit: @@ -2035,7 +2035,7 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 InspectorWindowFrame: type: String -@@ -3783,9 +3787,10 @@ LayoutViewportHeightExpansionFactor: +@@ -3904,9 +3908,10 @@ LayoutViewportHeightExpansionFactor: WebCore: default: 0 @@ -2047,7 +2047,7 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 category: html humanReadableName: "Lazy iframe loading" humanReadableDescription: "Enable lazy iframe loading support" -@@ -3793,9 +3798,9 @@ LazyIframeLoadingEnabled: +@@ -3914,9 +3919,9 @@ LazyIframeLoadingEnabled: WebKitLegacy: default: true WebKit: @@ -2059,9 +2059,9 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 LazyImageLoadingEnabled: type: bool -@@ -5116,6 +5121,19 @@ PluginsEnabled: +@@ -5320,6 +5325,19 @@ PitchCorrectionAlgorithm: WebCore: - default: false + default: MediaPlayerEnums::PitchCorrectionAlgorithm::BestAllAround +# Playwright: add preference 'PointerLockEnabled'. +PointerLockEnabled: @@ -2079,7 +2079,7 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 PopoverAttributeEnabled: type: bool status: stable -@@ -6784,6 +6802,7 @@ UseCGDisplayListsForDOMRendering: +@@ -7067,6 +7085,7 @@ UseCGDisplayListsForDOMRendering: WebKit: default: true @@ -2087,7 +2087,7 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 UseGPUProcessForCanvasRenderingEnabled: type: bool status: stable -@@ -6796,7 +6815,7 @@ UseGPUProcessForCanvasRenderingEnabled: +@@ -7079,7 +7098,7 @@ UseGPUProcessForCanvasRenderingEnabled: defaultValue: WebKit: "ENABLE(GPU_PROCESS_BY_DEFAULT)": true @@ -2096,7 +2096,7 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 default: false UseGPUProcessForDOMRenderingEnabled: -@@ -6838,6 +6857,7 @@ UseGPUProcessForMediaEnabled: +@@ -7121,6 +7140,7 @@ UseGPUProcessForMediaEnabled: "ENABLE(GPU_PROCESS_BY_DEFAULT)": true default: false @@ -2104,7 +2104,7 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 UseGPUProcessForWebGLEnabled: type: bool status: internal -@@ -6849,7 +6869,7 @@ UseGPUProcessForWebGLEnabled: +@@ -7132,7 +7152,7 @@ UseGPUProcessForWebGLEnabled: default: false WebKit: "ENABLE(GPU_PROCESS_BY_DEFAULT) && ENABLE(GPU_PROCESS_WEBGL_BY_DEFAULT)": true @@ -2114,10 +2114,10 @@ index e746383fdf0382c1a0527e25a7f9b6714d32fe9e..40811a978dc1a4a788bb957e411ace74 WebCore: "ENABLE(GPU_PROCESS_BY_DEFAULT) && ENABLE(GPU_PROCESS_WEBGL_BY_DEFAULT)": true diff --git a/Source/WTF/wtf/PlatformEnable.h b/Source/WTF/wtf/PlatformEnable.h -index e6256854c1a5ae7d2654ae661f7b19536caad8f1..fecc53b2bae8eaba474700fa07700ffdb79f8e6e 100644 +index 33fa0c0aab9aac1e6a87abe3a1629c5c3de6de8f..b00d4e50365a81c8a9400930e6eb1f757c5b34c0 100644 --- a/Source/WTF/wtf/PlatformEnable.h +++ b/Source/WTF/wtf/PlatformEnable.h -@@ -421,7 +421,7 @@ +@@ -413,7 +413,7 @@ // ORIENTATION_EVENTS should never get enabled on Desktop, only Mobile. #if !defined(ENABLE_ORIENTATION_EVENTS) @@ -2126,7 +2126,7 @@ index e6256854c1a5ae7d2654ae661f7b19536caad8f1..fecc53b2bae8eaba474700fa07700ffd #endif #if !defined(ENABLE_OVERFLOW_SCROLLING_TOUCH) -@@ -526,7 +526,7 @@ +@@ -518,7 +518,7 @@ #endif #if !defined(ENABLE_TOUCH_EVENTS) @@ -2135,11 +2135,24 @@ index e6256854c1a5ae7d2654ae661f7b19536caad8f1..fecc53b2bae8eaba474700fa07700ffd #endif #if !defined(ENABLE_TOUCH_ACTION_REGIONS) +diff --git a/Source/WTF/wtf/PlatformEnableCocoa.h b/Source/WTF/wtf/PlatformEnableCocoa.h +index 76ee6e498b037ab4a7985e4dc2e1d3eff98dc5e7..d80a2cb6bbc6e56f09649d561f6cef771de94ffb 100644 +--- a/Source/WTF/wtf/PlatformEnableCocoa.h ++++ b/Source/WTF/wtf/PlatformEnableCocoa.h +@@ -787,7 +787,7 @@ + #endif + + #if !defined(ENABLE_SEC_ITEM_SHIM) +-#define ENABLE_SEC_ITEM_SHIM 1 ++#define ENABLE_SEC_ITEM_SHIM 0 + #endif + + #if !defined(ENABLE_SERVER_PRECONNECT) diff --git a/Source/WTF/wtf/PlatformHave.h b/Source/WTF/wtf/PlatformHave.h -index 0dddcaf546c5f468620a77d8627e8f34195f39f8..871364ba5d0315054b62712614fa6a0a94cc1021 100644 +index bfcffbf60dafebc61fcc992112dca5d110ca545a..feb5c20174a6a3092a9c76460b9c5d3508588508 100644 --- a/Source/WTF/wtf/PlatformHave.h +++ b/Source/WTF/wtf/PlatformHave.h -@@ -415,7 +415,7 @@ +@@ -419,7 +419,7 @@ #define HAVE_FOUNDATION_WITH_SAME_SITE_COOKIE_SUPPORT 1 #endif @@ -2148,7 +2161,7 @@ index 0dddcaf546c5f468620a77d8627e8f34195f39f8..871364ba5d0315054b62712614fa6a0a #define HAVE_OS_DARK_MODE_SUPPORT 1 #endif -@@ -1262,7 +1262,8 @@ +@@ -1278,7 +1278,8 @@ #endif #if PLATFORM(MAC) @@ -2174,10 +2187,10 @@ index 8c27e4ca50e6208262966834dbd9f08214294c5f..40898c535e48536418eebf1ed151887c namespace Unicode { diff --git a/Source/WebCore/DerivedSources.make b/Source/WebCore/DerivedSources.make -index a41e9c88262033a0a32fc2a93987edaa6d72ac0f..1ae3176d9f3b77846c8cda20b88fae0f06a4df17 100644 +index 0908ad1e04fb10b098b382d0878ea5d7a5b7dbcb..9326efa447088c1ec4e46344f2208d53ce980008 100644 --- a/Source/WebCore/DerivedSources.make +++ b/Source/WebCore/DerivedSources.make -@@ -1134,6 +1134,10 @@ JS_BINDING_IDLS := \ +@@ -1146,6 +1146,10 @@ JS_BINDING_IDLS := \ $(WebCore)/dom/Slotable.idl \ $(WebCore)/dom/StaticRange.idl \ $(WebCore)/dom/StringCallback.idl \ @@ -2188,7 +2201,7 @@ index a41e9c88262033a0a32fc2a93987edaa6d72ac0f..1ae3176d9f3b77846c8cda20b88fae0f $(WebCore)/dom/Text.idl \ $(WebCore)/dom/TextDecoder.idl \ $(WebCore)/dom/TextDecoderStream.idl \ -@@ -1715,9 +1719,6 @@ JS_BINDING_IDLS := \ +@@ -1735,9 +1739,6 @@ JS_BINDING_IDLS := \ ADDITIONAL_BINDING_IDLS = \ DocumentTouch.idl \ GestureEvent.idl \ @@ -2250,10 +2263,10 @@ index 506ebb25fa290f27a75674a6fe5506fc311910d6..07d34c567b42aca08b188243c3f036f6 [self sendSpeechEndIfNeeded]; diff --git a/Source/WebCore/PlatformWPE.cmake b/Source/WebCore/PlatformWPE.cmake -index 4021e603067e735cea485519838d1d3808ce3da2..b78dd7638f3a7e2b7946d5949f33be5dae2d4a2c 100644 +index 90675dde744af0c4b23b5d0b640774e4148acdcb..d99395c448de747750724bebd96da0b5071a887a 100644 --- a/Source/WebCore/PlatformWPE.cmake +++ b/Source/WebCore/PlatformWPE.cmake -@@ -51,6 +51,7 @@ list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS +@@ -57,6 +57,7 @@ list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS platform/graphics/libwpe/PlatformDisplayLibWPE.h platform/graphics/wayland/PlatformDisplayWayland.h @@ -2262,11 +2275,11 @@ index 4021e603067e735cea485519838d1d3808ce3da2..b78dd7638f3a7e2b7946d5949f33be5d set(CSS_VALUE_PLATFORM_DEFINES "HAVE_OS_DARK_MODE_SUPPORT=1") diff --git a/Source/WebCore/SourcesCocoa.txt b/Source/WebCore/SourcesCocoa.txt -index c74ee2284ea358191e6236134dfca6da5faa5a8e..b826f423ce53840f1d649736ff1101995162c432 100644 +index c6c468066dc47a93fb33bfddd11195f116980316..ccb7e2f109b45456c195fd496dc6d2ca6dc0e749 100644 --- a/Source/WebCore/SourcesCocoa.txt +++ b/Source/WebCore/SourcesCocoa.txt -@@ -703,3 +703,9 @@ platform/graphics/angle/GraphicsContextGLANGLE.cpp @no-unify - platform/graphics/cocoa/ANGLEUtilitiesCocoa.cpp @no-unify +@@ -712,3 +712,9 @@ testing/cocoa/WebViewVisualIdentificationOverlay.mm + platform/graphics/angle/GraphicsContextGLANGLE.cpp @no-unify platform/graphics/cocoa/GraphicsContextGLCocoa.mm @no-unify platform/graphics/cv/GraphicsContextGLCVCocoa.cpp @no-unify + @@ -2276,11 +2289,11 @@ index c74ee2284ea358191e6236134dfca6da5faa5a8e..b826f423ce53840f1d649736ff110199 +JSTouchList.cpp +// Playwright end diff --git a/Source/WebCore/SourcesGTK.txt b/Source/WebCore/SourcesGTK.txt -index 267ffb27af6aced590e26be86f785021b3a1aca2..9772551c07d84d6bc5c6c1476280ccc5c6a86da5 100644 +index ed024e1f513ce419d0c1289df28637cc19fd5d89..a690d901c64d5b29ef9e528a98b3d7c04e773d86 100644 --- a/Source/WebCore/SourcesGTK.txt +++ b/Source/WebCore/SourcesGTK.txt -@@ -115,3 +115,10 @@ platform/text/hyphen/HyphenationLibHyphen.cpp - platform/unix/LoggingUnix.cpp +@@ -116,3 +116,10 @@ platform/unix/LoggingUnix.cpp + platform/unix/SharedMemoryUnix.cpp platform/xdg/MIMETypeRegistryXdg.cpp + @@ -2291,7 +2304,7 @@ index 267ffb27af6aced590e26be86f785021b3a1aca2..9772551c07d84d6bc5c6c1476280ccc5 +JSSpeechSynthesisEventInit.cpp +// Playwright: end. diff --git a/Source/WebCore/SourcesWPE.txt b/Source/WebCore/SourcesWPE.txt -index 827b1cf84cd3b2f27b54042e485ed39e30d54b4a..a06041fdc1899f044caef4a2af6967f62b7e2fb6 100644 +index 969b2a1714104eef5c2d1d9c0a8c50d8955b0b55..c8295e7990948f034d20f31d0012883316bcc5f6 100644 --- a/Source/WebCore/SourcesWPE.txt +++ b/Source/WebCore/SourcesWPE.txt @@ -45,6 +45,8 @@ editing/libwpe/EditorLibWPE.cpp @@ -2303,9 +2316,9 @@ index 827b1cf84cd3b2f27b54042e485ed39e30d54b4a..a06041fdc1899f044caef4a2af6967f6 page/linux/ResourceUsageOverlayLinux.cpp page/linux/ResourceUsageThreadLinux.cpp -@@ -93,6 +95,17 @@ platform/text/LocaleICU.cpp - +@@ -94,6 +96,17 @@ platform/text/LocaleICU.cpp platform/unix/LoggingUnix.cpp + platform/unix/SharedMemoryUnix.cpp +platform/wpe/DragDataWPE.cpp +platform/wpe/DragImageWPE.cpp @@ -2322,10 +2335,10 @@ index 827b1cf84cd3b2f27b54042e485ed39e30d54b4a..a06041fdc1899f044caef4a2af6967f6 +JSSpeechSynthesisEventInit.cpp +// Playwright: end. diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj -index bf607a957252ff51788fa16f01a207f2192287fe..a696415687156f947de3728f9b232f288e0e8d6f 100644 +index 00207bc91352ca6f5f3ca8fd8f93e02166d805fb..04b93941af67aab49de3f1daaf49f6c4cdc19d4a 100644 --- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj +++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj -@@ -6166,6 +6166,13 @@ +@@ -6210,6 +6210,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, ); }; }; @@ -2339,7 +2352,7 @@ index bf607a957252ff51788fa16f01a207f2192287fe..a696415687156f947de3728f9b232f28 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, ); }; }; -@@ -19882,6 +19889,14 @@ +@@ -20081,6 +20088,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 = ""; }; @@ -2354,7 +2367,7 @@ index bf607a957252ff51788fa16f01a207f2192287fe..a696415687156f947de3728f9b232f28 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 = ""; }; -@@ -27408,6 +27423,11 @@ +@@ -27693,6 +27708,11 @@ BC4A5324256055590028C592 /* TextDirectionSubmenuInclusionBehavior.h */, 2D4F96F11A1ECC240098BF88 /* TextIndicator.cpp */, 2D4F96F21A1ECC240098BF88 /* TextIndicator.h */, @@ -2366,7 +2379,7 @@ index bf607a957252ff51788fa16f01a207f2192287fe..a696415687156f947de3728f9b232f28 F48570A42644C76D00C05F71 /* TranslationContextMenuInfo.h */, F4E1965F21F26E4E00285078 /* UndoItem.cpp */, 2ECDBAD521D8906300F00ECD /* UndoItem.h */, -@@ -33656,6 +33676,8 @@ +@@ -33988,6 +34008,8 @@ 29E4D8DF16B0940F00C84704 /* PlatformSpeechSynthesizer.h */, 1AD8F81A11CAB9E900E93E54 /* PlatformStrategies.cpp */, 1AD8F81911CAB9E900E93E54 /* PlatformStrategies.h */, @@ -2375,7 +2388,7 @@ index bf607a957252ff51788fa16f01a207f2192287fe..a696415687156f947de3728f9b232f28 0FD7C21D23CE41E30096D102 /* PlatformWheelEvent.cpp */, 935C476A09AC4D4F00A6AAB4 /* PlatformWheelEvent.h */, F491A66A2A9FEFA300F96146 /* PlatformWheelEvent.serialization.in */, -@@ -36260,6 +36282,7 @@ +@@ -36665,6 +36687,7 @@ AD6E71AB1668899D00320C13 /* DocumentSharedObjectPool.h */, 6BDB5DC1227BD3B800919770 /* DocumentStorageAccess.cpp */, 6BDB5DC0227BD3B800919770 /* DocumentStorageAccess.h */, @@ -2383,8 +2396,8 @@ index bf607a957252ff51788fa16f01a207f2192287fe..a696415687156f947de3728f9b232f28 7CE7FA5B1EF882300060C9D6 /* DocumentTouch.cpp */, 7CE7FA591EF882300060C9D6 /* DocumentTouch.h */, A8185F3209765765005826D9 /* DocumentType.cpp */, -@@ -40943,6 +40966,8 @@ - 1AD8F81B11CAB9E900E93E54 /* PlatformStrategies.h in Headers */, +@@ -41387,6 +41410,8 @@ + F4E90A3C2B52038E002DA469 /* PlatformTextAlternatives.h in Headers */, 0F7D07331884C56C00B4AF86 /* PlatformTextTrack.h in Headers */, 074E82BB18A69F0E007EF54C /* PlatformTimeRanges.h in Headers */, + F050E16823AC9C080011CE47 /* PlatformTouchEvent.h in Headers */, @@ -2392,7 +2405,7 @@ index bf607a957252ff51788fa16f01a207f2192287fe..a696415687156f947de3728f9b232f28 CDD08ABD277E542600EA3755 /* PlatformTrackConfiguration.h in Headers */, CD1F9B022700323D00617EB6 /* PlatformVideoColorPrimaries.h in Headers */, CD1F9B01270020B700617EB6 /* PlatformVideoColorSpace.h in Headers */, -@@ -42203,6 +42228,7 @@ +@@ -42667,6 +42692,7 @@ 0F54DD081881D5F5003EEDBB /* Touch.h in Headers */, 71B7EE0D21B5C6870031C1EF /* TouchAction.h in Headers */, 0F54DD091881D5F5003EEDBB /* TouchEvent.h in Headers */, @@ -2400,7 +2413,7 @@ index bf607a957252ff51788fa16f01a207f2192287fe..a696415687156f947de3728f9b232f28 0F54DD0A1881D5F5003EEDBB /* TouchList.h in Headers */, 070334D71459FFD5008D8D45 /* TrackBase.h in Headers */, BE88E0C21715CE2600658D98 /* TrackListBase.h in Headers */, -@@ -43320,6 +43346,8 @@ +@@ -43820,6 +43846,8 @@ 2D22830323A8470700364B7E /* CursorMac.mm in Sources */, 5CBD59592280E926002B22AA /* CustomHeaderFields.cpp in Sources */, 07E4BDBF2A3A5FAB000D5509 /* DictationCaretAnimator.cpp in Sources */, @@ -2409,7 +2422,7 @@ index bf607a957252ff51788fa16f01a207f2192287fe..a696415687156f947de3728f9b232f28 7CE6CBFD187F394900D46BF5 /* FormatConverter.cpp in Sources */, 4667EA3E2968D9DA00BAB1E2 /* GameControllerHapticEffect.mm in Sources */, 46FE73D32968E52000B8064C /* GameControllerHapticEngines.mm in Sources */, -@@ -43404,6 +43432,9 @@ +@@ -43907,6 +43935,9 @@ CE88EE262414467B007F29C2 /* TextAlternativeWithRange.mm in Sources */, BE39137129B267F500FA5D4F /* TextTransformCocoa.cpp in Sources */, 51DF6D800B92A18E00C2DC85 /* ThreadCheck.mm in Sources */, @@ -2420,7 +2433,7 @@ index bf607a957252ff51788fa16f01a207f2192287fe..a696415687156f947de3728f9b232f28 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 29a931c5aa14d2df37abd6b68d294da493eb4bca..663039e443837032d531a9a2c462e76c31b3e989 100644 +index 52cf02d7ce08556f9011634131313254788f5599..52cd9f51e7daefda0a92ed4f22a4237a544917d8 100644 --- a/Source/WebCore/accessibility/AccessibilityObject.cpp +++ b/Source/WebCore/accessibility/AccessibilityObject.cpp @@ -65,6 +65,7 @@ @@ -2431,7 +2444,7 @@ index 29a931c5aa14d2df37abd6b68d294da493eb4bca..663039e443837032d531a9a2c462e76c #include "LocalFrame.h" #include "LocalizedStrings.h" #include "MathMLNames.h" -@@ -4002,9 +4003,14 @@ AccessibilityObjectInclusion AccessibilityObject::defaultObjectInclusion() const +@@ -4020,9 +4021,14 @@ AccessibilityObjectInclusion AccessibilityObject::defaultObjectInclusion() const if (roleValue() == AccessibilityRole::ApplicationDialog) return AccessibilityObjectInclusion::IncludeObject; @@ -2449,47 +2462,47 @@ index 29a931c5aa14d2df37abd6b68d294da493eb4bca..663039e443837032d531a9a2c462e76c { AXComputedObjectAttributeCache* attributeCache = nullptr; diff --git a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h -index b8699c50be81e0c206fcb2ab38d2d1262fa403eb..93ff11832ba8061d5fbc9b611a2f0ac196da6666 100644 +index ec4bcfd28dab3d2c50af0c4978f0f826c8b1ead2..9600417367e1e70d58ebb4f8fd5ffb787250e9ed 100644 --- a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h +++ b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h -@@ -178,6 +178,8 @@ namespace WebCore { - macro(DecompressionStreamTransform) \ +@@ -183,6 +183,8 @@ namespace WebCore { macro(DelayNode) \ macro(DeprecationReportBody) \ + macro(DigitalIdentity) \ + macro(DeviceMotionEvent) \ + macro(DeviceOrientationEvent) \ macro(DocumentTimeline) \ macro(DynamicsCompressorNode) \ macro(ElementInternals) \ diff --git a/Source/WebCore/css/query/MediaQueryFeatures.cpp b/Source/WebCore/css/query/MediaQueryFeatures.cpp -index 235897de42b9c10f1d1c174071297b02d1a23430..1c96136d997763166d2115e7eaddd38a7045d600 100644 +index bae4d73a2e54a59595843bc64eb34252ca421a4a..a9ed264d3c5a46224d0f9a3bdabfbf19079be063 100644 --- a/Source/WebCore/css/query/MediaQueryFeatures.cpp +++ b/Source/WebCore/css/query/MediaQueryFeatures.cpp -@@ -366,7 +366,11 @@ const FeatureSchema& forcedColors() +@@ -368,7 +368,11 @@ const FeatureSchema& forcedColors() static MainThreadNeverDestroyed schema { "forced-colors"_s, FixedVector { CSSValueNone, CSSValueActive }, - [](auto&) { + [](auto& context) { -+ auto* page = context.document.frame()->page(); ++ auto* page = context.document->frame()->page(); + std::optional forcedColorsOverride = page->useForcedColorsOverride(); + if (forcedColorsOverride) + return forcedColorsOverride.value() ? MatchingIdentifiers { CSSValueActive } : MatchingIdentifiers { CSSValueNone }; return MatchingIdentifiers { CSSValueNone }; } }; -@@ -545,6 +549,9 @@ const FeatureSchema& prefersReducedMotion() +@@ -547,6 +551,9 @@ const FeatureSchema& prefersReducedMotion() [](auto& context) { bool userPrefersReducedMotion = [&] { - auto& frame = *context.document.frame(); -+ std::optional reducedMotionOverride = frame.page()->useReducedMotionOverride(); + Ref frame = *context.document->frame(); ++ std::optional reducedMotionOverride = frame->page()->useReducedMotionOverride(); + if (reducedMotionOverride) + return reducedMotionOverride.value(); - switch (frame.settings().forcedPrefersReducedMotionAccessibilityValue()) { + switch (frame->settings().forcedPrefersReducedMotionAccessibilityValue()) { case ForcedAccessibilityValue::On: return true; diff --git a/Source/WebCore/dom/DataTransfer.cpp b/Source/WebCore/dom/DataTransfer.cpp -index 50986ff17761cd7276922cbad63cd75702796117..8ce0b3027264d029e557556ab3b877d0335e1f1f 100644 +index 067d7e703a2750087429c55971516d4d2bdc14ee..59052024c94a8af719442908f2a31a4beb4636e7 100644 --- a/Source/WebCore/dom/DataTransfer.cpp +++ b/Source/WebCore/dom/DataTransfer.cpp @@ -510,6 +510,14 @@ Ref DataTransfer::createForDrag(const Document& document) @@ -2508,7 +2521,7 @@ index 50986ff17761cd7276922cbad63cd75702796117..8ce0b3027264d029e557556ab3b877d0 { auto dataTransfer = adoptRef(*new DataTransfer(StoreMode::ReadWrite, makeUnique(), Type::DragAndDropData)); diff --git a/Source/WebCore/dom/DataTransfer.h b/Source/WebCore/dom/DataTransfer.h -index 6a7e5d6ac767c376f821633ea61f8da1add36610..fdfe082f84f4ec9a74bbe97000cb5e621edbb303 100644 +index 6ca2550bf509381165e5da22cc894ccf6378f45c..535bd1b05e8d90b291235cfc3cb425084455ff26 100644 --- a/Source/WebCore/dom/DataTransfer.h +++ b/Source/WebCore/dom/DataTransfer.h @@ -91,6 +91,9 @@ public: @@ -2582,7 +2595,7 @@ index f27718c1e2b8cd0a8075e556d4cdba7d9ae8fc54..2b61721594e5435845f3151e0de345e9 ] partial interface Element { undefined requestPointerLock(); diff --git a/Source/WebCore/dom/PointerEvent.cpp b/Source/WebCore/dom/PointerEvent.cpp -index 69b66eae141ec206b8c51382e709230034d3bfb7..4a2ce3dd0b527e391de06635b083b4f69dc9722f 100644 +index 4d8a06e48fbd2c6a0f9af32f1fdead5cb393d5a7..f58cf907d1cfb1bb8f06ae42250526eae363d557 100644 --- a/Source/WebCore/dom/PointerEvent.cpp +++ b/Source/WebCore/dom/PointerEvent.cpp @@ -27,9 +27,11 @@ @@ -2597,7 +2610,7 @@ index 69b66eae141ec206b8c51382e709230034d3bfb7..4a2ce3dd0b527e391de06635b083b4f6 #include namespace WebCore { -@@ -124,4 +126,51 @@ EventInterface PointerEvent::eventInterface() const +@@ -127,4 +129,51 @@ EventInterface PointerEvent::eventInterface() const return PointerEventInterfaceType; } @@ -2635,7 +2648,7 @@ index 69b66eae141ec206b8c51382e709230034d3bfb7..4a2ce3dd0b527e391de06635b083b4f6 +} + +PointerEvent::PointerEvent(const AtomString& type, const PlatformTouchEvent& event, IsCancelable isCancelable, unsigned index, bool isPrimary, Ref&& view, const IntPoint& touchDelta) -+ : MouseEvent(type, typeCanBubble(type), isCancelable, typeIsComposed(type), event.timestamp().approximateMonotonicTime(), WTFMove(view), 0, ++ : MouseEvent(EventInterfaceType::PointerEvent, type, typeCanBubble(type), isCancelable, typeIsComposed(type), event.timestamp().approximateMonotonicTime(), WTFMove(view), 0, + event.touchPoints().at(index).pos(), event.touchPoints().at(index).pos(), touchDelta.x(), touchDelta.y(), event.modifiers(), buttonForType(type), buttonsForType(type), nullptr, 0, SyntheticClickType::NoTap, IsSimulated::No, IsTrusted::Yes) + , m_pointerId(event.touchPoints().at(index).id()) + , m_width(2 * event.touchPoints().at(index).radiusX()) @@ -2708,7 +2721,7 @@ index 7813532cc52d582c42aebc979a1ecd1137765f08..c01cbd53ad2430a6ffab9a80fc73e74a #endif // USE(LIBWPE) diff --git a/Source/WebCore/html/FileInputType.cpp b/Source/WebCore/html/FileInputType.cpp -index e8a73ca778ecf932b85a0431e60a404b6067979d..9c29e0e8c20ddbe9e41c0c4167fddb48a0ead404 100644 +index dde92a4942d3f6679b6ef2455fa15d023544dfbc..c6ed18b40209195d1cf5c7785091d37fd40dad80 100644 --- a/Source/WebCore/html/FileInputType.cpp +++ b/Source/WebCore/html/FileInputType.cpp @@ -37,6 +37,7 @@ @@ -2731,7 +2744,7 @@ index e8a73ca778ecf932b85a0431e60a404b6067979d..9c29e0e8c20ddbe9e41c0c4167fddb48 if (!UserGestureIndicator::processingUserGesture()) return; -@@ -344,7 +350,9 @@ void FileInputType::setFiles(RefPtr&& files, RequestIcon shouldRequest +@@ -345,7 +351,9 @@ void FileInputType::setFiles(RefPtr&& files, RequestIcon shouldRequest pathsChanged = true; else { for (unsigned i = 0; i < length; ++i) { @@ -2824,10 +2837,10 @@ index 3a981b5bf5ca0bbf4d1c9f0b125564742cd8cad9..f8fc2ca6700461627933f149c5837075 } // namespace WebCore diff --git a/Source/WebCore/inspector/InspectorInstrumentation.cpp b/Source/WebCore/inspector/InspectorInstrumentation.cpp -index f6ce48a7a9bfc05f91c1d2988e40da968028c10f..c7b559a9d42146fa72db983faff8b09ffcccb1b8 100644 +index 8c7b186092793bf301511be969030c92674ce211..bcad9353cd568ed435b42d5b9d505b3ca973aaea 100644 --- a/Source/WebCore/inspector/InspectorInstrumentation.cpp +++ b/Source/WebCore/inspector/InspectorInstrumentation.cpp -@@ -599,6 +599,12 @@ void InspectorInstrumentation::applyUserAgentOverrideImpl(InstrumentingAgents& i +@@ -597,6 +597,12 @@ void InspectorInstrumentation::applyUserAgentOverrideImpl(InstrumentingAgents& i pageAgent->applyUserAgentOverride(userAgent); } @@ -2840,7 +2853,7 @@ index f6ce48a7a9bfc05f91c1d2988e40da968028c10f..c7b559a9d42146fa72db983faff8b09f void InspectorInstrumentation::applyEmulatedMediaImpl(InstrumentingAgents& instrumentingAgents, AtomString& media) { if (auto* pageAgent = instrumentingAgents.enabledPageAgent()) -@@ -682,6 +688,12 @@ void InspectorInstrumentation::didFailLoadingImpl(InstrumentingAgents& instrumen +@@ -680,6 +686,12 @@ void InspectorInstrumentation::didFailLoadingImpl(InstrumentingAgents& instrumen consoleAgent->didFailLoading(identifier, error); // This should come AFTER resource notification, front-end relies on this. } @@ -2853,7 +2866,7 @@ index f6ce48a7a9bfc05f91c1d2988e40da968028c10f..c7b559a9d42146fa72db983faff8b09f void InspectorInstrumentation::willLoadXHRSynchronouslyImpl(InstrumentingAgents& instrumentingAgents) { if (auto* networkAgent = instrumentingAgents.enabledNetworkAgent()) -@@ -714,20 +726,17 @@ void InspectorInstrumentation::didReceiveScriptResponseImpl(InstrumentingAgents& +@@ -712,20 +724,17 @@ void InspectorInstrumentation::didReceiveScriptResponseImpl(InstrumentingAgents& void InspectorInstrumentation::domContentLoadedEventFiredImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) { @@ -2877,7 +2890,7 @@ index f6ce48a7a9bfc05f91c1d2988e40da968028c10f..c7b559a9d42146fa72db983faff8b09f } void InspectorInstrumentation::frameDetachedFromParentImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) -@@ -810,12 +819,6 @@ void InspectorInstrumentation::frameDocumentUpdatedImpl(InstrumentingAgents& ins +@@ -808,12 +817,6 @@ void InspectorInstrumentation::frameDocumentUpdatedImpl(InstrumentingAgents& ins pageDOMDebuggerAgent->frameDocumentUpdated(frame); } @@ -2890,7 +2903,7 @@ index f6ce48a7a9bfc05f91c1d2988e40da968028c10f..c7b559a9d42146fa72db983faff8b09f void InspectorInstrumentation::frameStartedLoadingImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) { if (frame.isMainFrame()) { -@@ -846,10 +849,10 @@ void InspectorInstrumentation::frameStoppedLoadingImpl(InstrumentingAgents& inst +@@ -844,10 +847,10 @@ void InspectorInstrumentation::frameStoppedLoadingImpl(InstrumentingAgents& inst inspectorPageAgent->frameStoppedLoading(frame); } @@ -2903,7 +2916,7 @@ index f6ce48a7a9bfc05f91c1d2988e40da968028c10f..c7b559a9d42146fa72db983faff8b09f } void InspectorInstrumentation::frameClearedScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) -@@ -864,6 +867,12 @@ void InspectorInstrumentation::accessibilitySettingsDidChangeImpl(InstrumentingA +@@ -862,6 +865,12 @@ void InspectorInstrumentation::accessibilitySettingsDidChangeImpl(InstrumentingA inspectorPageAgent->accessibilitySettingsDidChange(); } @@ -2916,7 +2929,7 @@ index f6ce48a7a9bfc05f91c1d2988e40da968028c10f..c7b559a9d42146fa72db983faff8b09f #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) void InspectorInstrumentation::defaultAppearanceDidChangeImpl(InstrumentingAgents& instrumentingAgents) { -@@ -1052,6 +1061,12 @@ void InspectorInstrumentation::consoleStopRecordingCanvasImpl(InstrumentingAgent +@@ -1050,6 +1059,12 @@ void InspectorInstrumentation::consoleStopRecordingCanvasImpl(InstrumentingAgent canvasAgent->consoleStopRecordingCanvas(context); } @@ -2929,7 +2942,7 @@ index f6ce48a7a9bfc05f91c1d2988e40da968028c10f..c7b559a9d42146fa72db983faff8b09f void InspectorInstrumentation::didOpenDatabaseImpl(InstrumentingAgents& instrumentingAgents, Database& database) { if (auto* databaseAgent = instrumentingAgents.enabledDatabaseAgent()) -@@ -1358,6 +1373,36 @@ void InspectorInstrumentation::renderLayerDestroyedImpl(InstrumentingAgents& ins +@@ -1356,6 +1371,36 @@ void InspectorInstrumentation::renderLayerDestroyedImpl(InstrumentingAgents& ins layerTreeAgent->renderLayerDestroyed(renderLayer); } @@ -2966,7 +2979,7 @@ index f6ce48a7a9bfc05f91c1d2988e40da968028c10f..c7b559a9d42146fa72db983faff8b09f InstrumentingAgents& InspectorInstrumentation::instrumentingAgents(WorkerOrWorkletGlobalScope& globalScope) { return globalScope.inspectorController().m_instrumentingAgents; -@@ -1369,6 +1414,13 @@ InstrumentingAgents& InspectorInstrumentation::instrumentingAgents(Page& page) +@@ -1367,6 +1412,13 @@ InstrumentingAgents& InspectorInstrumentation::instrumentingAgents(Page& page) return page.inspectorController().m_instrumentingAgents.get(); } @@ -2979,9 +2992,9 @@ index f6ce48a7a9bfc05f91c1d2988e40da968028c10f..c7b559a9d42146fa72db983faff8b09f + InstrumentingAgents* InspectorInstrumentation::instrumentingAgents(ScriptExecutionContext& context) { - if (is(context)) + // Using RefPtr makes us hit the m_inRemovedLastRefFunction assert. diff --git a/Source/WebCore/inspector/InspectorInstrumentation.h b/Source/WebCore/inspector/InspectorInstrumentation.h -index b779f1e8a0c35f5b89307161a4fe44e4ab1ce223..0354d0e64a78121fb2bf080f7b3b1e50c7738aaf 100644 +index 7aa2d9e599359d9302cbdde8a7a0b9399e37d313..7b4ec6ee9adb5687e16eb0fe746a3114fca4d82a 100644 --- a/Source/WebCore/inspector/InspectorInstrumentation.h +++ b/Source/WebCore/inspector/InspectorInstrumentation.h @@ -31,6 +31,7 @@ @@ -2992,7 +3005,7 @@ index b779f1e8a0c35f5b89307161a4fe44e4ab1ce223..0354d0e64a78121fb2bf080f7b3b1e50 #include "CSSSelector.h" #include "CanvasBase.h" #include "CanvasRenderingContext.h" -@@ -46,6 +47,7 @@ +@@ -45,6 +46,7 @@ #include "LocalFrame.h" #include "LocalFrameView.h" #include "Page.h" @@ -3249,10 +3262,10 @@ index b779f1e8a0c35f5b89307161a4fe44e4ab1ce223..0354d0e64a78121fb2bf080f7b3b1e50 { return context ? instrumentingAgents(*context) : nullptr; diff --git a/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp b/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp -index c492e24ae4443e4f97ba18ca5cc57dcccff07752..75101ecd551022d6bb3111eec1f7c576962c84ce 100644 +index 8922f4e9112436011f5ed028dfb12b0ce273576b..d3299f4fb14c1ef3c67caabd27cb2d8b5339b1da 100644 --- a/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp -@@ -61,10 +61,14 @@ +@@ -65,10 +65,14 @@ #include "Event.h" #include "EventListener.h" #include "EventNames.h" @@ -3267,7 +3280,7 @@ index c492e24ae4443e4f97ba18ca5cc57dcccff07752..75101ecd551022d6bb3111eec1f7c576 #include "HTMLMediaElement.h" #include "HTMLNames.h" #include "HTMLScriptElement.h" -@@ -94,12 +98,14 @@ +@@ -102,12 +106,14 @@ #include "Pasteboard.h" #include "PseudoElement.h" #include "RenderGrid.h" @@ -3282,7 +3295,7 @@ index c492e24ae4443e4f97ba18ca5cc57dcccff07752..75101ecd551022d6bb3111eec1f7c576 #include "StaticNodeList.h" #include "StyleProperties.h" #include "StyleResolver.h" -@@ -134,7 +140,8 @@ using namespace HTMLNames; +@@ -145,7 +151,8 @@ using namespace HTMLNames; static const size_t maxTextSize = 10000; static const UChar horizontalEllipsisUChar[] = { horizontalEllipsis, 0 }; @@ -3292,7 +3305,7 @@ index c492e24ae4443e4f97ba18ca5cc57dcccff07752..75101ecd551022d6bb3111eec1f7c576 { if (!colorObject) return std::nullopt; -@@ -153,7 +160,7 @@ static std::optional parseColor(RefPtr&& colorObject) +@@ -164,7 +171,7 @@ static std::optional parseColor(RefPtr&& colorObject) static std::optional parseRequiredConfigColor(const String& fieldName, JSON::Object& configObject) { @@ -3301,7 +3314,7 @@ index c492e24ae4443e4f97ba18ca5cc57dcccff07752..75101ecd551022d6bb3111eec1f7c576 } static Color parseOptionalConfigColor(const String& fieldName, JSON::Object& configObject) -@@ -181,6 +188,20 @@ static bool parseQuad(Ref&& quadArray, FloatQuad* quad) +@@ -192,6 +199,20 @@ static bool parseQuad(Ref&& quadArray, FloatQuad* quad) return true; } @@ -3322,8 +3335,8 @@ index c492e24ae4443e4f97ba18ca5cc57dcccff07752..75101ecd551022d6bb3111eec1f7c576 class RevalidateStyleAttributeTask { WTF_MAKE_FAST_ALLOCATED; public: -@@ -457,6 +478,20 @@ Node* InspectorDOMAgent::assertNode(Protocol::ErrorString& errorString, Protocol - return node; +@@ -466,6 +487,20 @@ Node* InspectorDOMAgent::assertNode(Inspector::Protocol::ErrorString& errorStrin + return node.get(); } +Node* InspectorDOMAgent::assertNode(Protocol::ErrorString& errorString, std::optional&& nodeId, const String& objectId) @@ -3340,13 +3353,13 @@ index c492e24ae4443e4f97ba18ca5cc57dcccff07752..75101ecd551022d6bb3111eec1f7c576 + return node; +} + - Document* InspectorDOMAgent::assertDocument(Protocol::ErrorString& errorString, Protocol::DOM::NodeId nodeId) + Document* InspectorDOMAgent::assertDocument(Inspector::Protocol::ErrorString& errorString, Inspector::Protocol::DOM::NodeId nodeId) { - Node* node = assertNode(errorString, nodeId); -@@ -1531,16 +1566,7 @@ Protocol::ErrorStringOr InspectorDOMAgent::highlightNode(std::optional InspectorDOMAgent::highlightNode(std::optional&& nodeId, const Protocol::Runtime::RemoteObjectId& objectId, Ref&& highlightInspectorObject, RefPtr&& gridOverlayInspectorObject, RefPtr&& flexOverlayInspectorObject, std::optional&& showRulers) + RefPtr node = assertNode(errorString, nodeId); +@@ -1540,16 +1575,7 @@ Inspector::Protocol::ErrorStringOr InspectorDOMAgent::highlightNode(std::o + Inspector::Protocol::ErrorStringOr InspectorDOMAgent::highlightNode(std::optional&& nodeId, const Inspector::Protocol::Runtime::RemoteObjectId& objectId, Ref&& highlightInspectorObject, RefPtr&& gridOverlayInspectorObject, RefPtr&& flexOverlayInspectorObject, std::optional&& showRulers) { - Protocol::ErrorString errorString; + Inspector::Protocol::ErrorString errorString; - - Node* node = nullptr; - if (nodeId) @@ -3361,11 +3374,11 @@ index c492e24ae4443e4f97ba18ca5cc57dcccff07752..75101ecd551022d6bb3111eec1f7c576 if (!node) return makeUnexpected(errorString); -@@ -1795,15 +1821,155 @@ Protocol::ErrorStringOr InspectorDOMAgent::setInspectedNode(Protocol::DOM: +@@ -1804,15 +1830,155 @@ Inspector::Protocol::ErrorStringOr InspectorDOMAgent::setInspectedNode(Ins return { }; } --Protocol::ErrorStringOr> InspectorDOMAgent::resolveNode(Protocol::DOM::NodeId nodeId, const String& objectGroup) +-Inspector::Protocol::ErrorStringOr> InspectorDOMAgent::resolveNode(Inspector::Protocol::DOM::NodeId nodeId, const String& objectGroup) +static FloatPoint contentsToRootView(LocalFrameView& containingView, const FloatPoint& point) +{ + return containingView.convertToRootView(point - toFloatSize(containingView.documentScrollPositionRelativeToViewOrigin())); @@ -3494,9 +3507,9 @@ index c492e24ae4443e4f97ba18ca5cc57dcccff07752..75101ecd551022d6bb3111eec1f7c576 + return buildArrayOfQuads(quads); +} + -+Protocol::ErrorStringOr> InspectorDOMAgent::resolveNode(std::optional&& nodeId, const String& objectId, const Inspector::Protocol::Network::FrameId& frameId, std::optional&& contextId, const String& objectGroup) ++Inspector::Protocol::ErrorStringOr> InspectorDOMAgent::resolveNode(std::optional&& nodeId, const String& objectId, const Inspector::Protocol::Network::FrameId& frameId, std::optional&& contextId, const String& objectGroup) { - Protocol::ErrorString errorString; + Inspector::Protocol::ErrorString errorString; + Node* node = nullptr; + if (!!frameId) { + auto* pageAgent = m_instrumentingAgents.enabledPageAgent(); @@ -3520,16 +3533,16 @@ index c492e24ae4443e4f97ba18ca5cc57dcccff07752..75101ecd551022d6bb3111eec1f7c576 if (!object) return makeUnexpected("Missing injected script for given nodeId"_s); -@@ -3057,7 +3223,7 @@ Protocol::ErrorStringOr InspectorDOMAgent::pushNodeByPath +@@ -3061,7 +3227,7 @@ Inspector::Protocol::ErrorStringOr InspectorDO return makeUnexpected("Missing node for given path"_s); } --RefPtr InspectorDOMAgent::resolveNode(Node* node, const String& objectGroup) +-RefPtr InspectorDOMAgent::resolveNode(Node* node, const String& objectGroup) +RefPtr InspectorDOMAgent::resolveNode(Node* node, const String& objectGroup, std::optional&& contextId) { Document* document = &node->document(); if (auto* templateHost = document->templateDocumentHost()) -@@ -3066,12 +3232,18 @@ RefPtr InspectorDOMAgent::resolveNode(Node* nod +@@ -3070,12 +3236,18 @@ RefPtr InspectorDOMAgent::resolveNod if (!frame) return nullptr; @@ -3551,8 +3564,8 @@ index c492e24ae4443e4f97ba18ca5cc57dcccff07752..75101ecd551022d6bb3111eec1f7c576 } Node* InspectorDOMAgent::scriptValueAsNode(JSC::JSValue value) -@@ -3094,4 +3266,57 @@ Protocol::ErrorStringOr InspectorDOMAgent::setAllowEditingUserAgentShadowT - return { }; +@@ -3178,4 +3350,57 @@ Inspector::Protocol::ErrorStringOr> In + return stats; } +Protocol::ErrorStringOr InspectorDOMAgent::setInputFiles(const String& objectId, RefPtr&& files, RefPtr&& paths) { @@ -3610,7 +3623,7 @@ index c492e24ae4443e4f97ba18ca5cc57dcccff07752..75101ecd551022d6bb3111eec1f7c576 + } // namespace WebCore diff --git a/Source/WebCore/inspector/agents/InspectorDOMAgent.h b/Source/WebCore/inspector/agents/InspectorDOMAgent.h -index 71c164d90be9ba0b0bfb390c05f5494a5a6e358c..f35b2714ed059f09ec696323dd75a587ccef350a 100644 +index 5f1dba2bc4d5c2f113a88dcc9ba479679cb79233..5616c853a99b5fdb38306a804cc0e91799ac12b1 100644 --- a/Source/WebCore/inspector/agents/InspectorDOMAgent.h +++ b/Source/WebCore/inspector/agents/InspectorDOMAgent.h @@ -57,6 +57,7 @@ namespace WebCore { @@ -3638,10 +3651,10 @@ index 71c164d90be9ba0b0bfb390c05f5494a5a6e358c..f35b2714ed059f09ec696323dd75a587 Inspector::Protocol::ErrorStringOr>> getAttributes(Inspector::Protocol::DOM::NodeId); #if PLATFORM(IOS_FAMILY) Inspector::Protocol::ErrorStringOr setInspectModeEnabled(bool, RefPtr&& highlightConfig, RefPtr&& gridOverlayConfig, RefPtr&& flexOverlayConfig); -@@ -170,6 +172,10 @@ public: - Inspector::Protocol::ErrorStringOr focus(Inspector::Protocol::DOM::NodeId); +@@ -171,6 +173,10 @@ public: Inspector::Protocol::ErrorStringOr setInspectedNode(Inspector::Protocol::DOM::NodeId); Inspector::Protocol::ErrorStringOr setAllowEditingUserAgentShadowTrees(bool); + Inspector::Protocol::ErrorStringOr> getMediaStats(Inspector::Protocol::DOM::NodeId); + Inspector::Protocol::ErrorStringOr> describeNode(const String& objectId); + Inspector::Protocol::ErrorStringOr scrollIntoViewIfNeeded(const String& objectId, RefPtr&& rect); + Inspector::Protocol::ErrorStringOr>> getContentQuads(const String& objectId); @@ -3649,7 +3662,7 @@ index 71c164d90be9ba0b0bfb390c05f5494a5a6e358c..f35b2714ed059f09ec696323dd75a587 // InspectorInstrumentation Inspector::Protocol::DOM::NodeId identifierForNode(Node&); -@@ -211,7 +217,7 @@ public: +@@ -212,7 +218,7 @@ public: Node* nodeForId(Inspector::Protocol::DOM::NodeId); Inspector::Protocol::DOM::NodeId boundNodeId(const Node*); @@ -3658,7 +3671,7 @@ index 71c164d90be9ba0b0bfb390c05f5494a5a6e358c..f35b2714ed059f09ec696323dd75a587 bool handleMousePress(); void mouseDidMoveOverElement(const HitTestResult&, OptionSet); void inspect(Node*); -@@ -223,12 +229,15 @@ public: +@@ -224,12 +230,15 @@ public: void reset(); Node* assertNode(Inspector::Protocol::ErrorString&, Inspector::Protocol::DOM::NodeId); @@ -3674,7 +3687,7 @@ index 71c164d90be9ba0b0bfb390c05f5494a5a6e358c..f35b2714ed059f09ec696323dd75a587 private: #if ENABLE(VIDEO) void mediaMetricsTimerFired(); -@@ -258,7 +267,6 @@ private: +@@ -259,7 +268,6 @@ private: void processAccessibilityChildren(AXCoreObject&, JSON::ArrayOf&); Node* nodeForPath(const String& path); @@ -3683,7 +3696,7 @@ index 71c164d90be9ba0b0bfb390c05f5494a5a6e358c..f35b2714ed059f09ec696323dd75a587 void discardBindings(); diff --git a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp -index 3415bf8f049b110cafe3817ea430d4e3ae0fed05..40ec78ae53136ca06b6f2f014d3596be3b8a8e8f 100644 +index 4f6157154362aef3c6c1987382178ca9de565610..3b1b143617bd78165870ef49edf42f40007bd5b2 100644 --- a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp @@ -59,6 +59,7 @@ @@ -3694,7 +3707,7 @@ index 3415bf8f049b110cafe3817ea430d4e3ae0fed05..40ec78ae53136ca06b6f2f014d3596be #include "Page.h" #include "PlatformStrategies.h" #include "ProgressTracker.h" -@@ -337,8 +338,8 @@ static Ref buildObjectForResourceRequest(const Resou +@@ -337,8 +338,8 @@ static Ref buildObjectForResourceRequest( .release(); if (request.httpBody() && !request.httpBody()->isEmpty()) { @@ -3705,7 +3718,7 @@ index 3415bf8f049b110cafe3817ea430d4e3ae0fed05..40ec78ae53136ca06b6f2f014d3596be } if (resourceLoader) { -@@ -391,6 +392,8 @@ RefPtr InspectorNetworkAgent::buildObjectForResourc +@@ -391,6 +392,8 @@ RefPtr InspectorNetworkAgent::buildObjec .setSource(responseSource(response.source())) .release(); @@ -3716,13 +3729,13 @@ index 3415bf8f049b110cafe3817ea430d4e3ae0fed05..40ec78ae53136ca06b6f2f014d3596be responseObject->setTiming(buildObjectForTiming(metrics ? *metrics : NetworkLoadMetrics::emptyMetrics(), *resourceLoader)); @@ -958,6 +961,7 @@ void InspectorNetworkAgent::continuePendingResponses() - Protocol::ErrorStringOr InspectorNetworkAgent::setExtraHTTPHeaders(Ref&& headers) + Inspector::Protocol::ErrorStringOr InspectorNetworkAgent::setExtraHTTPHeaders(Ref&& headers) { + m_extraRequestHeaders.clear(); for (auto& entry : headers.get()) { auto stringValue = entry.value->asString(); if (!!stringValue) -@@ -1236,6 +1240,9 @@ Protocol::ErrorStringOr InspectorNetworkAgent::interceptWithRequest(const +@@ -1236,6 +1240,9 @@ Inspector::Protocol::ErrorStringOr InspectorNetworkAgent::interceptWithReq return makeUnexpected("Missing pending intercept request for given requestId"_s); auto& loader = *pendingRequest->m_loader; @@ -3732,9 +3745,9 @@ index 3415bf8f049b110cafe3817ea430d4e3ae0fed05..40ec78ae53136ca06b6f2f014d3596be ResourceRequest request = loader.request(); if (!!url) request.setURL(URL({ }, url)); -@@ -1335,14 +1342,23 @@ Protocol::ErrorStringOr InspectorNetworkAgent::interceptRequestWithRespons +@@ -1335,14 +1342,23 @@ Inspector::Protocol::ErrorStringOr InspectorNetworkAgent::interceptRequest response.setHTTPStatusCode(status); - response.setHTTPStatusText(AtomString { statusText }); + response.setHTTPStatusText(String { statusText }); HTTPHeaderMap explicitHeaders; + String setCookieValue; for (auto& header : headers.get()) { @@ -3758,7 +3771,7 @@ index 3415bf8f049b110cafe3817ea430d4e3ae0fed05..40ec78ae53136ca06b6f2f014d3596be if (loader->reachedTerminalState()) return; -@@ -1405,6 +1421,12 @@ Protocol::ErrorStringOr InspectorNetworkAgent::setEmulatedConditions(std:: +@@ -1405,6 +1421,12 @@ Inspector::Protocol::ErrorStringOr InspectorNetworkAgent::setEmulatedCondi #endif // ENABLE(INSPECTOR_NETWORK_THROTTLING) @@ -3793,7 +3806,7 @@ index dc7e574ee6e9256a1f75ea838d20ca7f5e9190de..5dd4464256e0f5d652fa51fd611286dd // InspectorInstrumentation void willRecalculateStyle(); diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp -index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387938bae58 100644 +index 8fc922b0ab24e76458c959361551736c361bf390..29a7a29022ac0e4ddb6c2b5eb1009e3e632d04fc 100644 --- a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp @@ -32,19 +32,26 @@ @@ -3882,7 +3895,7 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 , m_client(client) , m_overlay(overlay) { -@@ -363,12 +385,20 @@ Protocol::ErrorStringOr InspectorPageAgent::enable() +@@ -363,12 +385,20 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::enable() defaultUserPreferencesDidChange(); @@ -3895,7 +3908,7 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 return { }; } - Protocol::ErrorStringOr InspectorPageAgent::disable() + Inspector::Protocol::ErrorStringOr InspectorPageAgent::disable() { m_instrumentingAgents.setEnabledPageAgent(nullptr); + m_interceptFileChooserDialog = false; @@ -3903,11 +3916,11 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 setShowPaintRects(false); #if !PLATFORM(IOS_FAMILY) -@@ -420,6 +450,22 @@ Protocol::ErrorStringOr InspectorPageAgent::reload(std::optional&& i +@@ -420,6 +450,22 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::reload(std::optiona return { }; } -+Protocol::ErrorStringOr InspectorPageAgent::goBack() ++Inspector::Protocol::ErrorStringOr InspectorPageAgent::goBack() +{ + if (!m_inspectedPage.backForward().goBack()) + return makeUnexpected("Failed to go back"_s); @@ -3915,7 +3928,7 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 + return { }; +} + -+Protocol::ErrorStringOr InspectorPageAgent::goForward() ++Inspector::Protocol::ErrorStringOr InspectorPageAgent::goForward() +{ + if (!m_inspectedPage.backForward().goForward()) + return makeUnexpected("Failed to go forward"_s); @@ -3923,24 +3936,24 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 + return { }; +} + - Protocol::ErrorStringOr InspectorPageAgent::navigate(const String& url) + Inspector::Protocol::ErrorStringOr InspectorPageAgent::navigate(const String& url) { auto* localMainFrame = dynamicDowncast(m_inspectedPage.mainFrame()); -@@ -443,6 +489,13 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideUserAgent(const String +@@ -443,6 +489,13 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideUserAgent(c return { }; } -+Protocol::ErrorStringOr InspectorPageAgent::overridePlatform(const String& value) ++Inspector::Protocol::ErrorStringOr InspectorPageAgent::overridePlatform(const String& value) +{ + m_platformOverride = value; + + return { }; +} + - Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page::Setting setting, std::optional&& value) + Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Inspector::Protocol::Page::Setting setting, std::optional&& value) { auto& inspectedPageSettings = m_inspectedPage.settings(); -@@ -456,6 +509,12 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page +@@ -456,6 +509,12 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Ins inspectedPageSettings.setAuthorAndUserStylesEnabledInspectorOverride(value); return { }; @@ -3950,10 +3963,10 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 + return { }; +#endif + - case Protocol::Page::Setting::ICECandidateFilteringEnabled: + case Inspector::Protocol::Page::Setting::ICECandidateFilteringEnabled: inspectedPageSettings.setICECandidateFilteringEnabledInspectorOverride(value); return { }; -@@ -481,6 +540,38 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page +@@ -481,6 +540,38 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Ins inspectedPageSettings.setNeedsSiteSpecificQuirksInspectorOverride(value); return { }; @@ -3989,10 +4002,10 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 + return { }; +#endif + - case Protocol::Page::Setting::ScriptEnabled: + case Inspector::Protocol::Page::Setting::ScriptEnabled: inspectedPageSettings.setScriptEnabledInspectorOverride(value); return { }; -@@ -493,6 +584,12 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page +@@ -493,6 +584,12 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Ins inspectedPageSettings.setShowRepaintCounterInspectorOverride(value); return { }; @@ -4002,10 +4015,10 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 + return { }; +#endif + - case Protocol::Page::Setting::WebSecurityEnabled: + case Inspector::Protocol::Page::Setting::WebSecurityEnabled: inspectedPageSettings.setWebSecurityEnabledInspectorOverride(value); return { }; -@@ -893,15 +990,16 @@ Protocol::ErrorStringOr InspectorPageAgent::setShowPaintRects(bool show) +@@ -893,15 +990,16 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::setShowPaintRects(b return { }; } @@ -4055,7 +4068,7 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 - m_identifierToFrame.remove(identifier); } - Frame* InspectorPageAgent::frameForId(const Protocol::Network::FrameId& frameId) + Frame* InspectorPageAgent::frameForId(const Inspector::Protocol::Network::FrameId& frameId) @@ -927,20 +1037,17 @@ String InspectorPageAgent::frameId(Frame* frame) { if (!frame) @@ -4078,11 +4091,11 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 - return IdentifiersFactory::createIdentifier(); - }).iterator->value; + -+ return String::number(loader->loaderIDForInspector()); ++ return String::number(loader->navigationID()); } - LocalFrame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, const Protocol::Network::FrameId& frameId) -@@ -951,11 +1058,6 @@ LocalFrame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, + LocalFrame* InspectorPageAgent::assertFrame(Inspector::Protocol::ErrorString& errorString, const Inspector::Protocol::Network::FrameId& frameId) +@@ -951,11 +1058,6 @@ LocalFrame* InspectorPageAgent::assertFrame(Inspector::Protocol::ErrorString& er return frame; } @@ -4178,7 +4191,7 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 + m_frontendDispatcher->didCheckNavigationPolicy(frameId(&frame), cancel); +} + - Ref InspectorPageAgent::buildObjectForFrame(LocalFrame* frame) + Ref InspectorPageAgent::buildObjectForFrame(LocalFrame* frame) { ASSERT_ARG(frame, frame); @@ -1172,6 +1328,12 @@ void InspectorPageAgent::applyUserAgentOverride(String& userAgent) @@ -4194,22 +4207,22 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 void InspectorPageAgent::applyEmulatedMedia(AtomString& media) { if (!m_emulatedMedia.isEmpty()) -@@ -1199,11 +1361,13 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotNode(Protocol::DOM:: +@@ -1199,11 +1361,13 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::snapshotNode(Insp return snapshot->toDataURL("image/png"_s, std::nullopt, PreserveResolution::Yes); } --Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int x, int y, int width, int height, Protocol::Page::CoordinateSystem coordinateSystem) -+Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int x, int y, int width, int height, Protocol::Page::CoordinateSystem coordinateSystem, std::optional&& omitDeviceScaleFactor) +-Inspector::Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int x, int y, int width, int height, Inspector::Protocol::Page::CoordinateSystem coordinateSystem) ++Inspector::Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int x, int y, int width, int height, Inspector::Protocol::Page::CoordinateSystem coordinateSystem, std::optional&& omitDeviceScaleFactor) { SnapshotOptions options { { }, PixelFormat::BGRA8, DestinationColorSpace::SRGB() }; - if (coordinateSystem == Protocol::Page::CoordinateSystem::Viewport) + if (coordinateSystem == Inspector::Protocol::Page::CoordinateSystem::Viewport) options.flags.add(SnapshotFlags::InViewCoordinates); + if (omitDeviceScaleFactor.has_value() && *omitDeviceScaleFactor) + options.flags.add(SnapshotFlags::OmitDeviceScaleFactor); IntRect rectangle(x, y, width, height); auto* localMainFrame = dynamicDowncast(m_inspectedPage.mainFrame()); -@@ -1217,6 +1381,43 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int x, int y, i +@@ -1217,6 +1381,43 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int return snapshot->toDataURL("image/png"_s, std::nullopt, PreserveResolution::Yes); } @@ -4251,17 +4264,17 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 + + #if ENABLE(WEB_ARCHIVE) && USE(CF) - Protocol::ErrorStringOr InspectorPageAgent::archive() + Inspector::Protocol::ErrorStringOr InspectorPageAgent::archive() { -@@ -1233,7 +1434,6 @@ Protocol::ErrorStringOr InspectorPageAgent::archive() +@@ -1233,7 +1434,6 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::archive() } #endif -#if !PLATFORM(COCOA) - Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::optional&& width, std::optional&& height) + Inspector::Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::optional&& width, std::optional&& height) { if (width.has_value() != height.has_value()) -@@ -1251,6 +1451,513 @@ Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::opt +@@ -1251,6 +1451,517 @@ Inspector::Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverri localMainFrame->setOverrideScreenSize(FloatSize(width.value_or(0), height.value_or(0))); return { }; } @@ -4331,6 +4344,8 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 + return "ColumnHeader"_s; + case AccessibilityRole::ComboBox: + return "ComboBox"_s; ++ case AccessibilityRole::DateTime: ++ return "DateTime"_s; + case AccessibilityRole::Definition: + return "Definition"_s; + case AccessibilityRole::Deletion: @@ -4467,6 +4482,8 @@ index 8a5e8a91b57984dd8e10bf06c960be0cfba313fe..95cf7ec1a11c0c14fbe3baa4f3f4a387 + return "RadioButton"_s; + case AccessibilityRole::RadioGroup: + return "RadioGroup"_s; ++ case AccessibilityRole::RemoteFrame: ++ return "RemoteFrame"_s; + case AccessibilityRole::RowHeader: + return "RowHeader"_s; + case AccessibilityRole::Row: @@ -4926,7 +4943,7 @@ index f270cb7c3bcc1b5d7d646d9c6e6bda7063cf82e3..83d793622a71b441afe5962bd7c94ad8 } // namespace WebCore diff --git a/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp b/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp -index 8452f240f0a95a8b8e8b94876cc1e4486fd1b756..e1595905b04fb6e4525afada87d203b71eb0bb54 100644 +index 4e2613c5194137568d629dc809d6f062e9e2bc95..345876eb0eb72ffa75f5f7ea71bdcb7d71127d6f 100644 --- a/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp +++ b/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp @@ -34,6 +34,7 @@ @@ -4945,7 +4962,7 @@ index 8452f240f0a95a8b8e8b94876cc1e4486fd1b756..e1595905b04fb6e4525afada87d203b7 #include "SecurityOrigin.h" #include "UserGestureEmulationScope.h" #include -@@ -85,13 +87,73 @@ Protocol::ErrorStringOr PageRuntimeAgent::disable() +@@ -85,13 +87,73 @@ Inspector::Protocol::ErrorStringOr PageRuntimeAgent::disable() { m_instrumentingAgents.setEnabledPageRuntimeAgent(nullptr); @@ -5045,7 +5062,7 @@ index 8452f240f0a95a8b8e8b94876cc1e4486fd1b756..e1595905b04fb6e4525afada87d203b7 + } } - InjectedScript PageRuntimeAgent::injectedScriptForEval(Protocol::ErrorString& errorString, std::optional&& executionContextId) + InjectedScript PageRuntimeAgent::injectedScriptForEval(Inspector::Protocol::ErrorString& errorString, std::optional&& executionContextId) @@ -139,9 +220,6 @@ void PageRuntimeAgent::reportExecutionContextCreation() return; @@ -5091,7 +5108,7 @@ index 9501fc840e35f3badc701e7622555dba394cae9b..1391c73d9b3ba250ad3a831bfe7c92c9 } // namespace WebCore diff --git a/Source/WebCore/loader/CookieJar.h b/Source/WebCore/loader/CookieJar.h -index 7efc7c39d4ea689063c3371c9d9f5d25e433b3ae..c18f0b38ef9a22b594b60287d6c205b155bc8bee 100644 +index edfc601a36f006122f26946de5b3a60573a07968..794a6c389be8af23989a54696d57312340ddcd37 100644 --- a/Source/WebCore/loader/CookieJar.h +++ b/Source/WebCore/loader/CookieJar.h @@ -46,6 +46,7 @@ struct CookieStoreGetOptions; @@ -5102,7 +5119,7 @@ index 7efc7c39d4ea689063c3371c9d9f5d25e433b3ae..c18f0b38ef9a22b594b60287d6c205b1 class WEBCORE_EXPORT CookieJar : public RefCounted, public CanMakeWeakPtr { public: -@@ -77,6 +78,9 @@ public: +@@ -78,6 +79,9 @@ public: virtual void clearCache() { } virtual void clearCacheForHost(const String&) { } @@ -5113,10 +5130,10 @@ index 7efc7c39d4ea689063c3371c9d9f5d25e433b3ae..c18f0b38ef9a22b594b60287d6c205b1 protected: static SameSiteInfo sameSiteInfo(const Document&, IsForDOMCookieAccess = IsForDOMCookieAccess::No); diff --git a/Source/WebCore/loader/DocumentLoader.cpp b/Source/WebCore/loader/DocumentLoader.cpp -index d58fd2b665ba04bed39c5c8e81f2c9bd5482ca32..811b4d7f4a6154c9f4a012a99eb167dab01b7239 100644 +index 6bb10715441131b9712a79d7952f8bdff4a28b04..88d179bb82cf7c687e674f8c4460b4701230f2f0 100644 --- a/Source/WebCore/loader/DocumentLoader.cpp +++ b/Source/WebCore/loader/DocumentLoader.cpp -@@ -756,8 +756,10 @@ void DocumentLoader::willSendRequest(ResourceRequest&& newRequest, const Resourc +@@ -762,8 +762,10 @@ void DocumentLoader::willSendRequest(ResourceRequest&& newRequest, const Resourc if (!didReceiveRedirectResponse) return completionHandler(WTFMove(newRequest)); @@ -5127,38 +5144,44 @@ index d58fd2b665ba04bed39c5c8e81f2c9bd5482ca32..811b4d7f4a6154c9f4a012a99eb167da switch (navigationPolicyDecision) { case NavigationPolicyDecision::IgnoreLoad: case NavigationPolicyDecision::LoadWillContinueInAnotherProcess: -@@ -1530,8 +1532,6 @@ void DocumentLoader::detachFromFrame(LoadWillContinueInAnotherProcess) - if (!m_frame) - return; +@@ -1524,11 +1526,17 @@ void DocumentLoader::detachFromFrame(LoadWillContinueInAnotherProcess loadWillCo + if (auto navigationID = std::exchange(m_navigationID, 0)) + m_frame->loader().client().documentLoaderDetached(navigationID, loadWillContinueInAnotherProcess); - InspectorInstrumentation::loaderDetachedFromFrame(*m_frame, *this); - observeFrame(nullptr); } ++void DocumentLoader::replacedByFragmentNavigation(LocalFrame& frame) ++{ ++ ASSERT(!this->frame()); ++ // Notify WebPageProxy that the navigation has been converted into same page navigation. ++ if (auto navigationID = std::exchange(m_navigationID, 0)) ++ frame.loader().client().documentLoaderDetached(navigationID, LoadWillContinueInAnotherProcess::No); ++} ++ + void DocumentLoader::setNavigationID(uint64_t navigationID) + { + ASSERT(navigationID); diff --git a/Source/WebCore/loader/DocumentLoader.h b/Source/WebCore/loader/DocumentLoader.h -index 9675aea9a362d3d73056fec92de666355ed25095..25f53db7df6b2ea11ffa4e414f6b9b37102900cf 100644 +index 43718ea3d4fe5378179e497f8e35881831a7b9cd..86fd689e144f3407cb0331b886b75990e28d8e59 100644 --- a/Source/WebCore/loader/DocumentLoader.h +++ b/Source/WebCore/loader/DocumentLoader.h -@@ -191,9 +191,13 @@ public: +@@ -191,6 +191,8 @@ public: WEBCORE_EXPORT virtual void detachFromFrame(LoadWillContinueInAnotherProcess); -+ virtual void replacedByFragmentNavigation(LocalFrame&) { } ++ void replacedByFragmentNavigation(LocalFrame&); + WEBCORE_EXPORT FrameLoader* frameLoader() const; + CheckedPtr checkedFrameLoader() const; WEBCORE_EXPORT SubresourceLoader* mainResourceLoader() const; - WEBCORE_EXPORT RefPtr mainResourceData() const; -+ -+ virtual uint64_t loaderIDForInspector() { return 0; } - - DocumentWriter& writer() const { return m_writer; } - diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp -index 22a871bbfe4c86208273e97d9c6d323af10ec7b3..dba8f95a8369a23ab373c2e05b1e06360b34c203 100644 +index 6c38a011b6dfae5b0ef12c91e1c18f86b385c11f..01fd8f4bb4e037f63cf144e193c4b6cfab48cc82 100644 --- a/Source/WebCore/loader/FrameLoader.cpp +++ b/Source/WebCore/loader/FrameLoader.cpp -@@ -1272,6 +1272,7 @@ void FrameLoader::loadInSameDocument(URL url, RefPtr stat +@@ -1277,6 +1277,7 @@ void FrameLoader::loadInSameDocument(URL url, RefPtr stat } m_client->dispatchDidNavigateWithinPage(); @@ -5166,7 +5189,7 @@ index 22a871bbfe4c86208273e97d9c6d323af10ec7b3..dba8f95a8369a23ab373c2e05b1e0636 document->statePopped(stateObject ? stateObject.releaseNonNull() : SerializedScriptValue::nullValue()); m_client->dispatchDidPopStateWithinPage(); -@@ -1733,6 +1734,8 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t +@@ -1739,6 +1740,8 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t const String& httpMethod = loader->request().httpMethod(); if (shouldPerformFragmentNavigation(isFormSubmission, httpMethod, policyChecker().loadType(), newURL)) { @@ -5175,17 +5198,17 @@ index 22a871bbfe4c86208273e97d9c6d323af10ec7b3..dba8f95a8369a23ab373c2e05b1e0636 RefPtr oldDocumentLoader = m_documentLoader; NavigationAction action { frame->protectedDocument().releaseNonNull(), loader->request(), InitiatedByMainFrame::Unknown, loader->isRequestFromClientOrUserInput(), policyChecker().loadType(), isFormSubmission }; oldDocumentLoader->setTriggeringAction(WTFMove(action)); -@@ -1766,7 +1769,9 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t +@@ -1772,7 +1775,9 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t } RELEASE_ASSERT(!isBackForwardLoadType(policyChecker().loadType()) || history().provisionalItem()); + InspectorInstrumentation::willCheckNavigationPolicy(m_frame); - policyChecker().checkNavigationPolicy(ResourceRequest(loader->request()), ResourceResponse { } /* redirectResponse */, loader, WTFMove(formState), [this, frame, allowNavigationToInvalidURL, completionHandler = completionHandlerCaller.release()] (const ResourceRequest& request, WeakPtr&& formState, NavigationPolicyDecision navigationPolicyDecision) mutable { + policyChecker().checkNavigationPolicy(ResourceRequest(loader->request()), ResourceResponse { } /* redirectResponse */, loader, WTFMove(formState), [this, frame, allowNavigationToInvalidURL, completionHandler = completionHandlerCaller.release()] (const ResourceRequest& request, WeakPtr&& weakFormState, NavigationPolicyDecision navigationPolicyDecision) mutable { + InspectorInstrumentation::didCheckNavigationPolicy(m_frame, navigationPolicyDecision != NavigationPolicyDecision::ContinueLoad); - continueLoadAfterNavigationPolicy(request, formState.get(), navigationPolicyDecision, allowNavigationToInvalidURL); + continueLoadAfterNavigationPolicy(request, RefPtr { weakFormState.get() }.get(), navigationPolicyDecision, allowNavigationToInvalidURL); completionHandler(); }, PolicyDecisionMode::Asynchronous); -@@ -3015,14 +3020,19 @@ String FrameLoader::userAgent(const URL& url) const +@@ -3031,14 +3036,19 @@ String FrameLoader::userAgent(const URL& url) const String FrameLoader::navigatorPlatform() const { @@ -5207,7 +5230,7 @@ index 22a871bbfe4c86208273e97d9c6d323af10ec7b3..dba8f95a8369a23ab373c2e05b1e0636 } void FrameLoader::dispatchOnloadEvents() -@@ -3456,6 +3466,8 @@ void FrameLoader::receivedMainResourceError(const ResourceError& error) +@@ -3475,6 +3485,8 @@ void FrameLoader::receivedMainResourceError(const ResourceError& error) checkCompleted(); if (frame->page()) checkLoadComplete(); @@ -5216,7 +5239,7 @@ index 22a871bbfe4c86208273e97d9c6d323af10ec7b3..dba8f95a8369a23ab373c2e05b1e0636 } void FrameLoader::continueFragmentScrollAfterNavigationPolicy(const ResourceRequest& request, const SecurityOrigin* requesterOrigin, bool shouldContinue) -@@ -4303,9 +4315,6 @@ String FrameLoader::referrer() const +@@ -4328,9 +4340,6 @@ String FrameLoader::referrer() const void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() { @@ -5226,7 +5249,7 @@ index 22a871bbfe4c86208273e97d9c6d323af10ec7b3..dba8f95a8369a23ab373c2e05b1e0636 Vector> worlds; ScriptController::getAllWorlds(worlds); for (auto& world : worlds) -@@ -4315,13 +4324,12 @@ void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() +@@ -4340,13 +4349,12 @@ void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() void FrameLoader::dispatchDidClearWindowObjectInWorld(DOMWrapperWorld& world) { Ref frame = m_frame.get(); @@ -5259,35 +5282,35 @@ 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 f356dd377950801b95ec0b9a6b4c93624fc0dcda..95e86435868b4e2937aa0dd799f9c23403c4f114 100644 +index a6270e0e1ceb02fee0a3c91a0cc755351908c5e5..f5e7330fa741eff7917adf227760161c5ba1e5f8 100644 --- a/Source/WebCore/loader/NavigationScheduler.cpp +++ b/Source/WebCore/loader/NavigationScheduler.cpp -@@ -684,7 +684,7 @@ void NavigationScheduler::startTimer() +@@ -690,7 +690,7 @@ void NavigationScheduler::startTimer() Seconds delay = 1_s * m_redirect->delay(); m_timer.startOneShot(delay); -- InspectorInstrumentation::frameScheduledNavigation(m_frame, delay); -+ InspectorInstrumentation::frameScheduledNavigation(m_frame, delay, m_redirect->targetIsCurrentFrame()); - m_redirect->didStartTimer(m_frame, m_timer); // m_redirect may be null on return (e.g. the client canceled the load) +- InspectorInstrumentation::frameScheduledNavigation(frame, delay); ++ InspectorInstrumentation::frameScheduledNavigation(frame, delay, m_redirect->targetIsCurrentFrame()); + m_redirect->didStartTimer(frame, m_timer); // m_redirect may be null on return (e.g. the client canceled the load) } diff --git a/Source/WebCore/loader/PolicyChecker.cpp b/Source/WebCore/loader/PolicyChecker.cpp -index a015590e612a3983c13b8a9426522d3567552d95..1d17db10c7e8d6d9d88f8f782479e557d5fe1059 100644 +index ca3dc2575f3c9cb87ac902d79610f0738b09fdff..2ddbbfed658961e8231f641a889508aa4869070d 100644 --- a/Source/WebCore/loader/PolicyChecker.cpp +++ b/Source/WebCore/loader/PolicyChecker.cpp -@@ -44,6 +44,7 @@ - #include "HTMLFormElement.h" +@@ -46,6 +46,7 @@ #include "HTMLFrameOwnerElement.h" #include "HTMLPlugInElement.h" + #include "HitTestResult.h" +#include "InspectorInstrumentation.h" #include "LocalDOMWindow.h" #include "LocalFrame.h" #include "LocalFrameLoaderClient.h" diff --git a/Source/WebCore/loader/ProgressTracker.cpp b/Source/WebCore/loader/ProgressTracker.cpp -index 273f7815c6fd1553b78a117c78eaa460085d1272..ccf6e96daebad01d5bfabe5062d29c3a1bcf6043 100644 +index b74c5258454b0df9f74aa8a5297674b733925685..b6c3999745368c7f7e2e6176bfca6dc09c49f539 100644 --- a/Source/WebCore/loader/ProgressTracker.cpp +++ b/Source/WebCore/loader/ProgressTracker.cpp -@@ -160,6 +160,8 @@ void ProgressTracker::progressCompleted(LocalFrame& frame) +@@ -161,6 +161,8 @@ void ProgressTracker::progressCompleted(LocalFrame& frame) if (!m_numProgressTrackedFrames || m_originatingProgressFrame == &frame) finalProgressComplete(); @@ -5296,47 +5319,47 @@ index 273f7815c6fd1553b78a117c78eaa460085d1272..ccf6e96daebad01d5bfabe5062d29c3a m_client->didChangeEstimatedProgress(); } -@@ -186,8 +188,6 @@ void ProgressTracker::finalProgressComplete() +@@ -187,8 +189,6 @@ void ProgressTracker::finalProgressComplete() m_client->progressFinished(*frame); - m_page.progressFinished(*frame); - frame->loader().loadProgressingStatusChanged(); + protectedPage()->progressFinished(*frame); + frame->checkedLoader()->loadProgressingStatusChanged(); - - InspectorInstrumentation::frameStoppedLoading(*frame); } void ProgressTracker::incrementProgress(ResourceLoaderIdentifier identifier, const ResourceResponse& response) diff --git a/Source/WebCore/loader/cache/CachedResourceLoader.cpp b/Source/WebCore/loader/cache/CachedResourceLoader.cpp -index 4e33cf542c68e9041869de1f918769b23a838a3c..406390d0b1eb231dcda7b07ba4356d9bee49ea95 100644 +index 9035c6e4e13154bd9cbba7d6d3c2d0f286204349..7157eadd2fe730eef228aad4d13bcface647dbe0 100644 --- a/Source/WebCore/loader/cache/CachedResourceLoader.cpp +++ b/Source/WebCore/loader/cache/CachedResourceLoader.cpp -@@ -1024,8 +1024,11 @@ ResourceErrorOr> CachedResourceLoader::requ +@@ -1062,8 +1062,11 @@ ResourceErrorOr> CachedResourceLoader::requ request.updateReferrerPolicy(document() ? document()->referrerPolicy() : ReferrerPolicy::Default); -- if (InspectorInstrumentation::willIntercept(&frame, request.resourceRequest())) +- if (InspectorInstrumentation::willIntercept(frame.ptr(), request.resourceRequest())) - request.setCachingPolicy(CachingPolicy::DisallowCaching); -+ if (InspectorInstrumentation::willIntercept(&frame, request.resourceRequest())) { ++ if (InspectorInstrumentation::willIntercept(frame.ptr(), request.resourceRequest())) { + // Playwright: we don't disable such caching in other browsers and it breaks css resource downloads, + // see https://github.com/microsoft/playwright/issues/19158 + // request.setCachingPolicy(CachingPolicy::DisallowCaching); + } - auto& page = *frame.page(); + Ref page = *frame->page(); -@@ -1628,8 +1631,9 @@ Vector> CachedResourceLoader::allCachedSVGImages() const +@@ -1669,8 +1672,9 @@ Vector> CachedResourceLoader::allCachedSVGImages() const ResourceErrorOr> CachedResourceLoader::preload(CachedResource::Type type, CachedResourceRequest&& request) { -- if (InspectorInstrumentation::willIntercept(frame(), request.resourceRequest())) +- if (InspectorInstrumentation::willIntercept(protectedFrame().get(), request.resourceRequest())) - return makeUnexpected(ResourceError { errorDomainWebKitInternal, 0, request.resourceRequest().url(), "Inspector intercept"_s }); + // Playwright: requests are intercepted (see https://github.com/microsoft/playwright/issues/16745) -+ // if (InspectorInstrumentation::willIntercept(frame(), request.resourceRequest())) ++ // if (InspectorInstrumentation::willIntercept(protectedFrame().get(), request.resourceRequest())) + // return makeUnexpected(ResourceError { errorDomainWebKitInternal, 0, request.resourceRequest().url(), "Inspector intercept"_s }); 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 62cb148ba012a5b20e819c8cf76728704c8e9ac7..8775e46006476095307cc5c29b9a5606a311a10a 100644 +index 15aba82d841a1bcc4b51033364a4e1432bab9d97..e3c35ca97bee61cc1e60ed51c43cbf61c660ae34 100644 --- a/Source/WebCore/page/ChromeClient.h +++ b/Source/WebCore/page/ChromeClient.h @@ -334,7 +334,7 @@ public: @@ -5349,10 +5372,10 @@ index 62cb148ba012a5b20e819c8cf76728704c8e9ac7..8775e46006476095307cc5c29b9a5606 #if ENABLE(INPUT_TYPE_COLOR) diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp -index ac83388ad87a0fe6a433275945118dde08860b49..d571ac86e12849476177f3d170cf5ae1dba936b9 100644 +index 585e801807bd0923bdd6c77003ca5d10eceb2c5c..5a6b2ee3ab303584b5bdb2905e5adb2b9f735e02 100644 --- a/Source/WebCore/page/EventHandler.cpp +++ b/Source/WebCore/page/EventHandler.cpp -@@ -4325,6 +4325,12 @@ bool EventHandler::handleDrag(const MouseEventWithHitTestResults& event, CheckDr +@@ -4313,6 +4313,12 @@ bool EventHandler::handleDrag(const MouseEventWithHitTestResults& event, CheckDr if (!document) return false; @@ -5365,7 +5388,7 @@ index ac83388ad87a0fe6a433275945118dde08860b49..d571ac86e12849476177f3d170cf5ae1 dragState().dataTransfer = DataTransfer::createForDrag(*document); auto hasNonDefaultPasteboardData = HasNonDefaultPasteboardData::No; -@@ -4926,7 +4932,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve +@@ -4940,7 +4946,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve // Increment the platform touch id by 1 to avoid storing a key of 0 in the hashmap. unsigned touchPointTargetKey = point.id() + 1; @@ -5374,7 +5397,7 @@ index ac83388ad87a0fe6a433275945118dde08860b49..d571ac86e12849476177f3d170cf5ae1 bool pointerCancelled = false; #endif RefPtr touchTarget; -@@ -4973,7 +4979,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve +@@ -4987,7 +4993,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve // we also remove it from the map. touchTarget = m_originatingTouchPointTargets.take(touchPointTargetKey); @@ -5383,7 +5406,7 @@ index ac83388ad87a0fe6a433275945118dde08860b49..d571ac86e12849476177f3d170cf5ae1 HitTestResult result = hitTestResultAtPoint(pagePoint, hitType | HitTestRequest::Type::AllowChildFrameContent); pointerTarget = result.targetElement(); pointerCancelled = (pointerTarget != touchTarget); -@@ -4995,7 +5001,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve +@@ -5010,7 +5016,7 @@ HandleUserInputEventResult EventHandler::handleTouchEvent(const PlatformTouchEve if (!targetFrame) continue; @@ -5453,10 +5476,10 @@ index 5f85bb24166b1c1805323fcbb34144be3191643b..09d2782e3961d70b9483a77e0c12923b struct SnapshotOptions { diff --git a/Source/WebCore/page/History.cpp b/Source/WebCore/page/History.cpp -index 9be81a19a86aa3ae53aa975cbad81d928f97fa34..56b513e3e0cba167c6e52559f95f7ba4edf5a0d9 100644 +index 66fc6dd13e5d1eadb58b159416bc21ef12bf9605..bcf4fb2c5bcaea3df1b7d4468e9fbb4f89ac3777 100644 --- a/Source/WebCore/page/History.cpp +++ b/Source/WebCore/page/History.cpp -@@ -31,6 +31,7 @@ +@@ -32,6 +32,7 @@ #include "FrameLoader.h" #include "HistoryController.h" #include "HistoryItem.h" @@ -5464,16 +5487,16 @@ index 9be81a19a86aa3ae53aa975cbad81d928f97fa34..56b513e3e0cba167c6e52559f95f7ba4 #include "LocalFrame.h" #include "LocalFrameLoaderClient.h" #include "Logging.h" -@@ -276,6 +277,7 @@ ExceptionOr History::stateObjectAdded(RefPtr&& data +@@ -290,6 +291,7 @@ ExceptionOr History::stateObjectAdded(RefPtr&& data if (!urlString.isEmpty()) - frame->document()->updateURLForPushOrReplaceState(fullURL); + frame->protectedDocument()->updateURLForPushOrReplaceState(fullURL); + InspectorInstrumentation::didNavigateWithinPage(*frame); if (stateObjectType == StateObjectType::Push) { - frame->loader().history().pushState(WTFMove(data), title, fullURL.string()); + frame->loader().history().pushState(WTFMove(data), fullURL.string()); diff --git a/Source/WebCore/page/LocalFrame.cpp b/Source/WebCore/page/LocalFrame.cpp -index d3d8acff2b128e91d26ab0835b58ced9241ed076..50741661f800f60d911114b8742d0e775f4a6781 100644 +index 88e11344718de503f2786b6a4323a2246e59950a..e874738aa50968dc4570778d50b326426d7b56dc 100644 --- a/Source/WebCore/page/LocalFrame.cpp +++ b/Source/WebCore/page/LocalFrame.cpp @@ -40,6 +40,7 @@ @@ -5500,7 +5523,7 @@ index d3d8acff2b128e91d26ab0835b58ced9241ed076..50741661f800f60d911114b8742d0e77 #include "NodeTraversal.h" #include "Page.h" #include "ProcessWarming.h" -@@ -184,6 +187,7 @@ LocalFrame::LocalFrame(Page& page, UniqueRef&& frameLoad +@@ -186,6 +189,7 @@ LocalFrame::LocalFrame(Page& page, UniqueRef&& frameLoad void LocalFrame::init() { @@ -5508,7 +5531,7 @@ index d3d8acff2b128e91d26ab0835b58ced9241ed076..50741661f800f60d911114b8742d0e77 checkedLoader()->init(); } -@@ -418,7 +422,7 @@ void LocalFrame::orientationChanged() +@@ -420,7 +424,7 @@ void LocalFrame::orientationChanged() IntDegrees LocalFrame::orientation() const { if (RefPtr page = this->page()) @@ -5517,9 +5540,9 @@ index d3d8acff2b128e91d26ab0835b58ced9241ed076..50741661f800f60d911114b8742d0e77 return 0; } #endif // ENABLE(ORIENTATION_EVENTS) -@@ -1295,6 +1299,362 @@ void LocalFrame::didAccessWindowProxyPropertyViaOpener(WindowProxyProperty prope - - #endif +@@ -1341,6 +1345,362 @@ String LocalFrame::customUserAgentAsSiteSpecificQuirks() const + return { }; + } +#if !PLATFORM(IOS_FAMILY) + @@ -5881,7 +5904,7 @@ index d3d8acff2b128e91d26ab0835b58ced9241ed076..50741661f800f60d911114b8742d0e77 #undef FRAME_RELEASE_LOG_ERROR diff --git a/Source/WebCore/page/LocalFrame.h b/Source/WebCore/page/LocalFrame.h -index 0bceafb01da63cfab2ce258915d4f28b98772495..02bdc83e85bc18e8747fa038263eb1837cdd2648 100644 +index 8664b164cf806585025da5d60ad1440ee4723482..8e0a986d16eb6cd6bb4cf381d18434b6acf1ab61 100644 --- a/Source/WebCore/page/LocalFrame.h +++ b/Source/WebCore/page/LocalFrame.h @@ -28,8 +28,10 @@ @@ -5913,7 +5936,7 @@ index 0bceafb01da63cfab2ce258915d4f28b98772495..02bdc83e85bc18e8747fa038263eb183 class LocalFrame final : public Frame { public: -@@ -218,10 +219,6 @@ public: +@@ -219,10 +220,6 @@ public: WEBCORE_EXPORT DataDetectionResultsStorage& dataDetectionResults(); #endif @@ -5924,7 +5947,7 @@ index 0bceafb01da63cfab2ce258915d4f28b98772495..02bdc83e85bc18e8747fa038263eb183 WEBCORE_EXPORT Node* deepestNodeAtLocation(const FloatPoint& viewportLocation); WEBCORE_EXPORT Node* nodeRespondingToClickEvents(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation, SecurityOrigin* = nullptr); WEBCORE_EXPORT Node* nodeRespondingToDoubleClickEvent(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation); -@@ -229,6 +226,10 @@ public: +@@ -230,6 +227,10 @@ public: WEBCORE_EXPORT Node* nodeRespondingToScrollWheelEvents(const FloatPoint& viewportLocation); WEBCORE_EXPORT Node* approximateNodeAtViewportLocationLegacy(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation); @@ -5935,7 +5958,7 @@ index 0bceafb01da63cfab2ce258915d4f28b98772495..02bdc83e85bc18e8747fa038263eb183 WEBCORE_EXPORT NSArray *wordsInCurrentParagraph() const; WEBCORE_EXPORT CGRect renderRectForPoint(CGPoint, bool* isReplaced, float* fontSize) const; -@@ -296,6 +297,7 @@ public: +@@ -297,6 +298,7 @@ public: WEBCORE_EXPORT FloatSize screenSize() const; void setOverrideScreenSize(FloatSize&&); @@ -5943,7 +5966,7 @@ index 0bceafb01da63cfab2ce258915d4f28b98772495..02bdc83e85bc18e8747fa038263eb183 void selfOnlyRef(); void selfOnlyDeref(); -@@ -343,7 +345,6 @@ private: +@@ -352,7 +354,6 @@ private: #if ENABLE(DATA_DETECTION) std::unique_ptr m_dataDetectionResults; #endif @@ -5951,7 +5974,7 @@ index 0bceafb01da63cfab2ce258915d4f28b98772495..02bdc83e85bc18e8747fa038263eb183 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); -@@ -351,6 +352,7 @@ private: +@@ -360,6 +361,7 @@ private: enum class ShouldFindRootEditableElement : bool { No, Yes }; Node* qualifyingNodeAtViewportLocation(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation, const NodeQualifier&, ShouldApproximate, ShouldFindRootEditableElement = ShouldFindRootEditableElement::Yes); @@ -5960,10 +5983,10 @@ index 0bceafb01da63cfab2ce258915d4f28b98772495..02bdc83e85bc18e8747fa038263eb183 ViewportArguments m_viewportArguments; diff --git a/Source/WebCore/page/Page.cpp b/Source/WebCore/page/Page.cpp -index 5148f36b0bf6c7d41f58200ec0110716b3f1d72a..5e7c21ce8073d689f058e97d8293e1f28e08dc39 100644 +index 0b621ec69894565d19d8fe7ca6cab167b3780d5c..6d4bce07d0aa86e0316d09b8abccfb07c7d5c9ba 100644 --- a/Source/WebCore/page/Page.cpp +++ b/Source/WebCore/page/Page.cpp -@@ -541,6 +541,45 @@ void Page::setOverrideViewportArguments(const std::optional& +@@ -552,6 +552,45 @@ void Page::setOverrideViewportArguments(const std::optional& document->updateViewportArguments(); } @@ -6009,7 +6032,7 @@ index 5148f36b0bf6c7d41f58200ec0110716b3f1d72a..5e7c21ce8073d689f058e97d8293e1f2 ScrollingCoordinator* Page::scrollingCoordinator() { if (!m_scrollingCoordinator && m_settings->scrollingCoordinatorEnabled()) { -@@ -3747,6 +3786,26 @@ void Page::setUseDarkAppearanceOverride(std::optional valueOverride) +@@ -3816,6 +3855,26 @@ void Page::setUseDarkAppearanceOverride(std::optional valueOverride) #endif } @@ -6037,7 +6060,7 @@ index 5148f36b0bf6c7d41f58200ec0110716b3f1d72a..5e7c21ce8073d689f058e97d8293e1f2 { if (insets == m_fullscreenInsets) diff --git a/Source/WebCore/page/Page.h b/Source/WebCore/page/Page.h -index 7deb38767a7b4d7aa8f5add9c32fe6e5b72a7f8e..de25ac2c7ff01ab2530e881335e7f5f238708f30 100644 +index 299c291d22f11e8eb77ebd3fa3c158fa6b66f9c5..3b176700ea7dd2d82af0f158504eb40ed9e73102 100644 --- a/Source/WebCore/page/Page.h +++ b/Source/WebCore/page/Page.h @@ -311,6 +311,9 @@ public: @@ -6050,7 +6073,7 @@ index 7deb38767a7b4d7aa8f5add9c32fe6e5b72a7f8e..de25ac2c7ff01ab2530e881335e7f5f2 static void refreshPlugins(bool reload); WEBCORE_EXPORT PluginData& pluginData(); void clearPluginData(); -@@ -369,6 +372,10 @@ public: +@@ -372,6 +375,10 @@ public: #if ENABLE(DRAG_SUPPORT) DragController& dragController() { return m_dragController.get(); } const DragController& dragController() const { return m_dragController.get(); } @@ -6060,8 +6083,8 @@ index 7deb38767a7b4d7aa8f5add9c32fe6e5b72a7f8e..de25ac2c7ff01ab2530e881335e7f5f2 +#endif #endif FocusController& focusController() const { return *m_focusController; } - #if ENABLE(CONTEXT_MENUS) -@@ -544,6 +551,10 @@ public: + WEBCORE_EXPORT CheckedRef checkedFocusController() const; +@@ -552,6 +559,10 @@ public: WEBCORE_EXPORT void effectiveAppearanceDidChange(bool useDarkAppearance, bool useElevatedUserInterfaceLevel); bool defaultUseDarkAppearance() const { return m_useDarkAppearance; } void setUseDarkAppearanceOverride(std::optional); @@ -6072,7 +6095,7 @@ index 7deb38767a7b4d7aa8f5add9c32fe6e5b72a7f8e..de25ac2c7ff01ab2530e881335e7f5f2 #if ENABLE(TEXT_AUTOSIZING) float textAutosizingWidth() const { return m_textAutosizingWidth; } -@@ -985,6 +996,11 @@ public: +@@ -1001,6 +1012,11 @@ public: WEBCORE_EXPORT void setInteractionRegionsEnabled(bool); #endif @@ -6084,7 +6107,7 @@ index 7deb38767a7b4d7aa8f5add9c32fe6e5b72a7f8e..de25ac2c7ff01ab2530e881335e7f5f2 #if ENABLE(DEVICE_ORIENTATION) && PLATFORM(IOS_FAMILY) DeviceOrientationUpdateProvider* deviceOrientationUpdateProvider() const { return m_deviceOrientationUpdateProvider.get(); } #endif -@@ -1137,6 +1153,9 @@ private: +@@ -1160,6 +1176,9 @@ private: #if ENABLE(DRAG_SUPPORT) UniqueRef m_dragController; @@ -6094,7 +6117,7 @@ index 7deb38767a7b4d7aa8f5add9c32fe6e5b72a7f8e..de25ac2c7ff01ab2530e881335e7f5f2 #endif std::unique_ptr m_focusController; #if ENABLE(CONTEXT_MENUS) -@@ -1211,6 +1230,8 @@ private: +@@ -1234,6 +1253,8 @@ private: bool m_useElevatedUserInterfaceLevel { false }; bool m_useDarkAppearance { false }; std::optional m_useDarkAppearanceOverride; @@ -6103,7 +6126,7 @@ index 7deb38767a7b4d7aa8f5add9c32fe6e5b72a7f8e..de25ac2c7ff01ab2530e881335e7f5f2 #if ENABLE(TEXT_AUTOSIZING) float m_textAutosizingWidth { 0 }; -@@ -1385,6 +1406,11 @@ private: +@@ -1411,6 +1432,11 @@ private: #endif std::optional m_overrideViewportArguments; @@ -6116,22 +6139,21 @@ index 7deb38767a7b4d7aa8f5add9c32fe6e5b72a7f8e..de25ac2c7ff01ab2530e881335e7f5f2 #if ENABLE(DEVICE_ORIENTATION) && PLATFORM(IOS_FAMILY) RefPtr m_deviceOrientationUpdateProvider; diff --git a/Source/WebCore/page/PageConsoleClient.cpp b/Source/WebCore/page/PageConsoleClient.cpp -index 6fe30e064c50097f90b06ac7facbd0717d6a873b..81e3e8c19771fc6e0fbed5d55303517b7fbd2dca 100644 +index 98f3da2b75dce250749bbf206d64d1acf7790c69..8d28363676fdc8f52139b6e326119a03379aac66 100644 --- a/Source/WebCore/page/PageConsoleClient.cpp +++ b/Source/WebCore/page/PageConsoleClient.cpp -@@ -429,4 +429,10 @@ void PageConsoleClient::screenshot(JSC::JSGlobalObject* lexicalGlobalObject, Ref - addMessage(makeUnique(MessageSource::ConsoleAPI, MessageType::Image, MessageLevel::Log, dataURL, WTFMove(arguments), lexicalGlobalObject, 0, timestamp)); +@@ -434,4 +434,9 @@ Ref PageConsoleClient::protectedPage() const + return m_page.get(); } +void PageConsoleClient::bindingCalled(JSC::JSGlobalObject* globalObject, const String& name, const String& arg) +{ + InspectorInstrumentation::bindingCalled(m_page, globalObject, name, arg); +} -+ + } // namespace WebCore diff --git a/Source/WebCore/page/PageConsoleClient.h b/Source/WebCore/page/PageConsoleClient.h -index 78e95133279568ae6fefe8a127acd9a600cc1a69..27acfbe94471bfae33e689a965a3f14ddee26b0a 100644 +index e9b4f0bca732d0448b3f5e439ca52625277cef64..cb21a4d14aaed660cf6a9398a6b5f3b6d1c0c23d 100644 --- a/Source/WebCore/page/PageConsoleClient.h +++ b/Source/WebCore/page/PageConsoleClient.h @@ -82,6 +82,7 @@ private: @@ -6140,10 +6162,10 @@ index 78e95133279568ae6fefe8a127acd9a600cc1a69..27acfbe94471bfae33e689a965a3f14d void screenshot(JSC::JSGlobalObject*, Ref&&) override; + void bindingCalled(JSC::JSGlobalObject*, const String& name, const String& arg) override; - Page& m_page; - }; + Ref protectedPage() const; + diff --git a/Source/WebCore/page/PointerCaptureController.cpp b/Source/WebCore/page/PointerCaptureController.cpp -index 7adcd916dad40b21aea036b02c79ab615b8bf90a..228c0081a4a73ae4ba6feea5cd734ceacfebb824 100644 +index 315c1bbcff9bdacc7e25eb91d8d4d2ede4d61a9a..8e918fe4a64a425814fd8d4b951bf48dda74fde8 100644 --- a/Source/WebCore/page/PointerCaptureController.cpp +++ b/Source/WebCore/page/PointerCaptureController.cpp @@ -195,7 +195,7 @@ bool PointerCaptureController::preventsCompatibilityMouseEventsForIdentifier(Poi @@ -6155,7 +6177,7 @@ index 7adcd916dad40b21aea036b02c79ab615b8bf90a..228c0081a4a73ae4ba6feea5cd734cea static bool hierarchyHasCapturingEventListeners(Element* target, const AtomString& eventName) { for (RefPtr currentNode = target; currentNode; currentNode = currentNode->parentInComposedTree()) { -@@ -499,7 +499,7 @@ void PointerCaptureController::cancelPointer(PointerID pointerId, const IntPoint +@@ -501,7 +501,7 @@ void PointerCaptureController::cancelPointer(PointerID pointerId, const IntPoint capturingData->pendingTargetOverride = nullptr; capturingData->state = CapturingData::State::Cancelled; @@ -6193,51 +6215,51 @@ index 91a9847a4083393e225f42e71c2dd590a88c0289..b0838c84e4ba24378db42f40a68856af #endif ; diff --git a/Source/WebCore/page/Screen.cpp b/Source/WebCore/page/Screen.cpp -index d70607f79cd3e975f834e680c0540e558553c483..cbcaf6b64dff68713594cbd3d9d607a23ef6b900 100644 +index 4e4dfdebe954bf3f047d3a86a758dfd0913f732e..da2bcd0256cdfc2ba28fb07094abd0b6f9c5f754 100644 --- a/Source/WebCore/page/Screen.cpp +++ b/Source/WebCore/page/Screen.cpp -@@ -110,6 +110,9 @@ int Screen::availLeft() const +@@ -111,6 +111,9 @@ int Screen::availLeft() const if (fingerprintingProtectionsEnabled(*frame)) return 0; + if (frame->hasScreenSizeOverride()) + return 0; + - return static_cast(screenAvailableRect(frame->view()).x()); + return static_cast(screenAvailableRect(frame->protectedView().get()).x()); } -@@ -125,6 +128,9 @@ int Screen::availTop() const +@@ -126,6 +129,9 @@ int Screen::availTop() const if (fingerprintingProtectionsEnabled(*frame)) return 0; + if (frame->hasScreenSizeOverride()) + return 0; + - return static_cast(screenAvailableRect(frame->view()).y()); + return static_cast(screenAvailableRect(frame->protectedView().get()).y()); } -@@ -140,6 +146,9 @@ int Screen::availHeight() const +@@ -141,6 +147,9 @@ int Screen::availHeight() const if (fingerprintingProtectionsEnabled(*frame)) return static_cast(frame->screenSize().height()); + if (frame->hasScreenSizeOverride()) + return static_cast(frame->screenSize().height()); + - return static_cast(screenAvailableRect(frame->view()).height()); + return static_cast(screenAvailableRect(frame->protectedView().get()).height()); } -@@ -155,6 +164,9 @@ int Screen::availWidth() const +@@ -156,6 +165,9 @@ int Screen::availWidth() const if (fingerprintingProtectionsEnabled(*frame)) return static_cast(frame->screenSize().width()); + if (frame->hasScreenSizeOverride()) + return static_cast(frame->screenSize().width()); + - return static_cast(screenAvailableRect(frame->view()).width()); + return static_cast(screenAvailableRect(frame->protectedView().get()).width()); } diff --git a/Source/WebCore/page/csp/ContentSecurityPolicy.cpp b/Source/WebCore/page/csp/ContentSecurityPolicy.cpp -index ca9c9582365de350649a0ab9e5e88bacc63d26de..da48770a91b0b391505444433c495ae4ae7dce37 100644 +index f8f503996052b812c077fa32040893c15db26ee1..5ae7c302bc8ac0f2e7d8f24bca1340cde8f27116 100644 --- a/Source/WebCore/page/csp/ContentSecurityPolicy.cpp +++ b/Source/WebCore/page/csp/ContentSecurityPolicy.cpp @@ -336,6 +336,8 @@ bool ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtoc @@ -6506,7 +6528,7 @@ index 4aa768e1c2a8da63004f34ccbf0d347b2484c37b..515c99ed21cde6c157bb9a1378a78372 #endif diff --git a/Source/WebCore/platform/PlatformScreen.cpp b/Source/WebCore/platform/PlatformScreen.cpp -index 39fbdb1be924da33344ac10293798b2abde2e468..caa6421a1c1b616e2eac7cc8645cffd9f27d54bb 100644 +index ae46341ba71c7f6df7c607bd852338cdb7f83fe1..b318c0771192344a6891c1f097cb0b93dabe8237 100644 --- a/Source/WebCore/platform/PlatformScreen.cpp +++ b/Source/WebCore/platform/PlatformScreen.cpp @@ -25,6 +25,7 @@ @@ -6515,12 +6537,12 @@ index 39fbdb1be924da33344ac10293798b2abde2e468..caa6421a1c1b616e2eac7cc8645cffd9 #include "PlatformScreen.h" +#include "DeprecatedGlobalSettings.h" - #if PLATFORM(COCOA) || PLATFORM(GTK) + #if PLATFORM(COCOA) || PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) @@ -73,3 +74,25 @@ const ScreenData* screenData(PlatformDisplayID screenDisplayID) } // namespace WebCore - #endif // PLATFORM(COCOA) || PLATFORM(GTK) + #endif // PLATFORM(COCOA) || PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) + +#if ENABLE(TOUCH_EVENTS) +namespace WebCore { @@ -6544,7 +6566,7 @@ index 39fbdb1be924da33344ac10293798b2abde2e468..caa6421a1c1b616e2eac7cc8645cffd9 +} // namespace WebCore +#endif diff --git a/Source/WebCore/platform/PlatformScreen.h b/Source/WebCore/platform/PlatformScreen.h -index efa9c30953573d88c18e28110e5f86be339656fb..d6cc2afe8026ceebf80d2b0acac478cb7a923b12 100644 +index 93b1d7907a2ec5ca59ffad0e3f5d562ea669473e..11debfb941710bc41fc8d222d7dca0d18239bcdd 100644 --- a/Source/WebCore/platform/PlatformScreen.h +++ b/Source/WebCore/platform/PlatformScreen.h @@ -150,13 +150,18 @@ WEBCORE_EXPORT float screenScaleFactor(UIScreen * = nullptr); @@ -6704,7 +6726,7 @@ index ba4211130b222abe1cba86e9eedf525940f317a0..f2289378791bc76a5bc82ba89876c3ed if (!image || !encodeImage(image, mimeType, &encodedImage)) return { }; diff --git a/Source/WebCore/platform/graphics/cg/ImageBufferUtilitiesCG.h b/Source/WebCore/platform/graphics/cg/ImageBufferUtilitiesCG.h -index 60f0d686606b9c94cdf3724eba84fe8e8dbac8e2..890148409cb12ae3b846e59423435705658f3a95 100644 +index 076b61642867584cc02cb7263026ff94555adf64..e56cd4cb92e51e48bfbb25f6c8bba6fbe404bac7 100644 --- a/Source/WebCore/platform/graphics/cg/ImageBufferUtilitiesCG.h +++ b/Source/WebCore/platform/graphics/cg/ImageBufferUtilitiesCG.h @@ -38,7 +38,7 @@ WEBCORE_EXPORT uint8_t verifyImageBufferIsBigEnough(const void* buffer, size_t b @@ -6714,8 +6736,8 @@ index 60f0d686606b9c94cdf3724eba84fe8e8dbac8e2..890148409cb12ae3b846e59423435705 -Vector encodeData(CGImageRef, const String& mimeType, std::optional quality); +WEBCORE_EXPORT Vector encodeData(CGImageRef, const String& mimeType, std::optional quality); Vector encodeData(const PixelBuffer&, const String& mimeType, std::optional quality); + Vector encodeData(const std::span&, const String& mimeType, std::optional quality); - WEBCORE_EXPORT String dataURL(CGImageRef, const String& mimeType, std::optional quality); diff --git a/Source/WebCore/platform/graphics/filters/software/FEComponentTransferSoftwareApplier.h b/Source/WebCore/platform/graphics/filters/software/FEComponentTransferSoftwareApplier.h index b60f9a64bacc8282860da6de299b75aeb295b9b5..55bd017c03c6478ca334bd5ef164160fef5d5302 100644 --- a/Source/WebCore/platform/graphics/filters/software/FEComponentTransferSoftwareApplier.h @@ -7662,10 +7684,10 @@ index 35ade40b37f0c476815535541118f9246ed199cd..2bd1444f9a5e9a14ab3d6acbc020434e m_commonHeaders.append(CommonHeader { name, value }); } diff --git a/Source/WebCore/platform/network/NetworkStorageSession.h b/Source/WebCore/platform/network/NetworkStorageSession.h -index 3e9c9005a9b40eea1e1be5078a1fb11dc77c5dae..867b3403a652f0db75dc94ef34620cc92838da4b 100644 +index 952e935a4124c228e106ed8c3e788b97774732e5..2292247c2bd40aacf3530e3f4a9035a4a00f147b 100644 --- a/Source/WebCore/platform/network/NetworkStorageSession.h +++ b/Source/WebCore/platform/network/NetworkStorageSession.h -@@ -160,6 +160,8 @@ public: +@@ -167,6 +167,8 @@ public: NetworkingContext* context() const; #endif @@ -7675,26 +7697,26 @@ index 3e9c9005a9b40eea1e1be5078a1fb11dc77c5dae..867b3403a652f0db75dc94ef34620cc9 WEBCORE_EXPORT void setCookie(const Cookie&); WEBCORE_EXPORT void setCookies(const Vector&, const URL&, const URL& mainDocumentURL); diff --git a/Source/WebCore/platform/network/ResourceResponseBase.cpp b/Source/WebCore/platform/network/ResourceResponseBase.cpp -index ab7536de6a0555f2592177e5d6c0148958d7f078..2d1b6d667dbd1843d6cab2c18ae86220d49c600e 100644 +index d47b089014717dc98928aa597ff881f3909559e1..3ab3262fd35c1ae740b6b8c01b6ce950fee0c224 100644 --- a/Source/WebCore/platform/network/ResourceResponseBase.cpp +++ b/Source/WebCore/platform/network/ResourceResponseBase.cpp @@ -74,6 +74,7 @@ ResourceResponseBase::ResourceResponseBase(std::optional d - , m_httpStatusText(data ? data->httpStatusText : AtomString { }) - , m_httpVersion(data ? data->httpVersion : AtomString { }) + , m_httpStatusText(data ? data->httpStatusText : String { }) + , m_httpVersion(data ? data->httpVersion : String { }) , m_httpHeaderFields(data ? data->httpHeaderFields : HTTPHeaderMap { }) + , m_httpRequestHeaderFields(data ? data->httpRequestHeaderFields : HTTPHeaderMap { }) , m_networkLoadMetrics(data && data->networkLoadMetrics ? Box::create(*data->networkLoadMetrics) : Box { }) , m_certificateInfo(data ? data->certificateInfo : std::nullopt) , m_httpStatusCode(data ? data->httpStatusCode : 0) -@@ -891,6 +892,7 @@ std::optional ResourceResponseBase::getResponseData() cons - String { m_httpStatusText.string() }, - String { m_httpVersion.string() }, +@@ -892,6 +893,7 @@ std::optional ResourceResponseBase::getResponseData() cons + String { m_httpStatusText }, + String { m_httpVersion }, HTTPHeaderMap { m_httpHeaderFields }, + HTTPHeaderMap { m_httpRequestHeaderFields }, m_networkLoadMetrics ? std::optional(*m_networkLoadMetrics) : std::nullopt, m_source, m_type, -@@ -964,6 +966,11 @@ std::optional Coder Coder httpStatusCode; decoder >> httpStatusCode; if (!httpStatusCode) -@@ -1018,6 +1025,7 @@ std::optional Coder Coderperform(); if (errorCode != CURLE_OK) { diff --git a/Source/WebCore/platform/network/curl/CurlStream.h b/Source/WebCore/platform/network/curl/CurlStream.h -index 7a2941730bbf90ddc77a13fe2ce35491fab65597..6dc64dff7e7f3dff5004465225cc307f5599cfba 100644 +index bc9c731a0e69c4923bb8b4bdda088c2be30b3f1c..2088662fb2ce29b7ed843586460630fbf82c0856 100644 --- a/Source/WebCore/platform/network/curl/CurlStream.h +++ b/Source/WebCore/platform/network/curl/CurlStream.h -@@ -53,12 +53,12 @@ public: +@@ -55,12 +55,12 @@ public: virtual void didFail(CurlStreamID, CURLcode, CertificateInfo&&) = 0; }; -- static std::unique_ptr create(CurlStreamScheduler& scheduler, CurlStreamID streamID, URL&& url, ServerTrustEvaluation serverTrustEvaluation) -+ static std::unique_ptr create(CurlStreamScheduler& scheduler, CurlStreamID streamID, bool ignoreCertificateErrors, URL&& url, ServerTrustEvaluation serverTrustEvaluation) +- static std::unique_ptr create(CurlStreamScheduler& scheduler, CurlStreamID streamID, URL&& url, ServerTrustEvaluation serverTrustEvaluation, LocalhostAlias localhostAlias) ++ static std::unique_ptr create(CurlStreamScheduler& scheduler, CurlStreamID streamID, bool ignoreCertificateErrors, URL&& url, ServerTrustEvaluation serverTrustEvaluation, LocalhostAlias localhostAlias) { -- return makeUnique(scheduler, streamID, WTFMove(url), serverTrustEvaluation); -+ return makeUnique(scheduler, streamID, ignoreCertificateErrors, WTFMove(url), serverTrustEvaluation); +- return makeUnique(scheduler, streamID, WTFMove(url), serverTrustEvaluation, localhostAlias); ++ return makeUnique(scheduler, streamID, ignoreCertificateErrors, WTFMove(url), serverTrustEvaluation, localhostAlias); } -- CurlStream(CurlStreamScheduler&, CurlStreamID, URL&&, ServerTrustEvaluation); -+ CurlStream(CurlStreamScheduler&, CurlStreamID, bool ignoreCertificateErrors, URL&&, ServerTrustEvaluation); +- CurlStream(CurlStreamScheduler&, CurlStreamID, URL&&, ServerTrustEvaluation, LocalhostAlias); ++ CurlStream(CurlStreamScheduler&, CurlStreamID, bool ignoreCertificateErrors, URL&&, ServerTrustEvaluation, LocalhostAlias); virtual ~CurlStream(); void send(UniqueArray&&, size_t); diff --git a/Source/WebCore/platform/network/curl/CurlStreamScheduler.cpp b/Source/WebCore/platform/network/curl/CurlStreamScheduler.cpp -index e798f286cc1d12ebdfc657bb16ebdb173b51b597..f21ee9733d4ce9355401fe01218da03ffefd159b 100644 +index 2032a40640bd944ed7e3255c8d4f1af8889a1b02..1283c85ec2e431144168504fd9cc23e0d147fdfe 100644 --- a/Source/WebCore/platform/network/curl/CurlStreamScheduler.cpp +++ b/Source/WebCore/platform/network/curl/CurlStreamScheduler.cpp @@ -40,7 +40,7 @@ CurlStreamScheduler::~CurlStreamScheduler() ASSERT(isMainThread()); } --CurlStreamID CurlStreamScheduler::createStream(const URL& url, CurlStream::Client& client, CurlStream::ServerTrustEvaluation serverTrustEvaluation) -+CurlStreamID CurlStreamScheduler::createStream(const URL& url, bool ignoreCertificateErrors, CurlStream::Client& client, CurlStream::ServerTrustEvaluation serverTrustEvaluation) +-CurlStreamID CurlStreamScheduler::createStream(const URL& url, CurlStream::Client& client, CurlStream::ServerTrustEvaluation serverTrustEvaluation, CurlStream::LocalhostAlias localhostAlias) ++CurlStreamID CurlStreamScheduler::createStream(const URL& url, bool ignoreCertificateErrors, CurlStream::Client& client, CurlStream::ServerTrustEvaluation serverTrustEvaluation, CurlStream::LocalhostAlias localhostAlias) { ASSERT(isMainThread()); @@ -7855,23 +7877,23 @@ index e798f286cc1d12ebdfc657bb16ebdb173b51b597..f21ee9733d4ce9355401fe01218da03f auto streamID = m_currentStreamID; m_clientList.add(streamID, &client); -- callOnWorkerThread([this, streamID, url = url.isolatedCopy(), serverTrustEvaluation]() mutable { -- m_streamList.add(streamID, CurlStream::create(*this, streamID, WTFMove(url), serverTrustEvaluation)); -+ callOnWorkerThread([this, streamID, ignoreCertificateErrors, url = url.isolatedCopy(), serverTrustEvaluation]() mutable { -+ m_streamList.add(streamID, CurlStream::create(*this, streamID, ignoreCertificateErrors, WTFMove(url), serverTrustEvaluation)); +- callOnWorkerThread([this, streamID, url = url.isolatedCopy(), serverTrustEvaluation, localhostAlias]() mutable { +- m_streamList.add(streamID, CurlStream::create(*this, streamID, WTFMove(url), serverTrustEvaluation, localhostAlias)); ++ callOnWorkerThread([this, streamID, ignoreCertificateErrors, url = url.isolatedCopy(), serverTrustEvaluation, localhostAlias]() mutable { ++ m_streamList.add(streamID, CurlStream::create(*this, streamID, ignoreCertificateErrors, WTFMove(url), serverTrustEvaluation, localhostAlias)); }); return streamID; diff --git a/Source/WebCore/platform/network/curl/CurlStreamScheduler.h b/Source/WebCore/platform/network/curl/CurlStreamScheduler.h -index ad1c5d0f6e9ef938636fff0c8de172de381f4a2e..e0a67aad31143eef5398261e5a20bab2cd6a430d 100644 +index 41af70e9bddcb507bf7e57841e4051bc99a78410..87899280f985ca5f0cb135fb9ba53cde822a3b84 100644 --- a/Source/WebCore/platform/network/curl/CurlStreamScheduler.h +++ b/Source/WebCore/platform/network/curl/CurlStreamScheduler.h @@ -38,7 +38,7 @@ public: CurlStreamScheduler(); virtual ~CurlStreamScheduler(); -- WEBCORE_EXPORT CurlStreamID createStream(const URL&, CurlStream::Client&, CurlStream::ServerTrustEvaluation = CurlStream::ServerTrustEvaluation::Enable); -+ WEBCORE_EXPORT CurlStreamID createStream(const URL&, bool ignoreCertificateErrors, CurlStream::Client&, CurlStream::ServerTrustEvaluation = CurlStream::ServerTrustEvaluation::Enable); +- WEBCORE_EXPORT CurlStreamID createStream(const URL&, CurlStream::Client&, CurlStream::ServerTrustEvaluation, CurlStream::LocalhostAlias); ++ WEBCORE_EXPORT CurlStreamID createStream(const URL&, bool ignoreCertificateErrors, CurlStream::Client&, CurlStream::ServerTrustEvaluation, CurlStream::LocalhostAlias); WEBCORE_EXPORT void destroyStream(CurlStreamID); WEBCORE_EXPORT void send(CurlStreamID, UniqueArray&&, size_t); @@ -8018,10 +8040,10 @@ index f997a64f68deca632435450869c1abc9c3c35ac2..79da1d419799e359c60f2346e1d3ac8a OptionSet PlatformKeyboardEvent::currentStateOfModifierKeys() diff --git a/Source/WebCore/platform/win/PasteboardWin.cpp b/Source/WebCore/platform/win/PasteboardWin.cpp -index eed85c96b3d8292856e030691ce9c29199dbd3f0..0c2642562d5fec67977b2896433bf75331796616 100644 +index 54e81c8974a68333027ec4ca26d63cd11d9873c0..80ae2fd4c97a502ffea49c937265bf7cabb18fca 100644 --- a/Source/WebCore/platform/win/PasteboardWin.cpp +++ b/Source/WebCore/platform/win/PasteboardWin.cpp -@@ -1129,7 +1129,21 @@ void Pasteboard::writeCustomData(const Vector& data) +@@ -1130,7 +1130,21 @@ void Pasteboard::writeCustomData(const Vector& data) } clear(); @@ -8043,7 +8065,7 @@ index eed85c96b3d8292856e030691ce9c29199dbd3f0..0c2642562d5fec67977b2896433bf753 if (::OpenClipboard(m_owner)) { const auto& customData = data.first(); customData.forEachPlatformStringOrBuffer([](auto& type, auto& stringOrBuffer) { -@@ -1168,4 +1182,25 @@ void Pasteboard::write(const Color&) +@@ -1169,4 +1183,25 @@ void Pasteboard::write(const Color&) { } @@ -8242,10 +8264,10 @@ index 0000000000000000000000000000000000000000..3aedd4bdfacd4d66552346bec8211efa + +} diff --git a/Source/WebCore/platform/wpe/PlatformScreenWPE.cpp b/Source/WebCore/platform/wpe/PlatformScreenWPE.cpp -index bbdd1ce76241d933ada9c43fabae4912cbfa64e1..e6ae01a77350c519b203f6ed2910f63871b9b829 100644 +index b4b1421799ba24ff07842c3006afcff7948e6c83..64b3bfab8d80ce9a4aea931ed7e478300a3bc358 100644 --- a/Source/WebCore/platform/wpe/PlatformScreenWPE.cpp +++ b/Source/WebCore/platform/wpe/PlatformScreenWPE.cpp -@@ -93,12 +93,12 @@ bool screenSupportsExtendedColor(Widget*) +@@ -139,12 +139,12 @@ bool screenSupportsExtendedColor(Widget*) } #if ENABLE(TOUCH_EVENTS) @@ -8546,10 +8568,10 @@ index 1d8488e0d36288e09cd5662bd7f770ade95dfee3..dee07f87b47d62d4ef8ede45824bdb2f WorkerOrWorkletGlobalScope& m_globalScope; }; diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp -index 48e8fe16cab093a72bf5c9aa966c38072ce9d8af..c0ad132eb60e3c057d83d81b52f0b23ba03f3ce5 100644 +index 45c208c43d3989a2167aff77e71264c34392f4e5..96314d38c4b6f0723ba4a663480c388bdb43eec2 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp -@@ -97,6 +97,8 @@ +@@ -96,6 +96,8 @@ #if PLATFORM(COCOA) #include @@ -8558,7 +8580,7 @@ index 48e8fe16cab093a72bf5c9aa966c38072ce9d8af..c0ad132eb60e3c057d83d81b52f0b23b #endif #if ENABLE(APPLE_PAY_REMOTE_UI) -@@ -1045,6 +1047,14 @@ void NetworkConnectionToWebProcess::clearPageSpecificData(PageIdentifier pageID) +@@ -1069,6 +1071,14 @@ void NetworkConnectionToWebProcess::clearPageSpecificData(PageIdentifier pageID) storageSession->clearPageSpecificDataForResourceLoadStatistics(pageID); } @@ -8574,10 +8596,10 @@ index 48e8fe16cab093a72bf5c9aa966c38072ce9d8af..c0ad132eb60e3c057d83d81b52f0b23b { if (auto* storageSession = networkProcess().storageSession(m_sessionID)) diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h -index 465fb60c248beae91fb70f9e66826da4a9613136..def77f359298ec7c70426b7f9bdbd5b05661e114 100644 +index 488bf8eba7393480635db5bea3c59e8753ec84b4..3cba3441ee02576eafa36166780384c08a466097 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h -@@ -332,6 +332,8 @@ private: +@@ -339,6 +339,8 @@ private: void clearPageSpecificData(WebCore::PageIdentifier); @@ -8587,10 +8609,10 @@ index 465fb60c248beae91fb70f9e66826da4a9613136..def77f359298ec7c70426b7f9bdbd5b0 void logUserInteraction(RegistrableDomain&&); diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in -index ddf34779b28f8b8dfe7e10e2a9acff502b1b5f88..c85d2b4875c7f581648fd610033e6dfc745ecb17 100644 +index eaa6f34e690304fd936a0115b16bee6d448dafb8..914572c48a132a95879593b5629f2266db3b712f 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in -@@ -71,6 +71,8 @@ messages -> NetworkConnectionToWebProcess LegacyReceiver { +@@ -73,6 +73,8 @@ messages -> NetworkConnectionToWebProcess LegacyReceiver { ClearPageSpecificData(WebCore::PageIdentifier pageID); @@ -8600,10 +8622,10 @@ index ddf34779b28f8b8dfe7e10e2a9acff502b1b5f88..c85d2b4875c7f581648fd610033e6dfc LogUserInteraction(WebCore::RegistrableDomain domain) ResourceLoadStatisticsUpdated(Vector statistics) -> () diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.cpp b/Source/WebKit/NetworkProcess/NetworkProcess.cpp -index fe61606cc777befb0b0f6ffc83372103643cb661..af37e6fca0f70c2315468696f2281fc39596b751 100644 +index 1d10e5bb09fe292d7a01612b6aed9e35da45c18c..012479c922cedca0b7f72d95e2e9a83323df081c 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.cpp +++ b/Source/WebKit/NetworkProcess/NetworkProcess.cpp -@@ -629,6 +629,12 @@ void NetworkProcess::registrableDomainsExemptFromWebsiteDataDeletion(PAL::Sessio +@@ -630,6 +630,12 @@ void NetworkProcess::registrableDomainsExemptFromWebsiteDataDeletion(PAL::Sessio completionHandler({ }); } @@ -8617,7 +8639,7 @@ index fe61606cc777befb0b0f6ffc83372103643cb661..af37e6fca0f70c2315468696f2281fc3 { if (auto* session = networkSession(sessionID)) { diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.h b/Source/WebKit/NetworkProcess/NetworkProcess.h -index ddf94ef00e89b0b0e9895845b336706e88bd7322..5f20b670ba01ce91a3071d5905e385a962bde581 100644 +index 10e053350e326197542f65fb808447115bc27952..dc58f8e2c4aff12f80ba7712507b1513831a7a0c 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.h +++ b/Source/WebKit/NetworkProcess/NetworkProcess.h @@ -33,6 +33,7 @@ @@ -8628,7 +8650,7 @@ index ddf94ef00e89b0b0e9895845b336706e88bd7322..5f20b670ba01ce91a3071d5905e385a9 #include "WebPageProxyIdentifier.h" #include "WebResourceLoadStatisticsStore.h" #include "WebsiteData.h" -@@ -85,6 +86,7 @@ class SessionID; +@@ -86,6 +87,7 @@ class SessionID; namespace WebCore { class CertificateInfo; @@ -8636,7 +8658,7 @@ index ddf94ef00e89b0b0e9895845b336706e88bd7322..5f20b670ba01ce91a3071d5905e385a9 class CurlProxySettings; class ProtectionSpace; class NetworkStorageSession; -@@ -212,6 +214,9 @@ public: +@@ -214,6 +216,9 @@ public: void registrableDomainsWithLastAccessedTime(PAL::SessionID, CompletionHandler>)>&&); void registrableDomainsExemptFromWebsiteDataDeletion(PAL::SessionID, CompletionHandler)>&&); @@ -8647,7 +8669,7 @@ index ddf94ef00e89b0b0e9895845b336706e88bd7322..5f20b670ba01ce91a3071d5905e385a9 void clearUserInteraction(PAL::SessionID, RegistrableDomain&&, CompletionHandler&&); void deleteAndRestrictWebsiteDataForRegistrableDomains(PAL::SessionID, OptionSet, RegistrableDomainsToDeleteOrRestrictWebsiteDataFor&&, bool shouldNotifyPage, CompletionHandler&&)>&&); diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in -index 383d6584d89215481fbe62aea5ec91017c82273e..f1021d7d16854e2a05ee7109b1794e9de0172722 100644 +index 8e93b5fab125d3ac047d10982918be5fbc42de6a..1d04d3eabb1753329831c78f26267864db0a54f6 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in +++ b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in @@ -79,6 +79,8 @@ messages -> NetworkProcess LegacyReceiver { @@ -8660,10 +8682,10 @@ index 383d6584d89215481fbe62aea5ec91017c82273e..f1021d7d16854e2a05ee7109b1794e9d ClearUserInteraction(PAL::SessionID sessionID, WebCore::RegistrableDomain resourceDomain) -> () DumpResourceLoadStatistics(PAL::SessionID sessionID) -> (String dumpedStatistics) diff --git a/Source/WebKit/NetworkProcess/NetworkSession.h b/Source/WebKit/NetworkProcess/NetworkSession.h -index a0c2cc8fa79a788191899e95a87a81ad1875db44..17b25d9e2bd3befa75f4e7f044cb924d6c2fd552 100644 +index e0abf3efc001aef58ecdc10e7b0066d5a0f0bc3f..0940c4918d6db0f22a350abde8089b300222505b 100644 --- a/Source/WebKit/NetworkProcess/NetworkSession.h +++ b/Source/WebKit/NetworkProcess/NetworkSession.h -@@ -200,6 +200,9 @@ public: +@@ -198,6 +198,9 @@ public: void lowMemoryHandler(WTF::Critical); @@ -8682,10 +8704,10 @@ index a0c2cc8fa79a788191899e95a87a81ad1875db44..17b25d9e2bd3befa75f4e7f044cb924d HashSet> m_keptAliveLoads; diff --git a/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm b/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm -index 22ca12f45d138184823b09da60a22e615a89792f..eb655b51432a3ad71b7e7635beaa7c632627eff0 100644 +index cd45693c6921525069d7a9fe20ba9eaf80678788..55050c618d4c4fc4896d39d39ff62f901761ec04 100644 --- a/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm +++ b/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm -@@ -752,6 +752,8 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didRece +@@ -760,6 +760,8 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didRece if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { sessionCocoa->setClientAuditToken(challenge); @@ -8694,7 +8716,7 @@ index 22ca12f45d138184823b09da60a22e615a89792f..eb655b51432a3ad71b7e7635beaa7c63 NSURLSessionTaskTransactionMetrics *metrics = task._incompleteTaskMetrics.transactionMetrics.lastObject; auto tlsVersion = (tls_protocol_version_t)metrics.negotiatedTLSProtocolVersion.unsignedShortValue; -@@ -1091,6 +1093,13 @@ ALLOW_DEPRECATED_DECLARATIONS_END +@@ -1099,6 +1101,13 @@ ALLOW_DEPRECATED_DECLARATIONS_END resourceResponse.setDeprecatedNetworkLoadMetrics(WebCore::copyTimingData(taskMetrics, networkDataTask->networkLoadMetrics())); @@ -8709,10 +8731,10 @@ index 22ca12f45d138184823b09da60a22e615a89792f..eb655b51432a3ad71b7e7635beaa7c63 #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 576f93777989c0203c5c0f47ac3fcdddd880f12d..44d20997cc6f5e147adaf2c8235fad929f2e3b04 100644 +index c152b51b88aca272fc1bcc441c63e2a194ae0634..872cc3c8c425a425001abf7e9d72a18d5640980c 100644 --- a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp +++ b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp -@@ -80,10 +80,18 @@ NetworkDataTaskCurl::NetworkDataTaskCurl(NetworkSession& session, NetworkDataTas +@@ -79,10 +79,18 @@ NetworkDataTaskCurl::NetworkDataTaskCurl(NetworkSession& session, NetworkDataTas blockCookies(); restrictRequestReferrerToOriginIfNeeded(request); @@ -8735,7 +8757,7 @@ index 576f93777989c0203c5c0f47ac3fcdddd880f12d..44d20997cc6f5e147adaf2c8235fad92 } } -@@ -161,6 +169,7 @@ void NetworkDataTaskCurl::curlDidReceiveResponse(CurlRequest& request, CurlRespo +@@ -165,6 +173,7 @@ void NetworkDataTaskCurl::curlDidReceiveResponse(CurlRequest& request, CurlRespo updateNetworkLoadMetrics(receivedResponse.networkLoadMetrics); m_response.setDeprecatedNetworkLoadMetrics(Box::create(WTFMove(receivedResponse.networkLoadMetrics))); @@ -8743,7 +8765,7 @@ index 576f93777989c0203c5c0f47ac3fcdddd880f12d..44d20997cc6f5e147adaf2c8235fad92 handleCookieHeaders(request.resourceRequest(), receivedResponse); -@@ -285,6 +294,36 @@ bool NetworkDataTaskCurl::shouldRedirectAsGET(const ResourceRequest& request, bo +@@ -289,6 +298,36 @@ bool NetworkDataTaskCurl::shouldRedirectAsGET(const ResourceRequest& request, bo return false; } @@ -8761,13 +8783,13 @@ index 576f93777989c0203c5c0f47ac3fcdddd880f12d..44d20997cc6f5e147adaf2c8235fad92 +{ + if (!m_dataURLResult) { + deleteDownloadFile(); -+ download.didFail(internalError(firstRequest().url()), IPC::DataReference()); ++ download.didFail(internalError(firstRequest().url()), std::span()); + return; + } + + if (-1 == FileSystem::writeToFile(m_downloadDestinationFile, static_cast(m_dataURLResult.value().data.data()), m_dataURLResult.value().data.size())) { + deleteDownloadFile(); -+ download.didFail(ResourceError(CURLE_WRITE_ERROR, m_response.url()), IPC::DataReference()); ++ download.didFail(ResourceError(CURLE_WRITE_ERROR, m_response.url()), std::span()); + return; + } + @@ -8780,7 +8802,7 @@ index 576f93777989c0203c5c0f47ac3fcdddd880f12d..44d20997cc6f5e147adaf2c8235fad92 void NetworkDataTaskCurl::invokeDidReceiveResponse() { didReceiveResponse(ResourceResponse(m_response), NegotiatedLegacyTLS::No, PrivateRelayed::No, [this, protectedThis = Ref { *this }](PolicyAction policyAction) { -@@ -315,6 +354,8 @@ void NetworkDataTaskCurl::invokeDidReceiveResponse() +@@ -319,6 +358,8 @@ void NetworkDataTaskCurl::invokeDidReceiveResponse() downloadPtr->didCreateDestination(m_pendingDownloadLocation); if (m_curlRequest) m_curlRequest->completeDidReceiveResponse(); @@ -8789,7 +8811,7 @@ index 576f93777989c0203c5c0f47ac3fcdddd880f12d..44d20997cc6f5e147adaf2c8235fad92 break; } default: -@@ -401,6 +442,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); } @@ -8853,10 +8875,10 @@ index 8dc0bcdb1cdfa86d04fc7e4e3718f1fe2c457c80..21180451b653bdd3596164a9b60d34d7 void NetworkSessionCurl::didReceiveChallenge(WebSocketTask& webSocketTask, WebCore::AuthenticationChallenge&& challenge, CompletionHandler&& challengeCompletionHandler) diff --git a/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp b/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp -index 16f8fa0df719a97fb7c37af8d1e8dd2543f9db2c..9ebbb2c206e5223d70b60f5819aafc9189018e7a 100644 +index 8bc3ce1ecd8a8681565f32fecf77343eafa59d84..d98ead04c93f7d447cae0e1c3b98a8abe3703ddb 100644 --- a/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp +++ b/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp -@@ -35,11 +35,12 @@ +@@ -36,11 +36,12 @@ namespace WebKit { @@ -8870,29 +8892,29 @@ index 16f8fa0df719a97fb7c37af8d1e8dd2543f9db2c..9ebbb2c206e5223d70b60f5819aafc91 , m_scheduler(WebCore::CurlContext::singleton().streamScheduler()) { // We use topOrigin in case of service worker websocket connections, for which pageID does not link to a real page. -@@ -47,7 +48,7 @@ WebSocketTask::WebSocketTask(NetworkSocketChannel& channel, WebPageProxyIdentifi - if (clientOrigin.topOrigin == clientOrigin.clientOrigin) - m_topOrigin = clientOrigin.topOrigin; +@@ -52,7 +53,7 @@ WebSocketTask::WebSocketTask(NetworkSocketChannel& channel, WebPageProxyIdentifi + if (networkSession() && networkSession()->networkProcess().localhostAliasesForTesting().contains(m_request.url().host())) + localhostAlias = WebCore::CurlStream::LocalhostAlias::Enable; -- m_streamID = m_scheduler.createStream(request.url(), *this); -+ m_streamID = m_scheduler.createStream(request.url(), ignoreCertificateErrors, *this); +- m_streamID = m_scheduler.createStream(request.url(), *this, WebCore::CurlStream::ServerTrustEvaluation::Enable, localhostAlias); ++ m_streamID = m_scheduler.createStream(request.url(), ignoreCertificateErrors, *this, WebCore::CurlStream::ServerTrustEvaluation::Enable, localhostAlias); m_channel.didSendHandshakeRequest(WebCore::ResourceRequest(m_request)); } -@@ -246,7 +247,7 @@ void WebSocketTask::tryServerTrustEvaluation(WebCore::AuthenticationChallenge&& - { - networkSession()->didReceiveChallenge(*this, WTFMove(challenge), [this, errorReason = WTFMove(errorReason)](WebKit::AuthenticationChallengeDisposition disposition, const WebCore::Credential& credential) mutable { - if (disposition == AuthenticationChallengeDisposition::UseCredential && !credential.isEmpty()) -- m_streamID = m_scheduler.createStream(m_request.url(), *this, WebCore::CurlStream::ServerTrustEvaluation::Disable); -+ m_streamID = m_scheduler.createStream(m_request.url(), m_ignoreCertificateErrors, *this, WebCore::CurlStream::ServerTrustEvaluation::Disable); - else +@@ -255,7 +256,7 @@ void WebSocketTask::tryServerTrustEvaluation(WebCore::AuthenticationChallenge&& + if (networkSession() && networkSession()->networkProcess().localhostAliasesForTesting().contains(m_request.url().host())) + localhostAlias = WebCore::CurlStream::LocalhostAlias::Enable; + +- m_streamID = m_scheduler.createStream(m_request.url(), *this, WebCore::CurlStream::ServerTrustEvaluation::Disable, localhostAlias); ++ m_streamID = m_scheduler.createStream(m_request.url(), m_ignoreCertificateErrors, *this, WebCore::CurlStream::ServerTrustEvaluation::Disable, localhostAlias); + } else didFail(WTFMove(errorReason)); }); diff --git a/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.h b/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.h -index 973e36ff935507522ae3e9243094ee1f0398e7aa..a6025da80f44d82c1459d468ca3ab4f97f298dd4 100644 +index c29124f90328c9c50bb7a1c3d9bd48605f190e94..f3f51bea1e622c1e7172efd3fd7249daca56ca57 100644 --- a/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.h +++ b/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.h -@@ -50,7 +50,7 @@ struct SessionSet; +@@ -49,7 +49,7 @@ struct SessionSet; class WebSocketTask : public CanMakeWeakPtr, public WebCore::CurlStream::Client { WTF_MAKE_FAST_ALLOCATED; public: @@ -8900,8 +8922,8 @@ index 973e36ff935507522ae3e9243094ee1f0398e7aa..a6025da80f44d82c1459d468ca3ab4f9 + WebSocketTask(NetworkSocketChannel&, WebPageProxyIdentifier, const WebCore::ResourceRequest&, const String& protocol, bool ignoreCertificateErrors, const WebCore::ClientOrigin&); virtual ~WebSocketTask(); - void sendString(const IPC::DataReference&, CompletionHandler&&); -@@ -103,6 +103,7 @@ private: + void sendString(std::span, CompletionHandler&&); +@@ -102,6 +102,7 @@ private: WebPageProxyIdentifier m_webProxyPageID; WebCore::ResourceRequest m_request; String m_protocol; @@ -8909,11 +8931,30 @@ index 973e36ff935507522ae3e9243094ee1f0398e7aa..a6025da80f44d82c1459d468ca3ab4f9 WebCore::SecurityOriginData m_topOrigin; WebCore::CurlStreamScheduler& m_scheduler; +diff --git a/Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in b/Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in +index 514d2ee0446c8316e9e27a302e32de73480aafdc..42584c972be820f6906da2e0f54c839908db111a 100644 +--- a/Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in ++++ b/Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in +@@ -444,9 +444,11 @@ + + ;; FIXME: This should be removed when is fixed. + ;; Restrict AppSandboxed processes from creating /Library/Keychains, but allow access to the contents of /Library/Keychains: +-(allow file-read-data file-read-metadata +- (subpath "/Library/Keychains") +- (home-subpath "/Library/Keychains")) ++;; Playwright begin ++;; (allow file-read-data file-read-metadata ++;; (subpath "/Library/Keychains") ++;; (home-subpath "/Library/Keychains")) ++;; Playwright end + + ;; Except deny access to new-style iOS Keychain folders which are UUIDs. + (deny file-read* file-write* diff --git a/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp b/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp -index e3bcfbf4553ebe624984805d01ed52f0039ef654..45142c1dadf65aeaeb5a20b3e0a31eae6ea3cf18 100644 +index e00ae629016df8bec8cdaf45a42b1ae891cc2e93..ab5cb955e0b1b97a4df9ac4c6baa391ec2ee1798 100644 --- a/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp +++ b/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp -@@ -467,6 +467,8 @@ void NetworkDataTaskSoup::didSendRequest(GRefPtr&& inputStream) +@@ -466,6 +466,8 @@ void NetworkDataTaskSoup::didSendRequest(GRefPtr&& inputStream) m_networkLoadMetrics.failsTAOCheck = !passesTimingAllowOriginCheck(m_response, *origin); } @@ -8922,7 +8963,7 @@ index e3bcfbf4553ebe624984805d01ed52f0039ef654..45142c1dadf65aeaeb5a20b3e0a31eae dispatchDidReceiveResponse(); } -@@ -564,6 +566,8 @@ bool NetworkDataTaskSoup::acceptCertificate(GTlsCertificate* certificate, GTlsCe +@@ -563,6 +565,8 @@ bool NetworkDataTaskSoup::acceptCertificate(GTlsCertificate* certificate, GTlsCe { ASSERT(m_soupMessage); URL url = soupURIToURL(soup_message_get_uri(m_soupMessage.get())); @@ -8993,10 +9034,10 @@ index 3fa6072886e6d34d53c63fffb131d51a197540fd..72d919c0043fb524109aed043897195a } diff --git a/Source/WebKit/PlatformGTK.cmake b/Source/WebKit/PlatformGTK.cmake -index 496706f5c2b7c28903ea00dcd7294c6151b9b02f..f8c5e9b5f3c64af8a4ab9ba21a59e5fe4923f067 100644 +index c782b8e2c8afd47b55ba2de49ca46fc6e9cf4cb5..cb640ae7889bad991a2b82b78bba461d7b8c5502 100644 --- a/Source/WebKit/PlatformGTK.cmake +++ b/Source/WebKit/PlatformGTK.cmake -@@ -317,6 +317,9 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES +@@ -316,6 +316,9 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES ${GSTREAMER_PBUTILS_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${LIBSOUP_INCLUDE_DIRS} @@ -9006,7 +9047,7 @@ index 496706f5c2b7c28903ea00dcd7294c6151b9b02f..f8c5e9b5f3c64af8a4ab9ba21a59e5fe ) list(APPEND WebKit_INTERFACE_INCLUDE_DIRECTORIES -@@ -356,6 +359,9 @@ if (USE_LIBWEBRTC) +@@ -355,6 +358,9 @@ if (USE_LIBWEBRTC) list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES "${THIRDPARTY_DIR}/libwebrtc/Source/" "${THIRDPARTY_DIR}/libwebrtc/Source/webrtc" @@ -9016,7 +9057,7 @@ index 496706f5c2b7c28903ea00dcd7294c6151b9b02f..f8c5e9b5f3c64af8a4ab9ba21a59e5fe ) endif () -@@ -399,6 +405,12 @@ else () +@@ -398,6 +404,12 @@ else () set(WebKitGTK_ENUM_HEADER_TEMPLATE ${WEBKIT_DIR}/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in) endif () @@ -9030,7 +9071,7 @@ index 496706f5c2b7c28903ea00dcd7294c6151b9b02f..f8c5e9b5f3c64af8a4ab9ba21a59e5fe 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 9e4e02b99e5080712f6fc290d0c70109ec571b58..23eb76a28bd23ebfd5277b1622c5300db66ccaaf 100644 +index 3514e1612eca9338d5e3398b225790d05bd63742..bcc942a8dcd6929e338b4f01d5851457a4ec95ff 100644 --- a/Source/WebKit/PlatformWPE.cmake +++ b/Source/WebKit/PlatformWPE.cmake @@ -210,6 +210,7 @@ set(WPE_API_HEADER_TEMPLATES @@ -9057,16 +9098,17 @@ index 9e4e02b99e5080712f6fc290d0c70109ec571b58..23eb76a28bd23ebfd5277b1622c5300d +# Playwright end + list(APPEND WebKit_LIBRARIES - Cairo::Cairo - Freetype::Freetype + ATK::Bridge + WPE::libwpe diff --git a/Source/WebKit/PlatformWin.cmake b/Source/WebKit/PlatformWin.cmake -index 903aca234b3b5b2cc537cb4a4dca0992c9b306f6..851c76d09e5e2e47060721b748c60def118f8167 100644 +index 06a86d0cfd1ca90f383af2b079f60ce220f8eb02..9e21935463bf964ecb090be48e68b50ef29c049b 100644 --- a/Source/WebKit/PlatformWin.cmake +++ b/Source/WebKit/PlatformWin.cmake -@@ -89,8 +89,12 @@ list(APPEND WebKit_SOURCES - - UIProcess/wc/DrawingAreaProxyWC.cpp +@@ -56,8 +56,13 @@ list(APPEND WebKit_SOURCES + UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp + UIProcess/win/AutomationClientWin.cpp ++ + UIProcess/win/InspectorTargetProxyWin.cpp + UIProcess/win/InspectorPlaywrightAgentClientWin.cpp UIProcess/win/PageClientImpl.cpp @@ -9076,21 +9118,21 @@ index 903aca234b3b5b2cc537cb4a4dca0992c9b306f6..851c76d09e5e2e47060721b748c60def UIProcess/win/WebPageProxyWin.cpp UIProcess/win/WebPopupMenuProxyWin.cpp UIProcess/win/WebProcessPoolWin.cpp -@@ -111,6 +115,7 @@ list(APPEND WebKit_SOURCES - WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.cpp +@@ -73,6 +78,7 @@ list(APPEND WebKit_SOURCES + WebProcess/MediaCache/WebMediaKeyStorageManager.cpp WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp + WebProcess/WebCoreSupport/win/WebDragClientWin.cpp WebProcess/WebPage/AcceleratedSurface.cpp -@@ -177,8 +182,81 @@ list(APPEND WebKit_SERIALIZATION_IN_FILES +@@ -121,8 +127,81 @@ list(APPEND WebKit_PUBLIC_FRAMEWORK_HEADERS list(APPEND WebKit_PRIVATE_LIBRARIES comctl32 + ${LIBVPX_CUSTOM_LIBRARY} - ) - ++) ++ +# Playwright begin +list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES + "${THIRDPARTY_DIR}/libwebrtc/Source/third_party/libyuv/include" @@ -9099,8 +9141,8 @@ index 903aca234b3b5b2cc537cb4a4dca0992c9b306f6..851c76d09e5e2e47060721b748c60def + +list(APPEND WebKit_PRIVATE_INCLUDE_DIRECTORIES + "${THIRDPARTY_DIR}/libwebrtc/Source/third_party/libwebm" -+) -+ + ) + +set(vpxutils_SOURCES + "${THIRDPARTY_DIR}/libwebrtc/Source/third_party/libwebm/mkvmuxer/mkvmuxer.cc" + "${THIRDPARTY_DIR}/libwebrtc/Source/third_party/libwebm/mkvmuxer/mkvmuxerutil.cc" @@ -9167,10 +9209,10 @@ index 903aca234b3b5b2cc537cb4a4dca0992c9b306f6..851c76d09e5e2e47060721b748c60def WebProcess/EntryPoint/win/WebProcessMain.cpp ) diff --git a/Source/WebKit/Shared/API/c/wpe/WebKit.h b/Source/WebKit/Shared/API/c/wpe/WebKit.h -index caf67e1dece5b727e43eba780e70814f8fdb0f63..740150d2589d6e16a516daa3bf6ef899ac538c99 100644 +index a9aa21f5589dec453db1713c8846e0d2e687f552..9b94469d078d92e4b9e0c8149122b19a4d3b5307 100644 --- a/Source/WebKit/Shared/API/c/wpe/WebKit.h +++ b/Source/WebKit/Shared/API/c/wpe/WebKit.h -@@ -77,6 +77,7 @@ +@@ -76,6 +76,7 @@ // From Source/WebKit/UIProcess/API/C #include #include @@ -9178,6 +9220,18 @@ index caf67e1dece5b727e43eba780e70814f8fdb0f63..740150d2589d6e16a516daa3bf6ef899 #include #include #include +diff --git a/Source/WebKit/Shared/Cocoa/CompletionHandlerCallChecker.h b/Source/WebKit/Shared/Cocoa/CompletionHandlerCallChecker.h +index b09b17a5bff38e3ba8d6bb53da9ef09d229bdb61..46aa1caa93402711a08f5980387a957f783038e5 100644 +--- a/Source/WebKit/Shared/Cocoa/CompletionHandlerCallChecker.h ++++ b/Source/WebKit/Shared/Cocoa/CompletionHandlerCallChecker.h +@@ -27,6 +27,7 @@ + + #import + #import ++#import + + namespace WebKit { + diff --git a/Source/WebKit/Shared/NativeWebKeyboardEvent.h b/Source/WebKit/Shared/NativeWebKeyboardEvent.h index 17cb42104f3fe7e78388cdb1acd78efb34022f8d..c824a8c7ab5c4717773bff23c03156e744d192c0 100644 --- a/Source/WebKit/Shared/NativeWebKeyboardEvent.h @@ -9281,10 +9335,10 @@ index 72ad2880160a374e8fa663e561d59becf9d2f36d..372ae6953199245fe4fc55a49813c7ca #endif }; diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.cpp b/Source/WebKit/Shared/WebCoreArgumentCoders.cpp -index 11b208fe5a0ae0ae83d32bb7b7322517199436e5..745410a5e44445b7ab2362f91556bed8fb470240 100644 +index 1825429d961b31b096ec9e30fe12e01f3b44d04e..f0ce6330e02a5d40416df9eebed8e7a556b6f374 100644 --- a/Source/WebKit/Shared/WebCoreArgumentCoders.cpp +++ b/Source/WebKit/Shared/WebCoreArgumentCoders.cpp -@@ -192,6 +192,10 @@ +@@ -182,6 +182,10 @@ #include #endif @@ -9296,10 +9350,10 @@ index 11b208fe5a0ae0ae83d32bb7b7322517199436e5..745410a5e44445b7ab2362f91556bed8 namespace IPC { diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -index 82192403c221da47285a47ef1346581eb24a47d3..b09791570afe961e840bbcac04e9a87e5b113061 100644 +index 484326884f5ca5ab769a737c811e8bbe5e9cfb3d..92a6fc4a75f80a2fef6c9a702ce124b5780011ad 100644 --- a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in +++ b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -@@ -2480,6 +2480,9 @@ class WebCore::AuthenticationChallenge { +@@ -2589,6 +2589,9 @@ class WebCore::AuthenticationChallenge { class WebCore::DragData { #if PLATFORM(COCOA) String pasteboardName(); @@ -9309,7 +9363,7 @@ index 82192403c221da47285a47ef1346581eb24a47d3..b09791570afe961e840bbcac04e9a87e #endif WebCore::IntPoint clientPosition(); WebCore::IntPoint globalPosition(); -@@ -3044,6 +3047,7 @@ header: +@@ -3149,6 +3152,7 @@ header: String httpStatusText; String httpVersion; WebCore::HTTPHeaderMap httpHeaderFields; @@ -9435,10 +9489,10 @@ index a38fc7fde1d5f1a1fd04ae1f84eb59c1501deec5..d3669c3d3bad91468fbbeeaa328c3610 void setPosition(const WebCore::IntPoint& position) { m_position = position; } const WebCore::IntPoint& globalPosition() const { return m_globalPosition; } diff --git a/Source/WebKit/Shared/WebPageCreationParameters.h b/Source/WebKit/Shared/WebPageCreationParameters.h -index 60a4b766939b2531e0a5188144367cb669385ab2..8fef454523ce464e909b0246c17df55c96d8a428 100644 +index 680ebe78307fc1f22b4d3004eafe6f810d025a56..5609703d43d53f3fb52fe3d5ed0256969b13c69c 100644 --- a/Source/WebKit/Shared/WebPageCreationParameters.h +++ b/Source/WebKit/Shared/WebPageCreationParameters.h -@@ -280,6 +280,8 @@ struct WebPageCreationParameters { +@@ -288,6 +288,8 @@ struct WebPageCreationParameters { bool httpsUpgradeEnabled { true }; @@ -9448,10 +9502,10 @@ index 60a4b766939b2531e0a5188144367cb669385ab2..8fef454523ce464e909b0246c17df55c bool allowsDeprecatedSynchronousXMLHttpRequestDuringUnload { false }; #endif diff --git a/Source/WebKit/Shared/WebPageCreationParameters.serialization.in b/Source/WebKit/Shared/WebPageCreationParameters.serialization.in -index bafcdb2a6592c8796dce837c615d4fe82a22e904..e9c76f7ddf81a5e9367848a141e0463710d12d5e 100644 +index eebb7a21567e5c87d8349b19f8144de0b75ddf7d..7b0242aa8da6697d714cb01baeae494b3959c12d 100644 --- a/Source/WebKit/Shared/WebPageCreationParameters.serialization.in +++ b/Source/WebKit/Shared/WebPageCreationParameters.serialization.in -@@ -218,6 +218,8 @@ headers: "ArgumentCoders.h" +@@ -225,6 +225,8 @@ headers: "ArgumentCoders.h" bool httpsUpgradeEnabled; @@ -9494,10 +9548,10 @@ index 9a1c3f09c756ea368ac2d68e183a13e2eb47ead7..01c738376230f83376d80d6d225543a3 } diff --git a/Source/WebKit/Shared/libwpe/ArgumentCodersWPE.cpp b/Source/WebKit/Shared/libwpe/ArgumentCodersWPE.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..2065fa34cf3507834b48b07fe6a69cbd7c77aa23 +index 0000000000000000000000000000000000000000..c837e53b425d8f647a96398962f23a37fb2cfde5 --- /dev/null +++ b/Source/WebKit/Shared/libwpe/ArgumentCodersWPE.cpp -@@ -0,0 +1,171 @@ +@@ -0,0 +1,170 @@ +/* + * Copyright (C) 2011 Igalia S.L. + * @@ -9526,12 +9580,11 @@ index 0000000000000000000000000000000000000000..2065fa34cf3507834b48b07fe6a69cbd +#include "config.h" +#include "ArgumentCodersWPE.h" + -+#include "DataReference.h" -+#include "ShareableBitmap.h" +#include "WebCoreArgumentCoders.h" +#include +#include +#include ++#include + +namespace IPC { +using namespace WebCore; @@ -9730,10 +9783,10 @@ index 665b9d6a9de903ee9ad6dc53e15ab421b6cb769f..2b129963074d2ceec1c05f3a637c5e1c #endif // ENABLE(TOUCH_EVENTS) diff --git a/Source/WebKit/Sources.txt b/Source/WebKit/Sources.txt -index 25f789a4315b2fc9fbb05f718d5c489643d0047b..29ae191c6887a2be9fdc8b3773908b3f9546935c 100644 +index 80f43c5fd21a0e7b8cc9c4ef9a6bc4be1972a21a..2ba8d1e58f0bce43599191a4fd82607c7fe997ed 100644 --- a/Source/WebKit/Sources.txt +++ b/Source/WebKit/Sources.txt -@@ -377,6 +377,7 @@ Shared/XR/XRDeviceProxy.cpp +@@ -379,6 +379,7 @@ Shared/XR/XRDeviceProxy.cpp UIProcess/AuxiliaryProcessProxy.cpp UIProcess/BackgroundProcessResponsivenessTimer.cpp UIProcess/BrowsingContextGroup.cpp @@ -9741,7 +9794,7 @@ index 25f789a4315b2fc9fbb05f718d5c489643d0047b..29ae191c6887a2be9fdc8b3773908b3f UIProcess/DeviceIdHashSaltStorage.cpp UIProcess/DisplayLink.cpp UIProcess/DisplayLinkProcessProxyClient.cpp -@@ -384,16 +385,20 @@ UIProcess/DrawingAreaProxy.cpp +@@ -387,16 +388,20 @@ UIProcess/FindStringCallbackAggregator.cpp UIProcess/FrameLoadState.cpp UIProcess/GeolocationPermissionRequestManagerProxy.cpp UIProcess/GeolocationPermissionRequestProxy.cpp @@ -9762,7 +9815,7 @@ index 25f789a4315b2fc9fbb05f718d5c489643d0047b..29ae191c6887a2be9fdc8b3773908b3f UIProcess/RemotePageDrawingAreaProxy.cpp UIProcess/RemotePageProxy.cpp UIProcess/ResponsivenessTimer.cpp -@@ -437,6 +442,8 @@ UIProcess/WebOpenPanelResultListenerProxy.cpp +@@ -440,6 +445,8 @@ UIProcess/WebOpenPanelResultListenerProxy.cpp UIProcess/WebPageDiagnosticLoggingClient.cpp UIProcess/WebPageGroup.cpp UIProcess/WebPageInjectedBundleClient.cpp @@ -9771,7 +9824,7 @@ index 25f789a4315b2fc9fbb05f718d5c489643d0047b..29ae191c6887a2be9fdc8b3773908b3f UIProcess/WebPageProxy.cpp UIProcess/WebPageProxyMessageReceiverRegistration.cpp UIProcess/WebPasteboardProxy.cpp -@@ -568,7 +575,11 @@ UIProcess/Inspector/WebInspectorUtilities.cpp +@@ -574,7 +581,11 @@ UIProcess/Inspector/WebInspectorUtilities.cpp UIProcess/Inspector/WebPageDebuggable.cpp UIProcess/Inspector/WebPageInspectorController.cpp @@ -9784,10 +9837,10 @@ index 25f789a4315b2fc9fbb05f718d5c489643d0047b..29ae191c6887a2be9fdc8b3773908b3f UIProcess/Media/AudioSessionRoutingArbitratorProxy.cpp UIProcess/Media/MediaUsageManager.cpp diff --git a/Source/WebKit/SourcesCocoa.txt b/Source/WebKit/SourcesCocoa.txt -index 0cbd2b853fc4ce6725cc2e8e6044cf669117e82e..cb7356b9fe365699d571b63d110febb479bf4d36 100644 +index 187950f0b525a7658755ab44420f53103b2502e5..d78e4bcec5c3d5954be21e45b83ede25ae27c9d2 100644 --- a/Source/WebKit/SourcesCocoa.txt +++ b/Source/WebKit/SourcesCocoa.txt -@@ -260,6 +260,7 @@ UIProcess/API/Cocoa/_WKArchiveExclusionRule.mm +@@ -266,6 +266,7 @@ UIProcess/API/Cocoa/_WKArchiveExclusionRule.mm UIProcess/API/Cocoa/_WKAttachment.mm UIProcess/API/Cocoa/_WKAutomationSession.mm UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.mm @@ -9795,7 +9848,7 @@ index 0cbd2b853fc4ce6725cc2e8e6044cf669117e82e..cb7356b9fe365699d571b63d110febb4 UIProcess/API/Cocoa/_WKContentRuleListAction.mm UIProcess/API/Cocoa/_WKContextMenuElementInfo.mm UIProcess/API/Cocoa/_WKCustomHeaderFields.mm @no-unify -@@ -436,6 +437,7 @@ UIProcess/Inspector/ios/WKInspectorHighlightView.mm +@@ -444,6 +445,7 @@ UIProcess/Inspector/ios/WKInspectorHighlightView.mm UIProcess/Inspector/ios/WKInspectorNodeSearchGestureRecognizer.mm UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm @@ -9804,10 +9857,10 @@ index 0cbd2b853fc4ce6725cc2e8e6044cf669117e82e..cb7356b9fe365699d571b63d110febb4 UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm UIProcess/Inspector/mac/WKInspectorViewController.mm diff --git a/Source/WebKit/SourcesGTK.txt b/Source/WebKit/SourcesGTK.txt -index 027c12f9721800dc7b01ec4283e7df5e29071cf5..79330b09ad3a78fa5328e771b0e9d6bbe38da943 100644 +index 1929ffb033fd11f98991a13e84ff506418bf77b2..fd814286fedbe19a2987c91b0f3118bd8bf9c06e 100644 --- a/Source/WebKit/SourcesGTK.txt +++ b/Source/WebKit/SourcesGTK.txt -@@ -135,6 +135,7 @@ UIProcess/API/glib/WebKitAutomationSession.cpp @no-unify +@@ -132,6 +132,7 @@ UIProcess/API/glib/WebKitAutomationSession.cpp @no-unify UIProcess/API/glib/WebKitBackForwardList.cpp @no-unify UIProcess/API/glib/WebKitBackForwardListItem.cpp @no-unify UIProcess/API/glib/WebKitClipboardPermissionRequest.cpp @no-unify @@ -9815,15 +9868,15 @@ index 027c12f9721800dc7b01ec4283e7df5e29071cf5..79330b09ad3a78fa5328e771b0e9d6bb UIProcess/API/glib/WebKitContextMenuClient.cpp @no-unify UIProcess/API/glib/WebKitCookieManager.cpp @no-unify UIProcess/API/glib/WebKitCredential.cpp @no-unify -@@ -263,6 +264,7 @@ UIProcess/glib/DisplayLinkGLib.cpp +@@ -260,6 +261,7 @@ UIProcess/glib/DisplayLinkGLib.cpp UIProcess/glib/DisplayVBlankMonitor.cpp UIProcess/glib/DisplayVBlankMonitorDRM.cpp UIProcess/glib/DisplayVBlankMonitorTimer.cpp +UIProcess/glib/InspectorPlaywrightAgentClientGLib.cpp + UIProcess/glib/ScreenManager.cpp UIProcess/glib/WebPageProxyGLib.cpp UIProcess/glib/WebProcessPoolGLib.cpp - UIProcess/glib/WebProcessProxyGLib.cpp -@@ -277,6 +279,7 @@ UIProcess/gtk/ClipboardGtk4.cpp @no-unify +@@ -275,6 +277,7 @@ UIProcess/gtk/ClipboardGtk4.cpp @no-unify UIProcess/gtk/WebDateTimePickerGtk.cpp UIProcess/gtk/GtkSettingsManager.cpp UIProcess/gtk/HardwareAccelerationManager.cpp @@ -9831,7 +9884,7 @@ index 027c12f9721800dc7b01ec4283e7df5e29071cf5..79330b09ad3a78fa5328e771b0e9d6bb UIProcess/gtk/KeyBindingTranslator.cpp UIProcess/gtk/PointerLockManager.cpp @no-unify UIProcess/gtk/PointerLockManagerWayland.cpp @no-unify -@@ -289,6 +292,8 @@ UIProcess/gtk/ViewGestureControllerGtk.cpp +@@ -287,6 +290,8 @@ UIProcess/gtk/ViewGestureControllerGtk.cpp UIProcess/gtk/WebColorPickerGtk.cpp UIProcess/gtk/WebContextMenuProxyGtk.cpp UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp @@ -9841,10 +9894,10 @@ index 027c12f9721800dc7b01ec4283e7df5e29071cf5..79330b09ad3a78fa5328e771b0e9d6bb UIProcess/gtk/WebPasteboardProxyGtk.cpp UIProcess/gtk/WebPopupMenuProxyGtk.cpp diff --git a/Source/WebKit/SourcesWPE.txt b/Source/WebKit/SourcesWPE.txt -index 3adaea12d66c3c266b2199495273ff0180f97fb7..ec853296463255f0755e86a52a59a2f6c9f2b28d 100644 +index 614a7cb0f897415401b8e14322bfdac8b9bd31a0..be0c5049b40ac5f87ff95e446db847fe16cc7195 100644 --- a/Source/WebKit/SourcesWPE.txt +++ b/Source/WebKit/SourcesWPE.txt -@@ -91,6 +91,7 @@ Shared/glib/ProcessExecutablePathGLib.cpp +@@ -86,6 +86,7 @@ Shared/glib/ProcessExecutablePathGLib.cpp Shared/glib/UserMessage.cpp Shared/glib/WebContextMenuItemGlib.cpp @@ -9852,7 +9905,7 @@ index 3adaea12d66c3c266b2199495273ff0180f97fb7..ec853296463255f0755e86a52a59a2f6 Shared/libwpe/NativeWebKeyboardEventLibWPE.cpp Shared/libwpe/NativeWebMouseEventLibWPE.cpp Shared/libwpe/NativeWebTouchEventLibWPE.cpp -@@ -138,6 +139,7 @@ UIProcess/API/glib/WebKitAuthenticationRequest.cpp @no-unify +@@ -135,6 +136,7 @@ UIProcess/API/glib/WebKitAuthenticationRequest.cpp @no-unify UIProcess/API/glib/WebKitAutomationSession.cpp @no-unify UIProcess/API/glib/WebKitBackForwardList.cpp @no-unify UIProcess/API/glib/WebKitBackForwardListItem.cpp @no-unify @@ -9860,7 +9913,7 @@ index 3adaea12d66c3c266b2199495273ff0180f97fb7..ec853296463255f0755e86a52a59a2f6 UIProcess/API/glib/WebKitContextMenuClient.cpp @no-unify UIProcess/API/glib/WebKitCookieManager.cpp @no-unify UIProcess/API/glib/WebKitCredential.cpp @no-unify -@@ -171,6 +173,7 @@ UIProcess/API/glib/WebKitOptionMenu.cpp @no-unify +@@ -168,6 +170,7 @@ UIProcess/API/glib/WebKitOptionMenu.cpp @no-unify UIProcess/API/glib/WebKitOptionMenuItem.cpp @no-unify UIProcess/API/glib/WebKitPermissionRequest.cpp @no-unify UIProcess/API/glib/WebKitPermissionStateQuery.cpp @no-unify @@ -9868,7 +9921,7 @@ index 3adaea12d66c3c266b2199495273ff0180f97fb7..ec853296463255f0755e86a52a59a2f6 UIProcess/API/glib/WebKitPolicyDecision.cpp @no-unify UIProcess/API/glib/WebKitPrivate.cpp @no-unify UIProcess/API/glib/WebKitProtocolHandler.cpp @no-unify -@@ -207,6 +210,7 @@ UIProcess/API/soup/HTTPCookieStoreSoup.cpp +@@ -204,6 +207,7 @@ UIProcess/API/soup/HTTPCookieStoreSoup.cpp UIProcess/API/wpe/InputMethodFilterWPE.cpp @no-unify UIProcess/API/wpe/PageClientImpl.cpp @no-unify UIProcess/API/wpe/WebKitColor.cpp @no-unify @@ -9876,19 +9929,20 @@ index 3adaea12d66c3c266b2199495273ff0180f97fb7..ec853296463255f0755e86a52a59a2f6 UIProcess/API/wpe/WebKitInputMethodContextWPE.cpp @no-unify UIProcess/API/wpe/WebKitPopupMenu.cpp @no-unify UIProcess/API/wpe/WebKitRectangle.cpp @no-unify -@@ -231,6 +235,7 @@ UIProcess/glib/DisplayLinkGLib.cpp +@@ -226,6 +230,7 @@ UIProcess/glib/DisplayLinkGLib.cpp UIProcess/glib/DisplayVBlankMonitor.cpp UIProcess/glib/DisplayVBlankMonitorDRM.cpp UIProcess/glib/DisplayVBlankMonitorTimer.cpp +UIProcess/glib/InspectorPlaywrightAgentClientGLib.cpp + UIProcess/glib/ScreenManager.cpp UIProcess/glib/WebPageProxyGLib.cpp UIProcess/glib/WebProcessPoolGLib.cpp - UIProcess/glib/WebProcessProxyGLib.cpp -@@ -260,6 +265,11 @@ UIProcess/linux/MemoryPressureMonitor.cpp +@@ -256,7 +261,12 @@ UIProcess/linux/MemoryPressureMonitor.cpp UIProcess/soup/WebProcessPoolSoup.cpp UIProcess/wpe/AcceleratedBackingStoreDMABuf.cpp +UIProcess/wpe/InspectorTargetProxyWPE.cpp + UIProcess/wpe/ScreenManagerWPE.cpp +UIProcess/wpe/WebColorPickerWPE.cpp +UIProcess/wpe/WebDateTimePickerWPE.cpp +UIProcess/wpe/WebPageInspectorEmulationAgentWPE.cpp @@ -9896,7 +9950,7 @@ index 3adaea12d66c3c266b2199495273ff0180f97fb7..ec853296463255f0755e86a52a59a2f6 UIProcess/wpe/WebPageProxyWPE.cpp WebProcess/GPU/graphics/gbm/RemoteGraphicsContextGLProxyGBM.cpp -@@ -282,6 +292,8 @@ WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp +@@ -279,6 +289,8 @@ WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp @@ -9906,7 +9960,7 @@ index 3adaea12d66c3c266b2199495273ff0180f97fb7..ec853296463255f0755e86a52a59a2f6 WebProcess/WebPage/AcceleratedSurface.cpp diff --git a/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp b/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp -index f0a64f95150d18a01859d63daec57a997e0a033c..f1ec2f6f8042ca57f473ee9d0486ec35774c8bde 100644 +index 43e92894e25645b5a5de94c319fd69587a5c8d59..1b508155bb2713d2b1d5277ff51c1c9a74722aa6 100644 --- a/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp +++ b/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp @@ -52,6 +52,10 @@ Ref ProcessPoolConfiguration::copy() @@ -9921,7 +9975,7 @@ index f0a64f95150d18a01859d63daec57a997e0a033c..f1ec2f6f8042ca57f473ee9d0486ec35 copy->m_shouldTakeUIBackgroundAssertion = this->m_shouldTakeUIBackgroundAssertion; copy->m_shouldCaptureDisplayInUIProcess = this->m_shouldCaptureDisplayInUIProcess; diff --git a/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h b/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h -index dbbfea6be4b6f1ae3bd2070dc9b8e79fdbf28ff3..b7dd65cb00d64f67805597ba7a66f1a6f393f022 100644 +index 04148f6286dfbe53b02b0b0f6bf98bc3f82c929e..e6bb962ee44fb314c5185bf4f4688c47f3d16c46 100644 --- a/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h +++ b/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h @@ -96,6 +96,16 @@ public: @@ -9941,7 +9995,7 @@ index dbbfea6be4b6f1ae3bd2070dc9b8e79fdbf28ff3..b7dd65cb00d64f67805597ba7a66f1a6 bool alwaysRunsAtBackgroundPriority() const { return m_alwaysRunsAtBackgroundPriority; } void setAlwaysRunsAtBackgroundPriority(bool alwaysRunsAtBackgroundPriority) { m_alwaysRunsAtBackgroundPriority = alwaysRunsAtBackgroundPriority; } -@@ -167,6 +177,10 @@ private: +@@ -173,6 +183,10 @@ private: bool m_ignoreSynchronousMessagingTimeoutsForTesting { false }; bool m_attrStyleEnabled { false }; bool m_shouldThrowExceptionForGlobalConstantRedeclaration { true }; @@ -9953,7 +10007,7 @@ index dbbfea6be4b6f1ae3bd2070dc9b8e79fdbf28ff3..b7dd65cb00d64f67805597ba7a66f1a6 bool m_shouldTakeUIBackgroundAssertion { true }; bool m_shouldCaptureDisplayInUIProcess { DEFAULT_CAPTURE_DISPLAY_IN_UI_PROCESS }; diff --git a/Source/WebKit/UIProcess/API/APIUIClient.h b/Source/WebKit/UIProcess/API/APIUIClient.h -index 2705d0c8de8abefe9ee5b144b7bc7337d8c97bc0..79e0c1e16d3d839a3c38ebf79cbc931f0227c6b5 100644 +index 06b83708038f6d39aa841f941f9490f45d5e90ed..e2300ca79ed61c378cb2024e23ef83281ae8b7d0 100644 --- a/Source/WebKit/UIProcess/API/APIUIClient.h +++ b/Source/WebKit/UIProcess/API/APIUIClient.h @@ -113,6 +113,7 @@ public: @@ -10008,7 +10062,7 @@ index 026121d114c5fcad84c1396be8d692625beaa3bd..edd6e5cae033124c589959a42522fde0 } #endif diff --git a/Source/WebKit/UIProcess/API/C/WKPage.cpp b/Source/WebKit/UIProcess/API/C/WKPage.cpp -index 7cdd74be483252b47bd681dbab7c6810e2861f08..f89fc5a069b1ab132d5a45a744ca6802302fb2af 100644 +index 5ef4d1ec4a8361bca454c442f4c4d1b48e0eaac1..69351093501860555a272f527eade8e646fd5220 100644 --- a/Source/WebKit/UIProcess/API/C/WKPage.cpp +++ b/Source/WebKit/UIProcess/API/C/WKPage.cpp @@ -1785,6 +1785,13 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient @@ -10095,10 +10149,10 @@ index 1484f064ec89ee8c25c35df9f0a4462896699415..0622f4d5fc9144b9059395d9d0730a4a // Version 15. WKPageDecidePolicyForSpeechRecognitionPermissionRequestCallback decidePolicyForSpeechRecognitionPermissionRequest; diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm b/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm -index 06f4f8c01e1cb79cadc97b2b027e863598d4c80b..b0c7b5a2e955be3c017c07282b43ad916013bb60 100644 +index 3f244fd88e065457eb8bb059fa99c1c4ebda652e..4c693abf384d418f926281b684fe95ba876950ef 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm -@@ -706,6 +706,16 @@ - (void)_setMediaCaptureRequiresSecureConnection:(BOOL)requiresSecureConnection +@@ -697,6 +697,16 @@ - (void)_setMediaCaptureRequiresSecureConnection:(BOOL)requiresSecureConnection _preferences->setMediaCaptureRequiresSecureConnection(requiresSecureConnection); } @@ -10116,10 +10170,10 @@ index 06f4f8c01e1cb79cadc97b2b027e863598d4c80b..b0c7b5a2e955be3c017c07282b43ad91 { return _preferences->inactiveMediaCaptureSteamRepromptIntervalInMinutes(); diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h b/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h -index bfbccd96e33ba6be40a5e48e193a89642d654ecd..c3882525c854709a5d9e753cebbd2d6d225f1f66 100644 +index 2d7258f213b74356c8ab3e47923016dd4554e672..0f8977d00655cd4c36ae280c8c27c52f8dd0c09f 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h +++ b/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h -@@ -121,6 +121,7 @@ typedef NS_ENUM(NSInteger, _WKPitchCorrectionAlgorithm) { +@@ -118,6 +118,7 @@ typedef NS_ENUM(NSInteger, _WKPitchCorrectionAlgorithm) { @property (nonatomic, setter=_setMockCaptureDevicesEnabled:) BOOL _mockCaptureDevicesEnabled WK_API_AVAILABLE(macos(10.13), ios(11.0)); @property (nonatomic, setter=_setMockCaptureDevicesPromptEnabled:) BOOL _mockCaptureDevicesPromptEnabled WK_API_AVAILABLE(macos(10.13.4), ios(11.3)); @property (nonatomic, setter=_setMediaCaptureRequiresSecureConnection:) BOOL _mediaCaptureRequiresSecureConnection WK_API_AVAILABLE(macos(10.13), ios(11.0)); @@ -10166,10 +10220,10 @@ index 4f5956098f0e83c2e9c421c97056b6718b124a3c..1eb51dd70dc6ef1b7e95a09118aa816b NS_ASSUME_NONNULL_END diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm -index fbf31f22087d243e4cf5a5c262eb068ae9f02b29..8f1379d479a2556879d17f090618225ce08872a7 100644 +index 0823e17265feef5d11c2dc45b1d60c4d4bccdc69..1273d076401326c34f06c87479f458b379b8632f 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm -@@ -50,6 +50,7 @@ +@@ -51,6 +51,7 @@ #import "_WKResourceLoadStatisticsThirdPartyInternal.h" #import "_WKWebsiteDataStoreConfigurationInternal.h" #import "_WKWebsiteDataStoreDelegate.h" @@ -10177,7 +10231,7 @@ index fbf31f22087d243e4cf5a5c262eb068ae9f02b29..8f1379d479a2556879d17f090618225c #import #import #import -@@ -405,6 +406,11 @@ - (void)removeDataOfTypes:(NSSet *)dataTypes modifiedSince:(NSDate *)date comple +@@ -426,6 +427,11 @@ - (void)removeDataOfTypes:(NSSet *)dataTypes modifiedSince:(NSDate *)date comple }); } @@ -10317,7 +10371,7 @@ index 0000000000000000000000000000000000000000..69eb9c6aa30beb8ea21a0ef647e46304 +} +@end diff --git a/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h b/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h -index f3ace77b4d203c03dc28b31711245dd42d339f67..9006770a34b95b48c346066dc5e447eda15c46f4 100644 +index da0374cf56919b7324a90586d0a7009bfe895be1..1a6f5ff024592a6c3a5c7018045e0a5015aac2c0 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)) @@ -10329,7 +10383,7 @@ index f3ace77b4d203c03dc28b31711245dd42d339f67..9006770a34b95b48c346066dc5e447ed @property (nonatomic) BOOL processSwapsOnNavigationWithinSameNonHTTPFamilyProtocol WK_API_AVAILABLE(macos(12.0), ios(15.0)); @property (nonatomic) BOOL prewarmsProcessesAutomatically WK_API_AVAILABLE(macos(10.14.4), ios(12.2)); diff --git a/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm b/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm -index 2827f2dbaac2a478c4e4e44f00d8d31f923d609f..abed07fed192f34d7636c53b6ce38856bf51e088 100644 +index df71be1e30c4a13fe9565d309c7bbfb82e049d06..8424a471e7841d300174aa54143578f8d18ad15f 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm @@ -241,6 +241,16 @@ - (BOOL)processSwapsOnNavigation @@ -10672,10 +10726,10 @@ 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 28f1f70a5caf1b2736d0995c6fefe31ef0029a5b..abc294f091d8315bb9bbdc8f51efd8e47498300b 100644 +index 26a9142a4d700d9b00bd6de922e3899dd387b46b..117c216c3d806c64a5a1aa8ae355e6a4cdf41eca 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp -@@ -34,6 +34,7 @@ +@@ -33,6 +33,7 @@ #include "WebContextMenuItem.h" #include "WebContextMenuItemData.h" #include "WebFrameProxy.h" @@ -10683,7 +10737,7 @@ index 28f1f70a5caf1b2736d0995c6fefe31ef0029a5b..abc294f091d8315bb9bbdc8f51efd8e4 #include "WebKitAuthenticationRequestPrivate.h" #include "WebKitBackForwardListPrivate.h" #include "WebKitContextMenuClient.h" -@@ -51,6 +52,7 @@ +@@ -50,6 +51,7 @@ #include "WebKitNavigationClient.h" #include "WebKitNotificationPrivate.h" #include "WebKitPermissionStateQueryPrivate.h" @@ -10691,7 +10745,7 @@ index 28f1f70a5caf1b2736d0995c6fefe31ef0029a5b..abc294f091d8315bb9bbdc8f51efd8e4 #include "WebKitPrivate.h" #include "WebKitResponsePolicyDecision.h" #include "WebKitScriptDialogPrivate.h" -@@ -91,7 +93,6 @@ +@@ -89,7 +91,6 @@ #include "GtkSettingsManager.h" #include "WebKitFaviconDatabasePrivate.h" #include "WebKitInputMethodContextImplGtk.h" @@ -10699,7 +10753,7 @@ index 28f1f70a5caf1b2736d0995c6fefe31ef0029a5b..abc294f091d8315bb9bbdc8f51efd8e4 #include "WebKitPrintOperationPrivate.h" #include "WebKitWebInspectorPrivate.h" #include "WebKitWebViewBasePrivate.h" -@@ -142,6 +143,7 @@ enum { +@@ -140,6 +141,7 @@ enum { CLOSE, SCRIPT_DIALOG, @@ -10707,7 +10761,7 @@ index 28f1f70a5caf1b2736d0995c6fefe31ef0029a5b..abc294f091d8315bb9bbdc8f51efd8e4 DECIDE_POLICY, PERMISSION_REQUEST, -@@ -495,6 +497,9 @@ GRefPtr WebKitWebViewClient::showOptionMenu(WebKitPopupMenu& p +@@ -493,6 +495,9 @@ GRefPtr WebKitWebViewClient::showOptionMenu(WebKitPopupMenu& p void WebKitWebViewClient::frameDisplayed(WKWPE::View&) { @@ -10717,7 +10771,7 @@ index 28f1f70a5caf1b2736d0995c6fefe31ef0029a5b..abc294f091d8315bb9bbdc8f51efd8e4 { SetForScope inFrameDisplayedGuard(m_webView->priv->inFrameDisplayed, true); for (const auto& callback : m_webView->priv->frameDisplayedCallbacks) { -@@ -511,6 +516,11 @@ void WebKitWebViewClient::frameDisplayed(WKWPE::View&) +@@ -509,6 +514,11 @@ void WebKitWebViewClient::frameDisplayed(WKWPE::View&) } } @@ -10729,7 +10783,7 @@ index 28f1f70a5caf1b2736d0995c6fefe31ef0029a5b..abc294f091d8315bb9bbdc8f51efd8e4 void WebKitWebViewClient::willStartLoad(WKWPE::View&) { webkitWebViewWillStartLoad(m_webView); -@@ -597,7 +607,7 @@ static gboolean webkitWebViewDecidePolicy(WebKitWebView*, WebKitPolicyDecision* +@@ -595,7 +605,7 @@ static gboolean webkitWebViewDecidePolicy(WebKitWebView*, WebKitPolicyDecision* static gboolean webkitWebViewPermissionRequest(WebKitWebView*, WebKitPermissionRequest* request) { @@ -10738,7 +10792,7 @@ index 28f1f70a5caf1b2736d0995c6fefe31ef0029a5b..abc294f091d8315bb9bbdc8f51efd8e4 if (WEBKIT_IS_POINTER_LOCK_PERMISSION_REQUEST(request)) { webkit_permission_request_allow(request); return TRUE; -@@ -1904,6 +1914,15 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) +@@ -1902,6 +1912,15 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) G_TYPE_BOOLEAN, 1, WEBKIT_TYPE_SCRIPT_DIALOG); @@ -10754,7 +10808,7 @@ index 28f1f70a5caf1b2736d0995c6fefe31ef0029a5b..abc294f091d8315bb9bbdc8f51efd8e4 /** * WebKitWebView::decide-policy: * @web_view: the #WebKitWebView on which the signal is emitted -@@ -2706,6 +2725,23 @@ void webkitWebViewRunJavaScriptBeforeUnloadConfirm(WebKitWebView* webView, const +@@ -2701,6 +2720,23 @@ void webkitWebViewRunJavaScriptBeforeUnloadConfirm(WebKitWebView* webView, const webkit_script_dialog_unref(webView->priv->currentScriptDialog); } @@ -10803,7 +10857,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 f3fd0687050371f28230a348765d9e45b42127fe..c75d6ffe185378159305ab5caf44284b4ba38ed3 100644 +index 5f65faca6a85c1c344cd41df3e1e7edda783eae9..31154cc107ada818a1a4550b4d619c70b7f79d0d 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 @@ -10815,7 +10869,7 @@ index f3fd0687050371f28230a348765d9e45b42127fe..c75d6ffe185378159305ab5caf44284b // Always consider arrow keys as handled, otherwise the GtkWindow key bindings will move the focus. guint keyval; -@@ -355,9 +357,9 @@ void PageClientImpl::selectionDidChange() +@@ -359,9 +361,9 @@ void PageClientImpl::selectionDidChange() webkitWebViewSelectionDidChange(WEBKIT_WEB_VIEW(m_viewWidget)); } @@ -10828,7 +10882,7 @@ index f3fd0687050371f28230a348765d9e45b42127fe..c75d6ffe185378159305ab5caf44284b 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 f4478ecd25baf61176a6325d563e44985c4a4418..171f922bb867dff5fe02b5116e895d8f0fb3e2a0 100644 +index 0445554dc296421d56237b07ea8d09b6e5e533b5..d7d91b30309e7106ae801aaad8162277ed636d1b 100644 --- a/Source/WebKit/UIProcess/API/gtk/PageClientImpl.h +++ b/Source/WebKit/UIProcess/API/gtk/PageClientImpl.h @@ -105,7 +105,7 @@ private: @@ -10838,7 +10892,7 @@ index f4478ecd25baf61176a6325d563e44985c4a4418..171f922bb867dff5fe02b5116e895d8f - 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 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 @@ -10941,10 +10995,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 0ac555f8a18a55c0aab84b59753057616c477998..3938e923c698d8a407ee494b30437e14c965b6fd 100644 +index b70030ed4a69a53e8f8453ebff3e3040193dfbd1..0d1de922dd3170607fc10effcee1d9549b1eecdc 100644 --- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp +++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -@@ -2853,6 +2853,11 @@ void webkitWebViewBaseResetClickCounter(WebKitWebViewBase* webkitWebViewBase) +@@ -2924,6 +2924,11 @@ void webkitWebViewBaseResetClickCounter(WebKitWebViewBase* webkitWebViewBase) #endif } @@ -10956,7 +11010,7 @@ index 0ac555f8a18a55c0aab84b59753057616c477998..3938e923c698d8a407ee494b30437e14 void webkitWebViewBaseEnterAcceleratedCompositingMode(WebKitWebViewBase* webkitWebViewBase, const LayerTreeContext& layerTreeContext) { ASSERT(webkitWebViewBase->priv->acceleratedBackingStore); -@@ -2909,12 +2914,12 @@ void webkitWebViewBasePageClosed(WebKitWebViewBase* webkitWebViewBase) +@@ -2980,12 +2985,12 @@ void webkitWebViewBasePageClosed(WebKitWebViewBase* webkitWebViewBase) webkitWebViewBase->priv->acceleratedBackingStore->update({ }); } @@ -10972,7 +11026,7 @@ index 0ac555f8a18a55c0aab84b59753057616c477998..3938e923c698d8a407ee494b30437e14 #if !USE(GTK4) diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h -index 19ec058363303ae2cd82189e072a04f70a49d061..f364b0c8a51f228235c3af83384067903e628d06 100644 +index 1e98b90627322094b58b60f06b9b2294b8e79d63..1fa990e53ce63e5f54d68928d0d8d3f7c64062b3 100644 --- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h +++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h @@ -27,6 +27,7 @@ @@ -10983,7 +11037,7 @@ index 19ec058363303ae2cd82189e072a04f70a49d061..f364b0c8a51f228235c3af8338406790 #include "APIPageConfiguration.h" #include "InputMethodState.h" #include "SameDocumentNavigationType.h" -@@ -102,7 +103,7 @@ void webkitWebViewBaseStartDrag(WebKitWebViewBase*, WebCore::SelectionData&&, Op +@@ -106,7 +107,7 @@ void webkitWebViewBaseStartDrag(WebKitWebViewBase*, WebCore::SelectionData&&, Op void webkitWebViewBaseDidPerformDragControllerAction(WebKitWebViewBase*); #endif @@ -10992,10 +11046,10 @@ index 19ec058363303ae2cd82189e072a04f70a49d061..f364b0c8a51f228235c3af8338406790 void webkitWebViewBaseSetEnableBackForwardNavigationGesture(WebKitWebViewBase*, bool enabled); WebKit::ViewGestureController* webkitWebViewBaseViewGestureController(WebKitWebViewBase*); -@@ -137,3 +138,5 @@ void webkitWebViewBaseToplevelWindowStateChanged(WebKitWebViewBase*, uint32_t, u - void webkitWebViewBaseToplevelWindowMonitorChanged(WebKitWebViewBase*, GdkMonitor*); - - void webkitWebViewBaseCallAfterNextPresentationUpdate(WebKitWebViewBase*, CompletionHandler&&); +@@ -145,3 +146,5 @@ void webkitWebViewBaseCallAfterNextPresentationUpdate(WebKitWebViewBase*, Comple + #if USE(GTK4) + void webkitWebViewBaseSetPlugID(WebKitWebViewBase*, const String&); + #endif + +WebKit::AcceleratedBackingStore* webkitWebViewBaseGetAcceleratedBackingStore(WebKitWebViewBase*); diff --git a/Source/WebKit/UIProcess/API/wpe/APIViewClient.h b/Source/WebKit/UIProcess/API/wpe/APIViewClient.h @@ -11021,7 +11075,7 @@ index 26d1790017e528f26ae04dac635678d5494bfd04..48dbe50eb05628307264a350350ac19f 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 d56de4b5b13b2d522532cfef6691083aabe3361c..6eb9204cecaad4f832478bbf8f01d0f94e940f3d 100644 +index ab920ef03db906e90613cdb4a4369169a2bf1cbe..d4deb4bad543ff8692b79ecbd3a6d74f8b53915e 100644 --- a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp +++ b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp @@ -33,9 +33,13 @@ @@ -11038,7 +11092,7 @@ index d56de4b5b13b2d522532cfef6691083aabe3361c..6eb9204cecaad4f832478bbf8f01d0f9 #include #include #include -@@ -203,7 +207,7 @@ WebCore::IntPoint PageClientImpl::accessibilityScreenToRootView(const WebCore::I +@@ -200,7 +204,7 @@ WebCore::IntPoint PageClientImpl::accessibilityScreenToRootView(const WebCore::I WebCore::IntRect PageClientImpl::rootViewToAccessibilityScreen(const WebCore::IntRect& rect) { @@ -11047,7 +11101,7 @@ index d56de4b5b13b2d522532cfef6691083aabe3361c..6eb9204cecaad4f832478bbf8f01d0f9 } void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent&, bool) -@@ -465,9 +469,55 @@ void PageClientImpl::selectionDidChange() +@@ -460,6 +464,33 @@ void PageClientImpl::selectionDidChange() m_view.selectionDidChange(); } @@ -11081,6 +11135,8 @@ index d56de4b5b13b2d522532cfef6691083aabe3361c..6eb9204cecaad4f832478bbf8f01d0f9 WebKitWebResourceLoadManager* PageClientImpl::webResourceLoadManager() { return m_view.webResourceLoadManager(); +@@ -470,4 +501,23 @@ void PageClientImpl::callAfterNextPresentationUpdate(CompletionHandler&& + m_view.callAfterNextPresentationUpdate(WTFMove(callback)); } +#if ENABLE(DATALIST_ELEMENT) @@ -11104,10 +11160,10 @@ index d56de4b5b13b2d522532cfef6691083aabe3361c..6eb9204cecaad4f832478bbf8f01d0f9 + } // namespace WebKit diff --git a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h -index a9d4dce37f48a796beebfd6fe830a5f487464eac..9c0b4bda1834a74b49744a3c28032815dadffbe8 100644 +index dbd9dd946fceebb49b70d6600b1e654e2f0cc0a6..22c6839e2e7c9aa435be04727c6218a88aa29dc1 100644 --- a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h +++ b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h -@@ -165,9 +165,21 @@ private: +@@ -164,9 +164,21 @@ private: void didChangeWebPageID() const override; void selectionDidChange() override; @@ -11130,10 +11186,10 @@ index a9d4dce37f48a796beebfd6fe830a5f487464eac..9c0b4bda1834a74b49744a3c28032815 }; diff --git a/Source/WebKit/UIProcess/API/wpe/WPEWebView.cpp b/Source/WebKit/UIProcess/API/wpe/WPEWebView.cpp -index b451b164d5b4db602227eccf847a1d970ff18b53..d39b0e69d71370f3faf391b25bc993fcfcee8649 100644 +index 7963c80c34554e26cbec5feb4c8c802385b3a465..1e653564db64bab16dca83edb7b7f6e82214275e 100644 --- a/Source/WebKit/UIProcess/API/wpe/WPEWebView.cpp +++ b/Source/WebKit/UIProcess/API/wpe/WPEWebView.cpp -@@ -92,7 +92,9 @@ View::View(struct wpe_view_backend* backend, WPEDisplay* display, const API::Pag +@@ -97,7 +97,9 @@ View::View(struct wpe_view_backend* backend, WPEDisplay* display, const API::Pag if (preferences) { preferences->setAcceleratedCompositingEnabled(true); preferences->setForceCompositingMode(true); @@ -11438,10 +11494,10 @@ index 720c88818bdb4cde3cb58e95785454754f6c1396..7f702c0b922e13128522d2bb1ace6a23 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 366d7094ee559f5d802fd8ae3fc8a7ebb1cd4e3d..bae518ccad18ef63895d27de30238ada41397a63 100644 +index 34079e24bb2450ff52788ffc9e5acfdd0e42513a..f4b618f175230e7a96d1dc3a68030ab923ae9a50 100644 --- a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp +++ b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp -@@ -154,7 +154,11 @@ void AuxiliaryProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& lau +@@ -153,7 +153,11 @@ void AuxiliaryProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& lau launchOptions.processCmdPrefix = String::fromUTF8(processCmdPrefix); #endif // ENABLE(DEVELOPER_MODE) && (PLATFORM(GTK) || PLATFORM(WPE)) @@ -11454,10 +11510,10 @@ index 366d7094ee559f5d802fd8ae3fc8a7ebb1cd4e3d..bae518ccad18ef63895d27de30238ada platformGetLaunchOptions(launchOptions); } diff --git a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h -index da9e76273c950d14cb6a4fdded0b8602869ff138..6bee432a0eeb10a0779ee1c6d11a8f1a8e1b17d0 100644 +index 631906d5b435cd2c5393be2487675851991aaa3f..ec9826641ce6c890a766a0641ba857a17d793b47 100644 --- a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h +++ b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h -@@ -230,13 +230,16 @@ protected: +@@ -256,13 +256,16 @@ protected: static RefPtr fetchAudioComponentServerRegistrations(); #endif @@ -11475,6 +11531,18 @@ index da9e76273c950d14cb6a4fdded0b8602869ff138..6bee432a0eeb10a0779ee1c6d11a8f1a void platformStartConnectionTerminationWatchdog(); ResponsivenessTimer m_responsivenessTimer; +diff --git a/Source/WebKit/UIProcess/BackingStore.h b/Source/WebKit/UIProcess/BackingStore.h +index 20d652a341434ac37fd64bfb0b3abdc78d9a59b0..d603912e707f0b6662c6ac82fc7966fc91bda2fc 100644 +--- a/Source/WebKit/UIProcess/BackingStore.h ++++ b/Source/WebKit/UIProcess/BackingStore.h +@@ -54,6 +54,7 @@ public: + float deviceScaleFactor() const { return m_deviceScaleFactor; } + + void paint(PlatformPaintContextPtr, const WebCore::IntRect&); ++ RefPtr surface() const { return m_surface; } + void incorporateUpdate(UpdateInfo&&); + + private: diff --git a/Source/WebKit/UIProcess/BrowserInspectorPipe.cpp b/Source/WebKit/UIProcess/BrowserInspectorPipe.cpp new file mode 100644 index 0000000000000000000000000000000000000000..cfb57a48ce387b79613b757e2eb4de2c378aac30 @@ -11607,8 +11675,20 @@ index 957f7f088087169668a9b4f1ba65d9f206a2a836..15e44c8d5b6a3eafb7f1148707366b0c // FSM: Idle => Active => Completed class PopUpSOAuthorizationSession final : public SOAuthorizationSession { public: +diff --git a/Source/WebKit/UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm b/Source/WebKit/UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm +index cf38fc10398dedc434a58de0cb8825c7284bc06f..6250135f505f4d64b1fbd7f59bd2166cb9bf7842 100644 +--- a/Source/WebKit/UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm ++++ b/Source/WebKit/UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm +@@ -28,6 +28,7 @@ + + #if HAVE(APP_SSO) + ++#import "Logging.h" + #import "SOAuthorizationSession.h" + #import "WebPageProxy.h" + #import diff --git a/Source/WebKit/UIProcess/Cocoa/UIDelegate.h b/Source/WebKit/UIProcess/Cocoa/UIDelegate.h -index f0247c0950af133e8f98b1eee872e55b53f83735..cd6c138502861228dfb19d9177396266a89cea6e 100644 +index acf00168d52b636eec6e7482488254bada5e4008..8d7b676ea54b2b3df7dd9f80295b4faba131cde0 100644 --- a/Source/WebKit/UIProcess/Cocoa/UIDelegate.h +++ b/Source/WebKit/UIProcess/Cocoa/UIDelegate.h @@ -96,6 +96,7 @@ private: @@ -11619,7 +11699,7 @@ index f0247c0950af133e8f98b1eee872e55b53f83735..cd6c138502861228dfb19d9177396266 void presentStorageAccessConfirmDialog(const WTF::String& requestingDomain, const WTF::String& currentDomain, CompletionHandler&&); void requestStorageAccessConfirm(WebPageProxy&, WebFrameProxy*, const WebCore::RegistrableDomain& requestingDomain, const WebCore::RegistrableDomain& currentDomain, std::optional&&, CompletionHandler&&) final; void decidePolicyForGeolocationPermissionRequest(WebPageProxy&, WebFrameProxy&, const FrameInfoData&, Function&) final; -@@ -206,6 +207,7 @@ private: +@@ -205,6 +206,7 @@ private: bool webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler : 1; bool webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler : 1; bool webViewRunJavaScriptTextInputPanelWithPromptDefaultTextInitiatedByFrameCompletionHandler : 1; @@ -11628,7 +11708,7 @@ index f0247c0950af133e8f98b1eee872e55b53f83735..cd6c138502861228dfb19d9177396266 bool webViewRunBeforeUnloadConfirmPanelWithMessageInitiatedByFrameCompletionHandler : 1; bool webViewRequestGeolocationPermissionForFrameDecisionHandler : 1; diff --git a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm -index c7e0d4dc60a0788898550f365db73e56bbf29b71..fd146a6bc8e8699745cdf42114dd0e672d870a5a 100644 +index fd2cd1359a933a739ec12958dbb789f77874f7ae..5a702f652051541bf9c7c591ea2d29ae6f392034 100644 --- a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm +++ b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm @@ -117,6 +117,7 @@ void UIDelegate::setDelegate(id delegate) @@ -11639,7 +11719,7 @@ index c7e0d4dc60a0788898550f365db73e56bbf29b71..fd146a6bc8e8699745cdf42114dd0e67 m_delegateMethods.webViewRequestStorageAccessPanelUnderFirstPartyCompletionHandler = [delegate respondsToSelector:@selector(_webView:requestStorageAccessPanelForDomain:underCurrentDomain:completionHandler:)]; m_delegateMethods.webViewRunBeforeUnloadConfirmPanelWithMessageInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(_webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:completionHandler:)]; m_delegateMethods.webViewRequestGeolocationPermissionForOriginDecisionHandler = [delegate respondsToSelector:@selector(_webView:requestGeolocationPermissionForOrigin:initiatedByFrame:decisionHandler:)]; -@@ -436,6 +437,15 @@ void UIDelegate::UIClient::runJavaScriptPrompt(WebPageProxy& page, const WTF::St +@@ -437,6 +438,15 @@ void UIDelegate::UIClient::runJavaScriptPrompt(WebPageProxy& page, const WTF::St }).get()]; } @@ -11656,7 +11736,7 @@ index c7e0d4dc60a0788898550f365db73e56bbf29b71..fd146a6bc8e8699745cdf42114dd0e67 { if (!m_uiDelegate) diff --git a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm -index 6e1f94997e239818ab598513619ebca04a7d9939..729d8d078d18240aabca71aabab54ca325d93ca9 100644 +index f0f7d8a806b2cae4551c3c3d98b710ed91c80231..7b66039ebcccc990e6ada097aac95ddb3cce4c7d 100644 --- a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm +++ b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm @@ -38,6 +38,7 @@ @@ -11667,7 +11747,7 @@ index 6e1f94997e239818ab598513619ebca04a7d9939..729d8d078d18240aabca71aabab54ca3 #import "PlaybackSessionManagerProxy.h" #import "QuickLookThumbnailLoader.h" #import "RemoteLayerTreeTransaction.h" -@@ -279,10 +280,87 @@ bool WebPageProxy::scrollingUpdatesDisabledForTesting() +@@ -282,10 +283,87 @@ bool WebPageProxy::scrollingUpdatesDisabledForTesting() void WebPageProxy::startDrag(const DragItem& dragItem, ShareableBitmap::Handle&& dragImageHandle) { @@ -11704,7 +11784,7 @@ index 6e1f94997e239818ab598513619ebca04a7d9939..729d8d078d18240aabca71aabab54ca3 + return; + } + - pageClient().startDrag(dragItem, WTFMove(dragImageHandle)); + protectedPageClient()->startDrag(dragItem, WTFMove(dragImageHandle)); } -#endif @@ -11757,10 +11837,10 @@ index 6e1f94997e239818ab598513619ebca04a7d9939..729d8d078d18240aabca71aabab54ca3 #if ENABLE(ATTACHMENT_ELEMENT) diff --git a/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm b/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm -index d28a3b778536b32488d5b0a2ba7fa3675459fd3d..a39b7c0f4f678f745c634a3cea801bf3f3178b4f 100644 +index 530f8810360f4f5c5f4f48ea5e0d7ab87853955d..de230982f2a5efd16708666705918a4c24c8a3fb 100644 --- a/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm +++ b/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm -@@ -402,7 +402,7 @@ ALLOW_DEPRECATED_DECLARATIONS_END +@@ -425,7 +425,7 @@ ALLOW_DEPRECATED_DECLARATIONS_END auto screenProperties = WebCore::collectScreenProperties(); parameters.screenProperties = WTFMove(screenProperties); #if PLATFORM(MAC) @@ -11769,7 +11849,7 @@ index d28a3b778536b32488d5b0a2ba7fa3675459fd3d..a39b7c0f4f678f745c634a3cea801bf3 #endif #if (PLATFORM(IOS) || PLATFORM(VISION)) && HAVE(AGX_COMPILER_SERVICE) -@@ -753,8 +753,8 @@ void WebProcessPool::registerNotificationObservers() +@@ -776,8 +776,8 @@ void WebProcessPool::registerNotificationObservers() }]; m_scrollerStyleNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSPreferredScrollerStyleDidChangeNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) { @@ -11781,7 +11861,7 @@ index d28a3b778536b32488d5b0a2ba7fa3675459fd3d..a39b7c0f4f678f745c634a3cea801bf3 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 567d62f16b9be2e1dff1110031ee7e2b213af790..c3ff92f3e256e62050d38dad05565429585d7ea0 100644 +index 6b37fca9aca846b0474fb108d5cd5b5aab8caf9c..0479d229e73e7133fb72710b4413f96dc54f51b2 100644 --- a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp +++ b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp @@ -33,14 +33,17 @@ @@ -11802,8 +11882,8 @@ index 567d62f16b9be2e1dff1110031ee7e2b213af790..c3ff92f3e256e62050d38dad05565429 #include #endif -@@ -52,6 +55,13 @@ - #include "BackingStore.h" +@@ -48,6 +51,13 @@ + #include #endif +#if PLATFORM(WIN) @@ -11816,7 +11896,7 @@ index 567d62f16b9be2e1dff1110031ee7e2b213af790..c3ff92f3e256e62050d38dad05565429 namespace WebKit { using namespace WebCore; -@@ -164,6 +174,11 @@ void DrawingAreaProxyCoordinatedGraphics::deviceScaleFactorDidChange() +@@ -160,6 +170,11 @@ void DrawingAreaProxyCoordinatedGraphics::deviceScaleFactorDidChange() send(Messages::DrawingArea::SetDeviceScaleFactor(m_webPageProxy->deviceScaleFactor())); } @@ -11827,8 +11907,8 @@ index 567d62f16b9be2e1dff1110031ee7e2b213af790..c3ff92f3e256e62050d38dad05565429 + void DrawingAreaProxyCoordinatedGraphics::setBackingStoreIsDiscardable(bool isBackingStoreDiscardable) { - #if !PLATFORM(WPE) -@@ -225,6 +240,45 @@ void DrawingAreaProxyCoordinatedGraphics::updateAcceleratedCompositingMode(uint6 + #if USE(GRAPHICS_LAYER_WC) || (USE(CAIRO) && !PLATFORM(WPE)) +@@ -221,6 +236,45 @@ void DrawingAreaProxyCoordinatedGraphics::updateAcceleratedCompositingMode(uint6 updateAcceleratedCompositingMode(layerTreeContext); } @@ -11874,7 +11954,7 @@ index 567d62f16b9be2e1dff1110031ee7e2b213af790..c3ff92f3e256e62050d38dad05565429 bool DrawingAreaProxyCoordinatedGraphics::alwaysUseCompositing() const { return m_webPageProxy->preferences().acceleratedCompositingEnabled() && m_webPageProxy->preferences().forceCompositingMode(); -@@ -279,6 +333,11 @@ void DrawingAreaProxyCoordinatedGraphics::didUpdateGeometry() +@@ -275,6 +329,11 @@ void DrawingAreaProxyCoordinatedGraphics::didUpdateGeometry() // we need to resend the new size here. if (m_lastSentSize != m_size) sendUpdateGeometry(); @@ -11885,9 +11965,9 @@ index 567d62f16b9be2e1dff1110031ee7e2b213af790..c3ff92f3e256e62050d38dad05565429 + } } - #if !PLATFORM(WPE) + #if USE(GRAPHICS_LAYER_WC) || (USE(CAIRO) && !PLATFORM(WPE)) diff --git a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h -index 34d2107f37fbd76fbf7b995145b2ee2b0dd18b4c..7908b85755d6ac48d02dd7a1860ff8c350f24f8d 100644 +index a6170f5994ffa2fb7317239c1813b65d125e9a01..cb28017397959d90471e7db2b7e8d15482d6291f 100644 --- a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h +++ b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h @@ -29,6 +29,7 @@ @@ -11897,8 +11977,8 @@ index 34d2107f37fbd76fbf7b995145b2ee2b0dd18b4c..7908b85755d6ac48d02dd7a1860ff8c3 +#include #include - #if !PLATFORM(WPE) -@@ -54,6 +55,10 @@ public: + #if USE(GRAPHICS_LAYER_WC) || (USE(CAIRO) && !PLATFORM(WPE)) +@@ -52,6 +53,10 @@ public: bool isInAcceleratedCompositingMode() const { return !m_layerTreeContext.isEmpty(); } const LayerTreeContext& layerTreeContext() const { return m_layerTreeContext; } @@ -11909,7 +11989,7 @@ index 34d2107f37fbd76fbf7b995145b2ee2b0dd18b4c..7908b85755d6ac48d02dd7a1860ff8c3 void dispatchAfterEnsuringDrawing(CompletionHandler&&); -@@ -77,6 +82,9 @@ private: +@@ -75,6 +80,9 @@ private: void enterAcceleratedCompositingMode(uint64_t backingStoreStateID, const LayerTreeContext&) override; void exitAcceleratedCompositingMode(uint64_t backingStoreStateID, UpdateInfo&&) override; void updateAcceleratedCompositingMode(uint64_t backingStoreStateID, const LayerTreeContext&) override; @@ -11919,15 +11999,15 @@ index 34d2107f37fbd76fbf7b995145b2ee2b0dd18b4c..7908b85755d6ac48d02dd7a1860ff8c3 bool shouldSendWheelEventsToEventDispatcher() const override { return true; } -@@ -119,6 +127,7 @@ private: +@@ -117,6 +125,7 @@ private: // The last size we sent to the web process. WebCore::IntSize m_lastSentSize; + Vector> m_callbacks; - #if !PLATFORM(WPE) + #if USE(GRAPHICS_LAYER_WC) || (USE(CAIRO) && !PLATFORM(WPE)) bool m_isBackingStoreDiscardable { true }; -@@ -127,6 +136,10 @@ private: +@@ -125,6 +134,10 @@ private: RunLoop::Timer m_discardBackingStoreTimer; #endif std::unique_ptr m_drawingMonitor; @@ -11939,10 +12019,10 @@ index 34d2107f37fbd76fbf7b995145b2ee2b0dd18b4c..7908b85755d6ac48d02dd7a1860ff8c3 } // namespace WebKit diff --git a/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp b/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp -index aefa745dee839ab9a86c72d398f69fe3e43e156d..8cc96adac7a6f789fbb716f87165b0776c74f603 100644 +index f2d9013c71bc229498425de62c090323d6f7655b..0e26ccf1d2ad583b54b8a3c0f8829f12f1ce9853 100644 --- a/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp +++ b/Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp -@@ -41,8 +41,10 @@ +@@ -40,8 +40,10 @@ #include #include #include @@ -11953,7 +12033,7 @@ index aefa745dee839ab9a86c72d398f69fe3e43e156d..8cc96adac7a6f789fbb716f87165b077 #if PLATFORM(MAC) #include -@@ -59,7 +61,10 @@ DownloadProxy::DownloadProxy(DownloadProxyMap& downloadProxyMap, WebsiteDataStor +@@ -58,7 +60,10 @@ DownloadProxy::DownloadProxy(DownloadProxyMap& downloadProxyMap, WebsiteDataStor , m_request(resourceRequest) , m_originatingPage(originatingPage) , m_frameInfo(API::FrameInfo::create(FrameInfoData { frameInfoData }, originatingPage)) @@ -11964,13 +12044,13 @@ index aefa745dee839ab9a86c72d398f69fe3e43e156d..8cc96adac7a6f789fbb716f87165b077 } DownloadProxy::~DownloadProxy() -@@ -78,9 +83,12 @@ static RefPtr createData(const IPC::DataReference& data) +@@ -77,9 +82,12 @@ static RefPtr createData(std::span data) void DownloadProxy::cancel(CompletionHandler&& completionHandler) { if (m_dataStore) { -- m_dataStore->networkProcess().sendWithAsyncReply(Messages::NetworkProcess::CancelDownload(m_downloadID), [this, protectedThis = Ref { *this }, completionHandler = WTFMove(completionHandler)] (const IPC::DataReference& resumeData) mutable { +- m_dataStore->networkProcess().sendWithAsyncReply(Messages::NetworkProcess::CancelDownload(m_downloadID), [this, protectedThis = Ref { *this }, completionHandler = WTFMove(completionHandler)] (std::span resumeData) mutable { + auto* instrumentation = m_dataStore->downloadInstrumentation(); -+ m_dataStore->networkProcess().sendWithAsyncReply(Messages::NetworkProcess::CancelDownload(m_downloadID), [this, protectedThis = Ref { *this }, completionHandler = WTFMove(completionHandler), instrumentation] (const IPC::DataReference& resumeData) mutable { ++ m_dataStore->networkProcess().sendWithAsyncReply(Messages::NetworkProcess::CancelDownload(m_downloadID), [this, protectedThis = Ref { *this }, completionHandler = WTFMove(completionHandler), instrumentation] (std::span resumeData) mutable { m_legacyResumeData = createData(resumeData); completionHandler(m_legacyResumeData.get()); + if (instrumentation) @@ -11978,7 +12058,7 @@ index aefa745dee839ab9a86c72d398f69fe3e43e156d..8cc96adac7a6f789fbb716f87165b077 m_downloadProxyMap.downloadFinished(*this); }); } else -@@ -163,6 +171,21 @@ void DownloadProxy::decideDestinationWithSuggestedFilename(const WebCore::Resour +@@ -162,6 +170,21 @@ void DownloadProxy::decideDestinationWithSuggestedFilename(const WebCore::Resour suggestedFilename = m_suggestedFilename; suggestedFilename = MIMETypeRegistry::appendFileExtensionIfNecessary(suggestedFilename, response.mimeType()); @@ -12000,7 +12080,7 @@ index aefa745dee839ab9a86c72d398f69fe3e43e156d..8cc96adac7a6f789fbb716f87165b077 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() +@@ -210,6 +233,8 @@ void DownloadProxy::didFinish() updateQuarantinePropertiesIfPossible(); #endif m_client->didFinish(*this); @@ -12009,7 +12089,7 @@ index aefa745dee839ab9a86c72d398f69fe3e43e156d..8cc96adac7a6f789fbb716f87165b077 // 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 +@@ -220,6 +245,8 @@ void DownloadProxy::didFail(const ResourceError& error, std::span m_legacyResumeData = createData(resumeData); m_client->didFail(*this, error, m_legacyResumeData.get()); @@ -12019,10 +12099,10 @@ index aefa745dee839ab9a86c72d398f69fe3e43e156d..8cc96adac7a6f789fbb716f87165b077 // 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 6f0d076b1b1cb0ec3e1c7fdc5f3a6dfffe9ee63d..656d4259dbf9ab97a8b0408c061c0fd2de8beaa7 100644 --- a/Source/WebKit/UIProcess/Downloads/DownloadProxy.h +++ b/Source/WebKit/UIProcess/Downloads/DownloadProxy.h -@@ -144,6 +144,7 @@ private: +@@ -143,6 +143,7 @@ private: #if PLATFORM(COCOA) RetainPtr m_progress; #endif @@ -12031,10 +12111,10 @@ index 6ec99825d6c232c391986aed9099d0595857ce75..818341cf6549ffb68209c1472cc64839 } // namespace WebKit diff --git a/Source/WebKit/UIProcess/DrawingAreaProxy.h b/Source/WebKit/UIProcess/DrawingAreaProxy.h -index ea2e74070b5708a271a2327ca3c21c4273b2e126..feeb9af65099fa7cf1c4b28a22c9efc305afa0e8 100644 +index 660270a146f8f358a00f591df7d95f37c043ea7a..aed1c1f4181c1636f63a33e2e48f40d89eb68ed6 100644 --- a/Source/WebKit/UIProcess/DrawingAreaProxy.h +++ b/Source/WebKit/UIProcess/DrawingAreaProxy.h -@@ -88,6 +88,7 @@ public: +@@ -89,6 +89,7 @@ public: const WebCore::IntSize& size() const { return m_size; } bool setSize(const WebCore::IntSize&, const WebCore::IntSize& scrollOffset = { }); @@ -12042,7 +12122,7 @@ index ea2e74070b5708a271a2327ca3c21c4273b2e126..feeb9af65099fa7cf1c4b28a22c9efc3 virtual void minimumSizeForAutoLayoutDidChange() { } virtual void sizeToContentAutoSizeMaximumSizeDidChange() { } -@@ -170,6 +171,10 @@ private: +@@ -173,6 +174,10 @@ private: virtual void update(uint64_t /* backingStoreStateID */, UpdateInfo&&) { } virtual void exitAcceleratedCompositingMode(uint64_t /* backingStoreStateID */, UpdateInfo&&) { } #endif @@ -15471,10 +15551,10 @@ index 3fe0abcfe36bef7ca45bed5661a737ed2bfe56d0..510656948af01ec65d4543c805e9667a #include "RemoteMediaSessionCoordinatorProxyMessages.h" #include "WebPageProxy.h" diff --git a/Source/WebKit/UIProcess/PageClient.h b/Source/WebKit/UIProcess/PageClient.h -index 6350a51ecd961ef328e22eb2decc1ac84c331f77..7371bed49a39310ec37cb63424f73b01a28a04b1 100644 +index 42eee66ab16a2194f63b01a9f26c20aeb728a872..c66aca2950f5cc8823194c4f6cfd60275f5f00a2 100644 --- a/Source/WebKit/UIProcess/PageClient.h +++ b/Source/WebKit/UIProcess/PageClient.h -@@ -85,6 +85,10 @@ OBJC_CLASS WKView; +@@ -91,6 +91,10 @@ OBJC_CLASS WKView; #endif #endif @@ -15485,7 +15565,7 @@ index 6350a51ecd961ef328e22eb2decc1ac84c331f77..7371bed49a39310ec37cb63424f73b01 namespace API { class Attachment; class HitTestResult; -@@ -333,7 +337,16 @@ public: +@@ -342,7 +346,16 @@ public: virtual void selectionDidChange() = 0; #endif @@ -15942,11 +16022,32 @@ index 0000000000000000000000000000000000000000..6d04f9290135069359ce6bf872654648 +} // namespace WebKit + +#endif // ENABLE(REMOTE_INSPECTOR) +diff --git a/Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm b/Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm +index 922a4bc217e0370b1ef3673c9c5808ea9ef0fd24..72d8914646df8b1316ecb6510b0baf452661e4ca 100644 +--- a/Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm ++++ b/Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm +@@ -193,7 +193,7 @@ void RemoteAcceleratedEffectStack::applyEffectsFromMainThread(PlatformLayer *lay + } + } + +-AcceleratedEffectValues RemoteAcceleratedEffectStack::computeValues(MonotonicTime now) const ++WebCore::AcceleratedEffectValues RemoteAcceleratedEffectStack::computeValues(MonotonicTime now) const + { + auto values = m_baseValues; + auto currentTime = now.secondsSinceEpoch() - m_acceleratedTimelineTimeOrigin; diff --git a/Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h b/Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h -index 0b2f336b881a6d79904f709845f99bc4a32a0d6e..544093eeca0794981f05630ee2b0a43644ba57f0 100644 +index f526b55ccf239f3b430dafe76eccea8251845e2e..d43c3049b4f1d3fc9d86059f3d11574d2206c7ed 100644 --- a/Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h +++ b/Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h -@@ -39,6 +39,11 @@ +@@ -30,6 +30,7 @@ + #include "DisplayLinkObserverID.h" + #include "MomentumEventDispatcher.h" + #include "NativeWebWheelEvent.h" ++#include "RemoteLayerTreeNode.h" + #include + #include + #include +@@ -39,6 +40,11 @@ #include #include #include @@ -15959,10 +16060,10 @@ index 0b2f336b881a6d79904f709845f99bc4a32a0d6e..544093eeca0794981f05630ee2b0a436 namespace WebCore { class PlatformWheelEvent; diff --git a/Source/WebKit/UIProcess/RemotePageProxy.cpp b/Source/WebKit/UIProcess/RemotePageProxy.cpp -index ff400b793ac18f3e427ef37c366e28560083836b..c8844c536950fdf58d0fb6733896766b053cdbd2 100644 +index 9f4d09484e3248dd2e35f790b6131372694f0ab0..d041845327fafde6656efad9aa4fcbb865105823 100644 --- a/Source/WebKit/UIProcess/RemotePageProxy.cpp +++ b/Source/WebKit/UIProcess/RemotePageProxy.cpp -@@ -41,6 +41,7 @@ +@@ -42,6 +42,7 @@ #include "WebPageProxyMessages.h" #include "WebProcessMessages.h" #include "WebProcessProxy.h" @@ -15970,8 +16071,20 @@ index ff400b793ac18f3e427ef37c366e28560083836b..c8844c536950fdf58d0fb6733896766b #include namespace WebKit { +diff --git a/Source/WebKit/UIProcess/RemotePageProxy.h b/Source/WebKit/UIProcess/RemotePageProxy.h +index bfd4a4125506da7d12f2282a2efa32faa1bf41d6..146adadff9f424c12aa14515db79ae43e2172f32 100644 +--- a/Source/WebKit/UIProcess/RemotePageProxy.h ++++ b/Source/WebKit/UIProcess/RemotePageProxy.h +@@ -65,7 +65,6 @@ class WebProcessProxy; + + struct FrameInfoData; + struct FrameTreeCreationParameters; +-struct NavigationActionData; + + class RemotePageProxy : public RefCounted, public IPC::MessageReceiver { + WTF_MAKE_FAST_ALLOCATED; diff --git a/Source/WebKit/UIProcess/WebContextMenuProxy.cpp b/Source/WebKit/UIProcess/WebContextMenuProxy.cpp -index d9dea84804e03c1fe6ff17d095ba78d68124a583..a6d8b4ef0c477f9bea172b1f408094fb60c6d9a1 100644 +index d74ec9892f9a57bd7622ff5a4e16b67262165661..e884998f2a0823c32f33fe7a8499c7b4904a2fc0 100644 --- a/Source/WebKit/UIProcess/WebContextMenuProxy.cpp +++ b/Source/WebKit/UIProcess/WebContextMenuProxy.cpp @@ -33,6 +33,7 @@ @@ -15995,7 +16108,7 @@ index e7d6621532fcc73212cc9130a7cafbb13f458d1d..ec931c8f19d2a61c0fa7d78b52df7f3f WebPageProxy* page() const { return m_page.get(); } diff --git a/Source/WebKit/UIProcess/WebFrameProxy.cpp b/Source/WebKit/UIProcess/WebFrameProxy.cpp -index dbe7167fd280aed7abb66335f9174f5555106752..a78d14744a751247140b92a6b58ae82aefa3c0dd 100644 +index 42540d06f3417fb9c9dbeddb3daa984ac83c4930..3fd3f0b3fa12f67e6d9abda5223becff1028b099 100644 --- a/Source/WebKit/UIProcess/WebFrameProxy.cpp +++ b/Source/WebKit/UIProcess/WebFrameProxy.cpp @@ -30,6 +30,7 @@ @@ -16701,10 +16814,10 @@ index 0000000000000000000000000000000000000000..3e87bf40ced2301f4fb145c6cb31f2cf + +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp -index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34bf933435 100644 +index 88666845add03e47c0429cdfe780aef22a1dbf47..fb197f331645319a0b283683798a26a7569d44b9 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.cpp +++ b/Source/WebKit/UIProcess/WebPageProxy.cpp -@@ -176,12 +176,14 @@ +@@ -182,12 +182,14 @@ #include #include #include @@ -16719,7 +16832,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 #include #include #include -@@ -201,6 +203,7 @@ +@@ -207,6 +209,7 @@ #include #include #include @@ -16727,7 +16840,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 #include #include #include -@@ -208,11 +211,13 @@ +@@ -214,11 +217,13 @@ #include #include #include @@ -16741,7 +16854,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 #include #include #include -@@ -285,6 +290,9 @@ +@@ -293,6 +298,9 @@ #include "AcceleratedBackingStoreDMABuf.h" #endif #include "GtkSettingsManager.h" @@ -16751,7 +16864,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 #include #endif -@@ -394,6 +402,8 @@ static constexpr Seconds tryCloseTimeoutDelay = 50_ms; +@@ -402,6 +410,8 @@ static constexpr Seconds tryCloseTimeoutDelay = 50_ms; static constexpr Seconds audibleActivityClearDelay = 10_s; #endif @@ -16760,7 +16873,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, webPageProxyCounter, ("WebPageProxy")); #if PLATFORM(COCOA) -@@ -815,6 +825,10 @@ WebPageProxy::~WebPageProxy() +@@ -806,6 +816,10 @@ WebPageProxy::~WebPageProxy() if (preferences->mediaSessionCoordinatorEnabled()) GroupActivitiesSessionNotifier::sharedNotifier().removeWebPage(*this); #endif @@ -16771,24 +16884,24 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 } void WebPageProxy::addAllMessageReceivers() -@@ -1313,6 +1327,7 @@ void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason) +@@ -1338,6 +1352,7 @@ void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason) - pageClient().didRelaunchProcess(); + protectedPageClient()->didRelaunchProcess(); internals().pageLoadState.didSwapWebProcesses(); + m_inspectorController->didFinishAttachingToWebProcess(); } void WebPageProxy::didAttachToRunningProcess() -@@ -1321,7 +1336,7 @@ void WebPageProxy::didAttachToRunningProcess() +@@ -1346,7 +1361,7 @@ void WebPageProxy::didAttachToRunningProcess() #if ENABLE(FULLSCREEN_API) ASSERT(!m_fullScreenManager); -- m_fullScreenManager = makeUnique(*this, pageClient().fullScreenManagerProxyClient()); -+ m_fullScreenManager = makeUnique(*this, m_fullScreenManagerClientOverride ? *m_fullScreenManagerClientOverride : pageClient().fullScreenManagerProxyClient()); +- m_fullScreenManager = makeUnique(*this, protectedPageClient()->fullScreenManagerProxyClient()); ++ m_fullScreenManager = makeUnique(*this, m_fullScreenManagerClientOverride ? *m_fullScreenManagerClientOverride : protectedPageClient()->fullScreenManagerProxyClient()); #endif #if ENABLE(VIDEO_PRESENTATION_MODE) ASSERT(!m_playbackSessionManager); -@@ -1721,6 +1736,21 @@ WebProcessProxy& WebPageProxy::ensureRunningProcess() +@@ -1746,6 +1761,21 @@ WebProcessProxy& WebPageProxy::ensureRunningProcess() return m_process; } @@ -16810,7 +16923,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 RefPtr WebPageProxy::loadRequest(ResourceRequest&& request, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, API::Object* userData) { if (m_isClosed) -@@ -2294,6 +2324,42 @@ void WebPageProxy::setControlledByAutomation(bool controlled) +@@ -2321,6 +2351,42 @@ void WebPageProxy::setControlledByAutomation(bool controlled) websiteDataStore().protectedNetworkProcess()->send(Messages::NetworkProcess::SetSessionIsControlledByAutomation(m_websiteDataStore->sessionID(), m_controlledByAutomation), 0); } @@ -16853,12 +16966,11 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 void WebPageProxy::createInspectorTarget(const String& targetId, Inspector::InspectorTargetType type) { MESSAGE_CHECK(m_process, !targetId.isEmpty()); -@@ -2534,6 +2600,25 @@ void WebPageProxy::updateActivityState(OptionSet flagsToUpdate) - { +@@ -2562,6 +2628,24 @@ void WebPageProxy::updateActivityState(OptionSet flagsToUpdate) bool wasVisible = isViewVisible(); + Ref pageClient = this->pageClient(); internals().activityState.remove(flagsToUpdate); + -+ + if (m_activeForAutomation) { + if (*m_activeForAutomation) { + if (flagsToUpdate & ActivityState::IsFocused) @@ -16876,10 +16988,10 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 + flagsToUpdate.remove(ActivityState::IsVisibleOrOccluded); + } + - if (flagsToUpdate & ActivityState::IsFocused && pageClient().isViewFocused()) + if (flagsToUpdate & ActivityState::IsFocused && pageClient->isViewFocused()) internals().activityState.add(ActivityState::IsFocused); - if (flagsToUpdate & ActivityState::WindowIsActive && pageClient().isViewWindowActive()) -@@ -3233,7 +3318,7 @@ void WebPageProxy::performDragOperation(DragData& dragData, const String& dragSt + if (flagsToUpdate & ActivityState::WindowIsActive && pageClient->isViewWindowActive()) +@@ -3263,7 +3347,7 @@ void WebPageProxy::performDragOperation(DragData& dragData, const String& dragSt grantAccessToCurrentPasteboardData(dragStorageName); #endif @@ -16888,7 +17000,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 performDragControllerAction(DragControllerAction::PerformDragOperation, dragData); #else if (!hasRunningProcess()) -@@ -3250,6 +3335,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag +@@ -3280,6 +3364,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag if (!hasRunningProcess()) return; @@ -16897,7 +17009,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 auto completionHandler = [this, protectedThis = Ref { *this }, action, dragData] (std::optional dragOperation, WebCore::DragHandlingMethod dragHandlingMethod, bool mouseIsOverFileInput, unsigned numberOfItemsToBeAccepted, const IntRect& insertionRect, const IntRect& editableElementRect, std::optional remoteUserInputEventData) mutable { if (!remoteUserInputEventData) { didPerformDragControllerAction(dragOperation, dragHandlingMethod, mouseIsOverFileInput, numberOfItemsToBeAccepted, insertionRect, editableElementRect); -@@ -3266,6 +3353,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag +@@ -3296,6 +3382,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag protectedProcess()->assumeReadAccessToBaseURL(*this, url); ASSERT(dragData.platformData()); @@ -16906,35 +17018,33 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 sendWithAsyncReply(Messages::WebPage::PerformDragControllerAction(action, dragData.clientPosition(), dragData.globalPosition(), dragData.draggingSourceOperationMask(), *dragData.platformData(), dragData.flags()), WTFMove(completionHandler)); #else sendToProcessContainingFrame(frameID, Messages::WebPage::PerformDragControllerAction(frameID, action, dragData), WTFMove(completionHandler)); -@@ -3281,18 +3370,40 @@ void WebPageProxy::didPerformDragControllerAction(std::optionaldidPerformDragControllerAction(); + m_dragEventsQueued--; + if (m_dragEventsQueued == 0 && internals().mouseEventQueue.isEmpty()) + m_inspectorController->didProcessAllPendingMouseEvents(); -+ } -#if PLATFORM(GTK) +#if PLATFORM(GTK) || PLATFORM(WPE) void WebPageProxy::startDrag(SelectionData&& selectionData, OptionSet dragOperationMask, std::optional&& dragImageHandle, IntPoint&& dragImageHotspot) { -- RefPtr dragImage = dragImageHandle ? ShareableBitmap::create(WTFMove(*dragImageHandle)) : nullptr; -- pageClient().startDrag(WTFMove(selectionData), dragOperationMask, WTFMove(dragImage), WTFMove(dragImageHotspot)); +- RefPtr dragImage = dragImageHandle ? ShareableBitmap::create(WTFMove(*dragImageHandle)) : nullptr; +- protectedPageClient()->startDrag(WTFMove(selectionData), dragOperationMask, WTFMove(dragImage), WTFMove(dragImageHotspot)); + if (m_interceptDrags) { + m_dragSelectionData = WTFMove(selectionData); + m_dragSourceOperationMask = dragOperationMask; + } else { +#if PLATFORM(GTK) -+ RefPtr dragImage = dragImageHandle ? ShareableBitmap::create(WTFMove(*dragImageHandle)) : nullptr; -+ pageClient().startDrag(WTFMove(selectionData), dragOperationMask, WTFMove(dragImage), WTFMove(dragImageHotspot)); ++ RefPtr dragImage = dragImageHandle ? ShareableBitmap::create(WTFMove(*dragImageHandle)) : nullptr; ++ protectedPageClient()->startDrag(WTFMove(selectionData), dragOperationMask, WTFMove(dragImage), WTFMove(dragImageHotspot)); +#endif + } - - didStartDrag(); - } - #endif ++ didStartDrag(); ++} ++#endif +#if PLATFORM(WIN) && ENABLE(DRAG_SUPPORT) +void WebPageProxy::startDrag(WebCore::DragDataMap&& dragDataMap) @@ -16943,14 +17053,10 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 + m_dragSelectionData = WTFMove(dragDataMap); + m_dragSourceOperationMask = WebCore::anyDragOperation(); + } -+ didStartDrag(); -+} -+#endif -+ - void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& globalPosition, OptionSet dragOperationMask, const std::optional& frameID) - { - if (!hasRunningProcess()) -@@ -3309,6 +3420,24 @@ void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& glo + didStartDrag(); + } + #endif +@@ -3339,6 +3447,24 @@ void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& glo setDragCaretRect({ }); } @@ -16975,7 +17081,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 void WebPageProxy::didStartDrag() { if (!hasRunningProcess()) -@@ -3316,6 +3445,16 @@ void WebPageProxy::didStartDrag() +@@ -3346,6 +3472,16 @@ void WebPageProxy::didStartDrag() discardQueuedMouseEvents(); send(Messages::WebPage::DidStartDrag()); @@ -16992,7 +17098,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 } void WebPageProxy::dragCancelled() -@@ -3461,16 +3600,37 @@ void WebPageProxy::processNextQueuedMouseEvent() +@@ -3498,16 +3634,37 @@ void WebPageProxy::processNextQueuedMouseEvent() process->startResponsivenessTimer(); } @@ -17036,7 +17142,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 } void WebPageProxy::doAfterProcessingAllPendingMouseEvents(WTF::Function&& action) -@@ -3636,6 +3796,8 @@ void WebPageProxy::wheelEventHandlingCompleted(bool wasHandled) +@@ -3673,6 +3830,8 @@ void WebPageProxy::wheelEventHandlingCompleted(bool wasHandled) if (RefPtr automationSession = process().processPool().automationSession()) automationSession->wheelEventsFlushedForPage(*this); @@ -17045,7 +17151,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 } void WebPageProxy::cacheWheelEventScrollingAccelerationCurve(const NativeWebWheelEvent& nativeWheelEvent) -@@ -3782,7 +3944,7 @@ static TrackingType mergeTrackingTypes(TrackingType a, TrackingType b) +@@ -3819,7 +3978,7 @@ static TrackingType mergeTrackingTypes(TrackingType a, TrackingType b) void WebPageProxy::updateTouchEventTracking(const WebTouchEvent& touchStartEvent) { @@ -17054,24 +17160,15 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 for (auto& touchPoint : touchStartEvent.touchPoints()) { auto location = touchPoint.location(); auto update = [this, location](TrackingType& trackingType, EventTrackingRegions::EventType eventType) { -@@ -4253,6 +4415,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->protectedWebsitePolicies().get(), WTFMove(navigationAction), WTFMove(sender), WillContinueLoadInNewProcess::No, std::nullopt); - #if HAVE(APP_SSO) -@@ -4360,6 +4524,7 @@ void WebPageProxy::receivedNavigationPolicyDecision(WebProcessProxy& processNavi +@@ -4408,6 +4567,7 @@ void WebPageProxy::receivedNavigationActionPolicyDecision(WebProcessProxy& proce - void WebPageProxy::receivedPolicyDecision(PolicyAction action, API::Navigation* navigation, RefPtr&& websitePolicies, std::variant, Ref>&& navigationActionOrResponse, Ref&& sender, WillContinueLoadInNewProcess willContinueLoadInNewProcess, std::optional sandboxExtensionHandle) + void WebPageProxy::receivedPolicyDecision(PolicyAction action, API::Navigation* navigation, RefPtr&& websitePolicies, Ref&& navigationAction, WillContinueLoadInNewProcess willContinueLoadInNewProcess, std::optional sandboxExtensionHandle, std::optional&& consoleMessage, CompletionHandler&& completionHandler) { + m_inspectorController->didReceivePolicyDecision(action, navigation ? navigation->navigationID() : 0); - if (!hasRunningProcess()) { - sender->send(PolicyDecision { isNavigatingToAppBoundDomain() }); - return; -@@ -5230,6 +5395,11 @@ void WebPageProxy::pageScaleFactorDidChange(double scaleFactor) + if (!hasRunningProcess()) + return completionHandler(PolicyDecision { }); + +@@ -5325,6 +5485,11 @@ void WebPageProxy::pageScaleFactorDidChange(double scaleFactor) m_pageScaleFactor = scaleFactor; } @@ -17083,15 +17180,15 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 void WebPageProxy::pluginScaleFactorDidChange(double pluginScaleFactor) { MESSAGE_CHECK(m_process, scaleFactorIsValid(pluginScaleFactor)); -@@ -5768,6 +5938,7 @@ void WebPageProxy::didDestroyNavigationShared(Ref&& process, ui - PageClientProtector protector(pageClient()); +@@ -5867,6 +6032,7 @@ void WebPageProxy::didDestroyNavigationShared(Ref&& process, ui + Ref protectedPageClient { pageClient() }; m_navigationState->didDestroyNavigation(process->coreProcessIdentifier(), navigationID); + m_inspectorController->didDestroyNavigation(navigationID); } void WebPageProxy::didStartProvisionalLoadForFrame(FrameIdentifier frameID, FrameInfoData&& frameInfo, ResourceRequest&& request, uint64_t navigationID, URL&& url, URL&& unreachableURL, const UserData& userData) -@@ -6022,6 +6193,8 @@ void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref&& p +@@ -6121,6 +6287,8 @@ void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref&& p m_failingProvisionalLoadURL = { }; @@ -17100,32 +17197,31 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 // 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; -@@ -6635,7 +6808,15 @@ void WebPageProxy::beginSafeBrowsingCheck(const URL&, bool, WebFramePolicyListen +@@ -6746,7 +6914,14 @@ 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) + void WebPageProxy::decidePolicyForNavigationActionAsync(NavigationActionData&& data, CompletionHandler&& completionHandler) { -- decidePolicyForNavigationActionAsyncShared(protectedProcess(), internals().webPageID, WTFMove(frameInfo), navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(completionHandler)); +- decidePolicyForNavigationActionAsyncShared(protectedProcess(), WTFMove(data), WTFMove(completionHandler)); + if (m_inspectorController->shouldPauseLoading()) { -+ decidePolicyForNavigationActionAsyncShared(protectedProcess(), 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(protectedProcess(), internals().webPageID, WTFMove(frameInfo), navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(completionHandler)); ++ decidePolicyForNavigationActionAsyncShared(protectedProcess(), WTFMove(data), WTFMove(completionHandler)); ++ m_inspectorController->setContinueLoadingCallback([this, protectedThis = Ref { *this }, data = WTFMove(data), completionHandler = WTFMove(completionHandler)] () mutable { ++ decidePolicyForNavigationActionAsyncShared(protectedProcess(), WTFMove(data), WTFMove(completionHandler)); + }); + } else { -+ decidePolicyForNavigationActionAsyncShared(protectedProcess(), internals().webPageID, WTFMove(frameInfo), navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(completionHandler)); ++ decidePolicyForNavigationActionAsyncShared(protectedProcess(), WTFMove(data), WTFMove(completionHandler)); + } } - 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) -@@ -7220,6 +7401,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa + void WebPageProxy::decidePolicyForNavigationActionAsyncShared(Ref&& process, NavigationActionData&& data, CompletionHandler&& completionHandler) +@@ -7390,6 +7565,7 @@ void WebPageProxy::createNewPage(WindowFeatures&& windowFeatures, NavigationActi if (RefPtr page = originatingFrameInfo->page()) openerAppInitiatedState = page->lastNavigationWasAppInitiated(); + m_inspectorController->willCreateNewPage(windowFeatures, request.url()); - 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); -@@ -7268,6 +7450,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa + auto completionHandler = [ + this, + protectedThis = Ref { *this }, +@@ -7448,6 +7624,7 @@ void WebPageProxy::createNewPage(WindowFeatures&& windowFeatures, NavigationActi void WebPageProxy::showPage() { m_uiClient->showPage(this); @@ -17133,7 +17229,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 } bool WebPageProxy::hasOpenedPage() const -@@ -7347,6 +7530,10 @@ void WebPageProxy::closePage() +@@ -7527,6 +7704,10 @@ void WebPageProxy::closePage() if (isClosed()) return; @@ -17142,9 +17238,9 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 + m_activeContextMenu->hide(); +#endif WEBPAGEPROXY_RELEASE_LOG(Process, "closePage:"); - pageClient().clearAllEditCommands(); + protectedPageClient()->clearAllEditCommands(); m_uiClient->close(this); -@@ -7383,6 +7570,8 @@ void WebPageProxy::runJavaScriptAlert(FrameIdentifier frameID, FrameInfoData&& f +@@ -7563,6 +7744,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 { @@ -17153,7 +17249,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 page.m_uiClient->runJavaScriptAlert(page, message, frame, WTFMove(frameInfo), [reply = WTFMove(reply), completion = WTFMove(completion)]() mutable { reply(); completion(); -@@ -7404,6 +7593,8 @@ void WebPageProxy::runJavaScriptConfirm(FrameIdentifier frameID, FrameInfoData&& +@@ -7584,6 +7767,8 @@ void WebPageProxy::runJavaScriptConfirm(FrameIdentifier frameID, FrameInfoData&& if (RefPtr automationSession = process().processPool().automationSession()) automationSession->willShowJavaScriptDialog(*this); } @@ -17162,7 +17258,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 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 { -@@ -7427,6 +7618,8 @@ void WebPageProxy::runJavaScriptPrompt(FrameIdentifier frameID, FrameInfoData&& +@@ -7607,6 +7792,8 @@ void WebPageProxy::runJavaScriptPrompt(FrameIdentifier frameID, FrameInfoData&& if (RefPtr automationSession = process().processPool().automationSession()) automationSession->willShowJavaScriptDialog(*this); } @@ -17171,7 +17267,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 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 { -@@ -7543,6 +7736,8 @@ void WebPageProxy::runBeforeUnloadConfirmPanel(FrameIdentifier frameID, FrameInf +@@ -7723,6 +7910,8 @@ void WebPageProxy::runBeforeUnloadConfirmPanel(FrameIdentifier frameID, FrameInf return; } } @@ -17180,7 +17276,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 // Since runBeforeUnloadConfirmPanel() can spin a nested run loop we need to turn off the responsiveness timer and the tryClose timer. protectedProcess()->stopResponsivenessTimer(); -@@ -8001,6 +8196,11 @@ void WebPageProxy::resourceLoadDidCompleteWithError(ResourceLoadInfo&& loadInfo, +@@ -8206,6 +8395,11 @@ void WebPageProxy::resourceLoadDidCompleteWithError(ResourceLoadInfo&& loadInfo, } #if ENABLE(FULLSCREEN_API) @@ -17192,7 +17288,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 WebFullScreenManagerProxy* WebPageProxy::fullScreenManager() { return m_fullScreenManager.get(); -@@ -8077,6 +8277,17 @@ void WebPageProxy::requestDOMPasteAccess(WebCore::DOMPasteAccessCategory pasteAc +@@ -8282,6 +8476,17 @@ void WebPageProxy::requestDOMPasteAccess(WebCore::DOMPasteAccessCategory pasteAc { MESSAGE_CHECK_COMPLETION(m_process, !originIdentifier.isEmpty(), completionHandler(DOMPasteAccessResponse::DeniedForGesture)); @@ -17210,7 +17306,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 m_pageClient->requestDOMPasteAccess(pasteAccessCategory, elementRect, originIdentifier, WTFMove(completionHandler)); } -@@ -8880,6 +9091,8 @@ void WebPageProxy::mouseEventHandlingCompleted(std::optional event +@@ -9107,6 +9312,8 @@ void WebPageProxy::mouseEventHandlingCompleted(std::optional event if (RefPtr automationSession = process().processPool().automationSession()) automationSession->mouseEventsFlushedForPage(*this); didFinishProcessingAllPendingMouseEvents(); @@ -17219,7 +17315,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 } } -@@ -8914,6 +9127,7 @@ void WebPageProxy::keyEventHandlingCompleted(std::optional eventTy +@@ -9141,6 +9348,7 @@ void WebPageProxy::keyEventHandlingCompleted(std::optional eventTy if (!canProcessMoreKeyEvents) { if (RefPtr automationSession = process().processPool().automationSession()) automationSession->keyboardEventsFlushedForPage(*this); @@ -17227,7 +17323,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 } } -@@ -9319,7 +9533,10 @@ void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason) +@@ -9546,7 +9754,10 @@ void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason) { WEBPAGEPROXY_RELEASE_LOG_ERROR(Loading, "dispatchProcessDidTerminate: reason=%" PUBLIC_LOG_STRING, processTerminationReasonToString(reason)); @@ -17239,7 +17335,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 if (m_loaderClient) handledByClient = reason != ProcessTerminationReason::RequestedByClient && m_loaderClient->processDidCrash(*this); else -@@ -9684,6 +9901,7 @@ bool WebPageProxy::useGPUProcessForDOMRenderingEnabled() const +@@ -9911,6 +10122,7 @@ bool WebPageProxy::useGPUProcessForDOMRenderingEnabled() const WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& process, DrawingAreaProxy& drawingArea, RefPtr&& websitePolicies) { @@ -17247,7 +17343,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 WebPageCreationParameters parameters; parameters.processDisplayName = configuration().processDisplayName(); -@@ -9890,6 +10108,8 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc +@@ -10131,6 +10343,8 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc parameters.httpsUpgradeEnabled = preferences().upgradeKnownHostsToHTTPSEnabled() ? m_configuration->httpsUpgradeEnabled() : false; @@ -17256,7 +17352,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 #if PLATFORM(IOS) || PLATFORM(VISION) // FIXME: This is also being passed over the to WebProcess via the PreferencesStore. parameters.allowsDeprecatedSynchronousXMLHttpRequestDuringUnload = allowsDeprecatedSynchronousXMLHttpRequestDuringUnload(); -@@ -9983,8 +10203,42 @@ void WebPageProxy::gamepadActivity(const Vector>& gam +@@ -10224,8 +10438,42 @@ void WebPageProxy::gamepadActivity(const Vector>& gam #endif @@ -17299,7 +17395,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 if (negotiatedLegacyTLS == NegotiatedLegacyTLS::Yes) { m_navigationClient->shouldAllowLegacyTLS(*this, authenticationChallenge.get(), [this, protectedThis = Ref { *this }, authenticationChallenge] (bool shouldAllowLegacyTLS) { if (shouldAllowLegacyTLS) -@@ -10088,6 +10342,12 @@ void WebPageProxy::requestGeolocationPermissionForFrame(GeolocationIdentifier ge +@@ -10320,6 +10568,12 @@ void WebPageProxy::requestGeolocationPermissionForFrame(GeolocationIdentifier ge request->deny(); }; @@ -17312,7 +17408,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 // FIXME: Once iOS migrates to the new WKUIDelegate SPI, clean this up // and make it one UIClient call that calls the completionHandler with false // if there is no delegate instead of returning the completionHandler -@@ -10142,6 +10402,12 @@ void WebPageProxy::queryPermission(const ClientOrigin& clientOrigin, const Permi +@@ -10382,6 +10636,12 @@ void WebPageProxy::queryPermission(const ClientOrigin& clientOrigin, const Permi shouldChangeDeniedToPrompt = false; if (sessionID().isEphemeral()) { @@ -17325,7 +17421,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 completionHandler(shouldChangeDeniedToPrompt ? PermissionState::Prompt : PermissionState::Denied); return; } -@@ -10156,6 +10422,12 @@ void WebPageProxy::queryPermission(const ClientOrigin& clientOrigin, const Permi +@@ -10396,6 +10656,12 @@ void WebPageProxy::queryPermission(const ClientOrigin& clientOrigin, const Permi return; } @@ -17339,7 +17435,7 @@ index 77e64447dd28a4221729d81576fc1340010c6a95..f26696fb69532cd6fa081a7721e9aa34 completionHandler(shouldChangeDeniedToPrompt ? PermissionState::Prompt : PermissionState::Denied); return; diff --git a/Source/WebKit/UIProcess/WebPageProxy.h b/Source/WebKit/UIProcess/WebPageProxy.h -index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d91992fee00a 100644 +index 9fd32bf3cb7e4246fb8f126f94a0ccac6f8ea68f..11c7b58bc56fdc3312aac51134b7a0ca6890e6ac 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.h +++ b/Source/WebKit/UIProcess/WebPageProxy.h @@ -26,6 +26,7 @@ @@ -17373,9 +17469,9 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 +#include +#endif - namespace API { - class Attachment; -@@ -96,6 +115,7 @@ class DestinationColorSpace; + #if USE(DICTATION_ALTERNATIVES) + #include +@@ -104,6 +123,7 @@ class DestinationColorSpace; class DragData; class FloatPoint; class FloatQuad; @@ -17383,7 +17479,7 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 class FloatRect; class FloatSize; class FontAttributeChanges; -@@ -395,6 +415,7 @@ class WebExtensionController; +@@ -417,6 +437,7 @@ class WebExtensionController; class WebFramePolicyListenerProxy; class WebFrameProxy; class WebFullScreenManagerProxy; @@ -17391,7 +17487,7 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 class WebInspectorUIProxy; class WebKeyboardEvent; class WebMouseEvent; -@@ -608,6 +629,8 @@ public: +@@ -641,6 +662,8 @@ public: void setControlledByAutomation(bool); WebPageInspectorController& inspectorController() { return *m_inspectorController; } @@ -17400,7 +17496,7 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 #if PLATFORM(IOS_FAMILY) void showInspectorIndication(); -@@ -641,6 +664,7 @@ public: +@@ -674,6 +697,7 @@ public: bool hasSleepDisabler() const; #if ENABLE(FULLSCREEN_API) @@ -17408,7 +17504,7 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 WebFullScreenManagerProxy* fullScreenManager(); API::FullscreenClient& fullscreenClient() const { return *m_fullscreenClient; } -@@ -729,6 +753,11 @@ public: +@@ -762,6 +786,11 @@ public: void setPageLoadStateObserver(std::unique_ptr&&); @@ -17420,23 +17516,23 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 void initializeWebPage(); void setDrawingArea(std::unique_ptr&&); -@@ -752,6 +781,7 @@ public: +@@ -788,6 +817,7 @@ public: void addPlatformLoadParameters(WebProcessProxy&, LoadParameters&); RefPtr loadRequest(WebCore::ResourceRequest&&); RefPtr loadRequest(WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy, API::Object* userData = nullptr); + RefPtr loadRequestForInspector(WebCore::ResourceRequest&&, WebFrameProxy*); 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); -@@ -815,6 +845,7 @@ public: - void restoreSelectionInFocusedEditableElement(); + RefPtr loadData(std::span, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData = nullptr); + RefPtr loadData(std::span, const String& MIMEType, const String& encoding, const String& baseURL, API::Object* userData, WebCore::ShouldOpenExternalURLsPolicy); +@@ -852,6 +882,7 @@ public: PageClient& pageClient() const; + Ref protectedPageClient() const; + bool hasPageClient() const { return !!m_pageClient; } void setViewNeedsDisplay(const WebCore::Region&); void requestScroll(const WebCore::FloatPoint& scrollPosition, const WebCore::IntPoint& scrollOrigin, WebCore::ScrollIsAnimated); -@@ -1326,6 +1357,7 @@ public: +@@ -1372,6 +1403,7 @@ public: #endif void pageScaleFactorDidChange(double); @@ -17444,21 +17540,21 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 void pluginScaleFactorDidChange(double); void pluginZoomFactorDidChange(double); -@@ -1415,14 +1447,20 @@ public: +@@ -1456,14 +1488,20 @@ public: void didStartDrag(); void dragCancelled(); void setDragCaretRect(const WebCore::IntRect&); + void setInterceptDrags(bool shouldIntercept); + bool cancelDragIfNeeded(); #if PLATFORM(COCOA) - void startDrag(const WebCore::DragItem&, ShareableBitmapHandle&& dragImageHandle); - void setPromisedDataForImage(const String& pasteboardName, SharedMemoryHandle&& imageHandle, const String& filename, const String& extension, - const String& title, const String& url, const String& visibleURL, SharedMemoryHandle&& archiveHandle, const String& originIdentifier); + void startDrag(const WebCore::DragItem&, WebCore::ShareableBitmapHandle&& dragImageHandle); + void setPromisedDataForImage(const String& pasteboardName, WebCore::SharedMemoryHandle&& imageHandle, const String& filename, const String& extension, + const String& title, const String& url, const String& visibleURL, WebCore::SharedMemoryHandle&& archiveHandle, const String& originIdentifier); + void releaseInspectorDragPasteboard(); #endif -#if PLATFORM(GTK) +#if PLATFORM(GTK) || PLATFORM(WPE) - void startDrag(WebCore::SelectionData&&, OptionSet, std::optional&& dragImage, WebCore::IntPoint&& dragImageHotspot); + void startDrag(WebCore::SelectionData&&, OptionSet, std::optional&& dragImage, WebCore::IntPoint&& dragImageHotspot); #endif +#if PLATFORM(WIN) + void startDrag(WebCore::DragDataMap&& dragDataMap); @@ -17466,7 +17562,7 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 #endif void processDidBecomeUnresponsive(); -@@ -1642,6 +1680,7 @@ public: +@@ -1693,6 +1731,7 @@ public: void setViewportSizeForCSSViewportUnits(const WebCore::FloatSize&); WebCore::FloatSize viewportSizeForCSSViewportUnits() const; @@ -17474,7 +17570,7 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 void didReceiveAuthenticationChallengeProxy(Ref&&, NegotiatedLegacyTLS); void negotiatedLegacyTLS(); void didNegotiateModernTLS(const URL&); -@@ -1676,6 +1715,8 @@ public: +@@ -1727,6 +1766,8 @@ public: #if PLATFORM(COCOA) || PLATFORM(GTK) RefPtr takeViewSnapshot(std::optional&&); @@ -17483,7 +17579,7 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 #endif void wrapCryptoKey(const Vector&, CompletionHandler&&)>&&); -@@ -2502,6 +2543,7 @@ private: +@@ -2591,6 +2632,7 @@ private: RefPtr launchProcessForReload(); void requestNotificationPermission(const String& originString, CompletionHandler&&); @@ -17491,7 +17587,7 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 void didChangeContentSize(const WebCore::IntSize&); void didChangeIntrinsicContentSize(const WebCore::IntSize&); -@@ -2994,8 +3036,10 @@ private: +@@ -3100,8 +3142,10 @@ private: String m_overrideContentSecurityPolicy; RefPtr m_inspector; @@ -17502,7 +17598,7 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 std::unique_ptr m_fullScreenManager; std::unique_ptr m_fullscreenClient; #endif -@@ -3179,6 +3223,22 @@ private: +@@ -3291,6 +3335,22 @@ private: std::optional m_currentDragOperation; bool m_currentDragIsOverFileInput { false }; unsigned m_currentDragNumberOfFilesToBeAccepted { 0 }; @@ -17525,7 +17621,7 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 #endif bool m_mainFrameHasHorizontalScrollbar { false }; -@@ -3346,6 +3406,10 @@ private: +@@ -3462,6 +3522,10 @@ private: RefPtr messageBody; }; Vector m_pendingInjectedBundleMessages; @@ -17537,7 +17633,7 @@ index 30e008435b6ad7c724c0b5d5dfb1e30050b86946..94b1cb92c93883f3713f11525352d919 #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 7ca0ece202c6da22a9e2464ba51cab87b4a999fe..727963ffceab44db19ae18bf2ed3a07b4f5e9588 100644 +index 9c5d7a86d60e4427fc616f5fd93c99c64386b7fc..24119d93741ac69f0a2914374ebc3bdfa0e0c694 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.messages.in +++ b/Source/WebKit/UIProcess/WebPageProxy.messages.in @@ -29,6 +29,7 @@ messages -> WebPageProxy { @@ -17556,13 +17652,13 @@ index 7ca0ece202c6da22a9e2464ba51cab87b4a999fe..727963ffceab44db19ae18bf2ed3a07b PluginScaleFactorDidChange(double zoomFactor) PluginZoomFactorDidChange(double zoomFactor) -@@ -305,10 +307,14 @@ messages -> WebPageProxy { - StartDrag(struct WebCore::DragItem dragItem, WebKit::ShareableBitmap::Handle dragImage) - SetPromisedDataForImage(String pasteboardName, WebKit::SharedMemory::Handle imageHandle, String filename, String extension, String title, String url, String visibleURL, WebKit::SharedMemory::Handle archiveHandle, String originIdentifier) +@@ -303,10 +305,14 @@ messages -> WebPageProxy { + StartDrag(struct WebCore::DragItem dragItem, WebCore::ShareableBitmap::Handle dragImage) + SetPromisedDataForImage(String pasteboardName, WebCore::SharedMemory::Handle imageHandle, String filename, String extension, String title, String url, String visibleURL, WebCore::SharedMemory::Handle archiveHandle, String originIdentifier) #endif -#if PLATFORM(GTK) && ENABLE(DRAG_SUPPORT) +#if (PLATFORM(GTK) || PLATFORM(WPE)) && ENABLE(DRAG_SUPPORT) - StartDrag(WebCore::SelectionData selectionData, OptionSet dragOperationMask, std::optional dragImage, WebCore::IntPoint dragImageHotspot) + StartDrag(WebCore::SelectionData selectionData, OptionSet dragOperationMask, std::optional dragImage, WebCore::IntPoint dragImageHotspot) #endif +#if PLATFORM(WIN) && ENABLE(DRAG_SUPPORT) @@ -17573,10 +17669,10 @@ index 7ca0ece202c6da22a9e2464ba51cab87b4a999fe..727963ffceab44db19ae18bf2ed3a07b DidHandleDragStartRequest(bool started) DidHandleAdditionalDragItemsRequest(bool added) diff --git a/Source/WebKit/UIProcess/WebProcessCache.cpp b/Source/WebKit/UIProcess/WebProcessCache.cpp -index 1329e19aa1f93077c7d2f5fe98838731b79692a5..8e697f27ef47f0b66f1de6197ab1ce2503f2ed0f 100644 +index 452eab87e181ec5d33ad2b0c48437bc875fc9f7f..1c9bf0a77ebcffec1ae827b657d090b9119b503d 100644 --- a/Source/WebKit/UIProcess/WebProcessCache.cpp +++ b/Source/WebKit/UIProcess/WebProcessCache.cpp -@@ -82,6 +82,10 @@ bool WebProcessCache::canCacheProcess(WebProcessProxy& process) const +@@ -87,6 +87,10 @@ bool WebProcessCache::canCacheProcess(WebProcessProxy& process) const return false; } @@ -17588,10 +17684,10 @@ index 1329e19aa1f93077c7d2f5fe98838731b79692a5..8e697f27ef47f0b66f1de6197ab1ce25 } diff --git a/Source/WebKit/UIProcess/WebProcessPool.cpp b/Source/WebKit/UIProcess/WebProcessPool.cpp -index 0a88c7b396a570915dd6cb6be8f7651d295efeb7..833c66a9a24c729b92b6ca08718fe69066838c03 100644 +index 32aded96c08584fefc07221ed7d7605a71f31534..05fd86a130a8b03df565d83d7f1b9ca36f6e6569 100644 --- a/Source/WebKit/UIProcess/WebProcessPool.cpp +++ b/Source/WebKit/UIProcess/WebProcessPool.cpp -@@ -405,10 +405,10 @@ void WebProcessPool::setAutomationClient(std::unique_ptr& +@@ -424,10 +424,10 @@ void WebProcessPool::setAutomationClient(std::unique_ptr& void WebProcessPool::setOverrideLanguages(Vector&& languages) { @@ -17604,7 +17700,7 @@ index 0a88c7b396a570915dd6cb6be8f7651d295efeb7..833c66a9a24c729b92b6ca08718fe690 #if ENABLE(GPU_PROCESS) if (RefPtr gpuProcess = GPUProcessProxy::singletonIfCreated()) -@@ -416,9 +416,10 @@ void WebProcessPool::setOverrideLanguages(Vector&& languages) +@@ -435,9 +435,10 @@ void WebProcessPool::setOverrideLanguages(Vector&& languages) #endif #if USE(SOUP) for (Ref networkProcess : NetworkProcessProxy::allNetworkProcesses()) @@ -17616,7 +17712,7 @@ index 0a88c7b396a570915dd6cb6be8f7651d295efeb7..833c66a9a24c729b92b6ca08718fe690 void WebProcessPool::fullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled) { -@@ -870,7 +871,7 @@ void WebProcessPool::initializeNewWebProcess(WebProcessProxy& process, WebsiteDa +@@ -930,7 +931,7 @@ void WebProcessPool::initializeNewWebProcess(WebProcessProxy& process, WebsiteDa #endif parameters.cacheModel = LegacyGlobalSettings::singleton().cacheModel(); @@ -17626,10 +17722,10 @@ index 0a88c7b396a570915dd6cb6be8f7651d295efeb7..833c66a9a24c729b92b6ca08718fe690 parameters.urlSchemesRegisteredAsEmptyDocument = copyToVector(m_schemesToRegisterAsEmptyDocument); diff --git a/Source/WebKit/UIProcess/WebProcessProxy.cpp b/Source/WebKit/UIProcess/WebProcessProxy.cpp -index 24825bc329091147eb6baf50440451ae4c2f3901..5e8bc90a6167d6c932932a93f4a46831d0c036d5 100644 +index f90d14daca9649d4f556e23f1218ff1fd7d08f1d..9d39eb7e3e4de35cb885f72a75f83727d2d481a8 100644 --- a/Source/WebKit/UIProcess/WebProcessProxy.cpp +++ b/Source/WebKit/UIProcess/WebProcessProxy.cpp -@@ -173,6 +173,11 @@ Vector> WebProcessProxy::allProcesses() +@@ -178,6 +178,11 @@ Vector> WebProcessProxy::allProcesses() }); } @@ -17641,7 +17737,7 @@ index 24825bc329091147eb6baf50440451ae4c2f3901..5e8bc90a6167d6c932932a93f4a46831 RefPtr WebProcessProxy::processForIdentifier(ProcessIdentifier identifier) { return allProcessMap().get(identifier); -@@ -510,6 +515,26 @@ void WebProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOpt +@@ -518,6 +523,26 @@ void WebProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOpt if (WebKit::isInspectorProcessPool(processPool())) launchOptions.extraInitializationData.add("inspector-process"_s, "1"_s); @@ -17669,10 +17765,10 @@ index 24825bc329091147eb6baf50440451ae4c2f3901..5e8bc90a6167d6c932932a93f4a46831 if (isPrewarmed()) diff --git a/Source/WebKit/UIProcess/WebProcessProxy.h b/Source/WebKit/UIProcess/WebProcessProxy.h -index 1fced6aa6c273d14c30ee69266b2c2266126d9ac..67e7dedac10f09d4ec1b894ee3c1f21935e9622b 100644 +index 34b5a585b708921e87101245f5c9101035eb8d68..4289b24ab517582155fd07fdd7b7aa2b2563813a 100644 --- a/Source/WebKit/UIProcess/WebProcessProxy.h +++ b/Source/WebKit/UIProcess/WebProcessProxy.h -@@ -160,6 +160,7 @@ public: +@@ -163,6 +163,7 @@ public: static void forWebPagesWithOrigin(PAL::SessionID, const WebCore::SecurityOriginData&, const Function&); static Vector> allowedFirstPartiesForCookies(); @@ -17681,10 +17777,10 @@ index 1fced6aa6c273d14c30ee69266b2c2266126d9ac..67e7dedac10f09d4ec1b894ee3c1f219 WebConnection* webConnection() const { return m_webConnection.get(); } RefPtr protectedWebConnection() const { return m_webConnection; } diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp -index b1af14650f6b30e84fc03dbd6e7af88050a414d2..90d08ccccff6447c84a6f8cd5745b58aeef122b5 100644 +index 257e15389adcebb47f4319328752699a66d53948..51a252036f2c0c38d16845a6db75d7fb58de5a5f 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp -@@ -299,7 +299,8 @@ SOAuthorizationCoordinator& WebsiteDataStore::soAuthorizationCoordinator(const W +@@ -301,7 +301,8 @@ SOAuthorizationCoordinator& WebsiteDataStore::soAuthorizationCoordinator(const W static Ref networkProcessForSession(PAL::SessionID sessionID) { @@ -17694,7 +17790,7 @@ index b1af14650f6b30e84fc03dbd6e7af88050a414d2..90d08ccccff6447c84a6f8cd5745b58a if (sessionID.isEphemeral()) { // Reuse a previous persistent session network process for ephemeral sessions. for (auto& dataStore : allDataStores().values()) { -@@ -2189,6 +2190,12 @@ void WebsiteDataStore::originDirectoryForTesting(WebCore::ClientOrigin&& origin, +@@ -2184,6 +2185,12 @@ void WebsiteDataStore::originDirectoryForTesting(WebCore::ClientOrigin&& origin, protectedNetworkProcess()->websiteDataOriginDirectoryForTesting(m_sessionID, WTFMove(origin), type, WTFMove(completionHandler)); } @@ -17708,10 +17804,10 @@ index b1af14650f6b30e84fc03dbd6e7af88050a414d2..90d08ccccff6447c84a6f8cd5745b58a void WebsiteDataStore::hasAppBoundSession(CompletionHandler&& completionHandler) const { diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h -index efcd46c1f5ef6f0f841d9d2f1fda65dc42aaae2f..77bec62446c84fb98d3c17e615ed9bc75b174739 100644 +index 37614db69a75c432447315b463dac8c1ad9bc6d9..9473a61bf90efac85898cc3a67df550d1b74e6be 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h -@@ -97,6 +97,7 @@ class DeviceIdHashSaltStorage; +@@ -98,6 +98,7 @@ class DeviceIdHashSaltStorage; class DownloadProxy; class NetworkProcessProxy; class SOAuthorizationCoordinator; @@ -17719,7 +17815,7 @@ index efcd46c1f5ef6f0f841d9d2f1fda65dc42aaae2f..77bec62446c84fb98d3c17e615ed9bc7 class VirtualAuthenticatorManager; class WebPageProxy; class WebProcessPool; -@@ -111,12 +112,21 @@ enum class UnifiedOriginStorageLevel : uint8_t; +@@ -113,12 +114,21 @@ enum class UnifiedOriginStorageLevel : uint8_t; enum class WebsiteDataFetchOption : uint8_t; enum class WebsiteDataType : uint32_t; @@ -17741,7 +17837,7 @@ index efcd46c1f5ef6f0f841d9d2f1fda65dc42aaae2f..77bec62446c84fb98d3c17e615ed9bc7 class WebsiteDataStore : public API::ObjectImpl, public Identified, public CanMakeWeakPtr { public: static Ref defaultDataStore(); -@@ -318,11 +328,13 @@ public: +@@ -321,11 +331,13 @@ public: const WebCore::CurlProxySettings& networkProxySettings() const { return m_proxySettings; } #endif @@ -17756,7 +17852,7 @@ index efcd46c1f5ef6f0f841d9d2f1fda65dc42aaae2f..77bec62446c84fb98d3c17e615ed9bc7 void setNetworkProxySettings(WebCore::SoupNetworkProxySettings&&); const WebCore::SoupNetworkProxySettings& networkProxySettings() const { return m_networkProxySettings; } void setCookiePersistentStorage(const String&, SoupCookiePersistentStorageType); -@@ -407,6 +419,12 @@ public: +@@ -410,6 +422,12 @@ public: static const String& defaultBaseDataDirectory(); #endif @@ -17769,7 +17865,7 @@ index efcd46c1f5ef6f0f841d9d2f1fda65dc42aaae2f..77bec62446c84fb98d3c17e615ed9bc7 void resetQuota(CompletionHandler&&); void resetStoragePersistedState(CompletionHandler&&); #if PLATFORM(IOS_FAMILY) -@@ -565,9 +583,11 @@ private: +@@ -573,9 +591,11 @@ private: WebCore::CurlProxySettings m_proxySettings; #endif @@ -17782,7 +17878,7 @@ index efcd46c1f5ef6f0f841d9d2f1fda65dc42aaae2f..77bec62446c84fb98d3c17e615ed9bc7 WebCore::SoupNetworkProxySettings m_networkProxySettings; String m_cookiePersistentStoragePath; SoupCookiePersistentStorageType m_cookiePersistentStorageType { SoupCookiePersistentStorageType::SQLite }; -@@ -596,6 +616,10 @@ private: +@@ -604,6 +624,10 @@ private: RefPtr m_cookieStore; RefPtr m_networkProcess; @@ -17793,18 +17889,6 @@ index efcd46c1f5ef6f0f841d9d2f1fda65dc42aaae2f..77bec62446c84fb98d3c17e615ed9bc7 #if HAVE(APP_SSO) std::unique_ptr m_soAuthorizationCoordinator; #endif -diff --git a/Source/WebKit/UIProcess/cairo/BackingStore.h b/Source/WebKit/UIProcess/cairo/BackingStore.h -index 419a9a80b9c8456e05fe7b9b72ef6e3188eb38e7..9980d442dc52ce86b48839a223afc0fe6ca31f6a 100644 ---- a/Source/WebKit/UIProcess/cairo/BackingStore.h -+++ b/Source/WebKit/UIProcess/cairo/BackingStore.h -@@ -51,6 +51,7 @@ public: - float deviceScaleFactor() const { return m_deviceScaleFactor; } - - void paint(cairo_t*, const WebCore::IntRect&); -+ RefPtr surface() const { return m_surface; } - void incorporateUpdate(UpdateInfo&&); - - private: diff --git a/Source/WebKit/UIProcess/geoclue/GeoclueGeolocationProvider.cpp b/Source/WebKit/UIProcess/geoclue/GeoclueGeolocationProvider.cpp index 692a45a48fa027f9221338d74f5351bef4baf00f..db8c761c71cc7009be66255c2668de4eff36dee0 100644 --- a/Source/WebKit/UIProcess/geoclue/GeoclueGeolocationProvider.cpp @@ -18133,56 +18217,47 @@ index 71fb4cbd4338bcbda3a61019cbf4a914bf74953e..6f56e4afb345c23b4d8b91ee77f1991c virtual void unrealize() { }; virtual int renderHostFileDescriptor() { return -1; } diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -index c5f4a50a780e0394b13362da3d1ce61446f34261..21f3e759077697edc134e729cc096126ce281e05 100644 +index 6bd656b957aa4c8e1052e7e3c970d6e02d6715a9..622732d0de8fd742e6ecf3ac026a3f425d1b840f 100644 --- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp +++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -@@ -417,6 +417,25 @@ void AcceleratedBackingStoreDMABuf::RendererCairo::paint(GtkWidget* widget, cair +@@ -608,6 +608,32 @@ bool AcceleratedBackingStoreDMABuf::paint(cairo_t* cr, const WebCore::IntRect& c } #endif -+cairo_surface_t* AcceleratedBackingStoreDMABuf::RendererCairo::surfaceForScreencast() ++// Playwright begin ++cairo_surface_t* AcceleratedBackingStoreDMABuf::surface() +{ -+ if (!m_surface) ++ RefPtr buffer = m_renderer.buffer(); ++ if (!buffer) ++ return nullptr; ++ ++ RefPtr surface = buffer->surface(); ++ if (!surface) + return nullptr; + + // The original surface is upside down, so we flip it to match orientation in other accelerated backing stores. -+ m_flippedSurface = adoptRef(cairo_image_surface_create(CAIRO_FORMAT_ARGB32, cairo_image_surface_get_width(m_surface.get()), cairo_image_surface_get_height(m_surface.get()))); ++ m_flippedSurface = adoptRef(cairo_image_surface_create(CAIRO_FORMAT_ARGB32, cairo_image_surface_get_width(surface.get()), cairo_image_surface_get_height(surface.get()))); + { + RefPtr cr = adoptRef(cairo_create(m_flippedSurface.get())); + cairo_matrix_t transform; -+ cairo_matrix_init(&transform, 1, 0, 0, -1, 0, cairo_image_surface_get_height(m_surface.get()) / m_deviceScaleFactor); ++ cairo_matrix_init(&transform, 1, 0, 0, -1, 0, cairo_image_surface_get_height(surface.get()) / buffer->deviceScaleFactor()); + cairo_transform(cr.get(), &transform); -+ cairo_set_source_surface(cr.get(), m_surface.get(), 0, 0); ++ cairo_set_source_surface(cr.get(), surface.get(), 0, 0); + cairo_paint(cr.get()); + } + cairo_surface_flush(m_flippedSurface.get()); + return m_flippedSurface.get(); +} -+ - void AcceleratedBackingStoreDMABuf::didCreateBuffer(uint64_t id, const WebCore::IntSize& size, uint32_t format, Vector&& fds, Vector&& offsets, Vector&& strides, uint64_t modifier) - { - #if USE(GBM) -@@ -580,6 +599,15 @@ bool AcceleratedBackingStoreDMABuf::paint(cairo_t* cr, const WebCore::IntRect& c - } - #endif - -+cairo_surface_t* AcceleratedBackingStoreDMABuf::surface() -+{ -+ if (!m_renderer) -+ return nullptr; -+ -+ return m_renderer->surfaceForScreencast(); -+} -+ ++// Playwright end + } // namespace WebKit #endif // USE(EGL) diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h -index b73a9be34afe38a37e06eca0c8bfd78dfab88e99..b3bf1185fddaa7f61da0845a05869301689709e4 100644 +index 3cb25f26b7a08b2a85226e8ba174dab2a528f6e9..9c137f506345f55d89913b3469483d805be3ea9a 100644 --- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h +++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h -@@ -89,6 +89,7 @@ private: +@@ -88,6 +88,7 @@ private: #else bool paint(cairo_t*, const WebCore::IntRect&) override; #endif @@ -18190,33 +18265,16 @@ index b73a9be34afe38a37e06eca0c8bfd78dfab88e99..b3bf1185fddaa7f61da0845a05869301 void unrealize() override; void update(const LayerTreeContext&) override; -@@ -178,6 +179,7 @@ private: - #else - virtual void paint(GtkWidget*, cairo_t*, const WebCore::IntRect&) const = 0; - #endif -+ virtual cairo_surface_t* surfaceForScreencast() = 0; +@@ -233,6 +234,9 @@ private: + RefPtr m_pendingBuffer; + RefPtr m_committedBuffer; + HashMap> m_buffers; ++// Playwright begin ++ RefPtr m_flippedSurface; ++// Playwright end + }; - Buffer* buffer() const { return m_buffer.get(); } - -@@ -202,6 +204,7 @@ private: - #else - void paint(GtkWidget*, cairo_t*, const WebCore::IntRect&) const override; - #endif -+ cairo_surface_t* surfaceForScreencast() override { return nullptr; } - - unsigned m_textureID { 0 }; - #if USE(GTK4) -@@ -223,8 +226,10 @@ private: - #else - void paint(GtkWidget*, cairo_t*, const WebCore::IntRect&) const override; - #endif -+ cairo_surface_t* surfaceForScreencast() override; - - RefPtr m_surface; -+ RefPtr m_flippedSurface; - }; - - GRefPtr m_gdkGLContext; + } // namespace WebKit diff --git a/Source/WebKit/UIProcess/gtk/InspectorTargetProxyGtk.cpp b/Source/WebKit/UIProcess/gtk/InspectorTargetProxyGtk.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f5f811ced4eafef530d101c4e397fe2780ac3071 @@ -18484,10 +18542,10 @@ index d18b3e777203ef5d0f33884f909bc598d3526831..aef80b47359d7a2e4805a006dc59cd60 m_primarySelectionOwner = frame; } diff --git a/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm b/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm -index 3660229a275bc80c03756d40c90418e07ce03ab9..d058147cf255f6e4f6c61338c844db335aa3ea06 100644 +index b5adddce23fd14eab99f55739a3e18bccbcdf5ec..e7dd2d5daafb870e524bcd8f7cf6779e97ae08ba 100644 --- a/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm +++ b/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm -@@ -472,6 +472,8 @@ IntRect PageClientImpl::rootViewToAccessibilityScreen(const IntRect& rect) +@@ -494,6 +494,8 @@ IntRect PageClientImpl::rootViewToAccessibilityScreen(const IntRect& rect) void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent& event, bool eventWasHandled) { @@ -18706,7 +18764,7 @@ index 0000000000000000000000000000000000000000..721826c8c98fc85b68a4f45deaee69c1 + +#endif diff --git a/Source/WebKit/UIProcess/mac/PageClientImplMac.h b/Source/WebKit/UIProcess/mac/PageClientImplMac.h -index b28e9e2b71156126cd21923d5999f7850c3bbdbb..5446d10a32530f9bdf8ed6c92484d262e5b25e46 100644 +index bf8da430d8a48128879eb2033ceb1a4e6aae3fd3..8c048aa6055aa2ec7e74d96f99dbd58594cb01fc 100644 --- a/Source/WebKit/UIProcess/mac/PageClientImplMac.h +++ b/Source/WebKit/UIProcess/mac/PageClientImplMac.h @@ -54,6 +54,8 @@ class PageClientImpl final : public PageClientImplCocoa @@ -18740,10 +18798,10 @@ index b28e9e2b71156126cd21923d5999f7850c3bbdbb..5446d10a32530f9bdf8ed6c92484d262 void navigationGestureWillEnd(bool willNavigate, WebBackForwardListItem&) override; void navigationGestureDidEnd(bool willNavigate, WebBackForwardListItem&) override; diff --git a/Source/WebKit/UIProcess/mac/PageClientImplMac.mm b/Source/WebKit/UIProcess/mac/PageClientImplMac.mm -index 7819beb81efd82c8f244e2bc235308d6f29f0740..6030d7c46409ed22689c694376a8d2d6e92aadde 100644 +index 0150ec4512cb5a8d405c045f6b6464b374849d04..8ff52a96708296f4933b5f43a106396c4943adb0 100644 --- a/Source/WebKit/UIProcess/mac/PageClientImplMac.mm +++ b/Source/WebKit/UIProcess/mac/PageClientImplMac.mm -@@ -81,6 +81,7 @@ +@@ -80,6 +80,7 @@ #import #import #import @@ -18751,7 +18809,7 @@ index 7819beb81efd82c8f244e2bc235308d6f29f0740..6030d7c46409ed22689c694376a8d2d6 #import #import #import -@@ -107,6 +108,13 @@ namespace WebKit { +@@ -106,6 +107,13 @@ namespace WebKit { using namespace WebCore; @@ -18765,7 +18823,7 @@ index 7819beb81efd82c8f244e2bc235308d6f29f0740..6030d7c46409ed22689c694376a8d2d6 PageClientImpl::PageClientImpl(NSView *view, WKWebView *webView) : PageClientImplCocoa(webView) , m_view(view) -@@ -160,6 +168,9 @@ NSWindow *PageClientImpl::activeWindow() const +@@ -159,6 +167,9 @@ NSWindow *PageClientImpl::activeWindow() const bool PageClientImpl::isViewWindowActive() { @@ -18775,7 +18833,7 @@ index 7819beb81efd82c8f244e2bc235308d6f29f0740..6030d7c46409ed22689c694376a8d2d6 ASSERT(hasProcessPrivilege(ProcessPrivilege::CanCommunicateWithWindowServer)); NSWindow *activeViewWindow = activeWindow(); return activeViewWindow.isKeyWindow || (activeViewWindow && [NSApp keyWindow] == activeViewWindow); -@@ -167,6 +178,9 @@ bool PageClientImpl::isViewWindowActive() +@@ -166,6 +177,9 @@ bool PageClientImpl::isViewWindowActive() bool PageClientImpl::isViewFocused() { @@ -18785,7 +18843,7 @@ index 7819beb81efd82c8f244e2bc235308d6f29f0740..6030d7c46409ed22689c694376a8d2d6 // FIXME: This is called from the WebPageProxy constructor before we have a WebViewImpl. // Once WebViewImpl and PageClient merge, this won't be a problem. if (!m_impl) -@@ -190,6 +204,9 @@ void PageClientImpl::makeFirstResponder() +@@ -189,6 +203,9 @@ void PageClientImpl::makeFirstResponder() bool PageClientImpl::isViewVisible() { @@ -18795,7 +18853,7 @@ index 7819beb81efd82c8f244e2bc235308d6f29f0740..6030d7c46409ed22689c694376a8d2d6 NSView *activeView = this->activeView(); NSWindow *activeViewWindow = activeWindow(); -@@ -273,7 +290,8 @@ void PageClientImpl::didRelaunchProcess() +@@ -272,7 +289,8 @@ void PageClientImpl::didRelaunchProcess() void PageClientImpl::preferencesDidChange() { @@ -18805,7 +18863,7 @@ index 7819beb81efd82c8f244e2bc235308d6f29f0740..6030d7c46409ed22689c694376a8d2d6 } void PageClientImpl::toolTipChanged(const String& oldToolTip, const String& newToolTip) -@@ -476,6 +494,8 @@ IntRect PageClientImpl::rootViewToAccessibilityScreen(const IntRect& rect) +@@ -475,6 +493,8 @@ IntRect PageClientImpl::rootViewToAccessibilityScreen(const IntRect& rect) void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent& event, bool eventWasHandled) { @@ -18814,7 +18872,7 @@ index 7819beb81efd82c8f244e2bc235308d6f29f0740..6030d7c46409ed22689c694376a8d2d6 m_impl->doneWithKeyEvent(event.nativeEvent(), eventWasHandled); } -@@ -495,6 +515,8 @@ void PageClientImpl::computeHasVisualSearchResults(const URL& imageURL, Shareabl +@@ -494,6 +514,8 @@ void PageClientImpl::computeHasVisualSearchResults(const URL& imageURL, Shareabl RefPtr PageClientImpl::createPopupMenuProxy(WebPageProxy& page) { @@ -18823,7 +18881,7 @@ index 7819beb81efd82c8f244e2bc235308d6f29f0740..6030d7c46409ed22689c694376a8d2d6 return WebPopupMenuProxyMac::create(m_view, page.popupMenuClient()); } -@@ -636,6 +658,12 @@ CALayer *PageClientImpl::footerBannerLayer() const +@@ -635,6 +657,12 @@ CALayer *PageClientImpl::footerBannerLayer() const return m_impl->footerBannerLayer(); } @@ -18836,7 +18894,7 @@ index 7819beb81efd82c8f244e2bc235308d6f29f0740..6030d7c46409ed22689c694376a8d2d6 RefPtr PageClientImpl::takeViewSnapshot(std::optional&&) { return m_impl->takeViewSnapshot(); -@@ -811,6 +839,13 @@ void PageClientImpl::beganExitFullScreen(const IntRect& initialFrame, const IntR +@@ -810,6 +838,13 @@ void PageClientImpl::beganExitFullScreen(const IntRect& initialFrame, const IntR #endif // ENABLE(FULLSCREEN_API) @@ -18850,7 +18908,7 @@ index 7819beb81efd82c8f244e2bc235308d6f29f0740..6030d7c46409ed22689c694376a8d2d6 void PageClientImpl::navigationGestureDidBegin() { m_impl->dismissContentRelativeChildWindowsWithAnimation(true); -@@ -998,6 +1033,9 @@ void PageClientImpl::requestScrollToRect(const WebCore::FloatRect& targetRect, c +@@ -997,6 +1032,9 @@ void PageClientImpl::requestScrollToRect(const WebCore::FloatRect& targetRect, c bool PageClientImpl::windowIsFrontWindowUnderMouse(const NativeWebMouseEvent& event) { @@ -18860,6 +18918,24 @@ index 7819beb81efd82c8f244e2bc235308d6f29f0740..6030d7c46409ed22689c694376a8d2d6 return m_impl->windowIsFrontWindowUnderMouse(event.nativeEvent()); } +diff --git a/Source/WebKit/UIProcess/mac/SecItemShimProxy.messages.in b/Source/WebKit/UIProcess/mac/SecItemShimProxy.messages.in +index 21c925bafb662dbe961baaad7f25bf4296236d76..5496a33c558a00a5ba96d10223e600aa38de99c4 100644 +--- a/Source/WebKit/UIProcess/mac/SecItemShimProxy.messages.in ++++ b/Source/WebKit/UIProcess/mac/SecItemShimProxy.messages.in +@@ -20,11 +20,11 @@ + # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ++#if ENABLE(SEC_ITEM_SHIM) + messages -> SecItemShimProxy NotRefCounted { + +-#if ENABLE(SEC_ITEM_SHIM) + SecItemRequestSync(WebKit::SecItemRequestData request) -> (std::optional response) Synchronous + SecItemRequest(WebKit::SecItemRequestData request) -> (std::optional response) +-#endif + + } ++#endif diff --git a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h b/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h index 6ab7aacaebfda818e3010bb06db72c8552ac598a..3e19cba50d73084392f62f176ad4c3153803e579 100644 --- a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h @@ -18873,7 +18949,7 @@ index 6ab7aacaebfda818e3010bb06db72c8552ac598a..3e19cba50d73084392f62f176ad4c315 bool showAfterPostProcessingContextData(); diff --git a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm b/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm -index 87b6a065e9fef93a55a555358186f8721a62ab34..1543521395c60c5742852c00389973cbb64c57e4 100644 +index 6443d35db2dfadb6bd5157ab0d20557b29b22b8d..5b4cb0061f270e3e048ea5d6d2ade3060f53dace 100644 --- a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm +++ b/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm @@ -480,6 +480,12 @@ void WebContextMenuProxyMac::getShareMenuItem(CompletionHandlersizeInBytes(); + auto stride = bitmap->bytesPerRow(); + GRefPtr bytes = adoptGRef(g_bytes_new_with_free_func(data, dataSize, [](gpointer userData) { +- delete static_cast(userData); ++ delete static_cast(userData); + }, bitmap.leakRef())); + + GRefPtr buffer = adoptGRef(WPE_BUFFER(wpe_buffer_shm_new(display, size.width(), size.height(), WPE_PIXEL_FORMAT_ARGB8888, bytes.get(), stride))); diff --git a/Source/WebKit/UIProcess/wpe/InspectorTargetProxyWPE.cpp b/Source/WebKit/UIProcess/wpe/InspectorTargetProxyWPE.cpp new file mode 100644 index 0000000000000000000000000000000000000000..7453194ca6f032ba86a4c67f5bf12688ab6ec1be @@ -19884,7 +19986,7 @@ index 0000000000000000000000000000000000000000..a7d88f8c745f95af21db71dcfce368ba + +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp b/Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp -index e333f890788f164e7912e810f43c12152537b066..31be595d479ca6a334d0daccf4e4247425aad782 100644 +index fa5cf9a4acc96f0aefe31a13043636532d53dad2..f075f86ad517585b8da18c56f7730be5d0ac0664 100644 --- a/Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp +++ b/Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp @@ -29,6 +29,7 @@ @@ -19893,13 +19995,25 @@ index e333f890788f164e7912e810f43c12152537b066..31be595d479ca6a334d0daccf4e42474 #include "PageClientImpl.h" +#include #include + #include - #if ENABLE(WPE_PLATFORM) +diff --git a/Source/WebKit/WPEPlatform/CMakeLists.txt b/Source/WebKit/WPEPlatform/CMakeLists.txt +index f79722e63d048c1b6d237acd4054156d09f6c7b4..de009fed30c444001efdeb208e66c93093f55d3d 100644 +--- a/Source/WebKit/WPEPlatform/CMakeLists.txt ++++ b/Source/WebKit/WPEPlatform/CMakeLists.txt +@@ -80,6 +80,7 @@ set(WPEPlatform_SYSTEM_INCLUDE_DIRECTORIES + + set(WPEPlatform_LIBRARIES + Epoxy::Epoxy ++ rt + WTF + ${GLIB_GIO_LIBRARIES} + ${GLIB_GOBJECT_LIBRARIES} diff --git a/Source/WebKit/WebKit.xcodeproj/project.pbxproj b/Source/WebKit/WebKit.xcodeproj/project.pbxproj -index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a18899c68a 100644 +index 46e7e6073977b7981d517cdf11d04dc4d5b4aef7..925ee9191cc0cb4efd5815d292bfcc563148578c 100644 --- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj +++ b/Source/WebKit/WebKit.xcodeproj/project.pbxproj -@@ -1476,6 +1476,7 @@ +@@ -1528,6 +1528,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 */; }; @@ -19907,7 +20021,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 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 */; }; -@@ -2270,6 +2271,18 @@ +@@ -2362,6 +2363,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 */; }; @@ -19926,7 +20040,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 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, ); }; }; -@@ -2352,6 +2365,8 @@ +@@ -2446,6 +2459,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 */; }; @@ -19935,7 +20049,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 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 */; }; -@@ -2371,6 +2386,9 @@ +@@ -2466,6 +2481,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, ); }; }; @@ -19945,7 +20059,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 F409BA181E6E64BC009DA28E /* WKDragDestinationAction.h in Headers */ = {isa = PBXBuildFile; fileRef = F409BA171E6E64B3009DA28E /* WKDragDestinationAction.h */; settings = {ATTRIBUTES = (Private, ); }; }; F40C3B712AB401C5007A3567 /* WKDatePickerPopoverController.h in Headers */ = {isa = PBXBuildFile; fileRef = F40C3B6F2AB40167007A3567 /* WKDatePickerPopoverController.h */; }; F41795A62AC61B78007F5F12 /* CompactContextMenuPresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = F41795A42AC619A2007F5F12 /* CompactContextMenuPresenter.h */; }; -@@ -5907,6 +5925,7 @@ +@@ -6164,6 +6182,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 = ""; }; @@ -19953,7 +20067,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 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 = ""; }; -@@ -7565,6 +7584,19 @@ +@@ -7864,6 +7883,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 = ""; }; @@ -19973,7 +20087,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 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 = ""; }; -@@ -7706,6 +7738,8 @@ +@@ -8010,6 +8042,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 = ""; }; @@ -19982,7 +20096,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 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 = ""; }; -@@ -7729,6 +7763,14 @@ +@@ -8034,6 +8068,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 = ""; }; @@ -19997,7 +20111,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 F409BA171E6E64B3009DA28E /* WKDragDestinationAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDragDestinationAction.h; sourceTree = ""; }; F40C3B6F2AB40167007A3567 /* WKDatePickerPopoverController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WKDatePickerPopoverController.h; path = ios/forms/WKDatePickerPopoverController.h; sourceTree = ""; }; F40C3B702AB40167007A3567 /* WKDatePickerPopoverController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = WKDatePickerPopoverController.mm; path = ios/forms/WKDatePickerPopoverController.mm; sourceTree = ""; }; -@@ -7995,6 +8037,7 @@ +@@ -8320,6 +8362,7 @@ 3766F9EE189A1241003CF19B /* JavaScriptCore.framework in Frameworks */, 3766F9F1189A1254003CF19B /* libicucore.dylib in Frameworks */, 7B9FC5BB28A5233B007570E7 /* libWebKitPlatform.a in Frameworks */, @@ -20005,7 +20119,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 3766F9EF189A1244003CF19B /* QuartzCore.framework in Frameworks */, 37694525184FC6B600CDE21F /* Security.framework in Frameworks */, 37BEC4DD1948FC6A008B4286 /* WebCore.framework in Frameworks */, -@@ -10674,6 +10717,7 @@ +@@ -11162,6 +11205,7 @@ 99788ACA1F421DCA00C08000 /* _WKAutomationSessionConfiguration.mm */, 990D28A81C6404B000986977 /* _WKAutomationSessionDelegate.h */, 990D28AF1C65203900986977 /* _WKAutomationSessionInternal.h */, @@ -20013,7 +20127,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 5C4609E222430E4C009943C2 /* _WKContentRuleListAction.h */, 5C4609E322430E4D009943C2 /* _WKContentRuleListAction.mm */, 5C4609E422430E4D009943C2 /* _WKContentRuleListActionInternal.h */, -@@ -11927,6 +11971,7 @@ +@@ -12450,6 +12494,7 @@ E34B110C27C46BC6006D2F2E /* libWebCoreTestShim.dylib */, E34B110F27C46D09006D2F2E /* libWebCoreTestSupport.dylib */, DDE992F4278D06D900F60D26 /* libWebKitAdditions.a */, @@ -20021,7 +20135,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 57A9FF15252C6AEF006A2040 /* libWTF.a */, 5750F32A2032D4E500389347 /* LocalAuthentication.framework */, 570DAAB0230273D200E8FC04 /* NearField.framework */, -@@ -12497,6 +12542,12 @@ +@@ -13020,6 +13065,12 @@ children = ( 9197940423DBC4BB00257892 /* InspectorBrowserAgent.cpp */, 9197940323DBC4BB00257892 /* InspectorBrowserAgent.h */, @@ -20034,7 +20148,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 ); path = Agents; sourceTree = ""; -@@ -12505,6 +12556,7 @@ +@@ -13028,6 +13079,7 @@ isa = PBXGroup; children = ( A5D3504D1D78F0D2005124A9 /* RemoteWebInspectorUIProxyMac.mm */, @@ -20042,7 +20156,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 1CA8B935127C774E00576C2B /* WebInspectorUIProxyMac.mm */, 99A7ACE326012919006D57FD /* WKInspectorResourceURLSchemeHandler.h */, 99A7ACE42601291A006D57FD /* WKInspectorResourceURLSchemeHandler.mm */, -@@ -13154,6 +13206,7 @@ +@@ -13740,6 +13792,7 @@ E1513C65166EABB200149FCB /* AuxiliaryProcessProxy.h */, 46A2B6061E5675A200C3DEDA /* BackgroundProcessResponsivenessTimer.cpp */, 46A2B6071E5675A200C3DEDA /* BackgroundProcessResponsivenessTimer.h */, @@ -20050,7 +20164,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 5C6D69352AC3935D0099BDAF /* BrowsingContextGroup.cpp */, 5C6D69362AC3935D0099BDAF /* BrowsingContextGroup.h */, 07297F9C1C1711EA003F0735 /* DeviceIdHashSaltStorage.cpp */, -@@ -13173,6 +13226,8 @@ +@@ -13761,6 +13814,8 @@ BC06F43912DBCCFB002D78DE /* GeolocationPermissionRequestProxy.cpp */, BC06F43812DBCCFB002D78DE /* GeolocationPermissionRequestProxy.h */, 2DD5A72A1EBF09A7009BA597 /* HiddenPageThrottlingAutoIncreasesCounter.h */, @@ -20059,7 +20173,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 5CEABA2B2333251400797797 /* LegacyGlobalSettings.cpp */, 5CEABA2A2333247700797797 /* LegacyGlobalSettings.h */, 31607F3819627002009B87DA /* LegacySessionStateCoding.h */, -@@ -13207,6 +13262,7 @@ +@@ -13794,6 +13849,7 @@ 1A0C227D2451130A00ED614D /* QuickLookThumbnailingSoftLink.mm */, 1AEE57232409F142002005D6 /* QuickLookThumbnailLoader.h */, 1AEE57242409F142002005D6 /* QuickLookThumbnailLoader.mm */, @@ -20067,7 +20181,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 5CCB54DC2A4FEA6A0005FAA8 /* RemotePageDrawingAreaProxy.cpp */, 5CCB54DB2A4FEA6A0005FAA8 /* RemotePageDrawingAreaProxy.h */, 5C907E9A294D507100B3402D /* RemotePageProxy.cpp */, -@@ -13313,6 +13369,8 @@ +@@ -13900,6 +13956,8 @@ BC7B6204129A0A6700D174A4 /* WebPageGroup.h */, 2D9EA3101A96D9EB002D2807 /* WebPageInjectedBundleClient.cpp */, 2D9EA30E1A96CBFF002D2807 /* WebPageInjectedBundleClient.h */, @@ -20076,7 +20190,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 BC111B0B112F5E4F00337BAB /* WebPageProxy.cpp */, BC032DCB10F4389F0058C15A /* WebPageProxy.h */, BCBD38FA125BAB9A00D2C29F /* WebPageProxy.messages.in */, -@@ -13475,6 +13533,7 @@ +@@ -14062,6 +14120,7 @@ BC646C1911DD399F006455B0 /* WKBackForwardListItemRef.h */, BC646C1611DD399F006455B0 /* WKBackForwardListRef.cpp */, BC646C1711DD399F006455B0 /* WKBackForwardListRef.h */, @@ -20084,7 +20198,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 BCB9E24A1120E15C00A137E0 /* WKContext.cpp */, BCB9E2491120E15C00A137E0 /* WKContext.h */, 1AE52F9319201F6B00A1FA37 /* WKContextConfigurationRef.cpp */, -@@ -14051,6 +14110,9 @@ +@@ -14645,6 +14704,9 @@ 7AFA6F682A9F57C50055322A /* DisplayLinkMac.cpp */, 31ABA79C215AF9E000C90E31 /* HighPerformanceGPUManager.h */, 31ABA79D215AF9E000C90E31 /* HighPerformanceGPUManager.mm */, @@ -20094,7 +20208,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 1AFDE65B1954E8D500C48FFA /* LegacySessionStateCoding.cpp */, 0FCB4E5818BBE3D9000FCFC9 /* PageClientImplMac.h */, 0FCB4E5918BBE3D9000FCFC9 /* PageClientImplMac.mm */, -@@ -14074,6 +14136,8 @@ +@@ -14668,6 +14730,8 @@ E568B92120A3AC6A00E3C856 /* WebDataListSuggestionsDropdownMac.mm */, E55CD20124D09F1F0042DB9C /* WebDateTimePickerMac.h */, E55CD20224D09F1F0042DB9C /* WebDateTimePickerMac.mm */, @@ -20103,7 +20217,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 BC857E8512B71EBB00EDEB2E /* WebPageProxyMac.mm */, BC5750951268F3C6006F0F12 /* WebPopupMenuProxyMac.h */, BC5750961268F3C6006F0F12 /* WebPopupMenuProxyMac.mm */, -@@ -15047,6 +15111,7 @@ +@@ -15671,6 +15735,7 @@ 99788ACB1F421DDA00C08000 /* _WKAutomationSessionConfiguration.h in Headers */, 990D28AC1C6420CF00986977 /* _WKAutomationSessionDelegate.h in Headers */, 990D28B11C65208D00986977 /* _WKAutomationSessionInternal.h in Headers */, @@ -20111,7 +20225,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 5C4609E7224317B4009943C2 /* _WKContentRuleListAction.h in Headers */, 5C4609E8224317BB009943C2 /* _WKContentRuleListActionInternal.h in Headers */, 1A5704F81BE01FF400874AF1 /* _WKContextMenuElementInfo.h in Headers */, -@@ -15344,6 +15409,7 @@ +@@ -15973,6 +16038,7 @@ E170876C16D6CA6900F99226 /* BlobRegistryProxy.h in Headers */, 4F601432155C5AA2001FBDE0 /* BlockingResponseMap.h in Headers */, 1A5705111BE410E600874AF1 /* BlockSPI.h in Headers */, @@ -20119,7 +20233,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 A7E69BCC2B2117A100D43D3F /* BufferAndBackendInfo.h in Headers */, BC3065FA1259344E00E71278 /* CacheModel.h in Headers */, 935BF7FC2936BF1A00B41326 /* CacheStorageCache.h in Headers */, -@@ -15510,7 +15576,11 @@ +@@ -16152,7 +16218,11 @@ BC14DF77120B5B7900826C0C /* InjectedBundleScriptWorld.h in Headers */, CE550E152283752200D28791 /* InsertTextOptions.h in Headers */, 9197940523DBC4BB00257892 /* InspectorBrowserAgent.h in Headers */, @@ -20131,7 +20245,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 A5E391FD2183C1F800C8FB31 /* InspectorTargetProxy.h in Headers */, C5BCE5DF1C50766A00CDE3FA /* InteractionInformationAtPosition.h in Headers */, 2D4D2C811DF60BF3002EB10C /* InteractionInformationRequest.h in Headers */, -@@ -15754,6 +15824,7 @@ +@@ -16407,6 +16477,7 @@ CDAC20C923FC2F750021DEE3 /* RemoteCDMInstanceSessionIdentifier.h in Headers */, F451C0FE2703B263002BA03B /* RemoteDisplayListRecorderProxy.h in Headers */, A78A5FE42B0EB39E005036D3 /* RemoteImageBufferSetIdentifier.h in Headers */, @@ -20139,7 +20253,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 2D47B56D1810714E003A3AEE /* RemoteLayerBackingStore.h in Headers */, 2DDF731518E95060004F5A66 /* RemoteLayerBackingStoreCollection.h in Headers */, 1AB16AEA164B3A8800290D62 /* RemoteLayerTreeContext.h in Headers */, -@@ -15808,6 +15879,7 @@ +@@ -16462,6 +16533,7 @@ E1E552C516AE065F004ED653 /* SandboxInitializationParameters.h in Headers */, E36FF00327F36FBD004BE21A /* SandboxStateVariables.h in Headers */, 7BAB111025DD02B3008FC479 /* ScopedActiveMessageReceiveQueue.h in Headers */, @@ -20147,7 +20261,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 E4D54D0421F1D72D007E3C36 /* ScrollingTreeFrameScrollingNodeRemoteIOS.h in Headers */, 0F931C1C18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.h in Headers */, 0F931C1C18C5711900DBB8D4 /* ScrollingTreeScrollingNodeDelegateIOS.h in Headers */, -@@ -16139,6 +16211,8 @@ +@@ -16805,6 +16877,8 @@ 939EF87029D112EE00F23AEE /* WebPageInlines.h in Headers */, 9197940823DBC4CB00257892 /* WebPageInspectorAgentBase.h in Headers */, A513F5402154A5D700662841 /* WebPageInspectorController.h in Headers */, @@ -20156,7 +20270,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 A543E30C215C8A8D00279CD9 /* WebPageInspectorTarget.h in Headers */, A543E30D215C8A9000279CD9 /* WebPageInspectorTargetController.h in Headers */, A543E307215AD13700279CD9 /* WebPageInspectorTargetFrontendChannel.h in Headers */, -@@ -18338,6 +18412,8 @@ +@@ -19098,6 +19172,8 @@ 522F792928D50EBB0069B45B /* HidService.mm in Sources */, 2749F6442146561B008380BF /* InjectedBundleNodeHandle.cpp in Sources */, 2749F6452146561E008380BF /* InjectedBundleRangeHandle.cpp in Sources */, @@ -20165,7 +20279,7 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 1CC94E532AC92F190045F269 /* JSWebExtensionAPIAction.mm in Sources */, 1C2B4D4B2A819D0D00C528A1 /* JSWebExtensionAPIAlarms.mm in Sources */, 1C8ECFEA2AFC7DCB007BAA62 /* JSWebExtensionAPICommands.mm in Sources */, -@@ -18752,6 +18828,8 @@ +@@ -19538,6 +19614,8 @@ E3816B3D27E2463A005EAFC0 /* WebMockContentFilterManager.cpp in Sources */, 31BA924D148831260062EDB5 /* WebNotificationManagerMessageReceiver.cpp in Sources */, 2DF6FE52212E110900469030 /* WebPage.cpp in Sources */, @@ -20175,10 +20289,10 @@ index 89aabe949607d30c4a3679a66ca6dfbcf80252b0..55c3413a7dbca4de2f18fef8d9b0b5a1 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 8525d9e78cf2ba54d27f469cc028f10d61215ab2..c15a29c5e543e43059a461eebbd1c21309d32fee 100644 +index 006cb4d9ffe6119755fdac47f553cdbf490034a0..d29afe39ca22aba30409e1044eb2459031fc127f 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 +@@ -229,6 +229,11 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou } #endif @@ -20190,7 +20304,7 @@ index 8525d9e78cf2ba54d27f469cc028f10d61215ab2..c15a29c5e543e43059a461eebbd1c213 #if ENABLE(PDFJS) if (tryLoadingUsingPDFJSHandler(resourceLoader, trackingParameters)) return; -@@ -363,7 +368,8 @@ static void addParametersShared(const LocalFrame* frame, NetworkResourceLoadPara +@@ -360,7 +365,8 @@ static void addParametersShared(const LocalFrame* frame, NetworkResourceLoadPara parameters.linkPreconnectEarlyHintsEnabled = mainFrame->settings().linkPreconnectEarlyHintsEnabled(); } @@ -20200,7 +20314,7 @@ index 8525d9e78cf2ba54d27f469cc028f10d61215ab2..c15a29c5e543e43059a461eebbd1c213 { auto identifier = resourceLoader.identifier(); ASSERT(identifier); -@@ -379,7 +385,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -376,7 +382,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL RunLoop::main().dispatch([resourceLoader = Ref { resourceLoader }, error = blockedError(request)] { resourceLoader->didFail(error); }); @@ -20209,7 +20323,7 @@ index 8525d9e78cf2ba54d27f469cc028f10d61215ab2..c15a29c5e543e43059a461eebbd1c213 } } -@@ -389,7 +395,6 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -386,7 +392,6 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL LOG(NetworkScheduling, "(WebProcess) WebLoaderStrategy::scheduleLoad, url '%s' will be scheduled with the NetworkProcess with priority %d, storedCredentialsPolicy %i", resourceLoader.url().string().latin1().data(), static_cast(resourceLoader.request().priority()), (int)storedCredentialsPolicy); @@ -20217,7 +20331,7 @@ index 8525d9e78cf2ba54d27f469cc028f10d61215ab2..c15a29c5e543e43059a461eebbd1c213 loadParameters.identifier = identifier; loadParameters.webPageProxyID = trackingParameters.webPageProxyID; loadParameters.webPageID = trackingParameters.pageID; -@@ -479,14 +484,11 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -477,14 +482,11 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL if (loadParameters.options.mode != FetchOptions::Mode::Navigate) { ASSERT(loadParameters.sourceOrigin); @@ -20235,7 +20349,7 @@ index 8525d9e78cf2ba54d27f469cc028f10d61215ab2..c15a29c5e543e43059a461eebbd1c213 loadParameters.isMainFrameNavigation = isMainFrameNavigation; if (loadParameters.isMainFrameNavigation && document) -@@ -522,12 +524,24 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -526,12 +528,24 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL } ASSERT((loadParameters.webPageID && loadParameters.webFrameID) || loadParameters.clientCredentialPolicy == ClientCredentialPolicy::CannotAskClientForCredentials); @@ -20260,7 +20374,7 @@ index 8525d9e78cf2ba54d27f469cc028f10d61215ab2..c15a29c5e543e43059a461eebbd1c213 if (frame && !frame->settings().siteIsolationEnabled() && !WebProcess::singleton().allowsFirstPartyForCookies(loadParameters.request.firstPartyForCookies())) RELEASE_LOG_FAULT(IPC, "scheduleLoad: Process will terminate due to failed allowsFirstPartyForCookies check"); -@@ -540,7 +554,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -544,7 +558,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL } auto loader = WebResourceLoader::create(resourceLoader, trackingParameters); @@ -20269,7 +20383,7 @@ index 8525d9e78cf2ba54d27f469cc028f10d61215ab2..c15a29c5e543e43059a461eebbd1c213 } void WebLoaderStrategy::scheduleInternallyFailedLoad(WebCore::ResourceLoader& resourceLoader) -@@ -949,7 +963,7 @@ void WebLoaderStrategy::didFinishPreconnection(WebCore::ResourceLoaderIdentifier +@@ -954,7 +968,7 @@ void WebLoaderStrategy::didFinishPreconnection(WebCore::ResourceLoaderIdentifier bool WebLoaderStrategy::isOnLine() const { @@ -20278,7 +20392,7 @@ index 8525d9e78cf2ba54d27f469cc028f10d61215ab2..c15a29c5e543e43059a461eebbd1c213 } void WebLoaderStrategy::addOnlineStateChangeListener(Function&& listener) -@@ -976,6 +990,11 @@ void WebLoaderStrategy::isResourceLoadFinished(CachedResource& resource, Complet +@@ -981,6 +995,11 @@ void WebLoaderStrategy::isResourceLoadFinished(CachedResource& resource, Complet void WebLoaderStrategy::setOnLineState(bool isOnLine) { @@ -20290,7 +20404,7 @@ index 8525d9e78cf2ba54d27f469cc028f10d61215ab2..c15a29c5e543e43059a461eebbd1c213 if (m_isOnLine == isOnLine) return; -@@ -984,6 +1003,12 @@ void WebLoaderStrategy::setOnLineState(bool isOnLine) +@@ -989,6 +1008,12 @@ void WebLoaderStrategy::setOnLineState(bool isOnLine) listener(isOnLine); } @@ -20334,7 +20448,7 @@ index 3ef86cc236b8acee2fbe5d0b9c3fd755fcc9f06f..75951fc0fc5e4ef566582c0a49482793 } // namespace WebKit diff --git a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp -index 59c04024b944527cb4d5aa9ad3359db4d684e102..0ed0cdfcc8f5bab168df8e022e7c3cc80aab086b 100644 +index e9bd84cf730f46d9e18a4f39e7050f7cc7343b5f..9998a2e3647373429ed1af6d97b5cd3e5ff59fe2 100644 --- a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp +++ b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp @@ -200,9 +200,6 @@ void WebResourceLoader::didReceiveResponse(ResourceResponse&& response, PrivateR @@ -20370,10 +20484,10 @@ index ee9c3c4f48c328daaa015e2122235e51349bd999..5b3a4d3e742147195e0ff9e88176759d auto permissionHandlers = m_requestsPerOrigin.take(securityOrigin); diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp -index 6819d51a57c701ccdb625c1b549c5e1e87cce744..24e825dfdddae160de407225f9fa0c5d02cd973b 100644 +index 54d732ab06524cd6f94a2dcef5323a81ceb330ac..a653197191c2bfeea762375c07ccb1e1a2a0e457 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp +++ b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp -@@ -463,6 +463,8 @@ void WebChromeClient::addMessageToConsole(MessageSource source, MessageLevel lev +@@ -468,6 +468,8 @@ void WebChromeClient::addMessageToConsole(MessageSource source, MessageLevel lev { // Notify the bundle client. auto page = protectedPage(); @@ -20383,7 +20497,7 @@ index 6819d51a57c701ccdb625c1b549c5e1e87cce744..24e825dfdddae160de407225f9fa0c5d } diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebDragClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebDragClient.cpp -index 2eb0886f13ed035a53b8eaa60605de4dfe53fbe3..c46393209cb4f80704bbc9268fad4371347d5b30 100644 +index 2eb0886f13ed035a53b8eaa60605de4dfe53fbe3..0f6a539f00a42149c0f2b2237a9cbdd8334459d6 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/WebDragClient.cpp +++ b/Source/WebKit/WebProcess/WebCoreSupport/WebDragClient.cpp @@ -29,6 +29,13 @@ @@ -20392,7 +20506,7 @@ index 2eb0886f13ed035a53b8eaa60605de4dfe53fbe3..c46393209cb4f80704bbc9268fad4371 #include "WebPage.h" +#include +#include -+#include "ShareableBitmap.h" ++#include + +#if PLATFORM(WPE) +#include "ArgumentCodersWPE.h" @@ -20410,10 +20524,10 @@ index 2eb0886f13ed035a53b8eaa60605de4dfe53fbe3..c46393209cb4f80704bbc9268fad4371 { } diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp -index f12b986ff225dba84be246f5ec471c7cf2d27def..954ba6f0f9380c341fa58ae8fdaf2535187d091a 100644 +index ecddea9f99d6d3ecb9db72d23054b2d08b5b2e39..65f10a77cf34fd7237baefdc18cf3bb1c9fcc044 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp +++ b/Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp -@@ -1566,14 +1566,6 @@ void WebLocalFrameLoaderClient::transitionToCommittedForNewPage() +@@ -1589,14 +1589,6 @@ void WebLocalFrameLoaderClient::transitionToCommittedForNewPage() if (webPage->scrollPinningBehavior() != ScrollPinningBehavior::DoNotPin) view->setScrollPinningBehavior(webPage->scrollPinningBehavior()); @@ -20429,7 +20543,7 @@ index f12b986ff225dba84be246f5ec471c7cf2d27def..954ba6f0f9380c341fa58ae8fdaf2535 void WebLocalFrameLoaderClient::didRestoreFromBackForwardCache() diff --git a/Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm b/Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm -index de80b6dd7b7b441d4f74f9f0504a76fec54a04be..26917ef68184952cb18186979ff9e5d41d3c390f 100644 +index 69b851554679018aefe2c22b79671f7796d9e8b8..50e985ded3cdc9aaa5f30f7776c29cbc23c2b2b8 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm +++ b/Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm @@ -129,7 +129,8 @@ static WebCore::CachedImage* cachedImage(Element& element) @@ -20444,7 +20558,7 @@ index de80b6dd7b7b441d4f74f9f0504a76fec54a04be..26917ef68184952cb18186979ff9e5d4 diff --git a/Source/WebKit/WebProcess/WebCoreSupport/win/WebDragClientWin.cpp b/Source/WebKit/WebProcess/WebCoreSupport/win/WebDragClientWin.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..af697fb9921aefa18da1d1148c5e93c3970960db +index 0000000000000000000000000000000000000000..66972b66094050b2429a927861ff7d0d30925ef0 --- /dev/null +++ b/Source/WebKit/WebProcess/WebCoreSupport/win/WebDragClientWin.cpp @@ -0,0 +1,58 @@ @@ -20479,13 +20593,13 @@ index 0000000000000000000000000000000000000000..af697fb9921aefa18da1d1148c5e93c3 +#if ENABLE(DRAG_SUPPORT) + +//#include "ArgumentCodersWPE.h" -+#include "ShareableBitmap.h" +#include "MessageSenderInlines.h" +#include "WebPage.h" +#include "WebPageProxyMessages.h" +#include +#include +#include ++#include +#include + +//#include @@ -20508,10 +20622,10 @@ index 0000000000000000000000000000000000000000..af697fb9921aefa18da1d1148c5e93c3 +#endif // ENABLE(DRAG_SUPPORT) diff --git a/Source/WebKit/WebProcess/WebCoreSupport/wpe/WebDragClientWPE.cpp b/Source/WebKit/WebProcess/WebCoreSupport/wpe/WebDragClientWPE.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..af21b0d1dd4e9b1f74387a8f8a928244ae47bae6 +index 0000000000000000000000000000000000000000..4fa6b70b978998849950d1fe4d9f902ede155956 --- /dev/null +++ b/Source/WebKit/WebProcess/WebCoreSupport/wpe/WebDragClientWPE.cpp -@@ -0,0 +1,58 @@ +@@ -0,0 +1,57 @@ +/* + * Copyright (C) 2011 Igalia S.L. + * @@ -20543,14 +20657,13 @@ index 0000000000000000000000000000000000000000..af21b0d1dd4e9b1f74387a8f8a928244 +#if ENABLE(DRAG_SUPPORT) + +#include "ArgumentCodersWPE.h" -+#include "ShareableBitmap.h" -+#include "ShareableBitmapHandle.h" +#include "WebPage.h" +#include "WebPageProxyMessages.h" +#include +#include +#include +#include ++#include + +namespace WebKit { +using namespace WebCore; @@ -20571,10 +20684,10 @@ index 0000000000000000000000000000000000000000..af21b0d1dd4e9b1f74387a8f8a928244 + +#endif // ENABLE(DRAG_SUPPORT) diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp -index 1505262429a0737183ac24b74f6186225a177893..be2122ec1735b10979dd453cb60de3bb02b54bcf 100644 +index d49a3e054f11e2e07c37a3f2e7ce55252998365c..b6e71fe25b6a49ac50ba89ba1128cbb6a6bb2f44 100644 --- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp +++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp -@@ -40,6 +40,7 @@ +@@ -39,6 +39,7 @@ #include "WebPreferencesKeys.h" #include "WebProcess.h" #include @@ -20624,10 +20737,10 @@ index 1505262429a0737183ac24b74f6186225a177893..be2122ec1735b10979dd453cb60de3bb void DrawingAreaCoordinatedGraphics::scheduleDisplay() diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp -index 88878cde07fc3667371437a12d2bb660b019970a..98cc9d47b99b7d99ce8d257f6d2d423927d247a7 100644 +index 0180860001b598d414f3a472715da8daa640c5f6..c11c1ecf8c43faf2a67e1a3c7196ec5a7e62e6c4 100644 --- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp +++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp -@@ -197,8 +197,16 @@ void LayerTreeHost::setViewOverlayRootLayer(GraphicsLayer* viewOverlayRootLayer) +@@ -194,8 +194,16 @@ void LayerTreeHost::setViewOverlayRootLayer(GraphicsLayer* viewOverlayRootLayer) void LayerTreeHost::scrollNonCompositedContents(const IntRect& rect) { auto* frameView = m_webPage.localMainFrameView(); @@ -20644,7 +20757,7 @@ index 88878cde07fc3667371437a12d2bb660b019970a..98cc9d47b99b7d99ce8d257f6d2d4239 m_viewportController.didScroll(rect.location()); didChangeViewport(); -@@ -317,6 +325,10 @@ void LayerTreeHost::didChangeViewport() +@@ -314,6 +322,10 @@ void LayerTreeHost::didChangeViewport() if (!view->useFixedLayout()) view->notifyScrollPositionChanged(m_lastScrollPosition); @@ -20674,7 +20787,7 @@ index cb3d2cc477cc1244d6d2ccedb3d484cdf4a0d82c..077019e38cd782a62e9328948b6d0a9f #if USE(COORDINATED_GRAPHICS) void layerFlushTimerFired(); diff --git a/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp b/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp -index 30c1f55828df6bf4e48543cc3347dde1ee41e10f..e71997ca8292530c5c01ce141443ad426aeeff0a 100644 +index 94bbead87936ab599f79c3c08b260cad939aea62..5099d3d7bdf220aa5c8f3729a04397ec38cfed05 100644 --- a/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp +++ b/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp @@ -27,6 +27,7 @@ @@ -20685,7 +20798,7 @@ index 30c1f55828df6bf4e48543cc3347dde1ee41e10f..e71997ca8292530c5c01ce141443ad42 #include "Logging.h" #include "WebPage.h" #include "WebPageCreationParameters.h" -@@ -108,6 +109,13 @@ void DrawingArea::tryMarkLayersVolatile(CompletionHandler&& completi +@@ -112,6 +113,13 @@ void DrawingArea::tryMarkLayersVolatile(CompletionHandler&& completi completionFunction(true); } @@ -20714,10 +20827,10 @@ index 891e7d4dba97ec6a2b2ac27ae052636ec4de6057..ff1932c7c6d8233b1c92360f1b9fe47d #if PLATFORM(WPE) && USE(GBM) && ENABLE(WPE_PLATFORM) virtual void preferredBufferFormatsDidChange() { } diff --git a/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp b/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp -index 35586a9dfccfe82ec7e6d38c4aa2c624b6d05597..58912fc3e33887e5ccfe8ac05c706f473c709566 100644 +index 003a617e9926b0d832d7613d361ab1abf246da5a..51dd176ab2e7275896b94dd21c776d70216ee05b 100644 --- a/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp -@@ -43,6 +43,7 @@ +@@ -44,6 +44,7 @@ #include #include #include @@ -20725,7 +20838,7 @@ index 35586a9dfccfe82ec7e6d38c4aa2c624b6d05597..58912fc3e33887e5ccfe8ac05c706f47 #include #include #include -@@ -351,4 +352,10 @@ void WebCookieJar::removeChangeListener(const String& host, const WebCore::Cooki +@@ -391,4 +392,10 @@ void WebCookieJar::removeChangeListener(const String& host, const WebCore::Cooki } #endif @@ -20737,10 +20850,10 @@ index 35586a9dfccfe82ec7e6d38c4aa2c624b6d05597..58912fc3e33887e5ccfe8ac05c706f47 + } // namespace WebKit diff --git a/Source/WebKit/WebProcess/WebPage/WebCookieJar.h b/Source/WebKit/WebProcess/WebPage/WebCookieJar.h -index 2aebbbd13594712f8cb3cd1de16da6818bbf4706..125d77abfafe41c2a49568f02a7cde6ee7ad0e1b 100644 +index eb7001bc2cc2dee3a446c1b7adbe93b4d74664ce..c7b3722d51398e0dcc220398d1ed024e48e58a6c 100644 --- a/Source/WebKit/WebProcess/WebPage/WebCookieJar.h +++ b/Source/WebKit/WebProcess/WebPage/WebCookieJar.h -@@ -69,6 +69,8 @@ public: +@@ -70,6 +70,8 @@ public: void clearCache() final; @@ -20749,53 +20862,11 @@ index 2aebbbd13594712f8cb3cd1de16da6818bbf4706..125d77abfafe41c2a49568f02a7cde6e private: WebCookieJar(); -diff --git a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp -index 3d55eaca35e4e6642d0ee65ab2cbfec2f45e68f4..606cb422287fe2a1975be381424a5de6a3e5d352 100644 ---- a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp -+++ b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp -@@ -46,6 +46,14 @@ void WebDocumentLoader::detachFromFrame(LoadWillContinueInAnotherProcess loadWil - DocumentLoader::detachFromFrame(loadWillContinueInAnotherProcess); - } - -+void WebDocumentLoader::replacedByFragmentNavigation(LocalFrame& frame) -+{ -+ ASSERT(!this->frame()); -+ // Notify WebPageProxy that the navigation has been converted into same page navigation. -+ if (m_navigationID) -+ WebFrame::fromCoreFrame(frame)->documentLoaderDetached(m_navigationID, false); -+} -+ - void WebDocumentLoader::setNavigationID(uint64_t navigationID) - { - ASSERT(navigationID); -diff --git a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h -index 22a2194e393c7bfcc6a6635b6fdb7e95994db3e9..a060b7aff37549c79c63cde23fa66938988e1dd0 100644 ---- a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h -+++ b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h -@@ -27,6 +27,7 @@ - #define WebDocumentLoader_h - - #include -+#include - - namespace WebKit { - -@@ -46,7 +47,10 @@ public: - private: - WebDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&); - -+ uint64_t loaderIDForInspector() override { return navigationID(); } -+ - void detachFromFrame(WebCore::LoadWillContinueInAnotherProcess) override; -+ void replacedByFragmentNavigation(WebCore::LocalFrame&) override; - - uint64_t m_navigationID { 0 }; - }; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -index 01073ba7befdad88b8f29a063d81b19dcca2e4af..52cb736a9475f4288ef4fe1bf60fd49d5490e8d3 100644 +index d295e3e7342ae550f2ecefbb44a4ae17f0f6b734..bfa033e7531be339a61e297cc73e45a4ae883542 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -@@ -1009,6 +1009,9 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) +@@ -1021,6 +1021,9 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) #endif #endif // HAVE(SANDBOX_STATE_FLAGS) @@ -20805,7 +20876,7 @@ index 01073ba7befdad88b8f29a063d81b19dcca2e4af..52cb736a9475f4288ef4fe1bf60fd49d updateThrottleState(); #if ENABLE(ACCESSIBILITY_ANIMATION_CONTROL) updateImageAnimationEnabled(); -@@ -1918,6 +1921,22 @@ void WebPage::transitionFrameToLocal(LocalFrameCreationParameters&& creationPara +@@ -1956,6 +1959,22 @@ void WebPage::transitionFrameToLocal(LocalFrameCreationParameters&& creationPara frame->transitionToLocal(creationParameters.layerHostingContextIdentifier); } @@ -20828,7 +20899,7 @@ index 01073ba7befdad88b8f29a063d81b19dcca2e4af..52cb736a9475f4288ef4fe1bf60fd49d 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()); -@@ -2194,17 +2213,14 @@ void WebPage::setSize(const WebCore::IntSize& viewSize) +@@ -2235,17 +2254,14 @@ void WebPage::setSize(const WebCore::IntSize& viewSize) view->resize(viewSize); m_drawingArea->setNeedsDisplay(); @@ -20846,7 +20917,7 @@ index 01073ba7befdad88b8f29a063d81b19dcca2e4af..52cb736a9475f4288ef4fe1bf60fd49d void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArguments) { RefPtr localMainFrame = dynamicDowncast(m_page->mainFrame()); -@@ -2229,20 +2245,18 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg +@@ -2270,20 +2286,18 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg ViewportAttributes attr = computeViewportAttributes(viewportArguments, minimumLayoutFallbackWidth, deviceWidth, deviceHeight, 1, m_viewSize); @@ -20874,7 +20945,7 @@ index 01073ba7befdad88b8f29a063d81b19dcca2e4af..52cb736a9475f4288ef4fe1bf60fd49d #if USE(COORDINATED_GRAPHICS) m_drawingArea->didChangeViewportAttributes(WTFMove(attr)); -@@ -2250,7 +2264,6 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg +@@ -2291,7 +2305,6 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg send(Messages::WebPageProxy::DidChangeViewportProperties(attr)); #endif } @@ -20882,7 +20953,7 @@ index 01073ba7befdad88b8f29a063d81b19dcca2e4af..52cb736a9475f4288ef4fe1bf60fd49d void WebPage::scrollMainFrameIfNotAtMaxScrollPosition(const IntSize& scrollOffset) { -@@ -2543,6 +2556,7 @@ void WebPage::scaleView(double scale) +@@ -2584,6 +2597,7 @@ void WebPage::scaleView(double scale) } m_page->setViewScaleFactor(scale); @@ -20890,7 +20961,7 @@ index 01073ba7befdad88b8f29a063d81b19dcca2e4af..52cb736a9475f4288ef4fe1bf60fd49d scalePage(pageScale, scrollPositionAtNewScale); } -@@ -2722,18 +2736,14 @@ void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArgum +@@ -2763,18 +2777,14 @@ void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArgum viewportConfigurationChanged(); #endif @@ -20910,7 +20981,7 @@ index 01073ba7befdad88b8f29a063d81b19dcca2e4af..52cb736a9475f4288ef4fe1bf60fd49d } #if !PLATFORM(IOS_FAMILY) -@@ -3703,6 +3713,97 @@ void WebPage::touchEvent(const WebTouchEvent& touchEvent, CompletionHandlersendMessageToTargetBackend(targetId, message); } @@ -21020,7 +21091,7 @@ index 01073ba7befdad88b8f29a063d81b19dcca2e4af..52cb736a9475f4288ef4fe1bf60fd49d void WebPage::insertNewlineInQuotedContent() { Ref frame = CheckedRef(m_page->focusController())->focusedOrMainFrame(); -@@ -3991,6 +4097,7 @@ void WebPage::didCompletePageTransition() +@@ -4065,6 +4171,7 @@ void WebPage::didCompletePageTransition() void WebPage::show() { send(Messages::WebPageProxy::ShowPage()); @@ -21028,7 +21099,7 @@ index 01073ba7befdad88b8f29a063d81b19dcca2e4af..52cb736a9475f4288ef4fe1bf60fd49d } void WebPage::setIsTakingSnapshotsForApplicationSuspension(bool isTakingSnapshotsForApplicationSuspension) -@@ -5044,7 +5151,7 @@ NotificationPermissionRequestManager* WebPage::notificationPermissionRequestMana +@@ -5150,7 +5257,7 @@ NotificationPermissionRequestManager* WebPage::notificationPermissionRequestMana #if ENABLE(DRAG_SUPPORT) @@ -21037,7 +21108,7 @@ index 01073ba7befdad88b8f29a063d81b19dcca2e4af..52cb736a9475f4288ef4fe1bf60fd49d void WebPage::performDragControllerAction(DragControllerAction action, const IntPoint& clientPosition, const IntPoint& globalPosition, OptionSet draggingSourceOperationMask, SelectionData&& selectionData, OptionSet flags, CompletionHandler, DragHandlingMethod, bool, unsigned, IntRect, IntRect, std::optional)>&& completionHandler) { if (!m_page) -@@ -7308,6 +7415,10 @@ void WebPage::didCommitLoad(WebFrame* frame) +@@ -7399,6 +7506,10 @@ void WebPage::didCommitLoad(WebFrame* frame) #endif flushDeferredDidReceiveMouseEvent(); @@ -21048,7 +21119,7 @@ index 01073ba7befdad88b8f29a063d81b19dcca2e4af..52cb736a9475f4288ef4fe1bf60fd49d } void WebPage::didFinishDocumentLoad(WebFrame& frame) -@@ -7537,6 +7648,9 @@ Ref WebPage::createDocumentLoader(LocalFrame& frame, const Resou +@@ -7633,6 +7744,9 @@ Ref WebPage::createDocumentLoader(LocalFrame& frame, const Resou WebsitePoliciesData::applyToDocumentLoader(WTFMove(*m_pendingWebsitePolicies), documentLoader); m_pendingWebsitePolicies = std::nullopt; } @@ -21059,10 +21130,10 @@ index 01073ba7befdad88b8f29a063d81b19dcca2e4af..52cb736a9475f4288ef4fe1bf60fd49d return documentLoader; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.h b/Source/WebKit/WebProcess/WebPage/WebPage.h -index 3bf27b0025d6467a2d52577d627da87f21bdffb6..ab4bde77c7079d78709f9fb66b03aae98446e1d5 100644 +index e04672c5e6b8a37852b61a46a311ec43393da20b..c4cc0b1c52f3c7fe703614436a7689e58eb0a9ba 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.h +++ b/Source/WebKit/WebProcess/WebPage/WebPage.h -@@ -70,6 +70,7 @@ +@@ -68,6 +68,7 @@ #include #include #include @@ -21070,7 +21141,7 @@ index 3bf27b0025d6467a2d52577d627da87f21bdffb6..ab4bde77c7079d78709f9fb66b03aae9 #include #include #include -@@ -110,6 +111,10 @@ +@@ -109,6 +110,10 @@ #include "WebPrintOperationGtk.h" #endif @@ -21081,7 +21152,7 @@ index 3bf27b0025d6467a2d52577d627da87f21bdffb6..ab4bde77c7079d78709f9fb66b03aae9 #if PLATFORM(GTK) || PLATFORM(WPE) #include "InputMethodState.h" #endif -@@ -1105,11 +1110,11 @@ public: +@@ -1126,11 +1131,11 @@ public: void clearSelection(); void restoreSelectionInFocusedEditableElement(); @@ -21095,7 +21166,7 @@ index 3bf27b0025d6467a2d52577d627da87f21bdffb6..ab4bde77c7079d78709f9fb66b03aae9 void performDragControllerAction(std::optional, DragControllerAction, WebCore::DragData&&, CompletionHandler, WebCore::DragHandlingMethod, bool, unsigned, WebCore::IntRect, WebCore::IntRect, std::optional)>&&); void performDragOperation(WebCore::DragData&&, SandboxExtension::Handle&&, Vector&&, CompletionHandler&&); #endif -@@ -1124,6 +1129,9 @@ public: +@@ -1145,6 +1150,9 @@ public: void didStartDrag(); void dragCancelled(); OptionSet allowedDragSourceActions() const { return m_allowedDragSourceActions; } @@ -21105,7 +21176,7 @@ index 3bf27b0025d6467a2d52577d627da87f21bdffb6..ab4bde77c7079d78709f9fb66b03aae9 #endif void beginPrinting(WebCore::FrameIdentifier, const PrintInfo&); -@@ -1351,6 +1359,7 @@ public: +@@ -1368,6 +1376,7 @@ public: void connectInspector(const String& targetId, Inspector::FrontendChannel::ConnectionType); void disconnectInspector(const String& targetId); void sendMessageToTargetBackend(const String& targetId, const String& message); @@ -21113,7 +21184,7 @@ index 3bf27b0025d6467a2d52577d627da87f21bdffb6..ab4bde77c7079d78709f9fb66b03aae9 void insertNewlineInQuotedContent(); -@@ -1791,6 +1800,7 @@ private: +@@ -1825,6 +1834,7 @@ private: void tryClose(CompletionHandler&&); void platformDidReceiveLoadParameters(const LoadParameters&); void transitionFrameToLocal(LocalFrameCreationParameters&&, WebCore::FrameIdentifier); @@ -21121,7 +21192,7 @@ index 3bf27b0025d6467a2d52577d627da87f21bdffb6..ab4bde77c7079d78709f9fb66b03aae9 void loadRequest(LoadParameters&&); [[noreturn]] void loadRequestWaitingForProcessLaunch(LoadParameters&&, URL&&, WebPageProxyIdentifier, bool); void loadData(LoadParameters&&); -@@ -1829,6 +1839,7 @@ private: +@@ -1864,6 +1874,7 @@ private: void updatePotentialTapSecurityOrigin(const WebTouchEvent&, bool wasHandled); #elif ENABLE(TOUCH_EVENTS) void touchEvent(const WebTouchEvent&, CompletionHandler, bool)>&&); @@ -21129,7 +21200,7 @@ index 3bf27b0025d6467a2d52577d627da87f21bdffb6..ab4bde77c7079d78709f9fb66b03aae9 #endif void cancelPointer(WebCore::PointerID, const WebCore::IntPoint&); -@@ -1973,9 +1984,7 @@ private: +@@ -2011,9 +2022,7 @@ private: void addLayerForFindOverlay(CompletionHandler&&); void removeLayerForFindOverlay(CompletionHandler&&); @@ -21139,7 +21210,7 @@ index 3bf27b0025d6467a2d52577d627da87f21bdffb6..ab4bde77c7079d78709f9fb66b03aae9 void didChangeSelectedIndexForActivePopupMenu(int32_t newIndex); void setTextForActivePopupMenu(int32_t index); -@@ -2538,6 +2547,7 @@ private: +@@ -2593,6 +2602,7 @@ private: UserActivity m_userActivity; uint64_t m_pendingNavigationID { 0 }; @@ -21148,7 +21219,7 @@ index 3bf27b0025d6467a2d52577d627da87f21bdffb6..ab4bde77c7079d78709f9fb66b03aae9 bool m_mainFrameProgressCompleted { false }; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.messages.in b/Source/WebKit/WebProcess/WebPage/WebPage.messages.in -index ba8ee4491a50a2eb04143c158f14ebb0338174e4..c3dcdb000cd49b2d7631ad80e6d6eda8759ada15 100644 +index 2a2c08292952243611e318eb894d0f3324eee168..7dce572b61b8fb218a8a884739f338652431487c 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 @@ -21168,14 +21239,14 @@ index ba8ee4491a50a2eb04143c158f14ebb0338174e4..c3dcdb000cd49b2d7631ad80e6d6eda8 CancelPointer(WebCore::PointerID pointerId, WebCore::IntPoint documentPoint) @@ -190,6 +192,7 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType - LoadDataInFrame(IPC::DataReference data, String MIMEType, String encodingName, URL baseURL, WebCore::FrameIdentifier frameID) + LoadDataInFrame(std::span data, String MIMEType, String encodingName, URL baseURL, WebCore::FrameIdentifier frameID) LoadRequest(struct WebKit::LoadParameters loadParameters) TransitionFrameToLocal(struct WebKit::LocalFrameCreationParameters creationParameters, WebCore::FrameIdentifier frameID) + LoadRequestInFrameForInspector(struct WebKit::LoadParameters loadParameters, WebCore::FrameIdentifier frameID) LoadRequestWaitingForProcessLaunch(struct WebKit::LoadParameters loadParameters, URL resourceDirectoryURL, WebKit::WebPageProxyIdentifier pageID, bool checkAssumedReadAccessToResourceURL) LoadData(struct WebKit::LoadParameters loadParameters) LoadSimulatedRequestAndResponse(struct WebKit::LoadParameters loadParameters, WebCore::ResourceResponse simulatedResponse) -@@ -353,10 +356,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -357,10 +360,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType AddMIMETypeWithCustomContentProvider(String mimeType) # Drag and drop. @@ -21188,7 +21259,7 @@ index ba8ee4491a50a2eb04143c158f14ebb0338174e4..c3dcdb000cd49b2d7631ad80e6d6eda8 PerformDragControllerAction(std::optional frameID, enum:uint8_t WebKit::DragControllerAction action, WebCore::DragData dragData) -> (std::optional dragOperation, enum:uint8_t WebCore::DragHandlingMethod dragHandlingMethod, bool mouseIsOverFileInput, unsigned numberOfItemsToBeAccepted, WebCore::IntRect insertionRect, WebCore::IntRect editableElementRect, struct std::optional remoteUserInputEventData) PerformDragOperation(WebCore::DragData dragData, WebKit::SandboxExtension::Handle sandboxExtensionHandle, Vector sandboxExtensionsForUpload) -> (bool handled) #endif -@@ -366,6 +369,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -370,6 +373,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType DragCancelled() #endif @@ -21200,10 +21271,10 @@ index ba8ee4491a50a2eb04143c158f14ebb0338174e4..c3dcdb000cd49b2d7631ad80e6d6eda8 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 174768320a3d2d5a974b8423f3552cf9130abb72..2303e81ce777a28cf07fc24fb01a386fe39a5abe 100644 +index 5f9b880c80bf59683296a4c55a68e43246710470..941b6583b8e48e81899e05a57d858ac90bc4d446 100644 --- a/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm +++ b/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm -@@ -812,21 +812,37 @@ String WebPage::platformUserAgent(const URL&) const +@@ -839,21 +839,37 @@ String WebPage::platformUserAgent(const URL&) const bool WebPage::hoverSupportedByPrimaryPointingDevice() const { @@ -21292,10 +21363,10 @@ index f17f5d719d892309ed9c7093384945866b5117b9..1dba47bbf0dbd0362548423a74b38034 } diff --git a/Source/WebKit/WebProcess/WebProcess.cpp b/Source/WebKit/WebProcess/WebProcess.cpp -index 570975d8cd2d1e71bacb660dc2c50f3cd4832239..376263ec6f5f1430975a00e1b2a47b03493fe860 100644 +index 1977756a15c3ba23a02ef6e03044af4d6f34ef68..2e6d9e185ab7f0a8da8a19e97a61baa79d60c8e8 100644 --- a/Source/WebKit/WebProcess/WebProcess.cpp +++ b/Source/WebKit/WebProcess/WebProcess.cpp -@@ -87,6 +87,7 @@ +@@ -88,6 +88,7 @@ #include "WebsiteData.h" #include "WebsiteDataStoreParameters.h" #include "WebsiteDataType.h" @@ -21303,7 +21374,7 @@ index 570975d8cd2d1e71bacb660dc2c50f3cd4832239..376263ec6f5f1430975a00e1b2a47b03 #include #include #include -@@ -361,6 +362,8 @@ void WebProcess::initializeProcess(const AuxiliaryProcessInitializationParameter +@@ -373,6 +374,8 @@ void WebProcess::initializeProcess(const AuxiliaryProcessInitializationParameter platformInitializeProcess(parameters); updateCPULimit(); @@ -21328,10 +21399,10 @@ index 8987c3964a9308f2454759de7f8972215a3ae416..bcac0afeb94ed8123d1f9fb0b932c849 SetProcessDPIAware(); return true; diff --git a/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm b/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm -index 50eaf5a4da5c6d9a986f821094666698936f66af..9693a99c8558e478c70044b42cbb4c35855550ec 100644 +index 20b69d828a5a5f12cec5382b32064c4ce86a663b..a79db828df1c5f2f0e05c43f2f01e38a29accc70 100644 --- a/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm +++ b/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm -@@ -4210,7 +4210,7 @@ ALLOW_DEPRECATED_DECLARATIONS_END +@@ -4214,7 +4214,7 @@ ALLOW_DEPRECATED_DECLARATIONS_END _private->handlingMouseDownEvent = NO; } @@ -21341,10 +21412,10 @@ index 50eaf5a4da5c6d9a986f821094666698936f66af..9693a99c8558e478c70044b42cbb4c35 - (void)touch:(WebEvent *)event { diff --git a/Source/WebKitLegacy/mac/WebView/WebView.mm b/Source/WebKitLegacy/mac/WebView/WebView.mm -index f15835107bc07430ff2544feb2caf925315102c9..c3ff4cd3018e3263b2b1490142f48885566ced49 100644 +index e527382b814031c47421e3a74142eb9db7c5fb4b..939c24109fb1fd4e30fc1073261e91e899d48b82 100644 --- a/Source/WebKitLegacy/mac/WebView/WebView.mm +++ b/Source/WebKitLegacy/mac/WebView/WebView.mm -@@ -3942,7 +3942,7 @@ + (void)_doNotStartObservingNetworkReachability +@@ -3947,7 +3947,7 @@ + (void)_doNotStartObservingNetworkReachability } #endif // PLATFORM(IOS_FAMILY) @@ -21353,7 +21424,7 @@ index f15835107bc07430ff2544feb2caf925315102c9..c3ff4cd3018e3263b2b1490142f48885 - (NSArray *)_touchEventRegions { -@@ -3984,7 +3984,7 @@ - (NSArray *)_touchEventRegions +@@ -3989,7 +3989,7 @@ - (NSArray *)_touchEventRegions }).autorelease(); } @@ -21394,7 +21465,7 @@ index 0000000000000000000000000000000000000000..dd6a53e2d57318489b7e49dd7373706d + LIBVPX_LIBRARIES +) diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake -index 958481ce651a3788b7f6694c336620194d97f68f..13fd67b1e50f5f341e382b4b85fb89233de9650c 100644 +index 9b613b751bafaa2b7ebaa9aafa726cc408a68550..5a6a9ff9f835e796dfaf68aa3331570756a3cf88 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 @@ -21422,7 +21493,7 @@ index 958481ce651a3788b7f6694c336620194d97f68f..13fd67b1e50f5f341e382b4b85fb8923 include(GStreamerDefinitions) SET_AND_EXPOSE_TO_BUILD(USE_CAIRO TRUE) -@@ -93,14 +102,14 @@ endif () +@@ -90,14 +99,14 @@ 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) @@ -21437,10 +21508,10 @@ index 958481ce651a3788b7f6694c336620194d97f68f..13fd67b1e50f5f341e382b4b85fb8923 -WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_AVIF PUBLIC ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_AVIF PUBLIC OFF) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_LCMS PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_JPEGXL PUBLIC ON) - - # Private options shared with other WebKit ports. Add options here when -@@ -124,7 +133,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_MONTH PRIVATE ON) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_WOFF2 PUBLIC ON) +@@ -123,7 +132,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_MONTH PRIVATE ON) 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_LAYER_BASED_SVG_ENGINE PRIVATE ON) @@ -21449,7 +21520,7 @@ index 958481ce651a3788b7f6694c336620194d97f68f..13fd67b1e50f5f341e382b4b85fb8923 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) -@@ -136,7 +145,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_CACHE_SPECULATIVE_REVALIDATION P +@@ -135,7 +144,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}) @@ -21458,8 +21529,8 @@ index 958481ce651a3788b7f6694c336620194d97f68f..13fd67b1e50f5f341e382b4b85fb8923 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_SHAREABLE_RESOURCE PRIVATE ON) -@@ -146,6 +155,14 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_API_STATISTICS PRIVATE ON) - WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_CODECS PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) +@@ -145,6 +154,14 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_API_STATISTICS PRIVATE ON) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_CODECS PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_RTC PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) +# Playwright @@ -21473,19 +21544,11 @@ index 958481ce651a3788b7f6694c336620194d97f68f..13fd67b1e50f5f341e382b4b85fb8923 include(GStreamerDependencies) # Finalize the value for all options. Do not attempt to use an option before -@@ -261,6 +278,7 @@ if (NOT EXISTS "${TOOLS_DIR}/glib/apply-build-revision-to-files.py") - endif () - - SET_AND_EXPOSE_TO_BUILD(USE_ATSPI ${ENABLE_ACCESSIBILITY}) -+ - SET_AND_EXPOSE_TO_BUILD(HAVE_GTK_UNIX_PRINTING ${GTK_UNIX_PRINT_FOUND}) - SET_AND_EXPOSE_TO_BUILD(HAVE_OS_DARK_MODE_SUPPORT 1) - diff --git a/Source/cmake/OptionsWPE.cmake b/Source/cmake/OptionsWPE.cmake -index a1dd7fe27cdf20f3d526732d2aeb1b4cf2687124..ddd4008cc0dc7517b6e6be313d74c1721bced6b7 100644 +index bb4408e1483b3368d3755f91e1c314c5a8356b6d..6e0926a1aae4f99d9ad912621c91f77b4ae6a09c 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 +@@ -9,6 +9,8 @@ if (${CMAKE_VERSION} VERSION_LESS "3.20" AND NOT ${CMAKE_GENERATOR} STREQUAL "Ni message(FATAL_ERROR "Building with Makefiles requires CMake 3.20 or newer. Either enable Ninja by passing -GNinja, or upgrade CMake.") endif () @@ -21493,15 +21556,20 @@ index a1dd7fe27cdf20f3d526732d2aeb1b4cf2687124..ddd4008cc0dc7517b6e6be313d74c172 + set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string") + find_package(ATK 2.16.0 REQUIRED) +@@ -29,6 +31,9 @@ find_package(WebP REQUIRED COMPONENTS demux) + find_package(WPE REQUIRED) + find_package(ZLIB REQUIRED) + +set(CMAKE_THREAD_PREFER_PTHREAD TRUE) +set(THREADS_PREFER_PTHREAD_FLAG TRUE) + - find_package(Cairo 1.16.0 REQUIRED) - find_package(Fontconfig 2.13.0 REQUIRED) - find_package(Freetype 2.9.0 REQUIRED) -@@ -41,11 +46,11 @@ include(GStreamerDefinitions) + WEBKIT_OPTION_BEGIN() + + SET_AND_EXPOSE_TO_BUILD(ENABLE_DEVELOPER_MODE ${DEVELOPER_MODE}) +@@ -39,11 +44,11 @@ include(GStreamerDefinitions) + # without approval from a WPE reviewer. There must be strong reason to support # changing the value of the option. - WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCESSIBILITY PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ENCRYPTED_MEDIA PUBLIC ${ENABLE_EXPERIMENTAL_FEATURES}) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PDFJS PUBLIC ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PDFJS PUBLIC OFF) @@ -21510,9 +21578,9 @@ index a1dd7fe27cdf20f3d526732d2aeb1b4cf2687124..ddd4008cc0dc7517b6e6be313d74c172 -WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_AVIF PUBLIC ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_AVIF PUBLIC OFF) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_LCMS PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_JPEGXL PUBLIC ON) - - # Private options shared with other WebKit ports. Add options here only if + WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_WOFF2 PUBLIC ON) @@ -61,7 +66,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTPDIR PRIVATE OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GPU_PROCESS PRIVATE OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LAYER_BASED_SVG_ENGINE PRIVATE ON) @@ -21530,7 +21598,7 @@ index a1dd7fe27cdf20f3d526732d2aeb1b4cf2687124..ddd4008cc0dc7517b6e6be313d74c172 +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_THUNDER PRIVATE OFF) 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}) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_CODECS PRIVATE ON) @@ -86,6 +91,23 @@ if (WPE_VERSION VERSION_GREATER_EQUAL 1.13.90) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD PUBLIC ON) endif () @@ -21562,35 +21630,15 @@ index a1dd7fe27cdf20f3d526732d2aeb1b4cf2687124..ddd4008cc0dc7517b6e6be313d74c172 -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_SKIA "Whether to use Skia instead of Cairo." PRIVATE OFF) 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) -@@ -214,6 +236,7 @@ endif () - - set(CMAKE_C_VISIBILITY_PRESET hidden) - set(CMAKE_CXX_VISIBILITY_PRESET hidden) -+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lrt") - set(CMAKE_VISIBILITY_INLINES_HIDDEN ON) - set(bmalloc_LIBRARY_TYPE OBJECT) - set(WTF_LIBRARY_TYPE OBJECT) diff --git a/Source/cmake/OptionsWin.cmake b/Source/cmake/OptionsWin.cmake -index 8cc9e7a924fd2ca419e950b30e75aeafacd4bc44..0101e67b4b917e4742d615394938d75ea00794d6 100644 +index e60d013125f60b32b7b9bca1847eb118cfb72406..5fca8f7c0a78e36144e28e1b1388dc1380f1bcf9 100644 --- a/Source/cmake/OptionsWin.cmake +++ b/Source/cmake/OptionsWin.cmake -@@ -97,16 +97,37 @@ if (OpenJPEG_FOUND) - endif () - - find_package(WOFF2 1.0.2 COMPONENTS dec) --if (WOFF2_FOUND) -- find_package(Brotli REQUIRED COMPONENTS dec) -- SET_AND_EXPOSE_TO_BUILD(USE_WOFF2 ON) --endif () -+find_package(Brotli REQUIRED COMPONENTS dec) -+SET_AND_EXPOSE_TO_BUILD(USE_WOFF2 ON) - - find_package(WebP COMPONENTS demux) - if (WebP_FOUND) - SET_AND_EXPOSE_TO_BUILD(USE_WEBP ON) - endif () +@@ -86,6 +86,29 @@ find_package(ZLIB 1.2.11 REQUIRED) + find_package(LibPSL 0.20.2 REQUIRED) + find_package(WebP REQUIRED COMPONENTS demux) +# Playwright begin +if (NOT LIBVPX_PACKAGE_PATH) @@ -21618,9 +21666,9 @@ index 8cc9e7a924fd2ca419e950b30e75aeafacd4bc44..0101e67b4b917e4742d615394938d75e WEBKIT_OPTION_BEGIN() # FIXME: Most of these options should not be public. -@@ -178,6 +199,14 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBDRIVER PRIVATE ${ENABLE_EXPERIMENTAL_ - # No support planned - WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTPDIR PRIVATE OFF) +@@ -163,6 +186,14 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTPDIR PRIVATE OFF) + SET_AND_EXPOSE_TO_BUILD(ENABLE_WEBDRIVER_KEYBOARD_INTERACTIONS ON) + SET_AND_EXPOSE_TO_BUILD(ENABLE_WEBDRIVER_MOUSE_INTERACTIONS ON) +# Plawright begin +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DARK_MODE_CSS PRIVATE ON) @@ -21634,7 +21682,7 @@ index 8cc9e7a924fd2ca419e950b30e75aeafacd4bc44..0101e67b4b917e4742d615394938d75e set(USE_ANGLE_EGL ON) diff --git a/Source/cmake/WebKitCompilerFlags.cmake b/Source/cmake/WebKitCompilerFlags.cmake -index df8464ed9d2227db3e801e01e63fafab581e625e..a2fa79209908a6d072faace91e0c5b102843aae7 100644 +index 0732785ed1b6c78c0088596349d2ee6e980ca663..f32ba67f06038712a624511729acf3afb304a6af 100644 --- a/Source/cmake/WebKitCompilerFlags.cmake +++ b/Source/cmake/WebKitCompilerFlags.cmake @@ -87,7 +87,7 @@ macro(WEBKIT_ADD_TARGET_CXX_FLAGS _target) @@ -21716,7 +21764,7 @@ index 61616b96e2f4e21aa6d098445e0f1a933e512a9c..33732da18013679a869ff8eb2b445434 } diff --git a/Tools/MiniBrowser/gtk/BrowserWindow.c b/Tools/MiniBrowser/gtk/BrowserWindow.c -index 87ec298a5863a4147b8ee2a000af3f696cc5d615..fe081059e18163d4274c7b4087b3f8fec9981b77 100644 +index bd00606c26b6fedb75978ed26a9b07f4b70828d8..8460a4ae5ff7461e3435fe2e704bb04e0a8bd0f8 100644 --- a/Tools/MiniBrowser/gtk/BrowserWindow.c +++ b/Tools/MiniBrowser/gtk/BrowserWindow.c @@ -73,7 +73,7 @@ struct _BrowserWindowClass { @@ -21749,7 +21797,7 @@ index 87ec298a5863a4147b8ee2a000af3f696cc5d615..fe081059e18163d4274c7b4087b3f8fe gtk_window_set_title(GTK_WINDOW(window), privateTitle ? privateTitle : title); g_free(privateTitle); } -@@ -522,8 +516,12 @@ static gboolean webViewDecidePolicy(WebKitWebView *webView, WebKitPolicyDecision +@@ -520,8 +514,12 @@ static gboolean webViewDecidePolicy(WebKitWebView *webView, WebKitPolicyDecision return FALSE; WebKitNavigationAction *navigationAction = webkit_navigation_policy_decision_get_navigation_action(WEBKIT_NAVIGATION_POLICY_DECISION(decision)); @@ -21764,7 +21812,7 @@ index 87ec298a5863a4147b8ee2a000af3f696cc5d615..fe081059e18163d4274c7b4087b3f8fe return FALSE; /* Multiple tabs are not allowed in editor mode. */ -@@ -1500,6 +1498,12 @@ static gboolean browserWindowDeleteEvent(GtkWidget *widget, GdkEventAny* event) +@@ -1498,6 +1496,12 @@ static gboolean browserWindowDeleteEvent(GtkWidget *widget, GdkEventAny* event) } #endif @@ -21777,7 +21825,7 @@ index 87ec298a5863a4147b8ee2a000af3f696cc5d615..fe081059e18163d4274c7b4087b3f8fe static void browser_window_class_init(BrowserWindowClass *klass) { GObjectClass *gobjectClass = G_OBJECT_CLASS(klass); -@@ -1513,6 +1517,14 @@ static void browser_window_class_init(BrowserWindowClass *klass) +@@ -1511,6 +1515,14 @@ static void browser_window_class_init(BrowserWindowClass *klass) GtkWidgetClass *widgetClass = GTK_WIDGET_CLASS(klass); widgetClass->delete_event = browserWindowDeleteEvent; #endif @@ -21962,10 +22010,10 @@ index 451e0333dd4e8f5d6313fa80c5027ef2661a61ac..7398af4772ed9a479b1632e38af2d4ee return exitAfterLoad && webProcessCrashed ? 1 : 0; diff --git a/Tools/MiniBrowser/wpe/main.cpp b/Tools/MiniBrowser/wpe/main.cpp -index 6e618c32288f30d1f24ecbe929a3d37670981154..de6b4b8ede31518309eee78899f27f9b897c7f87 100644 +index f055ae8bf4b9758815a6d8ad779f66d2fe8d5f96..ddcb1a8157e44738f6e1a33c59a57fd91473ce44 100644 --- a/Tools/MiniBrowser/wpe/main.cpp +++ b/Tools/MiniBrowser/wpe/main.cpp -@@ -45,6 +45,9 @@ static gboolean headlessMode; +@@ -42,6 +42,9 @@ static gboolean headlessMode; static gboolean privateMode; static gboolean automationMode; static gboolean ignoreTLSErrors; @@ -21975,7 +22023,7 @@ index 6e618c32288f30d1f24ecbe929a3d37670981154..de6b4b8ede31518309eee78899f27f9b static const char* contentFilter; static const char* cookiesFile; static const char* cookiesPolicy; -@@ -78,6 +81,9 @@ static const GOptionEntry commandLineOptions[] = +@@ -75,6 +78,9 @@ static const GOptionEntry commandLineOptions[] = { "use-wpe-platform-api", 0, 0, G_OPTION_ARG_NONE, &useWPEPlatformAPI, "Use the WPE platform API", nullptr }, #endif { "version", 'v', 0, G_OPTION_ARG_NONE, &printVersion, "Print the WPE version", nullptr }, @@ -21985,7 +22033,7 @@ index 6e618c32288f30d1f24ecbe929a3d37670981154..de6b4b8ede31518309eee78899f27f9b { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &uriArguments, nullptr, "[URL]" }, { nullptr, 0, 0, G_OPTION_ARG_NONE, nullptr, nullptr, nullptr } }; -@@ -205,15 +211,38 @@ static void filterSavedCallback(WebKitUserContentFilterStore *store, GAsyncResul +@@ -202,15 +208,38 @@ static void filterSavedCallback(WebKitUserContentFilterStore *store, GAsyncResul g_main_loop_quit(data->mainLoop); } @@ -22026,7 +22074,7 @@ index 6e618c32288f30d1f24ecbe929a3d37670981154..de6b4b8ede31518309eee78899f27f9b { auto backend = createViewBackend(1280, 720); -@@ -229,18 +258,37 @@ static WebKitWebView* createWebView(WebKitWebView* webView, WebKitNavigationActi +@@ -226,18 +255,37 @@ static WebKitWebView* createWebView(WebKitWebView* webView, WebKitNavigationActi }, backend.release()); } @@ -22070,7 +22118,7 @@ index 6e618c32288f30d1f24ecbe929a3d37670981154..de6b4b8ede31518309eee78899f27f9b return newWebView; } -@@ -254,13 +302,89 @@ static WebKitFeature* findFeature(WebKitFeatureList* featureList, const char* id +@@ -251,13 +299,89 @@ static WebKitFeature* findFeature(WebKitFeatureList* featureList, const char* id return nullptr; } @@ -22161,7 +22209,7 @@ index 6e618c32288f30d1f24ecbe929a3d37670981154..de6b4b8ede31518309eee78899f27f9b webkit_network_session_set_itp_enabled(networkSession, enableITP); if (proxy) { -@@ -287,10 +411,18 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -284,10 +408,18 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* webkit_cookie_manager_set_persistent_storage(cookieManager, cookiesFile, storageType); } } @@ -22182,7 +22230,7 @@ index 6e618c32288f30d1f24ecbe929a3d37670981154..de6b4b8ede31518309eee78899f27f9b webkit_website_data_manager_set_itp_enabled(manager, enableITP); if (proxy) { -@@ -321,6 +453,7 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -318,6 +450,7 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* } #endif @@ -22190,7 +22238,7 @@ index 6e618c32288f30d1f24ecbe929a3d37670981154..de6b4b8ede31518309eee78899f27f9b WebKitUserContentManager* userContentManager = nullptr; if (contentFilter) { GFile* contentFilterFile = g_file_new_for_commandline_arg(contentFilter); -@@ -388,6 +521,15 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -385,6 +518,15 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* delete static_cast(data); }, backend) : nullptr; @@ -22206,7 +22254,7 @@ index 6e618c32288f30d1f24ecbe929a3d37670981154..de6b4b8ede31518309eee78899f27f9b auto* webView = WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW, "backend", viewBackend, "web-context", webContext, -@@ -414,8 +556,6 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -409,8 +551,6 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* g_signal_connect(wpeView, "event", G_CALLBACK(wpeViewEventCallback), webView); #endif @@ -22215,7 +22263,7 @@ index 6e618c32288f30d1f24ecbe929a3d37670981154..de6b4b8ede31518309eee78899f27f9b 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); -@@ -428,16 +568,9 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* +@@ -423,16 +563,9 @@ static void activate(GApplication* application, WPEToolingBackends::ViewBackend* webkit_web_view_set_background_color(webView, &color); if (uriArguments) { @@ -22235,7 +22283,7 @@ index 6e618c32288f30d1f24ecbe929a3d37670981154..de6b4b8ede31518309eee78899f27f9b webkit_web_view_load_uri(webView, "about:blank"); else webkit_web_view_load_uri(webView, "https://wpewebkit.org"); -@@ -511,8 +644,14 @@ int main(int argc, char *argv[]) +@@ -506,8 +639,14 @@ int main(int argc, char *argv[]) } } @@ -22263,7 +22311,7 @@ index 1067b31bc989748dfcc5502209d36d001b9b239e..7629263fb8bc93dca6dfc01c75eed8d2 + add_subdirectory(Playwright/win) +endif () diff --git a/Tools/Scripts/build-webkit b/Tools/Scripts/build-webkit -index 6d42f5c814da1aeac83fc336f20a6e585322cec2..d8423597af92e63422dca0bae1129e7e59e14b77 100755 +index 9d2c490729c07369eac8372885c7ff98bb3e5707..21cb415200240028360eb7492a64522c5913aec6 100755 --- a/Tools/Scripts/build-webkit +++ b/Tools/Scripts/build-webkit @@ -273,7 +273,7 @@ if (isAppleCocoaWebKit()) { @@ -22291,10 +22339,10 @@ index 9e53f459e444b9c10fc5248f0e8059df6c1e0041..c17c875a7dd3ca05c4489578ab32378b "${WebKitTestRunner_DIR}/InjectedBundle/Bindings/AccessibilityController.idl" "${WebKitTestRunner_DIR}/InjectedBundle/Bindings/AccessibilityTextMarker.idl" diff --git a/Tools/WebKitTestRunner/TestController.cpp b/Tools/WebKitTestRunner/TestController.cpp -index 058d5d3029e2facd15d7cc7a60f499d3139d6e8d..7ac58fe41cee5577e6ce25e437f0db41246da214 100644 +index 4278aa9844a3a6bade0e3ea0ba5fc19792992afa..e27a870a70bbde031240f33ff6f29e01d9fcff1c 100644 --- a/Tools/WebKitTestRunner/TestController.cpp +++ b/Tools/WebKitTestRunner/TestController.cpp -@@ -962,6 +962,7 @@ void TestController::createWebViewWithOptions(const TestOptions& options) +@@ -963,6 +963,7 @@ void TestController::createWebViewWithOptions(const TestOptions& options) 0, // requestStorageAccessConfirm shouldAllowDeviceOrientationAndMotionAccess, runWebAuthenticationPanel, @@ -22404,10 +22452,10 @@ index 1e2a9202f88c63afa6525d97d0f945438f5f2032..e6cdee08aff723eb5c6b16491051ca39 # These are dependencies necessary for running tests. cups-daemon diff --git a/Tools/gtk/jhbuild.modules b/Tools/gtk/jhbuild.modules -index 424963da44676b4bfa394aa054ce08a791099fe5..3e075a6ff3ab18da0999de609192dceb82e664b6 100644 +index 0bd2f996ba2641cbe4f4864b6fd8ce59204bae0a..b211f1bad06fab907de2bb592de843683c8af0fb 100644 --- a/Tools/gtk/jhbuild.modules +++ b/Tools/gtk/jhbuild.modules -@@ -253,10 +253,10 @@ +@@ -252,10 +252,10 @@ @@ -22448,24 +22496,31 @@ index 9c4870249367d0c0fb8c08cee660cfd63a6cb8de..496c35c5bd3d3d3c40ec7fc050182c70 diff --git a/Tools/wpe/backends/fdo/HeadlessViewBackendFdo.cpp b/Tools/wpe/backends/fdo/HeadlessViewBackendFdo.cpp -index 4b3d262528d33800ac46e4e9fc342b11f2744979..39d72bd2c04e79b94a5c7634b6abc9b227d5c148 100644 +index 4eb2cbcc2dcc89678043a6e0ea768b7cd7984d7a..b87404a700b697d4c693862b406a4fdd62e50327 100644 --- a/Tools/wpe/backends/fdo/HeadlessViewBackendFdo.cpp +++ b/Tools/wpe/backends/fdo/HeadlessViewBackendFdo.cpp -@@ -149,27 +149,25 @@ void HeadlessViewBackend::updateSnapshot(PlatformBuffer exportedBuffer) +@@ -179,32 +179,30 @@ void HeadlessViewBackend::updateSnapshot(PlatformBuffer exportedBuffer) return; } ++uint32_t width = std::max(0, wl_shm_buffer_get_width(shmBuffer)); ++uint32_t height = std::max(0, wl_shm_buffer_get_height(shmBuffer)); ++if (!width || !height) { ++ fprintf(stderr, "HeadlessViewBackend::updateSnapshot shmBuffer is empty: %ux%u\n", width, height); ++ return; ++} ++ + #if defined(USE_CAIRO) && USE_CAIRO - uint32_t bufferStride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, m_width); ++ uint32_t bufferStride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, width); + #elif defined(USE_SKIA) && USE_SKIA +- auto info = SkImageInfo::MakeN32Premul(m_width, m_height); ++ auto info = SkImageInfo::MakeN32Premul(width, height); + uint32_t bufferStride = info.minRowBytes(); + #endif - uint8_t* buffer = new uint8_t[bufferStride * m_height]; - memset(buffer, 0, bufferStride * m_height); -+ uint32_t width = std::max(0, wl_shm_buffer_get_width(shmBuffer)); -+ uint32_t height = std::max(0, wl_shm_buffer_get_height(shmBuffer)); -+ if (!width || !height) { -+ fprintf(stderr, "HeadlessViewBackend::updateSnapshot shmBuffer is empty: %ux%u\n", width, height); -+ return; -+ } - -+ uint32_t bufferStride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, width); +- + uint32_t stride = std::max(0, wl_shm_buffer_get_stride(shmBuffer)); + if (bufferStride != stride) { + fprintf(stderr, "bufferStride != stride: %u != %u\n", bufferStride, stride); @@ -22493,7 +22548,7 @@ index 4b3d262528d33800ac46e4e9fc342b11f2744979..39d72bd2c04e79b94a5c7634b6abc9b2 wl_shm_buffer_end_access(shmBuffer); } -@@ -177,7 +175,7 @@ void HeadlessViewBackend::updateSnapshot(PlatformBuffer exportedBuffer) +@@ -213,7 +211,7 @@ void HeadlessViewBackend::updateSnapshot(PlatformBuffer exportedBuffer) cairo_surface_destroy(m_snapshot); m_snapshot = cairo_image_surface_create_for_data(buffer, CAIRO_FORMAT_ARGB32, @@ -22503,10 +22558,10 @@ index 4b3d262528d33800ac46e4e9fc342b11f2744979..39d72bd2c04e79b94a5c7634b6abc9b2 static cairo_user_data_key_t bufferKey; cairo_surface_set_user_data(m_snapshot, &bufferKey, buffer, diff --git a/Tools/wpe/jhbuild.modules b/Tools/wpe/jhbuild.modules -index e8e82cc7b122bba731e33472742f3d55319dc5a7..85e5f447133048f8db119c5edcfd7c69466fb4b9 100644 +index 191d23b445c58ddbf0fb0eb416deea938f28e2aa..5e632ca166760adf21ee91eaee35275eab4d4ec7 100644 --- a/Tools/wpe/jhbuild.modules +++ b/Tools/wpe/jhbuild.modules -@@ -102,10 +102,10 @@ +@@ -101,10 +101,10 @@