diff --git a/browser_patches/firefox/UPSTREAM_CONFIG.sh b/browser_patches/firefox/UPSTREAM_CONFIG.sh index 710ea215f1..e9de343df6 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="250178df19caa1fb25bfa0e35728426cfbde95f8" +BASE_REVISION="a1600bbbbc880fa71b9a1b37b9c885c5e2f97542" diff --git a/browser_patches/firefox/juggler/TargetRegistry.js b/browser_patches/firefox/juggler/TargetRegistry.js index bf8243f53b..1e79a2c167 100644 --- a/browser_patches/firefox/juggler/TargetRegistry.js +++ b/browser_patches/firefox/juggler/TargetRegistry.js @@ -710,6 +710,9 @@ class PageTarget { const contextMenu = doc.getElementById("contentAreaContextMenu"); if (contextMenu) contextMenu.hidePopup(); + const autocompletePopup = doc.getElementById("PopupAutoComplete"); + if (autocompletePopup) + autocompletePopup.hidePopup(); } dispose() { diff --git a/browser_patches/firefox/juggler/components/Juggler.js b/browser_patches/firefox/juggler/components/Juggler.js index 6ed8580078..a3740acc45 100644 --- a/browser_patches/firefox/juggler/components/Juggler.js +++ b/browser_patches/firefox/juggler/components/Juggler.js @@ -133,13 +133,13 @@ class Juggler { }; pipe.init(connection); const dispatcher = new Dispatcher(connection); - browserHandler = new BrowserHandler(dispatcher.rootSession(), dispatcher, targetRegistry, () => { + browserHandler = new BrowserHandler(dispatcher.rootSession(), dispatcher, targetRegistry, browserStartupFinishedPromise, () => { if (this._silent) Services.startup.exitLastWindowClosingSurvivalArea(); connection.onclose(); pipe.stop(); pipeStopped = true; - }, () => browserStartupFinishedPromise); + }); dispatcher.rootSession().setHandler(browserHandler); loadStyleSheet(); dump(`\nJuggler listening to the pipe\n`); diff --git a/browser_patches/firefox/juggler/content/Runtime.js b/browser_patches/firefox/juggler/content/Runtime.js index ac7adc1515..4b56439070 100644 --- a/browser_patches/firefox/juggler/content/Runtime.js +++ b/browser_patches/firefox/juggler/content/Runtime.js @@ -185,7 +185,13 @@ class Runtime { if (context._isIsolatedWorldContext()) return false; const domWindow = context._domWindow; - return domWindow && domWindow.windowGlobalChild.innerWindowId === wrappedJSObject.innerID; + try { + // `windowGlobalChild` might be dead already; accessing it will throw an error, message in a console, + // and infinite recursion. + return domWindow && domWindow.windowGlobalChild.innerWindowId === wrappedJSObject.innerID; + } catch (e) { + return false; + } }); if (!executionContext) return; diff --git a/browser_patches/firefox/juggler/protocol/BrowserHandler.js b/browser_patches/firefox/juggler/protocol/BrowserHandler.js index 0360e502a6..360649da90 100644 --- a/browser_patches/firefox/juggler/protocol/BrowserHandler.js +++ b/browser_patches/firefox/juggler/protocol/BrowserHandler.js @@ -14,7 +14,7 @@ const {AppConstants} = ChromeUtils.import("resource://gre/modules/AppConstants.j const helper = new Helper(); class BrowserHandler { - constructor(session, dispatcher, targetRegistry, onclose, onstart) { + constructor(session, dispatcher, targetRegistry, startCompletePromise, onclose) { this._session = session; this._dispatcher = dispatcher; this._targetRegistry = targetRegistry; @@ -24,13 +24,13 @@ class BrowserHandler { this._createdBrowserContextIds = new Set(); this._attachedSessions = new Map(); this._onclose = onclose; - this._onstart = onstart; + this._startCompletePromise = startCompletePromise; } async ['Browser.enable']({attachToDefaultContext}) { if (this._enabled) return; - await this._onstart(); + await this._startCompletePromise; this._enabled = true; this._attachToDefaultContext = attachToDefaultContext; @@ -136,6 +136,7 @@ class BrowserHandler { waitForWindowClosed(browserWindow), ]); } + await this._startCompletePromise; this._onclose(); Services.startup.quit(Ci.nsIAppStartup.eForceQuit); } diff --git a/browser_patches/firefox/juggler/protocol/PageHandler.js b/browser_patches/firefox/juggler/protocol/PageHandler.js index 0ada0a2683..6ec438f684 100644 --- a/browser_patches/firefox/juggler/protocol/PageHandler.js +++ b/browser_patches/firefox/juggler/protocol/PageHandler.js @@ -538,12 +538,15 @@ class PageHandler { if (type === 'mouseup') { if (this._isDragging) { - const watcher = new EventWatcher(this._pageEventSink, ['dragover', 'dragend']); + const watcher = new EventWatcher(this._pageEventSink, ['dragover']); await this._contentPage.send('dispatchDragEvent', {type: 'dragover', x, y, modifiers}); await this._contentPage.send('dispatchDragEvent', {type: 'drop', x, y, modifiers}); await this._contentPage.send('dispatchDragEvent', {type: 'dragend', x, y, modifiers}); - // NOTE: 'drop' event might not be dispatched at all, depending on dropAction. - await watcher.ensureEventsAndDispose(['dragover', 'dragend']); + // NOTE: + // - 'drop' event might not be dispatched at all, depending on dropAction. + // - 'dragend' event might not be dispatched at all, if the source element was removed + // during drag. However, it'll be dispatched synchronously in the renderer. + await watcher.ensureEventsAndDispose(['dragover']); this._isDragging = false; } else { const watcher = new EventWatcher(this._pageEventSink, ['mouseup']); diff --git a/browser_patches/firefox/juggler/screencast/ScreencastEncoder.cpp b/browser_patches/firefox/juggler/screencast/ScreencastEncoder.cpp index 5891953392..51466a0ab9 100644 --- a/browser_patches/firefox/juggler/screencast/ScreencastEncoder.cpp +++ b/browser_patches/firefox/juggler/screencast/ScreencastEncoder.cpp @@ -145,12 +145,34 @@ public: uint8_t* u_data = image->planes[VPX_PLANE_U]; uint8_t* v_data = image->planes[VPX_PLANE_V]; - double src_width = src->width() - m_margin.LeftRight(); - double src_height = src->height() - m_margin.top; - // YUV offsets must be even. + /** + * Let's say we have the following image of 6x3 pixels (same number = same pixel value): + * 112233 + * 112233 + * 445566 + * In I420 format (see https://en.wikipedia.org/wiki/YUV), the image will have the following data planes: + * Y [stride_Y = 6]: + * 112233 + * 112233 + * 445566 + * U [stride_U = 3] - this plane has aggregate for each 2x2 pixels: + * 123 + * 456 + * V [stride_V = 3] - this plane has aggregate for each 2x2 pixels: + * 123 + * 456 + * + * To crop this image efficiently, we can move src_Y/U/V pointer and + * adjust the src_width and src_height. However, we must cut off only **even** + * amount of lines and columns to retain semantic of U and V planes which + * contain only 1/4 of pixel information. + */ int yuvTopOffset = m_margin.top & 1 ? m_margin.top + 1 : m_margin.top; int yuvLeftOffset = m_margin.left & 1 ? m_margin.left + 1 : m_margin.left; + double src_width = src->width() - yuvLeftOffset; + double src_height = src->height() - yuvTopOffset; + if (src_width > image->w || src_height > image->h) { double scale = std::min(image->w / src_width, image->h / src_height); double dst_width = src_width * scale; diff --git a/browser_patches/firefox/patches/bootstrap.diff b/browser_patches/firefox/patches/bootstrap.diff index d791d28ca1..4842cde00a 100644 --- a/browser_patches/firefox/patches/bootstrap.diff +++ b/browser_patches/firefox/patches/bootstrap.diff @@ -313,7 +313,7 @@ index 8d32d0f5a37396eb18aa217bcac887f131df9fa2..86eca6ab834829283454d1565d1a7211 bool CanSet(FieldIndex, bool, ContentParent*) { diff --git a/docshell/base/CanonicalBrowsingContext.cpp b/docshell/base/CanonicalBrowsingContext.cpp -index 542ee945424fe3cfc28318a395b8663d39d7ff78..f743a1d663af30140cee9255fc2522f5b214f79f 100644 +index 50863b8b4948166b63ef88eeef640bc27d5489c5..4e73297034a0f6909c4df6ff83d4453ce61f7ae6 100644 --- a/docshell/base/CanonicalBrowsingContext.cpp +++ b/docshell/base/CanonicalBrowsingContext.cpp @@ -1435,6 +1435,12 @@ void CanonicalBrowsingContext::LoadURI(const nsAString& aURI, @@ -330,7 +330,7 @@ index 542ee945424fe3cfc28318a395b8663d39d7ff78..f743a1d663af30140cee9255fc2522f5 } diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp -index bc67480311817f1d16f7da3560fd7bd4720fedbd..2cd03b86d7f5516a050bcf612d5e1ded8baff839 100644 +index b0f1edf389703f650287ffd7b8320df8835836b5..319291099cca4d77490c429dc8cf4e9735a6fe3c 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -15,6 +15,12 @@ @@ -628,7 +628,7 @@ index bc67480311817f1d16f7da3560fd7bd4720fedbd..2cd03b86d7f5516a050bcf612d5e1ded NS_IMETHODIMP nsDocShell::GetIsNavigating(bool* aOut) { *aOut = mIsNavigating; -@@ -4907,7 +5153,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { +@@ -4909,7 +5155,7 @@ nsDocShell::GetVisibility(bool* aVisibility) { } void nsDocShell::ActivenessMaybeChanged() { @@ -637,7 +637,7 @@ index bc67480311817f1d16f7da3560fd7bd4720fedbd..2cd03b86d7f5516a050bcf612d5e1ded if (RefPtr presShell = GetPresShell()) { presShell->ActivenessMaybeChanged(); } -@@ -6852,6 +7098,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, +@@ -6854,6 +7100,10 @@ bool nsDocShell::CanSavePresentation(uint32_t aLoadType, return false; // no entry to save into } @@ -648,7 +648,7 @@ index bc67480311817f1d16f7da3560fd7bd4720fedbd..2cd03b86d7f5516a050bcf612d5e1ded MOZ_ASSERT(!mozilla::SessionHistoryInParent(), "mOSHE cannot be non-null with SHIP"); nsCOMPtr viewer = mOSHE->GetContentViewer(); -@@ -8623,6 +8873,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { +@@ -8626,6 +8876,12 @@ nsresult nsDocShell::PerformRetargeting(nsDocShellLoadState* aLoadState) { true, // aForceNoOpener getter_AddRefs(newBC)); MOZ_ASSERT(!newBC); @@ -661,7 +661,7 @@ index bc67480311817f1d16f7da3560fd7bd4720fedbd..2cd03b86d7f5516a050bcf612d5e1ded return rv; } -@@ -9653,6 +9909,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, +@@ -9656,6 +9912,16 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState, nsINetworkPredictor::PREDICT_LOAD, attrs, nullptr); nsCOMPtr req; @@ -678,7 +678,7 @@ index bc67480311817f1d16f7da3560fd7bd4720fedbd..2cd03b86d7f5516a050bcf612d5e1ded rv = DoURILoad(aLoadState, aCacheKey, getter_AddRefs(req)); if (NS_SUCCEEDED(rv)) { -@@ -12817,6 +13083,9 @@ class OnLinkClickEvent : public Runnable { +@@ -12820,6 +13086,9 @@ class OnLinkClickEvent : public Runnable { mHandler->OnLinkClickSync(mContent, mLoadState, mNoOpenerImplied, mTriggeringPrincipal); } @@ -688,7 +688,7 @@ index bc67480311817f1d16f7da3560fd7bd4720fedbd..2cd03b86d7f5516a050bcf612d5e1ded return NS_OK; } -@@ -12896,6 +13165,8 @@ nsresult nsDocShell::OnLinkClick( +@@ -12899,6 +13168,8 @@ nsresult nsDocShell::OnLinkClick( nsCOMPtr ev = new OnLinkClickEvent(this, aContent, loadState, noOpenerImplied, aIsTrusted, aTriggeringPrincipal); @@ -817,10 +817,10 @@ index 6b85ddd842a6d2e29f86047017b78b2007b99867..f530ab61ac26cb7c94c8ccd07d11aa90 * 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 1287a8de21579db0490c42f492129a07b920f164..9eefcf442c2237729d393b56df42e9ee14420d20 100644 +index 6afeefcd0d916c116822e5a5f725403b4577f196..168445a80b3fe05a93e36cd3218a7de3c650d2a3 100644 --- a/dom/base/Document.cpp +++ b/dom/base/Document.cpp -@@ -3680,6 +3680,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { +@@ -3675,6 +3675,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { } void Document::ApplySettingsFromCSP(bool aSpeculative) { @@ -830,7 +830,7 @@ index 1287a8de21579db0490c42f492129a07b920f164..9eefcf442c2237729d393b56df42e9ee nsresult rv = NS_OK; if (!aSpeculative) { // 1) apply settings from regular CSP -@@ -3737,6 +3740,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { +@@ -3732,6 +3735,11 @@ nsresult Document::InitCSP(nsIChannel* aChannel) { MOZ_ASSERT(!mScriptGlobalObject, "CSP must be initialized before mScriptGlobalObject is set!"); @@ -842,7 +842,7 @@ index 1287a8de21579db0490c42f492129a07b920f164..9eefcf442c2237729d393b56df42e9ee // If this is a data document - no need to set CSP. if (mLoadedAsData) { return NS_OK; -@@ -4552,6 +4560,10 @@ bool Document::HasFocus(ErrorResult& rv) const { +@@ -4549,6 +4557,10 @@ bool Document::HasFocus(ErrorResult& rv) const { return false; } @@ -853,7 +853,7 @@ index 1287a8de21579db0490c42f492129a07b920f164..9eefcf442c2237729d393b56df42e9ee if (!fm->IsInActiveWindow(bc)) { return false; } -@@ -17942,6 +17954,71 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { +@@ -17926,6 +17938,71 @@ ColorScheme Document::PreferredColorScheme(IgnoreRFP aIgnoreRFP) const { return LookAndFeel::PreferredColorSchemeForContent(); } @@ -926,10 +926,10 @@ index 1287a8de21579db0490c42f492129a07b920f164..9eefcf442c2237729d393b56df42e9ee if (!sLoadingForegroundTopLevelContentDocument) { return false; diff --git a/dom/base/Document.h b/dom/base/Document.h -index 1c3fd1f413738228940bcdcc0e22b573360c3a38..d2d7bc873cb7ec9c050c61f881b3a81dd4c418d6 100644 +index 0a6be5aaa858277422fa67656deb8f39152bc24d..0108c385e3e7f34b48bd0992b1779007fc7f49fc 100644 --- a/dom/base/Document.h +++ b/dom/base/Document.h -@@ -4052,6 +4052,9 @@ class Document : public nsINode, +@@ -4062,6 +4062,9 @@ class Document : public nsINode, // color-scheme meta tag. ColorScheme DefaultColorScheme() const; @@ -1008,7 +1008,7 @@ index 9f6b85ecfac7196cc57c1b1979313403a41d4a6c..0fe045f38c36eb0284bb7c1fb6d33463 dom::MediaCapabilities* MediaCapabilities(); dom::MediaSession* MediaSession(); diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp -index e1b3fc0e6f27cee1152057601c50f7e206bebe2f..00a50373d28aaae191caaf35a20847c1eabc562d 100644 +index 66838dc517687e7583dfaa3c06a2dfe62afb4c5f..75f3326be1c4d9d828f548dc22ce8ad969bca2fd 100644 --- a/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp @@ -8382,7 +8382,8 @@ nsresult nsContentUtils::SendMouseEvent( @@ -1075,10 +1075,10 @@ index e1b3fc0e6f27cee1152057601c50f7e206bebe2f..00a50373d28aaae191caaf35a20847c1 nsPresContext* presContext = aPresShell->GetPresContext(); if (!presContext) return NS_ERROR_FAILURE; diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h -index 0dfb4d790f70f09add362063a71835d58c147a2f..09d2aecc355ef79afcdf73d16426c83fff570a85 100644 +index 10bb61f8f0ddba2f8460ccab5e23bea32df32857..b4c4f394cd8a71c57820d3cb562225910e1ba8d1 100644 --- a/dom/base/nsContentUtils.h +++ b/dom/base/nsContentUtils.h -@@ -2917,7 +2917,8 @@ class nsContentUtils { +@@ -2911,7 +2911,8 @@ class nsContentUtils { int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, uint32_t aIdentifier, bool aToWindow, mozilla::PreventDefaultResult* aPreventDefault, @@ -1089,10 +1089,10 @@ index 0dfb4d790f70f09add362063a71835d58c147a2f..09d2aecc355ef79afcdf73d16426c83f static void FirePageShowEventForFrameLoaderSwap( nsIDocShellTreeItem* aItem, diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp -index 5c6c4a44c2da4a38de141f1ec9bd9297ded90ea4..77bb38e1e37ed934804db078e5558369a5078d72 100644 +index 0997ef3c1092b536d4462d60f81f09425d0537aa..9d4fd3f96e9565c2b824c404654a06d1ad473f1b 100644 --- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp -@@ -682,7 +682,7 @@ nsDOMWindowUtils::SendMouseEvent( +@@ -683,7 +683,7 @@ nsDOMWindowUtils::SendMouseEvent( int32_t aClickCount, int32_t aModifiers, bool aIgnoreRootScrollFrame, float aPressure, unsigned short aInputSourceArg, bool aIsDOMEventSynthesized, bool aIsWidgetEventSynthesized, @@ -1101,7 +1101,7 @@ index 5c6c4a44c2da4a38de141f1ec9bd9297ded90ea4..77bb38e1e37ed934804db078e5558369 bool* aPreventDefault) { return SendMouseEventCommon( aType, aX, aY, aButton, aClickCount, aModifiers, aIgnoreRootScrollFrame, -@@ -690,7 +690,7 @@ nsDOMWindowUtils::SendMouseEvent( +@@ -691,7 +691,7 @@ nsDOMWindowUtils::SendMouseEvent( aOptionalArgCount >= 7 ? aIdentifier : DEFAULT_MOUSE_POINTER_ID, false, aPreventDefault, aOptionalArgCount >= 4 ? aIsDOMEventSynthesized : true, aOptionalArgCount >= 5 ? aIsWidgetEventSynthesized : false, @@ -1110,7 +1110,7 @@ index 5c6c4a44c2da4a38de141f1ec9bd9297ded90ea4..77bb38e1e37ed934804db078e5558369 } NS_IMETHODIMP -@@ -717,13 +717,13 @@ nsDOMWindowUtils::SendMouseEventCommon( +@@ -718,13 +718,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, @@ -1140,10 +1140,10 @@ index 63968c9b7a4e418e4c0de6e7a75fa215a36a9105..4dcec26021e74ada0757b4686bd07828 MOZ_CAN_RUN_SCRIPT nsresult SendTouchEventCommon( diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp -index 9be4c87f759f0a7f7fb65d6493e83e1291b87017..13681a8ceae3cbd9f3bacda709c3b0a95a88d454 100644 +index 7257629014b442de98176a313e2e51d1633b57a0..c3d647e663786acff4af2a340bb28e17dd4178ed 100644 --- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp -@@ -1646,6 +1646,10 @@ void nsFocusManager::SetFocusInner(Element* aNewContent, int32_t aFlags, +@@ -1633,6 +1633,10 @@ void nsFocusManager::SetFocusInner(Element* aNewContent, int32_t aFlags, (GetActiveBrowsingContext() == newRootBrowsingContext); } @@ -1154,7 +1154,7 @@ index 9be4c87f759f0a7f7fb65d6493e83e1291b87017..13681a8ceae3cbd9f3bacda709c3b0a9 // Exit fullscreen if a website focuses another window if (StaticPrefs::full_screen_api_exit_on_windowRaise() && !isElementInActiveWindow && (aFlags & FLAG_RAISE) && -@@ -2963,7 +2967,9 @@ void nsFocusManager::RaiseWindow(nsPIDOMWindowOuter* aWindow, +@@ -2944,7 +2948,9 @@ void nsFocusManager::RaiseWindow(nsPIDOMWindowOuter* aWindow, } } @@ -1166,7 +1166,7 @@ index 9be4c87f759f0a7f7fb65d6493e83e1291b87017..13681a8ceae3cbd9f3bacda709c3b0a9 // 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 461bbbb88126c5b12b54c2210cead1b5cb414384..9348681049bcb3f8e357eb03785b8c81ddde1d16 100644 +index 7a5df6943c7652d33f2b4ed773679fd6062023b5..c69fa9ed09ab132187917c4e3cead5647fc5ac68 100644 --- a/dom/base/nsGlobalWindowOuter.cpp +++ b/dom/base/nsGlobalWindowOuter.cpp @@ -2481,7 +2481,7 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, @@ -1313,7 +1313,7 @@ index 524ae260f708d5d3f6a7582984a57043eff679f2..503f1718527ef677ed9fef3f53e4dcc3 DOMQuad& aQuad, const GeometryNode& aFrom, const ConvertCoordinateOptions& aOptions, CallerType aCallerType, diff --git a/dom/base/nsINode.h b/dom/base/nsINode.h -index 6e80d425e51523b971daa02091fadb9ffdf55650..41ef3ea3884cc3373dcfd23a3bedc0ba5edd43a4 100644 +index dfce140014c8a1009c3300a9a54871431f260d2e..f5e299613365ee9044ff1c688478172607318886 100644 --- a/dom/base/nsINode.h +++ b/dom/base/nsINode.h @@ -2146,6 +2146,10 @@ class nsINode : public mozilla::dom::EventTarget { @@ -1407,7 +1407,7 @@ index 590ad9e2fd6f1457150a39aa2979bebcc991c5ed..e35107c8f5cc64aa97c80cf1a2e11e60 BrowsingContext includes LoadContextMixin; diff --git a/dom/geolocation/Geolocation.cpp b/dom/geolocation/Geolocation.cpp -index 1d2f65deb8add446993a8a578e1f8bb5b46de090..8dd68391e0e0eb1e6d92898f5263cc984836ee7c 100644 +index ff6fe276e3f5a19e3e22d98c4a38222880797d99..96157d17485534f97a4e39675ee77808ac495bfe 100644 --- a/dom/geolocation/Geolocation.cpp +++ b/dom/geolocation/Geolocation.cpp @@ -23,6 +23,7 @@ @@ -1506,7 +1506,7 @@ index 7e1af00d05fbafa2d828e2c7e4dcc5c82d115f5b..e85af9718d064e4d2865bc944e9d4ba1 ~Geolocation(); diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp -index d28c5ec6ff3116e2e3b39347f8ac2cd75b1e903b..85ba2959233c304877c8869878ae2725aabf7ceb 100644 +index 84d72bb7c49d8e87e953441c9c842e2ba14016fd..f8cc70d6a5c3932d167627a8c2945113d9c6c31c 100644 --- a/dom/html/HTMLInputElement.cpp +++ b/dom/html/HTMLInputElement.cpp @@ -57,6 +57,7 @@ @@ -1545,70 +1545,69 @@ index 89338882e70f7954d5f728406302c8bfc88ab3af..30bef01638db72293ea093ecb572b71b /** Synthesize a touch event. The event types supported are: * touchstart, touchend, touchmove, and touchcancel diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.cc b/dom/media/systemservices/video_engine/desktop_capture_impl.cc -index fd88433cfa61abdf9ecc3a3864e12ad8ddd53cd0..7ee39fdbca07fdeab50d28eaff5bc9bd88265056 100644 +index 5eddb4acb3b464e8a743c8b139231c537b364696..b1660d7497cf6b12892200dd8e2b37db745b8941 100644 --- a/dom/media/systemservices/video_engine/desktop_capture_impl.cc +++ b/dom/media/systemservices/video_engine/desktop_capture_impl.cc -@@ -131,10 +131,11 @@ int32_t ScreenDeviceInfoImpl::GetOrientation(const char* deviceUniqueIdUTF8, +@@ -129,11 +129,12 @@ int32_t ScreenDeviceInfoImpl::GetOrientation(const char* aDeviceUniqueIdUTF8, return 0; } --VideoCaptureModule* DesktopCaptureImpl::Create(const int32_t id, -+VideoCaptureModuleEx* DesktopCaptureImpl::Create(const int32_t id, - const char* uniqueId, -- const CaptureDeviceType type) { -- return new rtc::RefCountedObject(id, uniqueId, type); -+ const CaptureDeviceType type, -+ bool captureCursor) { -+ return new rtc::RefCountedObject(id, uniqueId, type, captureCursor); +-VideoCaptureModule* DesktopCaptureImpl::Create(const int32_t aModuleId, ++VideoCaptureModuleEx* DesktopCaptureImpl::Create(const int32_t aModuleId, + const char* aUniqueId, +- const CaptureDeviceType aType) { ++ const CaptureDeviceType aType, ++ bool aCaptureCursor) { + return new rtc::RefCountedObject(aModuleId, aUniqueId, +- aType); ++ aType, aCaptureCursor); } int32_t WindowDeviceInfoImpl::Init() { -@@ -402,9 +403,13 @@ int32_t DesktopCaptureImpl::LazyInitDesktopCapturer() { - DesktopCapturer::SourceId sourceId = atoi(_deviceUniqueId.c_str()); - pWindowCapturer->SelectSource(sourceId); +@@ -429,8 +430,12 @@ int32_t DesktopCaptureImpl::LazyInitDesktopCapturer() { + DesktopCapturer::SourceId sourceId = atoi(mDeviceUniqueId.c_str()); + windowCapturer->SelectSource(sourceId); -- desktop_capturer_cursor_composer_ = -- std::unique_ptr( -- new DesktopAndCursorComposer(std::move(pWindowCapturer), options)); +- mCapturer = std::make_unique( +- std::move(windowCapturer), options); + if (capture_cursor_) { -+ desktop_capturer_cursor_composer_ = -+ std::unique_ptr( -+ new DesktopAndCursorComposer(std::move(pWindowCapturer), options)); ++ mCapturer = std::make_unique( ++ std::move(windowCapturer), options); + } else { -+ desktop_capturer_cursor_composer_ = std::move(pWindowCapturer); ++ mCapturer = std::move(windowCapturer); + } - } else if (_deviceType == CaptureDeviceType::Browser) { + } else if (mDeviceType == CaptureDeviceType::Browser) { // XXX We don't capture cursors, so avoid the extra indirection layer. We // could also pass null for the pMouseCursorMonitor. -@@ -421,7 +426,8 @@ int32_t DesktopCaptureImpl::LazyInitDesktopCapturer() { +@@ -446,7 +451,8 @@ int32_t DesktopCaptureImpl::LazyInitDesktopCapturer() { } - DesktopCaptureImpl::DesktopCaptureImpl(const int32_t id, const char* uniqueId, -- const CaptureDeviceType type) -+ const CaptureDeviceType type, -+ bool captureCursor) - : _id(id), - _tracking_id( - mozilla::TrackingId(CaptureEngineToTrackingSourceStr([&] { -@@ -442,6 +448,7 @@ DesktopCaptureImpl::DesktopCaptureImpl(const int32_t id, const char* uniqueId, - _requestedCapability(), - _rotateFrame(kVideoRotation_0), - last_capture_time_ms_(rtc::TimeMillis()), -+ capture_cursor_(captureCursor), - time_event_(EventWrapper::Create()), - capturer_thread_(nullptr), - started_(false) { -@@ -479,6 +486,19 @@ void DesktopCaptureImpl::DeRegisterCaptureDataCallback( + DesktopCaptureImpl::DesktopCaptureImpl(const int32_t aId, const char* aUniqueId, +- const CaptureDeviceType aType) ++ const CaptureDeviceType aType, ++ bool aCaptureCursor) + : mModuleId(aId), + mTrackingId(mozilla::TrackingId(CaptureEngineToTrackingSourceStr([&] { + switch (aType) { +@@ -463,6 +469,7 @@ DesktopCaptureImpl::DesktopCaptureImpl(const int32_t aId, const char* aUniqueId, + aId)), + mDeviceUniqueId(aUniqueId), + mDeviceType(aType), ++ capture_cursor_(aCaptureCursor), + mTimeEvent(EventWrapper::Create()), + mLastFrameTimeMs(rtc::TimeMillis()), + mRunning(false), +@@ -494,6 +501,19 @@ void DesktopCaptureImpl::DeRegisterCaptureDataCallback( } } +void DesktopCaptureImpl::RegisterRawFrameCallback(RawFrameCallback* rawFrameCallback) { -+ rtc::CritScope lock(&_apiCs); ++ rtc::CritScope lock(&mApiCs); + _rawFrameCallbacks.insert(rawFrameCallback); +} + +void DesktopCaptureImpl::DeRegisterRawFrameCallback(RawFrameCallback* rawFrameCallback) { -+ rtc::CritScope lock(&_apiCs); ++ rtc::CritScope lock(&mApiCs); + auto it = _rawFrameCallbacks.find(rawFrameCallback); + if (it != _rawFrameCallbacks.end()) { + _rawFrameCallbacks.erase(it); @@ -1616,16 +1615,16 @@ index fd88433cfa61abdf9ecc3a3864e12ad8ddd53cd0..7ee39fdbca07fdeab50d28eaff5bc9bd +} + int32_t DesktopCaptureImpl::StopCaptureIfAllClientsClose() { - if (_dataCallBacks.empty()) { - return StopCapture(); -@@ -699,6 +719,15 @@ void DesktopCaptureImpl::OnCaptureResult(DesktopCapturer::Result result, - frameInfo.height = frame->size().height(); + { + auto callbacks = mCallbacks.Lock(); +@@ -679,6 +699,15 @@ void DesktopCaptureImpl::OnCaptureResult(DesktopCapturer::Result aResult, + frameInfo.height = aFrame->size().height(); frameInfo.videoType = VideoType::kARGB; + size_t videoFrameStride = + frameInfo.width * DesktopFrame::kBytesPerPixel; + { -+ rtc::CritScope cs(&_apiCs); ++ rtc::CritScope cs(&mApiCs); + for (auto rawFrameCallback : _rawFrameCallbacks) { + rawFrameCallback->OnRawFrame(videoFrame, videoFrameStride, frameInfo); + } @@ -1635,7 +1634,7 @@ index fd88433cfa61abdf9ecc3a3864e12ad8ddd53cd0..7ee39fdbca07fdeab50d28eaff5bc9bd frameInfo.width * frameInfo.height * DesktopFrame::kBytesPerPixel; IncomingFrame(videoFrame, videoFrameLength, diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.h b/dom/media/systemservices/video_engine/desktop_capture_impl.h -index d6b024f24be5b2ed0359e241d0014409798ac4b9..e0f80c54d7a6e87936ed345744d4f568821561ab 100644 +index fbbba4b8cd3c4aa93ae4c5f3f34ca78e926a16a7..57a1a7e560e5b862ef0fe18922b25a4b76ec2b88 100644 --- a/dom/media/systemservices/video_engine/desktop_capture_impl.h +++ b/dom/media/systemservices/video_engine/desktop_capture_impl.h @@ -48,6 +48,21 @@ namespace webrtc { @@ -1660,7 +1659,7 @@ index d6b024f24be5b2ed0359e241d0014409798ac4b9..e0f80c54d7a6e87936ed345744d4f568 // simulate deviceInfo interface for video engine, bridge screen/application and // real screen/application device info -@@ -160,12 +175,13 @@ class BrowserDeviceInfoImpl : public VideoCaptureModule::DeviceInfo { +@@ -160,13 +175,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, @@ -1669,44 +1668,46 @@ index d6b024f24be5b2ed0359e241d0014409798ac4b9..e0f80c54d7a6e87936ed345744d4f568 public: /* Create a screen capture modules object */ -- static VideoCaptureModule* Create(const int32_t id, const char* uniqueId, -- const CaptureDeviceType type); -+ static VideoCaptureModuleEx* Create(const int32_t id, const char* uniqueId, -+ const CaptureDeviceType type, -+ bool captureCursor = true); - static VideoCaptureModule::DeviceInfo* CreateDeviceInfo( - const int32_t id, const CaptureDeviceType type); +- static VideoCaptureModule* Create( ++ static VideoCaptureModuleEx* Create( + const int32_t aModuleId, const char* aUniqueId, +- const mozilla::camera::CaptureDeviceType aType); ++ const mozilla::camera::CaptureDeviceType aType, bool aCaptureCursor = true); -@@ -175,6 +191,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, + [[nodiscard]] static std::shared_ptr + CreateDeviceInfo(const int32_t aId, +@@ -178,6 +193,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, void DeRegisterCaptureDataCallback( - rtc::VideoSinkInterface* dataCallback) override; + rtc::VideoSinkInterface* aCallback) override; int32_t StopCaptureIfAllClientsClose() override; + void RegisterRawFrameCallback(RawFrameCallback* rawFrameCallback) override; + void DeRegisterRawFrameCallback(RawFrameCallback* rawFrameCallback) override; - int32_t SetCaptureRotation(VideoRotation rotation) override; - bool SetApplyRotation(bool enable) override; -@@ -195,7 +213,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, + int32_t SetCaptureRotation(VideoRotation aRotation) override; + bool SetApplyRotation(bool aEnable) override; +@@ -198,7 +215,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, protected: - DesktopCaptureImpl(const int32_t id, const char* uniqueId, -- const CaptureDeviceType type); -+ const CaptureDeviceType type, bool captureCursor); + DesktopCaptureImpl(const int32_t aId, const char* aUniqueId, +- const mozilla::camera::CaptureDeviceType aType); ++ const mozilla::camera::CaptureDeviceType aType, ++ bool aCaptureCusor); virtual ~DesktopCaptureImpl(); - int32_t DeliverCapturedFrame(webrtc::VideoFrame& captureFrame); + int32_t DeliverCapturedFrame(webrtc::VideoFrame& aCaptureFrame); -@@ -220,6 +238,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, - rtc::RecursiveCriticalSection _apiCs; +@@ -215,6 +233,8 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, + void LazyInitCaptureThread(); + int32_t LazyInitDesktopCapturer(); - std::set*> _dataCallBacks; + std::set _rawFrameCallbacks; - - int64_t _incomingFrameTimesNanos - [kFrameRateCountHistorySize]; // timestamp for local captured frames -@@ -242,6 +261,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, - void ProcessIter(); - - private: ++ + // DesktopCapturer::Callback interface. + void OnCaptureResult(DesktopCapturer::Result result, + std::unique_ptr frame) override; +@@ -231,6 +251,7 @@ class DesktopCaptureImpl : public DesktopCapturer::Callback, + std::atomic mMaxFPSNeeded = {0}; + // Set in StartCapture. + VideoCaptureCapability mRequestedCapability; + bool capture_cursor_ = true; // This is created on the main thread and accessed on both the main thread // and the capturer thread. It is created prior to the capturer thread @@ -1756,7 +1757,7 @@ index 1f2d92bcb5d989bf9ecc044f8c51006f991b0007..9cf5dd885e658e0fe5e7ab75e7fc1f97 return aGlobalOrNull; diff --git a/dom/security/nsCSPUtils.cpp b/dom/security/nsCSPUtils.cpp -index c430c6ee3bd4e88cf6b47df64e983dbe4f8ccf95..ca77b627b7b73b1f08f22d9e297d73cf731b3719 100644 +index 5f9156ce2e70eb64653db72eb9dd1afddcec5633..af9efd55cf62b06ba9291bdc3af6819cc75be105 100644 --- a/dom/security/nsCSPUtils.cpp +++ b/dom/security/nsCSPUtils.cpp @@ -127,6 +127,11 @@ void CSP_ApplyMetaCSPToDoc(mozilla::dom::Document& aDoc, @@ -1795,7 +1796,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 94c1a4ab5cca1e1b451336900c1d0fa1d35bfe95..ecff2d39975d912584bd85b1692cacd523caccc7 100644 +index 3cc7ccebd23b1136e6360ed40c30353de2f43022..aad9ee4a96ec874fe81f32e131c86c7ebf6c5652 100644 --- a/dom/workers/RuntimeService.cpp +++ b/dom/workers/RuntimeService.cpp @@ -983,7 +983,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) { @@ -1873,10 +1874,10 @@ index d10dabb5c5ff8e17851edf2bd2efc08e74584d8e..53c4070c5fde43b27fb8fbfdcf4c23d8 bool IsWorkerGlobal(JSObject* global); diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp -index a03caa714962634399ee233e8cdcb6772b5d8210..2f0367db82e8e4262c72e5b853f31c11fdf0bc0e 100644 +index 835017a4d681611c4c73d48a04f776ca042b2abc..5f281c8e07e0b53cede0f2f088822c62b1277ddf 100644 --- a/dom/workers/WorkerPrivate.cpp +++ b/dom/workers/WorkerPrivate.cpp -@@ -700,6 +700,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { +@@ -702,6 +702,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { } }; @@ -1895,7 +1896,7 @@ index a03caa714962634399ee233e8cdcb6772b5d8210..2f0367db82e8e4262c72e5b853f31c11 class UpdateLanguagesRunnable final : public WorkerRunnable { nsTArray mLanguages; -@@ -1964,6 +1976,16 @@ void WorkerPrivate::UpdateContextOptions( +@@ -1973,6 +1985,16 @@ void WorkerPrivate::UpdateContextOptions( } } @@ -1912,7 +1913,7 @@ index a03caa714962634399ee233e8cdcb6772b5d8210..2f0367db82e8e4262c72e5b853f31c11 void WorkerPrivate::UpdateLanguages(const nsTArray& aLanguages) { AssertIsOnParentThread(); -@@ -5220,6 +5242,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( +@@ -5290,6 +5312,15 @@ void WorkerPrivate::UpdateContextOptionsInternal( } } @@ -1929,10 +1930,10 @@ index a03caa714962634399ee233e8cdcb6772b5d8210..2f0367db82e8e4262c72e5b853f31c11 const nsTArray& aLanguages) { WorkerGlobalScope* globalScope = GlobalScope(); diff --git a/dom/workers/WorkerPrivate.h b/dom/workers/WorkerPrivate.h -index 2107d505d92172e985230f290a86907f97a0ac76..c325556ed433255e5166930db613c5a6d9f80c3d 100644 +index a3d28933a02e7d147f7b217cb7753036e8c503cf..a7f081c8869a52d16e91d86ed159310dd7a9fda5 100644 --- a/dom/workers/WorkerPrivate.h +++ b/dom/workers/WorkerPrivate.h -@@ -331,6 +331,8 @@ class WorkerPrivate final +@@ -340,6 +340,8 @@ class WorkerPrivate final void UpdateContextOptionsInternal(JSContext* aCx, const JS::ContextOptions& aContextOptions); @@ -1941,7 +1942,7 @@ index 2107d505d92172e985230f290a86907f97a0ac76..c325556ed433255e5166930db613c5a6 void UpdateLanguagesInternal(const nsTArray& aLanguages); void UpdateJSWorkerMemoryParameterInternal(JSContext* aCx, JSGCParamKey key, -@@ -945,6 +947,8 @@ class WorkerPrivate final +@@ -961,6 +963,8 @@ class WorkerPrivate final void UpdateContextOptions(const JS::ContextOptions& aContextOptions); @@ -2003,10 +2004,10 @@ index cd641a54d9f968b4f5ac62aff701576e63a29439..27067c68a74a5578b8b5e6bbef3a4b48 inline ClippedTime TimeClip(double time); diff --git a/js/src/debugger/Object.cpp b/js/src/debugger/Object.cpp -index b6d2c54e7a97a90d06f0271c27ff50a6bad497d7..a92870e1e0791a2b0a15386f8d454ef1bf2d0b8b 100644 +index 56c846794236da09f818e123afdcd43cd2956625..e4c543eaa84bc69677c2833f2bc1127f48a20e07 100644 --- a/js/src/debugger/Object.cpp +++ b/js/src/debugger/Object.cpp -@@ -2369,7 +2369,11 @@ Maybe DebuggerObject::call(JSContext* cx, +@@ -2382,7 +2382,11 @@ Maybe DebuggerObject::call(JSContext* cx, invokeArgs[i].set(args2[i]); } @@ -2168,10 +2169,10 @@ index dac899f7558b26d6848da8b98ed8a93555c8751a..2a07d67fa1c2840b25085566e84dc3b2 // No boxes to return return; diff --git a/layout/base/PresShell.cpp b/layout/base/PresShell.cpp -index f4d42f575e40e716dc142681c6d6596fff2056f8..622b2d21380f5ef777955d9c388af77760225bf6 100644 +index 0e38125bc75874f4edbe1916194204ee8845a9bd..96cfa21eed9a4c33ffc7095458268acb263bc75a 100644 --- a/layout/base/PresShell.cpp +++ b/layout/base/PresShell.cpp -@@ -10931,7 +10931,9 @@ auto PresShell::ComputeActiveness() const -> Activeness { +@@ -10936,7 +10936,9 @@ auto PresShell::ComputeActiveness() const -> Activeness { if (!browserChild->IsVisible()) { MOZ_LOG(gLog, LogLevel::Debug, (" > BrowserChild %p is not visible", browserChild)); @@ -2183,10 +2184,10 @@ index f4d42f575e40e716dc142681c6d6596fff2056f8..622b2d21380f5ef777955d9c388af777 // 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 164e65ac9a2b6b7c0eec4428b74de8f0bb907918..1d9421c7d014721ce920b93e3b790c44422ebea4 100644 +index 953a040ecf8c99364faa7cbd4d1f212971fe9b47..aa63c02a85cd23303cb4874dbed9425bf4e315ac 100644 --- a/layout/style/GeckoBindings.h +++ b/layout/style/GeckoBindings.h -@@ -611,6 +611,7 @@ void Gecko_MediaFeatures_GetDeviceSize(const mozilla::dom::Document*, +@@ -615,6 +615,7 @@ void Gecko_MediaFeatures_GetDeviceSize(const mozilla::dom::Document*, float Gecko_MediaFeatures_GetResolution(const mozilla::dom::Document*); bool Gecko_MediaFeatures_PrefersReducedMotion(const mozilla::dom::Document*); @@ -2214,23 +2215,11 @@ index 5cd90a4ca6cb85808076ece7dbc616c3fecdc352..7fbb6e25a815c4d63919c40beaea89aa } StylePrefersColorScheme Gecko_MediaFeatures_PrefersColorScheme( -diff --git a/media/libjpeg/jconfig.h b/media/libjpeg/jconfig.h -index f2723e654098ff27542e1eb16a536c11ad0af617..b0b480551ff7d895dfdeb5a9800874858929c8ba 100644 ---- a/media/libjpeg/jconfig.h -+++ b/media/libjpeg/jconfig.h -@@ -17,6 +17,7 @@ - /* #undef D_ARITH_CODING_SUPPORTED */ - - /* Support in-memory source/destination managers */ -+#define MEM_SRCDST_SUPPORTED 1 - /* #undef MEM_SRCDST_SUPPORTED */ - - /* Use accelerated SIMD routines. */ diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js -index 88e7709c28b706f9dd235c53d0946e3cb0e0af95..3b7c0b0eb047531b353057b6dd97a4a198fc7561 100644 +index 35dc85223333f510b7dd7b96739738b0f8a1629a..eca736a28ff5a9f75a6e1f19f8f4bc9614a93af0 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js -@@ -4121,7 +4121,9 @@ pref("devtools.experiment.f12.shortcut_disabled", false); +@@ -4117,7 +4117,9 @@ pref("devtools.experiment.f12.shortcut_disabled", false); // doesn't provide a way to lock the pref pref("dom.postMessage.sharedArrayBuffer.bypassCOOP_COEP.insecure.enabled", false); #else @@ -2242,7 +2231,7 @@ index 88e7709c28b706f9dd235c53d0946e3cb0e0af95..3b7c0b0eb047531b353057b6dd97a4a1 // Whether sites require the open-protocol-handler permission to open a diff --git a/netwerk/base/nsINetworkInterceptController.idl b/netwerk/base/nsINetworkInterceptController.idl -index fba1a83231165cbda92e9b017c70ec6c1d59d037..e8093ed2a06f728c125a4ad8a096d205ef8d3155 100644 +index d72dc570dc82ff9d576942b9e7c23d8a74d68049..a5fcddc4b0e53a862e5a77120b4ccff8a27cfbab 100644 --- a/netwerk/base/nsINetworkInterceptController.idl +++ b/netwerk/base/nsINetworkInterceptController.idl @@ -59,6 +59,7 @@ interface nsIInterceptedChannel : nsISupports @@ -2430,7 +2419,7 @@ index 54de3abab5757dd706e3d909ccef6a0bed5deacc..f5c5480cd052ede0c76e5eec733dbb92 // ignored for Linux. const unsigned long CHROME_SUPPRESS_ANIMATION = 0x01000000; diff --git a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs -index 44f50e1c45f21159031e29748aab59cbdd366cbe..9fa2b8487140fc6d45b70240ce8ad64005f4bb26 100644 +index 0fad0ee2916098af5923f5ad0fc8a479f8ec706a..4b5586f7213919e871c085cb8b07f80f5a7d893f 100644 --- a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs +++ b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs @@ -113,6 +113,12 @@ EnterprisePoliciesManager.prototype = { @@ -2460,7 +2449,7 @@ index 34ced370120f843ab7afd330fb5626ae6f6da7e4..205fc4e5fe3adeacbfe5ab6c15d1bbcc if (windowEnumerator) { bool more; diff --git a/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp b/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp -index 3e9672fdfe9ddab8acd0f8b18772aece92bb3b64..83454a9c27c96d72597445653beaa014c38728cd 100644 +index 654903fadb709be976b72f36f155e23bc0622152..815b3dc24c9fda6b1db6c4666ac68904c87ac0ab 100644 --- a/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp +++ b/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp @@ -174,8 +174,8 @@ nsBrowserStatusFilter::OnStateChange(nsIWebProgress* aWebProgress, @@ -2492,10 +2481,10 @@ index 6d6a91821e0df64e12e576d8c9e5b3d2e6aade27..1a8b8ff82586cca439dafc5e13e8c46a /** diff --git a/toolkit/mozapps/update/UpdateService.jsm b/toolkit/mozapps/update/UpdateService.jsm -index aaaaeda9bf81517ad1568b12dc23ce2fa585a049..c28f21a534004b2f5186f13f6091d3538c6db2be 100644 +index b6257a954787a9f4015c4d55836c70865edeb5a4..ea2eb94efea166aa90993217871c3c80c6d247fc 100644 --- a/toolkit/mozapps/update/UpdateService.jsm +++ b/toolkit/mozapps/update/UpdateService.jsm -@@ -3848,6 +3848,8 @@ UpdateService.prototype = { +@@ -3864,6 +3864,8 @@ UpdateService.prototype = { }, get disabledForTesting() { @@ -2571,7 +2560,7 @@ index e1e46ccdceae595f95d100116ff480905047e82b..eaa0252e768140120158525723ad867b // 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 90a370792bacd26f4ac54903ab09cfab686c1c9a..215a9a099c719efb64518288c17a2182efdc0e0b 100644 +index 540aaedd7462759740df31a0cb5d228651ba94b7..c0a1119dc4a51e7ff8cbfdbda5f007d9eb958948 100644 --- a/uriloader/exthandler/nsExternalHelperAppService.cpp +++ b/uriloader/exthandler/nsExternalHelperAppService.cpp @@ -112,6 +112,7 @@ @@ -2991,7 +2980,7 @@ index facd2bc65afab8ec1aa322faa20a67464964dfb9..d6dea95472bec6006411753c3dfdab2e } // namespace widget diff --git a/widget/headless/HeadlessWidget.cpp b/widget/headless/HeadlessWidget.cpp -index 54d9625e5ec05dfa4fe938181c755c78752231b7..44b934e7681c30707f2a87d7b62572bca93549e2 100644 +index 0112fab80c463a7d02a1b0397eeb74c075c38501..ba9f27cf9e315b95aebde5338ed5f520df72c779 100644 --- a/widget/headless/HeadlessWidget.cpp +++ b/widget/headless/HeadlessWidget.cpp @@ -109,6 +109,8 @@ void HeadlessWidget::Destroy() { @@ -3019,7 +3008,7 @@ index 54d9625e5ec05dfa4fe938181c755c78752231b7..44b934e7681c30707f2a87d7b62572bc } // namespace widget } // namespace mozilla diff --git a/widget/headless/HeadlessWidget.h b/widget/headless/HeadlessWidget.h -index f5b10886863facaa0e760606d4103a61a6072e1a..662678842c869c5152899405056a8fdcd0cadcbf 100644 +index f07c929d9228c5dfebf983818213516bc4be5cb6..e560485adefeb1f58efd65c0b6c941ccc4fd4723 100644 --- a/widget/headless/HeadlessWidget.h +++ b/widget/headless/HeadlessWidget.h @@ -141,6 +141,9 @@ class HeadlessWidget : public nsBaseWidget { diff --git a/browser_patches/webkit/UPSTREAM_CONFIG.sh b/browser_patches/webkit/UPSTREAM_CONFIG.sh index e3eebadca5..1e3b17c2f0 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="f735506198f5107f919ba461479fffadd32adc93" +BASE_REVISION="63cd0995822b54b725b9746dbd3c7e23f2ce81fb" diff --git a/browser_patches/webkit/patches/bootstrap.diff b/browser_patches/webkit/patches/bootstrap.diff index b2a7bb19bc..2ee09d8cbb 100644 --- a/browser_patches/webkit/patches/bootstrap.diff +++ b/browser_patches/webkit/patches/bootstrap.diff @@ -1,5 +1,5 @@ diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt -index f7cacfdd8da567e80b93a39d85f685e8e9517826..32114088df586b14156f196b12e34bb7079ff44f 100644 +index 4e0d6e2dcb1950d19d6bdfc99af0dc7331f81eb9..c47e36f0b24cc4698caea257bd6c508dbdee6085 100644 --- a/Source/JavaScriptCore/CMakeLists.txt +++ b/Source/JavaScriptCore/CMakeLists.txt @@ -1391,22 +1391,27 @@ set(JavaScriptCore_INSPECTOR_DOMAINS @@ -1895,7 +1895,7 @@ index 626efe5d02febd3d80066d2013dd479ecec29471..4c05722dfc3fe885968a69b64adc6f0a +_vpx_codec_version_str +_vpx_codec_vp8_cx diff --git a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig -index ebc991e8977b0afc2e3fb6932e2f506e965a712c..edba5c71a65e1e252cfe9be0b34a0f856b8df470 100644 +index bfb84feb38067b09cc799d299e6fd7439782a120..be49c5853776a0077b073808db3b4cfdaf6e653d 100644 --- a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig +++ b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig @@ -41,7 +41,7 @@ DYLIB_INSTALL_NAME_BASE_WK_RELOCATABLE_FRAMEWORKS_ = $(NORMAL_UMBRELLA_FRAMEWORK @@ -1908,7 +1908,7 @@ index ebc991e8977b0afc2e3fb6932e2f506e965a712c..edba5c71a65e1e252cfe9be0b34a0f85 PUBLIC_HEADERS_FOLDER_PREFIX = $(WK_LIBRARY_HEADERS_FOLDER_PATH); INSTALL_PUBLIC_HEADER_PREFIX = $(INSTALL_PATH_PREFIX)$(PUBLIC_HEADERS_FOLDER_PREFIX); diff --git a/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj b/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj -index d1a987d3d22fa2ce5f904cef06190c98a1195a1e..4886fb31422966cfdd04cf03db932f0fe9d96608 100644 +index 82eb8252b613cd3fe29530285d4ab2748c7be484..736a3d3a82dc35cf631b5ee9cbb4721843fb4ab7 100644 --- a/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj +++ b/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj @@ -6,6 +6,20 @@ @@ -1942,7 +1942,7 @@ index d1a987d3d22fa2ce5f904cef06190c98a1195a1e..4886fb31422966cfdd04cf03db932f0f /* End PBXBuildFile section */ /* Begin PBXBuildRule section */ -@@ -5344,6 +5361,13 @@ +@@ -5345,6 +5362,13 @@ remoteGlobalIDString = DDF30D0527C5C003006A526F; remoteInfo = absl; }; @@ -1956,7 +1956,7 @@ index d1a987d3d22fa2ce5f904cef06190c98a1195a1e..4886fb31422966cfdd04cf03db932f0f /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ -@@ -10848,6 +10872,9 @@ +@@ -10849,6 +10873,9 @@ DDF30D9027C5C725006A526F /* receive_side_congestion_controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = receive_side_congestion_controller.h; sourceTree = ""; }; DDF30D9327C5C756006A526F /* bwe_defines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bwe_defines.h; sourceTree = ""; }; DDF30D9427C5C756006A526F /* remote_bitrate_estimator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = remote_bitrate_estimator.h; sourceTree = ""; }; @@ -1966,7 +1966,7 @@ index d1a987d3d22fa2ce5f904cef06190c98a1195a1e..4886fb31422966cfdd04cf03db932f0f FB39D0D11200F0E300088E69 /* libwebrtc.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libwebrtc.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ -@@ -19275,6 +19302,7 @@ +@@ -19276,6 +19303,7 @@ isa = PBXGroup; children = ( CDFD2F9224C4B2F90048DAC3 /* common */, @@ -1974,7 +1974,7 @@ index d1a987d3d22fa2ce5f904cef06190c98a1195a1e..4886fb31422966cfdd04cf03db932f0f CDEBB19224C0191800ADBD44 /* webm_parser */, ); path = libwebm; -@@ -19737,6 +19765,16 @@ +@@ -19738,6 +19766,16 @@ path = include; sourceTree = ""; }; @@ -1991,7 +1991,7 @@ index d1a987d3d22fa2ce5f904cef06190c98a1195a1e..4886fb31422966cfdd04cf03db932f0f FB39D06E1200ED9200088E69 = { isa = PBXGroup; children = ( -@@ -22697,6 +22735,7 @@ +@@ -22694,6 +22732,7 @@ ); dependencies = ( 410B3827292B73E90003E515 /* PBXTargetDependency */, @@ -1999,7 +1999,7 @@ index d1a987d3d22fa2ce5f904cef06190c98a1195a1e..4886fb31422966cfdd04cf03db932f0f DD2E76E827C6B69A00F2A74C /* PBXTargetDependency */, CDEBB4CC24C01AB400ADBD44 /* PBXTargetDependency */, 411ED040212E0811004320BA /* PBXTargetDependency */, -@@ -22756,6 +22795,7 @@ +@@ -22753,6 +22792,7 @@ CDEBB11824C0187400ADBD44 /* webm */, DDEBB11824C0187400ADBD44 /* aom */, DDF30D0527C5C003006A526F /* absl */, @@ -2007,9 +2007,9 @@ index d1a987d3d22fa2ce5f904cef06190c98a1195a1e..4886fb31422966cfdd04cf03db932f0f ); }; /* End PBXProject section */ -@@ -22889,6 +22929,23 @@ +@@ -22813,6 +22853,23 @@ shellPath = /bin/sh; - shellScript = "[ \"${WK_USE_NEW_BUILD_SYSTEM}\" = YES ] && exit 0\nxcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" installhdrs SYMROOT=\"${TARGET_TEMP_DIR}/LegacyNestHeaders-build\" DSTROOT=\"${BUILT_PRODUCTS_DIR}\" SDKROOT=\"${SDKROOT}\" -UseNewBuildSystem=YES\n"; + shellScript = "\"${SRCROOT}/Scripts/create-symlink-to-altroot.sh\"\n"; }; + F31720B127FE216400EEE407 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; @@ -2031,7 +2031,7 @@ index d1a987d3d22fa2ce5f904cef06190c98a1195a1e..4886fb31422966cfdd04cf03db932f0f /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ -@@ -24692,6 +24749,9 @@ +@@ -24616,6 +24673,9 @@ 5CDD865E1E43B8B500621E92 /* min_max_operations.c in Sources */, 4189395B242A71F5007FDC41 /* min_video_bitrate_experiment.cc in Sources */, 41B8D8FB28CB85CB00E5FA37 /* missing_mandatory_parameter_cause.cc in Sources */, @@ -2041,7 +2041,7 @@ index d1a987d3d22fa2ce5f904cef06190c98a1195a1e..4886fb31422966cfdd04cf03db932f0f 4131C387234B957D0028A615 /* moving_average.cc in Sources */, 41FCBB1521B1F7AA00A5DF27 /* moving_average.cc in Sources */, 5CD286101E6A64C90094FDC8 /* moving_max.cc in Sources */, -@@ -25416,6 +25476,11 @@ +@@ -25340,6 +25400,11 @@ target = DDF30D0527C5C003006A526F /* absl */; targetProxy = DD2E76E727C6B69A00F2A74C /* PBXContainerItemProxy */; }; @@ -2053,7 +2053,7 @@ index d1a987d3d22fa2ce5f904cef06190c98a1195a1e..4886fb31422966cfdd04cf03db932f0f /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ -@@ -25643,6 +25708,27 @@ +@@ -25567,6 +25632,27 @@ }; name = Production; }; @@ -2081,7 +2081,7 @@ index d1a987d3d22fa2ce5f904cef06190c98a1195a1e..4886fb31422966cfdd04cf03db932f0f FB39D0711200ED9200088E69 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 5D7C59C71208C68B001C873E /* DebugRelease.xcconfig */; -@@ -25775,6 +25861,16 @@ +@@ -25699,6 +25785,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Production; }; @@ -2099,7 +2099,7 @@ index d1a987d3d22fa2ce5f904cef06190c98a1195a1e..4886fb31422966cfdd04cf03db932f0f isa = XCConfigurationList; buildConfigurations = ( diff --git a/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml b/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml -index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b69996eed2 100644 +index 16e9823f87074bae3136c166e4c26bc9610fb218..817edd2527d2f7816ae723bf430aebccebc1d35b 100644 --- a/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml +++ b/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml @@ -562,6 +562,7 @@ AspectRatioOfImgFromWidthAndHeightEnabled: @@ -2113,13 +2113,13 @@ index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b6 @@ -572,7 +573,7 @@ AsyncClipboardAPIEnabled: default: false WebKit: - "PLATFORM(COCOA)" : true + "PLATFORM(COCOA) || PLATFORM(GTK)" : true - default: false + default: true WebCore: default: false -@@ -1674,6 +1675,7 @@ CrossOriginEmbedderPolicyEnabled: +@@ -1686,6 +1687,7 @@ CrossOriginEmbedderPolicyEnabled: WebCore: default: false @@ -2127,7 +2127,7 @@ index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b6 CrossOriginOpenerPolicyEnabled: type: bool status: stable -@@ -1684,7 +1686,7 @@ CrossOriginOpenerPolicyEnabled: +@@ -1696,7 +1698,7 @@ CrossOriginOpenerPolicyEnabled: WebKitLegacy: default: false WebKit: @@ -2136,7 +2136,7 @@ index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b6 WebCore: default: false -@@ -1714,7 +1716,7 @@ CustomPasteboardDataEnabled: +@@ -1726,7 +1728,7 @@ CustomPasteboardDataEnabled: WebKitLegacy: default: false WebKit: @@ -2145,7 +2145,7 @@ index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b6 default: false DNSPrefetchingEnabled: -@@ -1759,6 +1761,7 @@ DOMAudioSessionFullEnabled: +@@ -1771,6 +1773,7 @@ DOMAudioSessionFullEnabled: WebCore: default: false @@ -2153,10 +2153,10 @@ index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b6 DOMPasteAccessRequestsEnabled: type: bool status: internal -@@ -1770,7 +1773,7 @@ DOMPasteAccessRequestsEnabled: +@@ -1782,7 +1785,7 @@ DOMPasteAccessRequestsEnabled: default: false WebKit: - "PLATFORM(IOS) || PLATFORM(MAC)": true + "PLATFORM(IOS) || PLATFORM(MAC) || PLATFORM(GTK)": true - default: false + default: true WebCore: @@ -2179,7 +2179,7 @@ index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b6 InspectorWindowFrame: type: String -@@ -3517,6 +3521,7 @@ LayoutViewportHeightExpansionFactor: +@@ -3500,6 +3504,7 @@ LayoutViewportHeightExpansionFactor: WebCore: default: 0 @@ -2187,7 +2187,7 @@ index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b6 LazyIframeLoadingEnabled: type: bool status: stable -@@ -3527,10 +3532,11 @@ LazyIframeLoadingEnabled: +@@ -3510,10 +3515,11 @@ LazyIframeLoadingEnabled: WebKitLegacy: default: true WebKit: @@ -2201,7 +2201,7 @@ index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b6 LazyImageLoadingEnabled: type: bool status: stable -@@ -3541,7 +3547,7 @@ LazyImageLoadingEnabled: +@@ -3524,7 +3530,7 @@ LazyImageLoadingEnabled: WebKitLegacy: default: false WebKit: @@ -2210,7 +2210,7 @@ index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b6 WebCore: default: false -@@ -4884,6 +4890,19 @@ PluginsEnabled: +@@ -4867,6 +4873,19 @@ PluginsEnabled: WebCore: default: false @@ -2230,7 +2230,7 @@ index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b6 PopoverAttributeEnabled: type: bool status: stable -@@ -6495,6 +6514,7 @@ UseCGDisplayListsForDOMRendering: +@@ -6491,6 +6510,7 @@ UseCGDisplayListsForDOMRendering: WebKit: default: true @@ -2238,7 +2238,7 @@ index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b6 UseGPUProcessForCanvasRenderingEnabled: type: bool status: preview -@@ -6507,7 +6527,7 @@ UseGPUProcessForCanvasRenderingEnabled: +@@ -6503,7 +6523,7 @@ UseGPUProcessForCanvasRenderingEnabled: defaultValue: WebKit: "ENABLE(GPU_PROCESS_BY_DEFAULT)": true @@ -2247,7 +2247,7 @@ index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b6 default: false UseGPUProcessForDOMRenderingEnabled: -@@ -6551,6 +6571,7 @@ UseGPUProcessForMediaEnabled: +@@ -6547,6 +6567,7 @@ UseGPUProcessForMediaEnabled: "ENABLE(GPU_PROCESS_BY_DEFAULT)": true default: false @@ -2255,7 +2255,7 @@ index d6bc2bf5ae3fe54d0f85889da98a3279d4baa1fb..f2c2b44a76b4026d54ce61ef233fa8b6 UseGPUProcessForWebGLEnabled: type: bool status: internal -@@ -6562,7 +6583,7 @@ UseGPUProcessForWebGLEnabled: +@@ -6558,7 +6579,7 @@ UseGPUProcessForWebGLEnabled: default: false WebKit: "ENABLE(GPU_PROCESS_BY_DEFAULT) && ENABLE(GPU_PROCESS_WEBGL_BY_DEFAULT)": true @@ -2287,10 +2287,10 @@ index f66b8f935f5f38db8c99277afc3bde93354de555..66e9dfd0ef2a5f9bd0f9a8c540b3f510 #if !defined(ENABLE_TOUCH_ACTION_REGIONS) diff --git a/Source/WTF/wtf/PlatformEnableCocoa.h b/Source/WTF/wtf/PlatformEnableCocoa.h -index 1c539c9ce2d1129123d9aaac9d1f067d8aa1cf66..8eff17a13d1cc17a83477af46dd021eff6820bb3 100644 +index a7dcc97171eba7ee7f48b44bb7deb1615316d06a..30cda0846e83914da67dd67681bbd058e881f4aa 100644 --- a/Source/WTF/wtf/PlatformEnableCocoa.h +++ b/Source/WTF/wtf/PlatformEnableCocoa.h -@@ -263,7 +263,7 @@ +@@ -267,7 +267,7 @@ #define ENABLE_DATA_DETECTION 1 #endif @@ -2300,7 +2300,7 @@ index 1c539c9ce2d1129123d9aaac9d1f067d8aa1cf66..8eff17a13d1cc17a83477af46dd021ef #endif diff --git a/Source/WTF/wtf/PlatformHave.h b/Source/WTF/wtf/PlatformHave.h -index 8ab6bf1a73167b69efbe0806855f36ccabc1dafd..5805d402a01468374567d43b37c5e00f4f6f7302 100644 +index a2856e88ec98ffd141a3a44fbe6dabb8c8059735..84d5af7d600a55e66b46dcb947b1e9fcbd700bfc 100644 --- a/Source/WTF/wtf/PlatformHave.h +++ b/Source/WTF/wtf/PlatformHave.h @@ -426,7 +426,7 @@ @@ -2312,7 +2312,7 @@ index 8ab6bf1a73167b69efbe0806855f36ccabc1dafd..5805d402a01468374567d43b37c5e00f #define HAVE_OS_DARK_MODE_SUPPORT 1 #endif -@@ -1323,7 +1323,8 @@ +@@ -1320,7 +1320,8 @@ #endif #if PLATFORM(MAC) @@ -2323,10 +2323,10 @@ index 8ab6bf1a73167b69efbe0806855f36ccabc1dafd..5805d402a01468374567d43b37c5e00f #if (!defined(HAVE_LOCKDOWN_MODE_PDF_ADDITIONS) && \ diff --git a/Source/WebCore/DerivedSources.make b/Source/WebCore/DerivedSources.make -index 47a7b48dcbd200c12359bc6b38d548ed9ec04c1f..8ab8193885b63f81ef6afce4d1bf5b7a86fc0efb 100644 +index 6dfda4b18b6bc9c3542cbdf1e7b7490cedcce9de..3368d5fe3507b3dd3db0c460df9b34e7a869d37f 100644 --- a/Source/WebCore/DerivedSources.make +++ b/Source/WebCore/DerivedSources.make -@@ -1047,6 +1047,10 @@ JS_BINDING_IDLS := \ +@@ -1050,6 +1050,10 @@ JS_BINDING_IDLS := \ $(WebCore)/dom/Slotable.idl \ $(WebCore)/dom/StaticRange.idl \ $(WebCore)/dom/StringCallback.idl \ @@ -2337,7 +2337,7 @@ index 47a7b48dcbd200c12359bc6b38d548ed9ec04c1f..8ab8193885b63f81ef6afce4d1bf5b7a $(WebCore)/dom/Text.idl \ $(WebCore)/dom/TextDecoder.idl \ $(WebCore)/dom/TextDecoderStream.idl \ -@@ -1608,9 +1612,6 @@ ADDITIONAL_BINDING_IDLS = \ +@@ -1613,9 +1617,6 @@ ADDITIONAL_BINDING_IDLS = \ GestureEvent.idl \ Internals+Additions.idl \ InternalsAdditions.idl \ @@ -2348,7 +2348,7 @@ index 47a7b48dcbd200c12359bc6b38d548ed9ec04c1f..8ab8193885b63f81ef6afce4d1bf5b7a vpath %.in $(WEBKITADDITIONS_HEADER_SEARCH_PATHS) diff --git a/Source/WebCore/Modules/geolocation/Geolocation.cpp b/Source/WebCore/Modules/geolocation/Geolocation.cpp -index 4f3358e1b439d9e51fd2b8520cffd6b56d9bd2b1..5e255078d36ba25cca5853012bab663ed7309328 100644 +index 9dfd25d4160011d576e9c636e4c805bfd486fd26..573edcb686440ea8426e3a59540250a5dbba5a9b 100644 --- a/Source/WebCore/Modules/geolocation/Geolocation.cpp +++ b/Source/WebCore/Modules/geolocation/Geolocation.cpp @@ -362,8 +362,9 @@ bool Geolocation::shouldBlockGeolocationRequests() @@ -2411,10 +2411,10 @@ index 316aa5b17c5346b2d3e420e7262e7e76e254f427..c2beed6bd1e83257095252146ee3506c [self sendSpeechEndIfNeeded]; diff --git a/Source/WebCore/PlatformWPE.cmake b/Source/WebCore/PlatformWPE.cmake -index 66c94345e5fa16273b533647c7b55a9c6bb6d627..dd9c9c0e8ae7d833f8f5a72435abbcc89a9f0576 100644 +index de4cd23a97fd40d945253632adea239f2c764a71..4b5ce3558c17e0343b79924060cd7f557da95e62 100644 --- a/Source/WebCore/PlatformWPE.cmake +++ b/Source/WebCore/PlatformWPE.cmake -@@ -49,6 +49,7 @@ list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS +@@ -48,6 +48,7 @@ list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS platform/graphics/wayland/PlatformDisplayWayland.h platform/graphics/wayland/WlUniquePtr.h @@ -2423,10 +2423,10 @@ index 66c94345e5fa16273b533647c7b55a9c6bb6d627..dd9c9c0e8ae7d833f8f5a72435abbcc8 set(CSS_VALUE_PLATFORM_DEFINES "HAVE_OS_DARK_MODE_SUPPORT=1") diff --git a/Source/WebCore/SourcesCocoa.txt b/Source/WebCore/SourcesCocoa.txt -index 464eeee0204e13d33c9a531a123447c4c5142022..82c509d2308966bbd5c7fd0826d730b6924794a3 100644 +index afc1c38caf505cebd0f65b0266bf03d04784ba84..65e3462ee460ca1d2e8bfbba2b9304ca669cd205 100644 --- a/Source/WebCore/SourcesCocoa.txt +++ b/Source/WebCore/SourcesCocoa.txt -@@ -687,3 +687,9 @@ platform/graphics/angle/GraphicsContextGLANGLE.cpp @no-unify +@@ -690,3 +690,9 @@ platform/graphics/angle/GraphicsContextGLANGLE.cpp @no-unify platform/graphics/cocoa/ANGLEUtilitiesCocoa.cpp @no-unify platform/graphics/cocoa/GraphicsContextGLCocoa.mm @no-unify platform/graphics/cv/GraphicsContextGLCVCocoa.cpp @no-unify @@ -2437,10 +2437,10 @@ index 464eeee0204e13d33c9a531a123447c4c5142022..82c509d2308966bbd5c7fd0826d730b6 +JSTouchList.cpp +// Playwright end diff --git a/Source/WebCore/SourcesGTK.txt b/Source/WebCore/SourcesGTK.txt -index 09d074dba32553c0e1253f7f5e2503a812c0dd24..8a4108deffb7686d2014d8a34878a5146ab67f0f 100644 +index 9f915af0d14e7ed3e64753bc024d48a4b2839717..148db724be808a8e0b3908b979c72ee9518b838c 100644 --- a/Source/WebCore/SourcesGTK.txt +++ b/Source/WebCore/SourcesGTK.txt -@@ -134,3 +134,10 @@ platform/unix/LoggingUnix.cpp +@@ -129,3 +129,10 @@ platform/unix/LoggingUnix.cpp platform/xdg/MIMETypeRegistryXdg.cpp rendering/RenderThemeGtk.cpp @@ -2452,7 +2452,7 @@ index 09d074dba32553c0e1253f7f5e2503a812c0dd24..8a4108deffb7686d2014d8a34878a514 +JSSpeechSynthesisEventInit.cpp +// Playwright: end. diff --git a/Source/WebCore/SourcesWPE.txt b/Source/WebCore/SourcesWPE.txt -index 739128afb36df50b1bb2b5d8e08a32b3fbbfab0f..da7748cdd97b54d5e3470730415a788af34a5f51 100644 +index c0a24730da1761953388be96319d6691df126b9d..89841bdd23c06f5f8d3223596f15e29ed06ddf28 100644 --- a/Source/WebCore/SourcesWPE.txt +++ b/Source/WebCore/SourcesWPE.txt @@ -43,6 +43,8 @@ editing/libwpe/EditorLibWPE.cpp @@ -2464,7 +2464,7 @@ index 739128afb36df50b1bb2b5d8e08a32b3fbbfab0f..da7748cdd97b54d5e3470730415a788a page/linux/ResourceUsageOverlayLinux.cpp page/linux/ResourceUsageThreadLinux.cpp -@@ -92,6 +94,17 @@ platform/text/LocaleICU.cpp +@@ -89,6 +91,17 @@ platform/text/LocaleICU.cpp platform/unix/LoggingUnix.cpp @@ -2482,23 +2482,11 @@ index 739128afb36df50b1bb2b5d8e08a32b3fbbfab0f..da7748cdd97b54d5e3470730415a788a +JSSpeechSynthesisErrorEventInit.cpp +JSSpeechSynthesisEventInit.cpp +// Playwright: end. -diff --git a/Source/WebCore/WebCore.order b/Source/WebCore/WebCore.order -index 57171686b9bdfa7c81411d2fd8954749a81d0c2c..e07222e6d4cd5596edae43b796ed365436470fa3 100644 ---- a/Source/WebCore/WebCore.order -+++ b/Source/WebCore/WebCore.order -@@ -3089,7 +3089,6 @@ __ZN7WebCore14DocumentLoader23stopLoadingSubresourcesEv - __ZN7WebCore14DocumentLoader18stopLoadingPlugInsEv - __ZN7WebCore14DocumentLoader15detachFromFrameEv - __ZN7WebCore20ApplicationCacheHost22setDOMApplicationCacheEPNS_19DOMApplicationCacheE --__ZN7WebCore24InspectorInstrumentation27loaderDetachedFromFrameImplEPNS_19InstrumentingAgentsEPNS_14DocumentLoaderE - __ZN7WebCore14DocumentLoaderD0Ev - __ZN7WebCore14DocumentLoaderD2Ev - __ZN7WebCore14DocumentLoader17clearMainResourceEv diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj -index ff940ab298a8061f236af6fa8da5c25819556ecc..430840259b7d32817359a94240c55c9b13c80075 100644 +index b3c77b6c4142b9e984653245ffc8f0974675ea1d..b00fabc658cebddc75827e409020a6cb3607bdfd 100644 --- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj +++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj -@@ -5826,6 +5826,13 @@ +@@ -5837,6 +5837,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, ); }; }; @@ -2512,7 +2500,7 @@ index ff940ab298a8061f236af6fa8da5c25819556ecc..430840259b7d32817359a94240c55c9b 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, ); }; }; -@@ -18893,6 +18900,14 @@ +@@ -18919,6 +18926,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 = ""; }; @@ -2527,7 +2515,7 @@ index ff940ab298a8061f236af6fa8da5c25819556ecc..430840259b7d32817359a94240c55c9b 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 = ""; }; -@@ -25903,6 +25918,11 @@ +@@ -25942,6 +25957,11 @@ BC4A5324256055590028C592 /* TextDirectionSubmenuInclusionBehavior.h */, 2D4F96F11A1ECC240098BF88 /* TextIndicator.cpp */, 2D4F96F21A1ECC240098BF88 /* TextIndicator.h */, @@ -2539,7 +2527,7 @@ index ff940ab298a8061f236af6fa8da5c25819556ecc..430840259b7d32817359a94240c55c9b F48570A42644C76D00C05F71 /* TranslationContextMenuInfo.h */, F4E1965F21F26E4E00285078 /* UndoItem.cpp */, 2ECDBAD521D8906300F00ECD /* UndoItem.h */, -@@ -31995,6 +32015,8 @@ +@@ -32044,6 +32064,8 @@ 29E4D8DF16B0940F00C84704 /* PlatformSpeechSynthesizer.h */, 1AD8F81A11CAB9E900E93E54 /* PlatformStrategies.cpp */, 1AD8F81911CAB9E900E93E54 /* PlatformStrategies.h */, @@ -2548,7 +2536,7 @@ index ff940ab298a8061f236af6fa8da5c25819556ecc..430840259b7d32817359a94240c55c9b 0FD7C21D23CE41E30096D102 /* PlatformWheelEvent.cpp */, 935C476A09AC4D4F00A6AAB4 /* PlatformWheelEvent.h */, BCBB8AB513F1AFB000734DF0 /* PODInterval.h */, -@@ -34500,6 +34522,7 @@ +@@ -34547,6 +34569,7 @@ AD6E71AB1668899D00320C13 /* DocumentSharedObjectPool.h */, 6BDB5DC1227BD3B800919770 /* DocumentStorageAccess.cpp */, 6BDB5DC0227BD3B800919770 /* DocumentStorageAccess.h */, @@ -2556,7 +2544,7 @@ index ff940ab298a8061f236af6fa8da5c25819556ecc..430840259b7d32817359a94240c55c9b 7CE7FA5B1EF882300060C9D6 /* DocumentTouch.cpp */, 7CE7FA591EF882300060C9D6 /* DocumentTouch.h */, A8185F3209765765005826D9 /* DocumentType.cpp */, -@@ -38957,6 +38980,8 @@ +@@ -39015,6 +39038,8 @@ 1AD8F81B11CAB9E900E93E54 /* PlatformStrategies.h in Headers */, 0F7D07331884C56C00B4AF86 /* PlatformTextTrack.h in Headers */, 074E82BB18A69F0E007EF54C /* PlatformTimeRanges.h in Headers */, @@ -2565,7 +2553,7 @@ index ff940ab298a8061f236af6fa8da5c25819556ecc..430840259b7d32817359a94240c55c9b CDD08ABD277E542600EA3755 /* PlatformTrackConfiguration.h in Headers */, CD1F9B022700323D00617EB6 /* PlatformVideoColorPrimaries.h in Headers */, CD1F9B01270020B700617EB6 /* PlatformVideoColorSpace.h in Headers */, -@@ -40167,6 +40192,7 @@ +@@ -40227,6 +40252,7 @@ 0F54DD081881D5F5003EEDBB /* Touch.h in Headers */, 71B7EE0D21B5C6870031C1EF /* TouchAction.h in Headers */, 0F54DD091881D5F5003EEDBB /* TouchEvent.h in Headers */, @@ -2573,7 +2561,7 @@ index ff940ab298a8061f236af6fa8da5c25819556ecc..430840259b7d32817359a94240c55c9b 0F54DD0A1881D5F5003EEDBB /* TouchList.h in Headers */, 070334D71459FFD5008D8D45 /* TrackBase.h in Headers */, BE88E0C21715CE2600658D98 /* TrackListBase.h in Headers */, -@@ -41136,6 +41162,7 @@ +@@ -41197,6 +41223,7 @@ 1ABA76CA11D20E50004C201C /* CSSPropertyNames.cpp in Sources */, 2D22830323A8470700364B7E /* CursorMac.mm in Sources */, 5CBD59592280E926002B22AA /* CustomHeaderFields.cpp in Sources */, @@ -2581,7 +2569,7 @@ index ff940ab298a8061f236af6fa8da5c25819556ecc..430840259b7d32817359a94240c55c9b 329C0C2528BD96EB00F187D2 /* ElementName.cpp in Sources */, 7CE6CBFD187F394900D46BF5 /* FormatConverter.cpp in Sources */, 4667EA3E2968D9DA00BAB1E2 /* GameControllerHapticEffect.mm in Sources */, -@@ -41214,6 +41241,9 @@ +@@ -41274,6 +41301,9 @@ CE88EE262414467B007F29C2 /* TextAlternativeWithRange.mm in Sources */, BE39137129B267F500FA5D4F /* TextTransformCocoa.cpp in Sources */, 51DF6D800B92A18E00C2DC85 /* ThreadCheck.mm in Sources */, @@ -2592,18 +2580,18 @@ index ff940ab298a8061f236af6fa8da5c25819556ecc..430840259b7d32817359a94240c55c9b 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 43f1c868788fe8ba84b984bd265983bd798ede7e..e9779489a7cadb8c979c582574117cfa67a26019 100644 +index 760f5329f2ae5bc9a7d329516ef4892ba4daece9..36874e795b8d1406894a66b18e5571e6d7c4cfc9 100644 --- a/Source/WebCore/accessibility/AccessibilityObject.cpp +++ b/Source/WebCore/accessibility/AccessibilityObject.cpp -@@ -64,6 +64,7 @@ +@@ -63,6 +63,7 @@ #include "HTMLParserIdioms.h" #include "HTMLTextAreaElement.h" #include "HitTestResult.h" +#include "InspectorInstrumentation.h" + #include "LocalFrame.h" #include "LocalizedStrings.h" #include "MathMLNames.h" - #include "NodeList.h" -@@ -3702,9 +3703,14 @@ AccessibilityObjectInclusion AccessibilityObject::defaultObjectInclusion() const +@@ -3707,9 +3708,14 @@ AccessibilityObjectInclusion AccessibilityObject::defaultObjectInclusion() const if (roleValue() == AccessibilityRole::ApplicationDialog) return AccessibilityObjectInclusion::IncludeObject; @@ -2620,8 +2608,20 @@ index 43f1c868788fe8ba84b984bd265983bd798ede7e..e9779489a7cadb8c979c582574117cfa bool AccessibilityObject::accessibilityIsIgnored() const { AXComputedObjectAttributeCache* attributeCache = nullptr; +diff --git a/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm b/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm +index c2f7d429e8a541883d956a11d10239bf3d32a79b..b0a2b086875645a4141b76a6343b522287582171 100644 +--- a/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm ++++ b/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm +@@ -34,6 +34,7 @@ + #import "FrameSelection.h" + #import "HTMLFieldSetElement.h" + #import "HTMLInputElement.h" ++#import "LocalFrame.h" + #import "LocalFrameView.h" + #import "LocalizedStrings.h" + #import "RenderObject.h" diff --git a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h -index 8b56160e0e42841968fee4303ab8f7571bc1646e..6edd1cabb8722752b0d47d7711aad61677cf5f3b 100644 +index 3537d37cfdb9a22dd88950abb3825ea2ba045cf4..60d4a40f9cc65362df875269246dc358f7b87a5e 100644 --- a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h +++ b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h @@ -167,6 +167,8 @@ namespace WebCore { @@ -2634,7 +2634,7 @@ index 8b56160e0e42841968fee4303ab8f7571bc1646e..6edd1cabb8722752b0d47d7711aad616 macro(DynamicsCompressorNode) \ macro(ElementInternals) \ diff --git a/Source/WebCore/css/query/MediaQueryFeatures.cpp b/Source/WebCore/css/query/MediaQueryFeatures.cpp -index eb1bc006642c7aa4a8fb05cc117f296dcbd56445..e8bc769b71c0ba027cb302af8eca9df4a0361002 100644 +index 2cc61bcafd749944dfe32e98e762beeb6293da8e..f06d5a7fd13b6f5220f83367f86937d2806047cf 100644 --- a/Source/WebCore/css/query/MediaQueryFeatures.cpp +++ b/Source/WebCore/css/query/MediaQueryFeatures.cpp @@ -368,7 +368,11 @@ const FeatureSchema& forcedColors() @@ -2661,7 +2661,7 @@ index eb1bc006642c7aa4a8fb05cc117f296dcbd56445..e8bc769b71c0ba027cb302af8eca9df4 case ForcedAccessibilityValue::On: return true; diff --git a/Source/WebCore/dom/DataTransfer.cpp b/Source/WebCore/dom/DataTransfer.cpp -index f3847d5b99d839d31976f898b8fcaa5b32168027..d35cd25d0986c69ddfbef123ec46cdf52ccbe4f0 100644 +index c0d746b41650937256e73ff4cfab5db426658523..3e4d570e3e35dd31eefa9c80a56c2ca1315bf6ec 100644 --- a/Source/WebCore/dom/DataTransfer.cpp +++ b/Source/WebCore/dom/DataTransfer.cpp @@ -511,6 +511,14 @@ Ref DataTransfer::createForDrag(const Document& document) @@ -2680,7 +2680,7 @@ index f3847d5b99d839d31976f898b8fcaa5b32168027..d35cd25d0986c69ddfbef123ec46cdf5 { 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 d976b9e0003c58f6efa4d42bec14b62a1b8cbba9..12f58b462bafd805274d9cddc4c62ab8b18d7a22 100644 +index fb2decfc7dfc6c8a4e5a7dd79c0e23798f6d83b8..ba5f16cf2b443167b8307510f06e985698353319 100644 --- a/Source/WebCore/dom/DataTransfer.h +++ b/Source/WebCore/dom/DataTransfer.h @@ -90,6 +90,9 @@ public: @@ -2832,7 +2832,7 @@ index 936f9913c28269fa1a425b87f8458328e1a7d715..3e7bb61930d8f0f2f46b881968ff04d7 + } // namespace WebCore diff --git a/Source/WebCore/dom/PointerEvent.h b/Source/WebCore/dom/PointerEvent.h -index 7542bab569d49879f0eb460520738b3da37116f6..17c92229cc596bc80a718911b74737d3575137e1 100644 +index c5d7bac078c966c1eb1a645b05a9a1bd35c5b413..2b6cab2f67371d82b1c2b83d78b56f603fb4cf24 100644 --- a/Source/WebCore/dom/PointerEvent.h +++ b/Source/WebCore/dom/PointerEvent.h @@ -33,6 +33,8 @@ @@ -2863,7 +2863,7 @@ index 7542bab569d49879f0eb460520738b3da37116f6..17c92229cc596bc80a718911b74737d3 #endif diff --git a/Source/WebCore/editing/libwpe/EditorLibWPE.cpp b/Source/WebCore/editing/libwpe/EditorLibWPE.cpp -index 780b9decb28f284cfdc3f88a11bef37dd3e96ca5..0b827f111748054377e296c3973089ebb4d20afd 100644 +index 52ee00ea5df1b7eabedc3e9c344bd6d715d462fa..e311d17d5f18c9bf239e9fab3c1090c3578fc96c 100644 --- a/Source/WebCore/editing/libwpe/EditorLibWPE.cpp +++ b/Source/WebCore/editing/libwpe/EditorLibWPE.cpp @@ -34,6 +34,7 @@ @@ -2890,17 +2890,17 @@ index 780b9decb28f284cfdc3f88a11bef37dd3e96ca5..0b827f111748054377e296c3973089eb #endif // USE(LIBWPE) diff --git a/Source/WebCore/html/FileInputType.cpp b/Source/WebCore/html/FileInputType.cpp -index 045cc0057af32f0010d503e98541100d45de6d9d..b251c5498cd82d18fbeebc84944eaba184bdc9a7 100644 +index 161a668d55aa0d3de7d7acb9ea752119c06130de..80d9a99b4346cbbbc23d7647fe6ebef071681230 100644 --- a/Source/WebCore/html/FileInputType.cpp +++ b/Source/WebCore/html/FileInputType.cpp -@@ -38,6 +38,7 @@ +@@ -37,6 +37,7 @@ #include "HTMLNames.h" #include "Icon.h" #include "InputTypeNames.h" +#include "InspectorInstrumentation.h" + #include "LocalFrame.h" #include "LocalizedStrings.h" #include "MIMETypeRegistry.h" - #include "RenderFileUploadControl.h" @@ -205,6 +206,11 @@ void FileInputType::handleDOMActivateEvent(Event& event) if (input.isDisabledFormControl()) return; @@ -2925,7 +2925,7 @@ index 045cc0057af32f0010d503e98541100d45de6d9d..b251c5498cd82d18fbeebc84944eaba1 break; } diff --git a/Source/WebCore/inspector/InspectorController.cpp b/Source/WebCore/inspector/InspectorController.cpp -index 4a02058192ee354d49a2af7ec86ae6213df00d47..f24adaa859081843dfd07025f0d594f9054b2172 100644 +index c2dabfbc86e46d14048134545031159757e7c2e4..d3833a407a9e47c8809620ef5cf97346891dd29c 100644 --- a/Source/WebCore/inspector/InspectorController.cpp +++ b/Source/WebCore/inspector/InspectorController.cpp @@ -288,6 +288,8 @@ void InspectorController::disconnectFrontend(FrontendChannel& frontendChannel) @@ -2957,7 +2957,7 @@ index 4a02058192ee354d49a2af7ec86ae6213df00d47..f24adaa859081843dfd07025f0d594f9 ensureDOMAgent().inspect(node); } -@@ -539,4 +543,24 @@ void InspectorController::didComposite(Frame& frame) +@@ -539,4 +543,24 @@ void InspectorController::didComposite(LocalFrame& frame) InspectorInstrumentation::didComposite(frame); } @@ -2983,12 +2983,12 @@ index 4a02058192ee354d49a2af7ec86ae6213df00d47..f24adaa859081843dfd07025f0d594f9 + } // namespace WebCore diff --git a/Source/WebCore/inspector/InspectorController.h b/Source/WebCore/inspector/InspectorController.h -index 92dbeae204e0ea3c3a99b66250378a24f3c75459..8a61728ed460a85b363ec3fbc45c37a0330cde1f 100644 +index 3a981b5bf5ca0bbf4d1c9f0b125564742cd8cad9..f8fc2ca6700461627933f149c5837075226a51a9 100644 --- a/Source/WebCore/inspector/InspectorController.h +++ b/Source/WebCore/inspector/InspectorController.h @@ -101,6 +101,10 @@ public: - WEBCORE_EXPORT void willComposite(Frame&); - WEBCORE_EXPORT void didComposite(Frame&); + WEBCORE_EXPORT void willComposite(LocalFrame&); + WEBCORE_EXPORT void didComposite(LocalFrame&); + WEBCORE_EXPORT void pauseWhenShown(); + WEBCORE_EXPORT void resumeIfPausedInNewWindow(); @@ -3006,7 +3006,7 @@ index 92dbeae204e0ea3c3a99b66250378a24f3c75459..8a61728ed460a85b363ec3fbc45c37a0 } // namespace WebCore diff --git a/Source/WebCore/inspector/InspectorInstrumentation.cpp b/Source/WebCore/inspector/InspectorInstrumentation.cpp -index 1a05d2d131ebb8e580bd3c72628086424710001c..b19fde2076c1b1da41f162cdc759439d2f3ff72b 100644 +index 37b3806ccad3419e617cbd3f697105d68f0b2208..581ba5372f44144e68991b242a9561c4f63d1126 100644 --- a/Source/WebCore/inspector/InspectorInstrumentation.cpp +++ b/Source/WebCore/inspector/InspectorInstrumentation.cpp @@ -601,6 +601,12 @@ void InspectorInstrumentation::applyUserAgentOverrideImpl(InstrumentingAgents& i @@ -3026,7 +3026,7 @@ index 1a05d2d131ebb8e580bd3c72628086424710001c..b19fde2076c1b1da41f162cdc759439d consoleAgent->didFailLoading(identifier, error); // This should come AFTER resource notification, front-end relies on this. } -+void InspectorInstrumentation::didReceiveMainResourceErrorImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, const ResourceError&) ++void InspectorInstrumentation::didReceiveMainResourceErrorImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame, const ResourceError&) +{ + if (auto* pageRuntimeAgent = instrumentingAgents.enabledPageRuntimeAgent()) + pageRuntimeAgent->didReceiveMainResourceError(frame); @@ -3037,7 +3037,7 @@ index 1a05d2d131ebb8e580bd3c72628086424710001c..b19fde2076c1b1da41f162cdc759439d if (auto* networkAgent = instrumentingAgents.enabledNetworkAgent()) @@ -716,20 +728,17 @@ void InspectorInstrumentation::didReceiveScriptResponseImpl(InstrumentingAgents& - void InspectorInstrumentation::domContentLoadedEventFiredImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) + void InspectorInstrumentation::domContentLoadedEventFiredImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) { - if (!frame.isMainFrame()) - return; @@ -3047,7 +3047,7 @@ index 1a05d2d131ebb8e580bd3c72628086424710001c..b19fde2076c1b1da41f162cdc759439d + pageAgent->domContentEventFired(frame); } - void InspectorInstrumentation::loadEventFiredImpl(InstrumentingAgents& instrumentingAgents, Frame* frame) + void InspectorInstrumentation::loadEventFiredImpl(InstrumentingAgents& instrumentingAgents, LocalFrame* frame) { - if (!frame || !frame->isMainFrame()) + if (!frame) @@ -3058,7 +3058,7 @@ index 1a05d2d131ebb8e580bd3c72628086424710001c..b19fde2076c1b1da41f162cdc759439d + pageAgent->loadEventFired(*frame); } - void InspectorInstrumentation::frameDetachedFromParentImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) + void InspectorInstrumentation::frameDetachedFromParentImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) @@ -812,12 +821,6 @@ void InspectorInstrumentation::frameDocumentUpdatedImpl(InstrumentingAgents& ins pageDOMDebuggerAgent->frameDocumentUpdated(frame); } @@ -3069,27 +3069,27 @@ index 1a05d2d131ebb8e580bd3c72628086424710001c..b19fde2076c1b1da41f162cdc759439d - inspectorPageAgent->loaderDetachedFromFrame(loader); -} - - void InspectorInstrumentation::frameStartedLoadingImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) + void InspectorInstrumentation::frameStartedLoadingImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) { if (frame.isMainFrame()) { @@ -842,10 +845,10 @@ void InspectorInstrumentation::frameStoppedLoadingImpl(InstrumentingAgents& inst inspectorPageAgent->frameStoppedLoading(frame); } --void InspectorInstrumentation::frameScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, Seconds delay) -+void InspectorInstrumentation::frameScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, Seconds delay, bool targetIsCurrentFrame) +-void InspectorInstrumentation::frameScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame, Seconds delay) ++void InspectorInstrumentation::frameScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame, Seconds delay, bool targetIsCurrentFrame) { if (auto* inspectorPageAgent = instrumentingAgents.enabledPageAgent()) - inspectorPageAgent->frameScheduledNavigation(frame, delay); + inspectorPageAgent->frameScheduledNavigation(frame, delay, targetIsCurrentFrame); } - void InspectorInstrumentation::frameClearedScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) + void InspectorInstrumentation::frameClearedScheduledNavigationImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) @@ -860,6 +863,12 @@ void InspectorInstrumentation::accessibilitySettingsDidChangeImpl(InstrumentingA inspectorPageAgent->accessibilitySettingsDidChange(); } -+void InspectorInstrumentation::didNavigateWithinPageImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) ++void InspectorInstrumentation::didNavigateWithinPageImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) +{ + if (InspectorPageAgent* inspectorPageAgent = instrumentingAgents.enabledPageAgent()) + inspectorPageAgent->didNavigateWithinPage(frame); @@ -3121,7 +3121,7 @@ index 1a05d2d131ebb8e580bd3c72628086424710001c..b19fde2076c1b1da41f162cdc759439d + pageAgent->runOpenPanel(element, intercept); +} + -+void InspectorInstrumentation::frameAttachedImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) { ++void InspectorInstrumentation::frameAttachedImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) { + if (InspectorPageAgent* pageAgent = instrumentingAgents.enabledPageAgent()) + pageAgent->frameAttached(frame); +} @@ -3133,13 +3133,13 @@ index 1a05d2d131ebb8e580bd3c72628086424710001c..b19fde2076c1b1da41f162cdc759439d + return false; +} + -+void InspectorInstrumentation::willCheckNavigationPolicyImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) ++void InspectorInstrumentation::willCheckNavigationPolicyImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame) +{ + if (InspectorPageAgent* pageAgent = instrumentingAgents.enabledPageAgent()) + pageAgent->willCheckNavigationPolicy(frame); +} + -+void InspectorInstrumentation::didCheckNavigationPolicyImpl(InstrumentingAgents& instrumentingAgents, Frame& frame, bool cancel) ++void InspectorInstrumentation::didCheckNavigationPolicyImpl(InstrumentingAgents& instrumentingAgents, LocalFrame& frame, bool cancel) +{ + if (InspectorPageAgent* pageAgent = instrumentingAgents.enabledPageAgent()) + pageAgent->didCheckNavigationPolicy(frame, cancel); @@ -3163,7 +3163,7 @@ index 1a05d2d131ebb8e580bd3c72628086424710001c..b19fde2076c1b1da41f162cdc759439d { if (is(context)) diff --git a/Source/WebCore/inspector/InspectorInstrumentation.h b/Source/WebCore/inspector/InspectorInstrumentation.h -index 540e42cc8be86644470c90b0bbbd24bff8a38c9d..072ee2a97fcf5d60c5e1b540173348a6f2565625 100644 +index f3c8e64eb096ca889f19bbb79e6ec24a73a4db9f..c64fa7aaa9321dd3f5292561a8ef63c2f658a9aa 100644 --- a/Source/WebCore/inspector/InspectorInstrumentation.h +++ b/Source/WebCore/inspector/InspectorInstrumentation.h @@ -31,6 +31,7 @@ @@ -3175,8 +3175,8 @@ index 540e42cc8be86644470c90b0bbbd24bff8a38c9d..072ee2a97fcf5d60c5e1b540173348a6 #include "CanvasBase.h" #include "CanvasRenderingContext.h" @@ -46,6 +47,7 @@ - #include "HitTestResult.h" - #include "InspectorInstrumentationPublic.h" + #include "LocalFrame.h" + #include "LocalFrameView.h" #include "Page.h" +#include "ResourceError.h" #include "ResourceLoader.h" @@ -3193,31 +3193,31 @@ index 540e42cc8be86644470c90b0bbbd24bff8a38c9d..072ee2a97fcf5d60c5e1b540173348a6 @@ -192,6 +195,7 @@ public: static void didRecalculateStyle(Document&); static void didScheduleStyleRecalculation(Document&); - static void applyUserAgentOverride(Frame&, String&); -+ static void applyPlatformOverride(Frame&, String&); - static void applyEmulatedMedia(Frame&, AtomString&); + static void applyUserAgentOverride(LocalFrame&, String&); ++ static void applyPlatformOverride(LocalFrame&, String&); + static void applyEmulatedMedia(LocalFrame&, AtomString&); static void flexibleBoxRendererBeganLayout(const RenderObject&); @@ -204,6 +208,7 @@ public: - static void didReceiveData(Frame*, ResourceLoaderIdentifier, const SharedBuffer*, int encodedDataLength); - static void didFinishLoading(Frame*, DocumentLoader*, ResourceLoaderIdentifier, const NetworkLoadMetrics&, ResourceLoader*); - static void didFailLoading(Frame*, DocumentLoader*, ResourceLoaderIdentifier, const ResourceError&); -+ static void didReceiveMainResourceError(Frame&, const ResourceError&); + static void didReceiveData(LocalFrame*, ResourceLoaderIdentifier, const SharedBuffer*, int encodedDataLength); + static void didFinishLoading(LocalFrame*, DocumentLoader*, ResourceLoaderIdentifier, const NetworkLoadMetrics&, ResourceLoader*); + static void didFailLoading(LocalFrame*, DocumentLoader*, ResourceLoaderIdentifier, const ResourceError&); ++ static void didReceiveMainResourceError(LocalFrame&, const ResourceError&); static void willSendRequest(WorkerOrWorkletGlobalScope&, ResourceLoaderIdentifier, ResourceRequest&); static void didReceiveResourceResponse(WorkerOrWorkletGlobalScope&, ResourceLoaderIdentifier, const ResourceResponse&); @@ -230,12 +235,12 @@ public: - static void frameDetachedFromParent(Frame&); - static void didCommitLoad(Frame&, DocumentLoader*); - static void frameDocumentUpdated(Frame&); -- static void loaderDetachedFromFrame(Frame&, DocumentLoader&); - static void frameStartedLoading(Frame&); - static void frameStoppedLoading(Frame&); -- static void frameScheduledNavigation(Frame&, Seconds delay); -+ static void frameScheduledNavigation(Frame&, Seconds delay, bool targetIsCurrentFrame); - static void frameClearedScheduledNavigation(Frame&); + static void frameDetachedFromParent(LocalFrame&); + static void didCommitLoad(LocalFrame&, DocumentLoader*); + static void frameDocumentUpdated(LocalFrame&); +- static void loaderDetachedFromFrame(LocalFrame&, DocumentLoader&); + static void frameStartedLoading(LocalFrame&); + static void frameStoppedLoading(LocalFrame&); +- static void frameScheduledNavigation(LocalFrame&, Seconds delay); ++ static void frameScheduledNavigation(LocalFrame&, Seconds delay, bool targetIsCurrentFrame); + static void frameClearedScheduledNavigation(LocalFrame&); static void accessibilitySettingsDidChange(Page&); -+ static void didNavigateWithinPage(Frame&); ++ static void didNavigateWithinPage(LocalFrame&); #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) static void defaultAppearanceDidChange(Page&); #endif @@ -3233,11 +3233,11 @@ index 540e42cc8be86644470c90b0bbbd24bff8a38c9d..072ee2a97fcf5d60c5e1b540173348a6 static void layerTreeDidChange(Page*); static void renderLayerDestroyed(Page*, const RenderLayer&); -+ static void runOpenPanel(Frame*, HTMLInputElement*, bool*); -+ static void frameAttached(Frame*); ++ static void runOpenPanel(LocalFrame*, HTMLInputElement*, bool*); ++ static void frameAttached(LocalFrame*); + static bool shouldBypassCSP(ScriptExecutionContext*); -+ static void willCheckNavigationPolicy(Frame&); -+ static void didCheckNavigationPolicy(Frame&, bool cancel); ++ static void willCheckNavigationPolicy(LocalFrame&); ++ static void didCheckNavigationPolicy(LocalFrame&, bool cancel); + static void frontendCreated(); static void frontendDeleted(); @@ -3249,7 +3249,7 @@ index 540e42cc8be86644470c90b0bbbd24bff8a38c9d..072ee2a97fcf5d60c5e1b540173348a6 + static void maybeOverrideDefaultObjectInclusion(Page&, AccessibilityObjectInclusion&); + private: - static void didClearWindowObjectInWorldImpl(InstrumentingAgents&, Frame&, DOMWrapperWorld&); + static void didClearWindowObjectInWorldImpl(InstrumentingAgents&, LocalFrame&, DOMWrapperWorld&); static bool isDebuggerPausedImpl(InstrumentingAgents&); @@ -417,6 +431,7 @@ private: static void didRecalculateStyleImpl(InstrumentingAgents&); @@ -3263,22 +3263,22 @@ index 540e42cc8be86644470c90b0bbbd24bff8a38c9d..072ee2a97fcf5d60c5e1b540173348a6 static void didReceiveDataImpl(InstrumentingAgents&, ResourceLoaderIdentifier, const SharedBuffer*, int encodedDataLength); static void didFinishLoadingImpl(InstrumentingAgents&, ResourceLoaderIdentifier, DocumentLoader*, const NetworkLoadMetrics&, ResourceLoader*); static void didFailLoadingImpl(InstrumentingAgents&, ResourceLoaderIdentifier, DocumentLoader*, const ResourceError&); -+ static void didReceiveMainResourceErrorImpl(InstrumentingAgents&, Frame&, const ResourceError&); ++ static void didReceiveMainResourceErrorImpl(InstrumentingAgents&, LocalFrame&, const ResourceError&); static void willLoadXHRSynchronouslyImpl(InstrumentingAgents&); static void didLoadXHRSynchronouslyImpl(InstrumentingAgents&); static void scriptImportedImpl(InstrumentingAgents&, ResourceLoaderIdentifier, const String& sourceString); @@ -441,12 +457,12 @@ private: - static void frameDetachedFromParentImpl(InstrumentingAgents&, Frame&); - static void didCommitLoadImpl(InstrumentingAgents&, Frame&, DocumentLoader*); - static void frameDocumentUpdatedImpl(InstrumentingAgents&, Frame&); + static void frameDetachedFromParentImpl(InstrumentingAgents&, LocalFrame&); + static void didCommitLoadImpl(InstrumentingAgents&, LocalFrame&, DocumentLoader*); + static void frameDocumentUpdatedImpl(InstrumentingAgents&, LocalFrame&); - static void loaderDetachedFromFrameImpl(InstrumentingAgents&, DocumentLoader&); - static void frameStartedLoadingImpl(InstrumentingAgents&, Frame&); - static void frameStoppedLoadingImpl(InstrumentingAgents&, Frame&); -- static void frameScheduledNavigationImpl(InstrumentingAgents&, Frame&, Seconds delay); -+ static void frameScheduledNavigationImpl(InstrumentingAgents&, Frame&, Seconds delay, bool targetIsCurrentFrame); - static void frameClearedScheduledNavigationImpl(InstrumentingAgents&, Frame&); + static void frameStartedLoadingImpl(InstrumentingAgents&, LocalFrame&); + static void frameStoppedLoadingImpl(InstrumentingAgents&, LocalFrame&); +- static void frameScheduledNavigationImpl(InstrumentingAgents&, LocalFrame&, Seconds delay); ++ static void frameScheduledNavigationImpl(InstrumentingAgents&, LocalFrame&, Seconds delay, bool targetIsCurrentFrame); + static void frameClearedScheduledNavigationImpl(InstrumentingAgents&, LocalFrame&); static void accessibilitySettingsDidChangeImpl(InstrumentingAgents&); -+ static void didNavigateWithinPageImpl(InstrumentingAgents&, Frame&); ++ static void didNavigateWithinPageImpl(InstrumentingAgents&, LocalFrame&); #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) static void defaultAppearanceDidChangeImpl(InstrumentingAgents&); #endif @@ -3295,62 +3295,62 @@ index 540e42cc8be86644470c90b0bbbd24bff8a38c9d..072ee2a97fcf5d60c5e1b540173348a6 static void renderLayerDestroyedImpl(InstrumentingAgents&, const RenderLayer&); + static void runOpenPanelImpl(InstrumentingAgents&, HTMLInputElement*, bool*); -+ static void frameAttachedImpl(InstrumentingAgents&, Frame&); ++ static void frameAttachedImpl(InstrumentingAgents&, LocalFrame&); + static bool shouldBypassCSPImpl(InstrumentingAgents&); -+ static void willCheckNavigationPolicyImpl(InstrumentingAgents&, Frame&); -+ static void didCheckNavigationPolicyImpl(InstrumentingAgents&, Frame&, bool cancel); ++ static void willCheckNavigationPolicyImpl(InstrumentingAgents&, LocalFrame&); ++ static void didCheckNavigationPolicyImpl(InstrumentingAgents&, LocalFrame&, bool cancel); + static InstrumentingAgents& instrumentingAgents(Page&); static InstrumentingAgents& instrumentingAgents(WorkerOrWorkletGlobalScope&); -@@ -1061,6 +1084,13 @@ inline void InspectorInstrumentation::applyUserAgentOverride(Frame& frame, Strin +@@ -1061,6 +1084,13 @@ inline void InspectorInstrumentation::applyUserAgentOverride(LocalFrame& frame, applyUserAgentOverrideImpl(*agents, userAgent); } -+inline void InspectorInstrumentation::applyPlatformOverride(Frame& frame, String& platform) ++inline void InspectorInstrumentation::applyPlatformOverride(LocalFrame& frame, String& platform) +{ + FAST_RETURN_IF_NO_FRONTENDS(void()); + if (auto* agents = instrumentingAgents(frame)) + applyPlatformOverrideImpl(*agents, platform); +} + - inline void InspectorInstrumentation::applyEmulatedMedia(Frame& frame, AtomString& media) + inline void InspectorInstrumentation::applyEmulatedMedia(LocalFrame& frame, AtomString& media) { FAST_RETURN_IF_NO_FRONTENDS(void()); @@ -1163,6 +1193,13 @@ inline void InspectorInstrumentation::didFailLoading(WorkerOrWorkletGlobalScope& didFailLoadingImpl(instrumentingAgents(globalScope), identifier, nullptr, error); } -+inline void InspectorInstrumentation::didReceiveMainResourceError(Frame& frame, const ResourceError& error) ++inline void InspectorInstrumentation::didReceiveMainResourceError(LocalFrame& frame, const ResourceError& error) +{ + FAST_RETURN_IF_NO_FRONTENDS(void()); + if (auto* agents = instrumentingAgents(frame)) + didReceiveMainResourceErrorImpl(*agents, frame, error); +} + - inline void InspectorInstrumentation::continueAfterXFrameOptionsDenied(Frame& frame, ResourceLoaderIdentifier identifier, DocumentLoader& loader, const ResourceResponse& response) + inline void InspectorInstrumentation::continueAfterXFrameOptionsDenied(LocalFrame& frame, ResourceLoaderIdentifier identifier, DocumentLoader& loader, const ResourceResponse& response) { // Treat the same as didReceiveResponse. -@@ -1253,13 +1290,6 @@ inline void InspectorInstrumentation::frameDocumentUpdated(Frame& frame) +@@ -1253,13 +1290,6 @@ inline void InspectorInstrumentation::frameDocumentUpdated(LocalFrame& frame) frameDocumentUpdatedImpl(*agents, frame); } --inline void InspectorInstrumentation::loaderDetachedFromFrame(Frame& frame, DocumentLoader& loader) +-inline void InspectorInstrumentation::loaderDetachedFromFrame(LocalFrame& frame, DocumentLoader& loader) -{ - FAST_RETURN_IF_NO_FRONTENDS(void()); - if (auto* agents = instrumentingAgents(frame)) - loaderDetachedFromFrameImpl(*agents, loader); -} - - inline void InspectorInstrumentation::frameStartedLoading(Frame& frame) + inline void InspectorInstrumentation::frameStartedLoading(LocalFrame& frame) { FAST_RETURN_IF_NO_FRONTENDS(void()); -@@ -1274,11 +1304,11 @@ inline void InspectorInstrumentation::frameStoppedLoading(Frame& frame) +@@ -1274,11 +1304,11 @@ inline void InspectorInstrumentation::frameStoppedLoading(LocalFrame& frame) frameStoppedLoadingImpl(*agents, frame); } --inline void InspectorInstrumentation::frameScheduledNavigation(Frame& frame, Seconds delay) -+inline void InspectorInstrumentation::frameScheduledNavigation(Frame& frame, Seconds delay, bool targetIsCurrentFrame) +-inline void InspectorInstrumentation::frameScheduledNavigation(LocalFrame& frame, Seconds delay) ++inline void InspectorInstrumentation::frameScheduledNavigation(LocalFrame& frame, Seconds delay, bool targetIsCurrentFrame) { FAST_RETURN_IF_NO_FRONTENDS(void()); if (auto* agents = instrumentingAgents(frame)) @@ -3358,12 +3358,12 @@ index 540e42cc8be86644470c90b0bbbd24bff8a38c9d..072ee2a97fcf5d60c5e1b540173348a6 + frameScheduledNavigationImpl(*agents, frame, delay, targetIsCurrentFrame); } - inline void InspectorInstrumentation::frameClearedScheduledNavigation(Frame& frame) + inline void InspectorInstrumentation::frameClearedScheduledNavigation(LocalFrame& frame) @@ -1294,6 +1324,13 @@ inline void InspectorInstrumentation::accessibilitySettingsDidChange(Page& page) accessibilitySettingsDidChangeImpl(instrumentingAgents(page)); } -+inline void InspectorInstrumentation::didNavigateWithinPage(Frame& frame) ++inline void InspectorInstrumentation::didNavigateWithinPage(LocalFrame& frame) +{ + FAST_RETURN_IF_NO_FRONTENDS(void()); + if (auto* agents = instrumentingAgents(frame)) @@ -3389,14 +3389,14 @@ index 540e42cc8be86644470c90b0bbbd24bff8a38c9d..072ee2a97fcf5d60c5e1b540173348a6 renderLayerDestroyedImpl(*agents, renderLayer); } -+inline void InspectorInstrumentation::runOpenPanel(Frame* frame, HTMLInputElement* element, bool* intercept) ++inline void InspectorInstrumentation::runOpenPanel(LocalFrame* frame, HTMLInputElement* element, bool* intercept) +{ + FAST_RETURN_IF_NO_FRONTENDS(void()); + if (auto* agents = instrumentingAgents(*frame)) + runOpenPanelImpl(*agents, element, intercept); +} + -+inline void InspectorInstrumentation::frameAttached(Frame* frame) ++inline void InspectorInstrumentation::frameAttached(LocalFrame* frame) +{ + FAST_RETURN_IF_NO_FRONTENDS(void()); + if (auto* agents = instrumentingAgents(frame)) @@ -3411,14 +3411,14 @@ index 540e42cc8be86644470c90b0bbbd24bff8a38c9d..072ee2a97fcf5d60c5e1b540173348a6 + return false; +} + -+inline void InspectorInstrumentation::willCheckNavigationPolicy(Frame& frame) ++inline void InspectorInstrumentation::willCheckNavigationPolicy(LocalFrame& frame) +{ + FAST_RETURN_IF_NO_FRONTENDS(void()); + if (auto* agents = instrumentingAgents(frame)) + willCheckNavigationPolicyImpl(*agents, frame); +} + -+inline void InspectorInstrumentation::didCheckNavigationPolicy(Frame& frame, bool cancel) ++inline void InspectorInstrumentation::didCheckNavigationPolicy(LocalFrame& frame, bool cancel) +{ + FAST_RETURN_IF_NO_FRONTENDS(void()); + if (auto* agents = instrumentingAgents(frame)) @@ -3441,18 +3441,16 @@ index 07103c35e0a9193a010a85cf2ea8017b2ad59212..338d158be5a6f35adc6817dc94d6084b class UserGestureEmulationScope { WTF_MAKE_NONCOPYABLE(UserGestureEmulationScope); diff --git a/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp b/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp -index 35c844baa2d09b358ef63d2cb3881608a24413c6..4beec23c0cf4b13bfb5caf78cdd63f2e5361baf8 100644 +index 4753ed97f52484a8a207a94daf8d2de4b75177d0..a97456e7f975e3c73e1f30f2cf8b07b6e41a68ce 100644 --- a/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp -@@ -62,12 +62,16 @@ +@@ -61,10 +61,14 @@ #include "Event.h" #include "EventListener.h" #include "EventNames.h" +#include "File.h" +#include "FileList.h" - #include "Frame.h" #include "FrameTree.h" - #include "FrameView.h" #include "FullscreenManager.h" +#include "FloatQuad.h" #include "HTMLElement.h" @@ -3560,12 +3558,12 @@ index 35c844baa2d09b358ef63d2cb3881608a24413c6..4beec23c0cf4b13bfb5caf78cdd63f2e } -Protocol::ErrorStringOr> InspectorDOMAgent::resolveNode(Protocol::DOM::NodeId nodeId, const String& objectGroup) -+static FloatPoint contentsToRootView(FrameView& containingView, const FloatPoint& point) ++static FloatPoint contentsToRootView(LocalFrameView& containingView, const FloatPoint& point) +{ + return containingView.convertToRootView(point - toFloatSize(containingView.documentScrollPositionRelativeToViewOrigin())); +} + -+static void frameQuadToViewport(FrameView& containingView, FloatQuad& quad, float pageScaleFactor) ++static void frameQuadToViewport(LocalFrameView& containingView, FloatQuad& quad, float pageScaleFactor) +{ + // Return css (not dip) coordinates by scaling back. + quad.setP1(contentsToRootView(containingView, quad.p1()).scaled(1 / pageScaleFactor)); @@ -3664,7 +3662,7 @@ index 35c844baa2d09b358ef63d2cb3881608a24413c6..4beec23c0cf4b13bfb5caf78cdd63f2e + } + ScrollAlignment alignment = ScrollAlignment::alignCenterIfNeeded; + alignment.m_enableLegacyHorizontalVisibilityThreshold = false; // Disable RenderLayer minium horizontal scroll threshold. -+ FrameView::scrollRectToVisible(absoluteBounds, *renderer, insideFixed, { SelectionRevealMode::Reveal, alignment, alignment, ShouldAllowCrossOriginScrolling::Yes, ScrollBehavior::Instant }); ++ LocalFrameView::scrollRectToVisible(absoluteBounds, *renderer, insideFixed, { SelectionRevealMode::Reveal, alignment, alignment, ShouldAllowCrossOriginScrolling::Yes, ScrollBehavior::Instant }); + return { }; +} + @@ -3677,7 +3675,7 @@ index 35c844baa2d09b358ef63d2cb3881608a24413c6..4beec23c0cf4b13bfb5caf78cdd63f2e + // Ensure quads are up to date. + m_inspectedPage.isolatedUpdateRendering(); + -+ FrameView* containingView = node->document().view(); ++ LocalFrameView* containingView = node->document().view(); + if (!containingView) + return makeUnexpected("Internal error: no containing view"_s); + @@ -3714,7 +3712,7 @@ index 35c844baa2d09b358ef63d2cb3881608a24413c6..4beec23c0cf4b13bfb5caf78cdd63f2e if (!object) return makeUnexpected("Missing injected script for given nodeId"_s); -@@ -3066,7 +3232,7 @@ Protocol::ErrorStringOr InspectorDOMAgent::pushNodeByPath +@@ -3064,7 +3230,7 @@ Protocol::ErrorStringOr InspectorDOMAgent::pushNodeByPath return makeUnexpected("Missing node for given path"_s); } @@ -3723,7 +3721,7 @@ index 35c844baa2d09b358ef63d2cb3881608a24413c6..4beec23c0cf4b13bfb5caf78cdd63f2e { Document* document = &node->document(); if (auto* templateHost = document->templateDocumentHost()) -@@ -3075,12 +3241,18 @@ RefPtr InspectorDOMAgent::resolveNode(Node* nod +@@ -3073,12 +3239,18 @@ RefPtr InspectorDOMAgent::resolveNode(Node* nod if (!frame) return nullptr; @@ -3745,7 +3743,7 @@ index 35c844baa2d09b358ef63d2cb3881608a24413c6..4beec23c0cf4b13bfb5caf78cdd63f2e } Node* InspectorDOMAgent::scriptValueAsNode(JSC::JSValue value) -@@ -3103,4 +3275,57 @@ Protocol::ErrorStringOr InspectorDOMAgent::setAllowEditingUserAgentShadowT +@@ -3101,4 +3273,57 @@ Protocol::ErrorStringOr InspectorDOMAgent::setAllowEditingUserAgentShadowT return { }; } @@ -3804,7 +3802,7 @@ index 35c844baa2d09b358ef63d2cb3881608a24413c6..4beec23c0cf4b13bfb5caf78cdd63f2e + } // namespace WebCore diff --git a/Source/WebCore/inspector/agents/InspectorDOMAgent.h b/Source/WebCore/inspector/agents/InspectorDOMAgent.h -index 9e51c4e404fa0eaa19f0d951deaacce17d94b4b8..7385521cbb0f06b2f72f1aa063c22138866c22a3 100644 +index 9cd98d4bfb8e3b15c995e8968f0052d498b8dff8..bd6d6930a71ce2f23f18f9ee096c86becc5ed9dc 100644 --- a/Source/WebCore/inspector/agents/InspectorDOMAgent.h +++ b/Source/WebCore/inspector/agents/InspectorDOMAgent.h @@ -57,6 +57,7 @@ namespace WebCore { @@ -3877,18 +3875,10 @@ index 9e51c4e404fa0eaa19f0d951deaacce17d94b4b8..7385521cbb0f06b2f72f1aa063c22138 void discardBindings(); diff --git a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp -index 732278426b0b5360e42adf57b3872eeb77467949..f390a450084afb793737374303beaef6c3aff3cc 100644 +index 958e55d7ab1dd3503301a65d9a73f4086d61cca2..48d10584bcd3ce499d512894bfea845db6f5ab7d 100644 --- a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp -@@ -45,6 +45,7 @@ - #include "DocumentThreadableLoader.h" - #include "FormData.h" - #include "Frame.h" -+#include "FormData.h" - #include "FrameLoader.h" - #include "HTTPHeaderMap.h" - #include "HTTPHeaderNames.h" -@@ -58,6 +59,7 @@ +@@ -59,6 +59,7 @@ #include "MIMETypeRegistry.h" #include "MemoryCache.h" #include "NetworkResourcesData.h" @@ -3896,7 +3886,7 @@ index 732278426b0b5360e42adf57b3872eeb77467949..f390a450084afb793737374303beaef6 #include "Page.h" #include "PlatformStrategies.h" #include "ProgressTracker.h" -@@ -336,8 +338,8 @@ static Ref buildObjectForResourceRequest(const Resou +@@ -337,8 +338,8 @@ static Ref buildObjectForResourceRequest(const Resou .release(); if (request.httpBody() && !request.httpBody()->isEmpty()) { @@ -3907,7 +3897,7 @@ index 732278426b0b5360e42adf57b3872eeb77467949..f390a450084afb793737374303beaef6 } if (resourceLoader) { -@@ -390,6 +392,8 @@ RefPtr InspectorNetworkAgent::buildObjectForResourc +@@ -391,6 +392,8 @@ RefPtr InspectorNetworkAgent::buildObjectForResourc .setSource(responseSource(response.source())) .release(); @@ -3916,7 +3906,7 @@ index 732278426b0b5360e42adf57b3872eeb77467949..f390a450084afb793737374303beaef6 if (resourceLoader) { auto* metrics = response.deprecatedNetworkLoadMetricsOrNull(); responseObject->setTiming(buildObjectForTiming(metrics ? *metrics : NetworkLoadMetrics::emptyMetrics(), *resourceLoader)); -@@ -955,6 +959,7 @@ void InspectorNetworkAgent::continuePendingResponses() +@@ -956,6 +959,7 @@ void InspectorNetworkAgent::continuePendingResponses() Protocol::ErrorStringOr InspectorNetworkAgent::setExtraHTTPHeaders(Ref&& headers) { @@ -3924,7 +3914,7 @@ index 732278426b0b5360e42adf57b3872eeb77467949..f390a450084afb793737374303beaef6 for (auto& entry : headers.get()) { auto stringValue = entry.value->asString(); if (!!stringValue) -@@ -1235,6 +1240,9 @@ Protocol::ErrorStringOr InspectorNetworkAgent::interceptWithRequest(const +@@ -1236,6 +1240,9 @@ Protocol::ErrorStringOr InspectorNetworkAgent::interceptWithRequest(const return makeUnexpected("Missing pending intercept request for given requestId"_s); auto& loader = *pendingRequest->m_loader; @@ -3934,7 +3924,7 @@ index 732278426b0b5360e42adf57b3872eeb77467949..f390a450084afb793737374303beaef6 ResourceRequest request = loader.request(); if (!!url) request.setURL(URL({ }, url)); -@@ -1334,14 +1342,23 @@ Protocol::ErrorStringOr InspectorNetworkAgent::interceptRequestWithRespons +@@ -1335,14 +1342,23 @@ Protocol::ErrorStringOr InspectorNetworkAgent::interceptRequestWithRespons response.setHTTPStatusCode(status); response.setHTTPStatusText(AtomString { statusText }); HTTPHeaderMap explicitHeaders; @@ -3960,7 +3950,7 @@ index 732278426b0b5360e42adf57b3872eeb77467949..f390a450084afb793737374303beaef6 if (loader->reachedTerminalState()) return; -@@ -1404,6 +1421,12 @@ Protocol::ErrorStringOr InspectorNetworkAgent::setEmulatedConditions(std:: +@@ -1405,6 +1421,12 @@ Protocol::ErrorStringOr InspectorNetworkAgent::setEmulatedConditions(std:: #endif // ENABLE(INSPECTOR_NETWORK_THROTTLING) @@ -3995,10 +3985,10 @@ index c6ebcc9d7e399a35f71350c9374df0f2107c518b..3bfa03ae7f27d9128fe207c1de1bfea9 // InspectorInstrumentation void willRecalculateStyle(); diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp -index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd919197005 100644 +index 8aa57b3613bca881fab0e18000854bdee0b65646..a29d71de36733e35eb578ab29850ff9f5f7878ef 100644 --- a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp -@@ -32,21 +32,29 @@ +@@ -32,19 +32,27 @@ #include "config.h" #include "InspectorPageAgent.h" @@ -4017,20 +4007,18 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 #include "ElementInlines.h" +#include "FocusController.h" #include "ForcedAccessibilityValue.h" - #include "Frame.h" #include "FrameLoadRequest.h" #include "FrameLoader.h" +#include "FrameLoaderClient.h" #include "FrameSnapshotting.h" - #include "FrameView.h" #include "HTMLFrameOwnerElement.h" +#include "HTMLInputElement.h" #include "HTMLNames.h" #include "ImageBuffer.h" #include "InspectorClient.h" @@ -55,10 +63,13 @@ - #include "InspectorOverlay.h" - #include "InstrumentingAgents.h" + #include "LocalFrame.h" + #include "LocalFrameView.h" #include "MIMETypeRegistry.h" -#include "MemoryCache.h" #include "Page.h" @@ -4079,7 +4067,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 static bool decodeBuffer(const uint8_t* buffer, unsigned size, const String& textEncodingName, String* result) { if (buffer) { -@@ -331,6 +353,7 @@ InspectorPageAgent::InspectorPageAgent(PageAgentContext& context, InspectorClien +@@ -334,6 +356,7 @@ InspectorPageAgent::InspectorPageAgent(PageAgentContext& context, InspectorClien , m_frontendDispatcher(makeUnique(context.frontendRouter)) , m_backendDispatcher(Inspector::PageBackendDispatcher::create(context.backendDispatcher, this)) , m_inspectedPage(context.inspectedPage) @@ -4087,7 +4075,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 , m_client(client) , m_overlay(overlay) { -@@ -360,12 +383,20 @@ Protocol::ErrorStringOr InspectorPageAgent::enable() +@@ -363,12 +386,20 @@ Protocol::ErrorStringOr InspectorPageAgent::enable() defaultUserPreferencesDidChange(); @@ -4108,7 +4096,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 setShowPaintRects(false); #if !PLATFORM(IOS_FAMILY) -@@ -418,6 +449,22 @@ Protocol::ErrorStringOr InspectorPageAgent::reload(std::optional&& i +@@ -421,6 +452,22 @@ Protocol::ErrorStringOr InspectorPageAgent::reload(std::optional&& i return { }; } @@ -4131,7 +4119,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 Protocol::ErrorStringOr InspectorPageAgent::navigate(const String& url) { auto* localMainFrame = dynamicDowncast(m_inspectedPage.mainFrame()); -@@ -441,6 +488,13 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideUserAgent(const String +@@ -444,6 +491,13 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideUserAgent(const String return { }; } @@ -4145,7 +4133,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page::Setting setting, std::optional&& value) { auto& inspectedPageSettings = m_inspectedPage.settings(); -@@ -454,6 +508,12 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page +@@ -457,6 +511,12 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page inspectedPageSettings.setAuthorAndUserStylesEnabledInspectorOverride(value); return { }; @@ -4158,7 +4146,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 case Protocol::Page::Setting::ICECandidateFilteringEnabled: inspectedPageSettings.setICECandidateFilteringEnabledInspectorOverride(value); return { }; -@@ -479,6 +539,38 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page +@@ -482,6 +542,38 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page inspectedPageSettings.setNeedsSiteSpecificQuirksInspectorOverride(value); return { }; @@ -4197,7 +4185,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 case Protocol::Page::Setting::ScriptEnabled: inspectedPageSettings.setScriptEnabledInspectorOverride(value); return { }; -@@ -491,6 +583,12 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page +@@ -494,6 +586,12 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page inspectedPageSettings.setShowRepaintCounterInspectorOverride(value); return { }; @@ -4210,7 +4198,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 case Protocol::Page::Setting::WebRTCEncryptionEnabled: inspectedPageSettings.setWebRTCEncryptionEnabledInspectorOverride(value); return { }; -@@ -787,9 +885,13 @@ Protocol::ErrorStringOr> InspectorP +@@ -790,9 +888,13 @@ Protocol::ErrorStringOr> InspectorP return { { content, base64Encoded } }; } @@ -4226,12 +4214,12 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 return { }; } -@@ -895,15 +997,16 @@ Protocol::ErrorStringOr InspectorPageAgent::setShowPaintRects(bool show) +@@ -898,15 +1000,16 @@ Protocol::ErrorStringOr InspectorPageAgent::setShowPaintRects(bool show) return { }; } -void InspectorPageAgent::domContentEventFired() -+void InspectorPageAgent::domContentEventFired(Frame& frame) ++void InspectorPageAgent::domContentEventFired(LocalFrame& frame) { - m_isFirstLayoutAfterOnLoad = true; - m_frontendDispatcher->domContentEventFired(timestamp()); @@ -4241,14 +4229,14 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 } -void InspectorPageAgent::loadEventFired() -+void InspectorPageAgent::loadEventFired(Frame& frame) ++void InspectorPageAgent::loadEventFired(LocalFrame& frame) { - m_frontendDispatcher->loadEventFired(timestamp()); + m_frontendDispatcher->loadEventFired(timestamp(), frameId(&frame)); } - void InspectorPageAgent::frameNavigated(Frame& frame) -@@ -911,13 +1014,23 @@ void InspectorPageAgent::frameNavigated(Frame& frame) + void InspectorPageAgent::frameNavigated(LocalFrame& frame) +@@ -914,13 +1017,23 @@ void InspectorPageAgent::frameNavigated(LocalFrame& frame) m_frontendDispatcher->frameNavigated(buildObjectForFrame(&frame)); } @@ -4257,12 +4245,12 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 + return makeString(processID.toUInt64(), ".", frameID.object().toUInt64()); +} + -+static String globalIDForFrame(Frame& frame) ++static String globalIDForFrame(LocalFrame& frame) +{ + return InspectorPageAgent::makeFrameID(Process::identifier(), frame.loader().frameID()); +} + - void InspectorPageAgent::frameDetached(Frame& frame) + void InspectorPageAgent::frameDetached(LocalFrame& frame) { - auto identifier = m_frameToIdentifier.take(&frame); - if (identifier.isNull()) @@ -4274,8 +4262,8 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 - m_identifierToFrame.remove(identifier); } - Frame* InspectorPageAgent::frameForId(const Protocol::Network::FrameId& frameId) -@@ -929,20 +1042,18 @@ String InspectorPageAgent::frameId(Frame* frame) + LocalFrame* InspectorPageAgent::frameForId(const Protocol::Network::FrameId& frameId) +@@ -932,20 +1045,17 @@ String InspectorPageAgent::frameId(LocalFrame* frame) { if (!frame) return emptyString(); @@ -4284,7 +4272,6 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 - m_identifierToFrame.set(identifier, frame); - return identifier; - }).iterator->value; -+ + String identifier = globalIDForFrame(*frame); + m_identifierToFrame.set(identifier, frame); + return identifier; @@ -4301,8 +4288,8 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 + return String::number(loader->loaderIDForInspector()); } - Frame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, const Protocol::Network::FrameId& frameId) -@@ -953,11 +1064,6 @@ Frame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, const + LocalFrame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, const Protocol::Network::FrameId& frameId) +@@ -956,11 +1066,6 @@ LocalFrame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, return frame; } @@ -4311,26 +4298,26 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 - m_loaderToIdentifier.remove(&loader); -} - - void InspectorPageAgent::frameStartedLoading(Frame& frame) + void InspectorPageAgent::frameStartedLoading(LocalFrame& frame) { m_frontendDispatcher->frameStartedLoading(frameId(&frame)); -@@ -968,9 +1074,9 @@ void InspectorPageAgent::frameStoppedLoading(Frame& frame) +@@ -971,9 +1076,9 @@ void InspectorPageAgent::frameStoppedLoading(LocalFrame& frame) m_frontendDispatcher->frameStoppedLoading(frameId(&frame)); } --void InspectorPageAgent::frameScheduledNavigation(Frame& frame, Seconds delay) -+void InspectorPageAgent::frameScheduledNavigation(Frame& frame, Seconds delay, bool targetIsCurrentFrame) +-void InspectorPageAgent::frameScheduledNavigation(LocalFrame& frame, Seconds delay) ++void InspectorPageAgent::frameScheduledNavigation(LocalFrame& frame, Seconds delay, bool targetIsCurrentFrame) { - m_frontendDispatcher->frameScheduledNavigation(frameId(&frame), delay.value()); + m_frontendDispatcher->frameScheduledNavigation(frameId(&frame), delay.value(), targetIsCurrentFrame); } - void InspectorPageAgent::frameClearedScheduledNavigation(Frame& frame) -@@ -1025,6 +1131,12 @@ void InspectorPageAgent::defaultUserPreferencesDidChange() + void InspectorPageAgent::frameClearedScheduledNavigation(LocalFrame& frame) +@@ -1028,6 +1133,12 @@ void InspectorPageAgent::defaultUserPreferencesDidChange() m_frontendDispatcher->defaultUserPreferencesDidChange(WTFMove(defaultUserPreferences)); } -+void InspectorPageAgent::didNavigateWithinPage(Frame& frame) ++void InspectorPageAgent::didNavigateWithinPage(LocalFrame& frame) +{ + String url = frame.document()->url().string(); + m_frontendDispatcher->navigatedWithinDocument(frameId(&frame), url); @@ -4339,9 +4326,9 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) void InspectorPageAgent::defaultAppearanceDidChange() { -@@ -1034,13 +1146,22 @@ void InspectorPageAgent::defaultAppearanceDidChange() +@@ -1037,13 +1148,22 @@ void InspectorPageAgent::defaultAppearanceDidChange() - void InspectorPageAgent::didClearWindowObjectInWorld(Frame& frame, DOMWrapperWorld& world) + void InspectorPageAgent::didClearWindowObjectInWorld(LocalFrame& frame, DOMWrapperWorld& world) { - if (&world != &mainThreadNormalWorld()) + if (m_worldNameToBootstrapScript.isEmpty()) @@ -4365,7 +4352,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 } void InspectorPageAgent::didPaint(RenderObject& renderer, const LayoutRect& rect) -@@ -1088,6 +1209,51 @@ void InspectorPageAgent::didRecalculateStyle() +@@ -1091,6 +1211,51 @@ void InspectorPageAgent::didRecalculateStyle() m_overlay->update(); } @@ -4393,7 +4380,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 + m_frontendDispatcher->fileChooserOpened(frameId(frame), object.releaseNonNull()); +} + -+void InspectorPageAgent::frameAttached(Frame& frame) ++void InspectorPageAgent::frameAttached(LocalFrame& frame) +{ + String parentFrameId = frameId(dynamicDowncast(frame.tree().parent())); + m_frontendDispatcher->frameAttached(frameId(&frame), parentFrameId); @@ -4404,20 +4391,20 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 + return m_bypassCSP; +} + -+void InspectorPageAgent::willCheckNavigationPolicy(Frame& frame) ++void InspectorPageAgent::willCheckNavigationPolicy(LocalFrame& frame) +{ + m_frontendDispatcher->willCheckNavigationPolicy(frameId(&frame)); +} + -+void InspectorPageAgent::didCheckNavigationPolicy(Frame& frame, bool cancel) ++void InspectorPageAgent::didCheckNavigationPolicy(LocalFrame& frame, bool cancel) +{ + m_frontendDispatcher->didCheckNavigationPolicy(frameId(&frame), cancel); +} + - Ref InspectorPageAgent::buildObjectForFrame(Frame* frame) + Ref InspectorPageAgent::buildObjectForFrame(LocalFrame* frame) { ASSERT_ARG(frame, frame); -@@ -1185,6 +1351,12 @@ void InspectorPageAgent::applyUserAgentOverride(String& userAgent) +@@ -1188,6 +1353,12 @@ void InspectorPageAgent::applyUserAgentOverride(String& userAgent) userAgent = m_userAgentOverride; } @@ -4430,7 +4417,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 void InspectorPageAgent::applyEmulatedMedia(AtomString& media) { if (!m_emulatedMedia.isEmpty()) -@@ -1212,11 +1384,13 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotNode(Protocol::DOM:: +@@ -1215,11 +1386,13 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotNode(Protocol::DOM:: return snapshot->toDataURL("image/png"_s, std::nullopt, PreserveResolution::Yes); } @@ -4445,7 +4432,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 IntRect rectangle(x, y, width, height); auto* localMainFrame = dynamicDowncast(m_inspectedPage.mainFrame()); -@@ -1230,6 +1404,43 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int x, int y, i +@@ -1233,6 +1406,43 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int x, int y, i return snapshot->toDataURL("image/png"_s, std::nullopt, PreserveResolution::Yes); } @@ -4489,7 +4476,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 #if ENABLE(WEB_ARCHIVE) && USE(CF) Protocol::ErrorStringOr InspectorPageAgent::archive() { -@@ -1246,7 +1457,6 @@ Protocol::ErrorStringOr InspectorPageAgent::archive() +@@ -1249,7 +1459,6 @@ Protocol::ErrorStringOr InspectorPageAgent::archive() } #endif @@ -4497,7 +4484,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::optional&& width, std::optional&& height) { if (width.has_value() != height.has_value()) -@@ -1264,6 +1474,641 @@ Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::opt +@@ -1267,6 +1476,643 @@ Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::opt localMainFrame->setOverrideScreenSize(FloatSize(width.value_or(0), height.value_or(0))); return { }; } @@ -4505,7 +4492,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 +Protocol::ErrorStringOr InspectorPageAgent::insertText(const String& text) +{ + UserGestureIndicator indicator { ProcessingUserGesture }; -+ Frame& frame = m_inspectedPage.focusController().focusedOrMainFrame(); ++ LocalFrame& frame = m_inspectedPage.focusController().focusedOrMainFrame(); + + if (frame.editor().hasComposition()) { + frame.editor().confirmComposition(text); @@ -4518,7 +4505,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 + +Protocol::ErrorStringOr InspectorPageAgent::setComposition(const String& text, int selectionStart, int selectionLength, std::optional&& replacementStart, std::optional&& replacementLength) +{ -+ Frame& frame = m_inspectedPage.focusController().focusedOrMainFrame(); ++ LocalFrame& frame = m_inspectedPage.focusController().focusedOrMainFrame(); + + UserGestureIndicator indicator { ProcessingUserGesture }; + @@ -4581,6 +4568,8 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 + return "Cell"_s; + case AccessibilityRole::CheckBox: + return "CheckBox"_s; ++ case AccessibilityRole::Code: ++ return "Code"_s; + case AccessibilityRole::ColorWell: + return "ColorWell"_s; + case AccessibilityRole::Column: @@ -4605,8 +4594,6 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 + return "Directory"_s; + case AccessibilityRole::DisclosureTriangle: + return "DisclosureTriangle"_s; -+ case AccessibilityRole::Div: -+ return "Div"_s; + case AccessibilityRole::Document: + return "Document"_s; + case AccessibilityRole::DocumentArticle: @@ -4629,6 +4616,8 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 + return "Footnote"_s; + case AccessibilityRole::Form: + return "Form"_s; ++ case AccessibilityRole::Generic: ++ return "Generic"_s; + case AccessibilityRole::GraphicsDocument: + return "GraphicsDocument"_s; + case AccessibilityRole::GraphicsObject: @@ -5010,7 +4999,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 +Protocol::ErrorStringOr InspectorPageAgent::setDefaultBackgroundColorOverride(RefPtr&& color) +{ + auto* localFrame = dynamicDowncast(m_inspectedPage.mainFrame()); -+ FrameView* view = localFrame ? localFrame->view() : nullptr; ++ LocalFrameView* view = localFrame ? localFrame->view() : nullptr; + if (!view) + return makeUnexpected("Internal error: No frame view to set color two"_s); + @@ -5036,7 +5025,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 + +void InspectorPageAgent::ensureUserWorldsExistInAllFrames(const Vector& worlds) +{ -+ for (AbstractFrame* frame = &m_inspectedPage.mainFrame(); frame; frame = frame->tree().traverseNext()) { ++ for (Frame* frame = &m_inspectedPage.mainFrame(); frame; frame = frame->tree().traverseNext()) { + auto* localFrame = dynamicDowncast(frame); + for (auto* world : worlds) + localFrame->windowProxy().jsWindowProxy(*world)->window(); @@ -5091,7 +5080,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 +Protocol::ErrorStringOr InspectorPageAgent::setVisibleContentRects(RefPtr&& unobscuredContentRect, RefPtr&& contentInsets, RefPtr&& obscuredInsets, RefPtr&& unobscuredInsets) +{ + auto* localFrame = dynamicDowncast(m_inspectedPage.mainFrame()); -+ FrameView* view = localFrame ? localFrame->view() : nullptr; ++ LocalFrameView* view = localFrame ? localFrame->view() : nullptr; + if (!view) + return makeUnexpected("Internal error: No frame view to set content rects for"_s); + @@ -5140,7 +5129,7 @@ index e5c3f310a8d2cd9c0eaa113c607e286da296ac95..cb3c4ff3f47bddae3aab6d16525effd9 } // namespace WebCore diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.h b/Source/WebCore/inspector/agents/InspectorPageAgent.h -index da15dbfd4576edf4e958435ad4a247250b928245..89fa3c0b21fef5929f4c3db8324dcde64b6079aa 100644 +index 4284cde361e5e693dd28b2fa71d18be4d508d415..efd4c00fb36a2072aea6d075d5c6d6baf635124f 100644 --- a/Source/WebCore/inspector/agents/InspectorPageAgent.h +++ b/Source/WebCore/inspector/agents/InspectorPageAgent.h @@ -32,8 +32,10 @@ @@ -5154,7 +5143,7 @@ index da15dbfd4576edf4e958435ad4a247250b928245..89fa3c0b21fef5929f4c3db8324dcde6 #include #include #include -@@ -41,11 +43,16 @@ +@@ -41,10 +43,15 @@ #include #include @@ -5166,19 +5155,18 @@ index da15dbfd4576edf4e958435ad4a247250b928245..89fa3c0b21fef5929f4c3db8324dcde6 class DOMWrapperWorld; class DocumentLoader; - class Frame; +class HTMLInputElement; class InspectorClient; class InspectorOverlay; - class Page; + class LocalFrame; @@ -77,6 +84,7 @@ public: OtherResource, }; + WEBCORE_EXPORT static String makeFrameID(ProcessIdentifier processID, FrameIdentifier frameID); static bool sharedBufferContent(RefPtr&&, const String& textEncodingName, bool withBase64Encode, String* result); - static Vector cachedResourcesForFrame(Frame*); - static void resourceContent(Inspector::Protocol::ErrorString&, Frame*, const URL&, String* result, bool* base64Encoded); + static Vector cachedResourcesForFrame(LocalFrame*); + static void resourceContent(Inspector::Protocol::ErrorString&, LocalFrame*, const URL&, String* result, bool* base64Encoded); @@ -97,8 +105,11 @@ public: Inspector::Protocol::ErrorStringOr enable(); Inspector::Protocol::ErrorStringOr disable(); @@ -5232,46 +5220,46 @@ index da15dbfd4576edf4e958435ad4a247250b928245..89fa3c0b21fef5929f4c3db8324dcde6 // InspectorInstrumentation - void domContentEventFired(); - void loadEventFired(); -+ void domContentEventFired(Frame&); -+ void loadEventFired(Frame&); - void frameNavigated(Frame&); - void frameDetached(Frame&); ++ void domContentEventFired(LocalFrame&); ++ void loadEventFired(LocalFrame&); + void frameNavigated(LocalFrame&); + void frameDetached(LocalFrame&); - void loaderDetachedFromFrame(DocumentLoader&); - void frameStartedLoading(Frame&); - void frameStoppedLoading(Frame&); -- void frameScheduledNavigation(Frame&, Seconds delay); -+ void frameScheduledNavigation(Frame&, Seconds delay, bool targetIsCurrentFrame); - void frameClearedScheduledNavigation(Frame&); + void frameStartedLoading(LocalFrame&); + void frameStoppedLoading(LocalFrame&); +- void frameScheduledNavigation(LocalFrame&, Seconds delay); ++ void frameScheduledNavigation(LocalFrame&, Seconds delay, bool targetIsCurrentFrame); + void frameClearedScheduledNavigation(LocalFrame&); void accessibilitySettingsDidChange(); void defaultUserPreferencesDidChange(); -+ void didNavigateWithinPage(Frame&); ++ void didNavigateWithinPage(LocalFrame&); #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) void defaultAppearanceDidChange(); #endif void applyUserAgentOverride(String&); + void applyPlatformOverride(String&); void applyEmulatedMedia(AtomString&); - void didClearWindowObjectInWorld(Frame&, DOMWrapperWorld&); + void didClearWindowObjectInWorld(LocalFrame&, DOMWrapperWorld&); void didPaint(RenderObject&, const LayoutRect&); void didLayout(); void didScroll(); void didRecalculateStyle(); + void runOpenPanel(HTMLInputElement* element, bool* intercept); -+ void frameAttached(Frame&); ++ void frameAttached(LocalFrame&); + bool shouldBypassCSP(); -+ void willCheckNavigationPolicy(Frame&); -+ void didCheckNavigationPolicy(Frame&, bool cancel); ++ void willCheckNavigationPolicy(LocalFrame&); ++ void didCheckNavigationPolicy(LocalFrame&, bool cancel); + bool doingAccessibilitySnapshot() const { return m_doingAccessibilitySnapshot; }; - Frame* frameForId(const Inspector::Protocol::Network::FrameId&); - WEBCORE_EXPORT String frameId(Frame*); + LocalFrame* frameForId(const Inspector::Protocol::Network::FrameId&); + WEBCORE_EXPORT String frameId(LocalFrame*); @@ -153,6 +184,7 @@ public: private: double timestamp(); + void ensureUserWorldsExistInAllFrames(const Vector&); - static bool mainResourceContent(Frame*, bool withBase64Encode, String* result); + static bool mainResourceContent(LocalFrame*, bool withBase64Encode, String* result); static bool dataContent(const uint8_t* data, unsigned size, const String& textEncodingName, bool withBase64Encode, String* result); @@ -168,18 +200,21 @@ private: RefPtr m_backendDispatcher; @@ -5282,8 +5270,8 @@ index da15dbfd4576edf4e958435ad4a247250b928245..89fa3c0b21fef5929f4c3db8324dcde6 InspectorOverlay* m_overlay { nullptr }; - // FIXME: Make a WeakHashMap and use it for m_frameToIdentifier and m_loaderToIdentifier. -- HashMap m_frameToIdentifier; - MemoryCompactRobinHoodHashMap> m_identifierToFrame; +- HashMap m_frameToIdentifier; + MemoryCompactRobinHoodHashMap> m_identifierToFrame; - HashMap m_loaderToIdentifier; + HashMap m_worldNameToBootstrapScript; String m_userAgentOverride; @@ -5299,10 +5287,20 @@ index da15dbfd4576edf4e958435ad4a247250b928245..89fa3c0b21fef5929f4c3db8324dcde6 } // namespace WebCore diff --git a/Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp b/Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp -index bbed7e5e9aeab664743b7751ae6c4f1367cc6deb..94c03dc2c3143ab722da685ea7c7bce52881ded1 100644 +index bbed7e5e9aeab664743b7751ae6c4f1367cc6deb..88153c5a5e493e086245f0a48988ac7a2d6a43b8 100644 --- a/Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorWorkerAgent.cpp -@@ -168,7 +168,11 @@ void InspectorWorkerAgent::connectToWorkerInspectorProxy(WorkerInspectorProxy& p +@@ -27,7 +27,9 @@ + #include "InspectorWorkerAgent.h" + + #include "Document.h" ++#include "FrameDestructionObserverInlines.h" + #include "InstrumentingAgents.h" ++#include "InspectorPageAgent.h" + #include "Page.h" + #include + #include +@@ -168,7 +170,11 @@ void InspectorWorkerAgent::connectToWorkerInspectorProxy(WorkerInspectorProxy& p m_connectedProxies.set(proxy.identifier(), proxy); @@ -5316,17 +5314,17 @@ index bbed7e5e9aeab664743b7751ae6c4f1367cc6deb..94c03dc2c3143ab722da685ea7c7bce5 void InspectorWorkerAgent::disconnectFromWorkerInspectorProxy(WorkerInspectorProxy& proxy) diff --git a/Source/WebCore/inspector/agents/page/PageDebuggerAgent.cpp b/Source/WebCore/inspector/agents/page/PageDebuggerAgent.cpp -index b1796e14d9b34717a0edb04d2ec359f73bc22da9..171370188c77d6d1d98227ad8c3c20ccfb0daf8b 100644 +index 242aea89da38d22a2c2b314f337e6aa4f3becdb8..51f978caae1a6a76fb1833fbfef76837a79406ea 100644 --- a/Source/WebCore/inspector/agents/page/PageDebuggerAgent.cpp +++ b/Source/WebCore/inspector/agents/page/PageDebuggerAgent.cpp -@@ -38,6 +38,7 @@ - #include "Frame.h" +@@ -37,6 +37,7 @@ + #include "Document.h" #include "InspectorPageAgent.h" #include "InstrumentingAgents.h" +#include "JSDOMWindowBase.h" - #include "JSDOMWindowCustom.h" #include "JSExecState.h" - #include "Page.h" + #include "JSLocalDOMWindowCustom.h" + #include "LocalFrame.h" @@ -74,7 +75,9 @@ Protocol::ErrorStringOr, std::op if (injectedScript.hasNoValue()) return makeUnexpected("Missing injected script for given callFrameId"_s); @@ -5339,17 +5337,17 @@ index b1796e14d9b34717a0edb04d2ec359f73bc22da9..171370188c77d6d1d98227ad8c3c20cc } diff --git a/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp b/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp -index 5dd2a6f4da4b01cffe16edb56563ea88723ca6db..6912a5b45f0c27b1fed1c2673c3d5742948fa469 100644 +index 3e728e1c3e9c694877e20b5fb0223d92f3879247..3c7d5dffe56bec952940ddedffd5193ab6667e66 100644 --- a/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp +++ b/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp -@@ -35,6 +35,7 @@ +@@ -34,6 +34,7 @@ + #include "DOMWrapperWorld.h" #include "Document.h" - #include "Frame.h" +#include "FrameLoader.h" #include "InspectorPageAgent.h" #include "InstrumentingAgents.h" - #include "JSDOMWindowCustom.h" + #include "JSExecState.h" @@ -42,6 +43,7 @@ #include "Page.h" #include "PageConsoleClient.h" @@ -5367,7 +5365,7 @@ index 5dd2a6f4da4b01cffe16edb56563ea88723ca6db..6912a5b45f0c27b1fed1c2673c3d5742 return InspectorRuntimeAgent::disable(); } -@@ -94,8 +98,66 @@ void PageRuntimeAgent::frameNavigated(Frame& frame) +@@ -94,8 +98,66 @@ void PageRuntimeAgent::frameNavigated(LocalFrame& frame) mainWorldGlobalObject(frame); } @@ -5394,7 +5392,7 @@ index 5dd2a6f4da4b01cffe16edb56563ea88723ca6db..6912a5b45f0c27b1fed1c2673c3d5742 + return result; +} + -+static void addBindingToFrame(Frame& frame, const String& name) ++static void addBindingToFrame(LocalFrame& frame, const String& name) +{ + JSC::JSGlobalObject* globalObject = frame.script().globalObject(mainThreadNormalWorld()); + auto& vm = globalObject->vm(); @@ -5406,7 +5404,7 @@ index 5dd2a6f4da4b01cffe16edb56563ea88723ca6db..6912a5b45f0c27b1fed1c2673c3d5742 + if (!m_bindingNames.add(name).isNewEntry) + return {}; + -+ m_inspectedPage.forEachFrame([&](Frame& frame) { ++ m_inspectedPage.forEachFrame([&](LocalFrame& frame) { + if (!frame.script().canExecuteScripts(NotAboutToExecuteScript)) + return; + @@ -5424,7 +5422,7 @@ index 5dd2a6f4da4b01cffe16edb56563ea88723ca6db..6912a5b45f0c27b1fed1c2673c3d5742 + m_frontendDispatcher->bindingCalled(injectedScriptManager().injectedScriptIdFor(globalObject), name, arg); +} + - void PageRuntimeAgent::didClearWindowObjectInWorld(Frame& frame, DOMWrapperWorld& world) + void PageRuntimeAgent::didClearWindowObjectInWorld(LocalFrame& frame, DOMWrapperWorld& world) { + if (world.isNormal()) { + for (const auto& name : m_bindingNames) @@ -5434,11 +5432,11 @@ index 5dd2a6f4da4b01cffe16edb56563ea88723ca6db..6912a5b45f0c27b1fed1c2673c3d5742 auto* pageAgent = m_instrumentingAgents.enabledPageAgent(); if (!pageAgent) return; -@@ -103,6 +165,15 @@ void PageRuntimeAgent::didClearWindowObjectInWorld(Frame& frame, DOMWrapperWorld +@@ -103,6 +165,15 @@ void PageRuntimeAgent::didClearWindowObjectInWorld(LocalFrame& frame, DOMWrapper notifyContextCreated(pageAgent->frameId(&frame), frame.script().globalObject(world), world); } -+void PageRuntimeAgent::didReceiveMainResourceError(Frame& frame) ++void PageRuntimeAgent::didReceiveMainResourceError(LocalFrame& frame) +{ + if (frame.loader().stateMachine().isDisplayingInitialEmptyDocument()) { + // Ensure execution context is created for the empty docment to make @@ -5453,7 +5451,7 @@ index 5dd2a6f4da4b01cffe16edb56563ea88723ca6db..6912a5b45f0c27b1fed1c2673c3d5742 @@ -139,9 +210,6 @@ void PageRuntimeAgent::reportExecutionContextCreation() return; - m_inspectedPage.forEachFrame([&](Frame& frame) { + m_inspectedPage.forEachFrame([&](LocalFrame& frame) { - if (!frame.script().canExecuteScripts(NotAboutToExecuteScript)) - return; - @@ -5492,7 +5490,7 @@ index 5dd2a6f4da4b01cffe16edb56563ea88723ca6db..6912a5b45f0c27b1fed1c2673c3d5742 } // namespace WebCore diff --git a/Source/WebCore/inspector/agents/page/PageRuntimeAgent.h b/Source/WebCore/inspector/agents/page/PageRuntimeAgent.h -index 6aba3a2c6e8bbb7a0bca4f07824cf4de8ce36f8e..38684b33e3b1cfc0c565297d1942f21c7d87967e 100644 +index fe3de3ee1ff4b61f66cc92bc0b9c2136c05769a3..3206e3ae64611c02abcfd6cc2e2a7b6f939eb560 100644 --- a/Source/WebCore/inspector/agents/page/PageRuntimeAgent.h +++ b/Source/WebCore/inspector/agents/page/PageRuntimeAgent.h @@ -37,6 +37,7 @@ @@ -5518,9 +5516,9 @@ index 6aba3a2c6e8bbb7a0bca4f07824cf4de8ce36f8e..38684b33e3b1cfc0c565297d1942f21c + Inspector::Protocol::ErrorStringOr addBinding(const String& name) final; // InspectorInstrumentation - void frameNavigated(Frame&); - void didClearWindowObjectInWorld(Frame&, DOMWrapperWorld&); -+ void didReceiveMainResourceError(Frame&); + void frameNavigated(LocalFrame&); + void didClearWindowObjectInWorld(LocalFrame&, DOMWrapperWorld&); ++ void didReceiveMainResourceError(LocalFrame&); + void bindingCalled(JSC::JSGlobalObject* globalObject, const String& name, const String& arg); private: @@ -5566,7 +5564,7 @@ index 21e33e46bdb1af8434527747e3c308cbe53f60f0..c17c4de17f439c04d27caa532771934c protected: static SameSiteInfo sameSiteInfo(const Document&, IsForDOMCookieAccess = IsForDOMCookieAccess::No); diff --git a/Source/WebCore/loader/DocumentLoader.cpp b/Source/WebCore/loader/DocumentLoader.cpp -index bab00d45ddad7073c8848da50ffe21422dcae353..b58c5e25dd4066688c91697951c15c763c981e0f 100644 +index 295259c6b68405a7670d9ee906311345ed04f961..2fec16d22fb78364ebbd6e454880e6b453163341 100644 --- a/Source/WebCore/loader/DocumentLoader.cpp +++ b/Source/WebCore/loader/DocumentLoader.cpp @@ -742,8 +742,10 @@ void DocumentLoader::willSendRequest(ResourceRequest&& newRequest, const Resourc @@ -5590,14 +5588,14 @@ index bab00d45ddad7073c8848da50ffe21422dcae353..b58c5e25dd4066688c91697951c15c76 } diff --git a/Source/WebCore/loader/DocumentLoader.h b/Source/WebCore/loader/DocumentLoader.h -index bc32633df9da9b891993553e89e4a0e09a417de6..6fc81c446b91bc5a7170a0868c4abbbe7624d26c 100644 +index cce87a07505d599b48d887b50f00c47369dc49f2..ee95d1632b92e54ed41a726ca14eeb08eacfd110 100644 --- a/Source/WebCore/loader/DocumentLoader.h +++ b/Source/WebCore/loader/DocumentLoader.h -@@ -186,9 +186,13 @@ public: +@@ -187,9 +187,13 @@ public: WEBCORE_EXPORT virtual void detachFromFrame(); -+ virtual void replacedByFragmentNavigation(Frame&) { } ++ virtual void replacedByFragmentNavigation(LocalFrame&) { } + WEBCORE_EXPORT FrameLoader* frameLoader() const; WEBCORE_EXPORT SubresourceLoader* mainResourceLoader() const; @@ -5608,10 +5606,10 @@ index bc32633df9da9b891993553e89e4a0e09a417de6..6fc81c446b91bc5a7170a0868c4abbbe DocumentWriter& writer() const { return m_writer; } diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp -index c6fdcf69232d637b5fca6f8f5c6a658660ae5970..25a6d88d69329601fd2c8c2c45fc8e21b4c085f5 100644 +index f49c16c1be92bd58ed3fabc9f5902b9f5d7985c6..440f1c6db272a626c27a694f41822edcc42b9e61 100644 --- a/Source/WebCore/loader/FrameLoader.cpp +++ b/Source/WebCore/loader/FrameLoader.cpp -@@ -1221,6 +1221,7 @@ void FrameLoader::loadInSameDocument(URL url, RefPtr stat +@@ -1222,6 +1222,7 @@ void FrameLoader::loadInSameDocument(URL url, RefPtr stat } m_client->dispatchDidNavigateWithinPage(); @@ -5619,7 +5617,7 @@ index c6fdcf69232d637b5fca6f8f5c6a658660ae5970..25a6d88d69329601fd2c8c2c45fc8e21 m_frame.document()->statePopped(stateObject ? stateObject.releaseNonNull() : SerializedScriptValue::nullValue()); m_client->dispatchDidPopStateWithinPage(); -@@ -1674,6 +1675,8 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t +@@ -1675,6 +1676,8 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t const String& httpMethod = loader->request().httpMethod(); if (shouldPerformFragmentNavigation(isFormSubmission, httpMethod, policyChecker().loadType(), newURL)) { @@ -5628,7 +5626,7 @@ index c6fdcf69232d637b5fca6f8f5c6a658660ae5970..25a6d88d69329601fd2c8c2c45fc8e21 RefPtr oldDocumentLoader = m_documentLoader; NavigationAction action { *m_frame.document(), loader->request(), InitiatedByMainFrame::Unknown, policyChecker().loadType(), isFormSubmission }; action.setIsRequestFromClientOrUserInput(loader->isRequestFromClientOrUserInput()); -@@ -1706,7 +1709,9 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t +@@ -1707,7 +1710,9 @@ void FrameLoader::loadWithDocumentLoader(DocumentLoader* loader, FrameLoadType t } RELEASE_ASSERT(!isBackForwardLoadType(policyChecker().loadType()) || history().provisionalItem()); @@ -5638,7 +5636,7 @@ index c6fdcf69232d637b5fca6f8f5c6a658660ae5970..25a6d88d69329601fd2c8c2c45fc8e21 continueLoadAfterNavigationPolicy(request, formState.get(), navigationPolicyDecision, allowNavigationToInvalidURL); completionHandler(); }, PolicyDecisionMode::Asynchronous); -@@ -2933,14 +2938,19 @@ String FrameLoader::userAgent(const URL& url) const +@@ -2934,14 +2939,19 @@ String FrameLoader::userAgent(const URL& url) const String FrameLoader::navigatorPlatform() const { @@ -5660,7 +5658,7 @@ index c6fdcf69232d637b5fca6f8f5c6a658660ae5970..25a6d88d69329601fd2c8c2c45fc8e21 } void FrameLoader::dispatchOnloadEvents() -@@ -3360,6 +3370,8 @@ void FrameLoader::receivedMainResourceError(const ResourceError& error) +@@ -3361,6 +3371,8 @@ void FrameLoader::receivedMainResourceError(const ResourceError& error) checkCompleted(); if (m_frame.page()) checkLoadComplete(); @@ -5669,7 +5667,7 @@ index c6fdcf69232d637b5fca6f8f5c6a658660ae5970..25a6d88d69329601fd2c8c2c45fc8e21 } void FrameLoader::continueFragmentScrollAfterNavigationPolicy(const ResourceRequest& request, const SecurityOrigin* requesterOrigin, bool shouldContinue) -@@ -4186,9 +4198,6 @@ String FrameLoader::referrer() const +@@ -4188,9 +4200,6 @@ String FrameLoader::referrer() const void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() { @@ -5679,7 +5677,7 @@ index c6fdcf69232d637b5fca6f8f5c6a658660ae5970..25a6d88d69329601fd2c8c2c45fc8e21 Vector> worlds; ScriptController::getAllWorlds(worlds); for (auto& world : worlds) -@@ -4197,13 +4206,13 @@ void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() +@@ -4199,13 +4208,13 @@ void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() void FrameLoader::dispatchDidClearWindowObjectInWorld(DOMWrapperWorld& world) { @@ -5700,7 +5698,7 @@ index c6fdcf69232d637b5fca6f8f5c6a658660ae5970..25a6d88d69329601fd2c8c2c45fc8e21 InspectorInstrumentation::didClearWindowObjectInWorld(m_frame, world); } diff --git a/Source/WebCore/loader/LoaderStrategy.h b/Source/WebCore/loader/LoaderStrategy.h -index 29d2e3f46140aaa51160e6a28562f370e371eb21..676ddc9369050c19454fbf5faffac2b27e0fad41 100644 +index 91340dc21042f545592b442bc42dbceed06219b2..f3591fe333761b10a25ddaf4a4f8d72170dfe336 100644 --- a/Source/WebCore/loader/LoaderStrategy.h +++ b/Source/WebCore/loader/LoaderStrategy.h @@ -86,6 +86,7 @@ public: @@ -5712,7 +5710,7 @@ index 29d2e3f46140aaa51160e6a28562f370e371eb21..676ddc9369050c19454fbf5faffac2b2 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 a268a4cc725fd7a7840ef70d147c640bd72179c5..e2a190c2f9154527d928bf18f8a4a2beaae81700 100644 +index 603523465bac8eedb7d5b8f09dcfbf70b0543189..1fc37cb16a15bf7fdc14f025e064532d039a08fa 100644 --- a/Source/WebCore/loader/NavigationScheduler.cpp +++ b/Source/WebCore/loader/NavigationScheduler.cpp @@ -640,7 +640,7 @@ void NavigationScheduler::startTimer() @@ -5725,22 +5723,22 @@ index a268a4cc725fd7a7840ef70d147c640bd72179c5..e2a190c2f9154527d928bf18f8a4a2be } diff --git a/Source/WebCore/loader/PolicyChecker.cpp b/Source/WebCore/loader/PolicyChecker.cpp -index f68dcea8e222afd1c136eaebe49a92ecb3978c06..f60e7863b70ec15dd20b5c00fa39cb24652ae7c7 100644 +index 324a5e89fab1c54bb538389bdb1e06afb5a33b83..147cea5b6d94064e1a006b2d1bf605e9e5a6b46a 100644 --- a/Source/WebCore/loader/PolicyChecker.cpp +++ b/Source/WebCore/loader/PolicyChecker.cpp -@@ -46,6 +46,7 @@ +@@ -44,6 +44,7 @@ #include "HTMLFormElement.h" #include "HTMLFrameOwnerElement.h" #include "HTMLPlugInElement.h" +#include "InspectorInstrumentation.h" + #include "LocalDOMWindow.h" + #include "LocalFrame.h" #include "Logging.h" - #include "ThreadableBlobRegistry.h" - #include "URLKeepingBlobAlive.h" diff --git a/Source/WebCore/loader/ProgressTracker.cpp b/Source/WebCore/loader/ProgressTracker.cpp -index 12874da9a80ed235c9a25c5fd05d6c02df62a053..8e0d01703c8d6b2eaa6aa19623f94cc42b69a198 100644 +index 7f86aa1f78d42ac106ccb75a970237d6dc2651bc..a59756e7e5df6b60c7a116b711e6c452e2dff8ee 100644 --- a/Source/WebCore/loader/ProgressTracker.cpp +++ b/Source/WebCore/loader/ProgressTracker.cpp -@@ -160,6 +160,8 @@ void ProgressTracker::progressCompleted(Frame& frame) +@@ -160,6 +160,8 @@ void ProgressTracker::progressCompleted(LocalFrame& frame) if (!m_numProgressTrackedFrames || m_originatingProgressFrame == &frame) finalProgressComplete(); @@ -5759,7 +5757,7 @@ index 12874da9a80ed235c9a25c5fd05d6c02df62a053..8e0d01703c8d6b2eaa6aa19623f94cc4 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 77f9612dc13d47fccc95311d46e34b103856c7fb..9beae814f5de87d905623969c8e567625678f7f5 100644 +index ffe6adcac48603bb48d910e1b033a4bcc14e9c6d..a294cc58805b89e0d886e44780f2d97a69f283b7 100644 --- a/Source/WebCore/loader/cache/CachedResourceLoader.cpp +++ b/Source/WebCore/loader/cache/CachedResourceLoader.cpp @@ -1010,8 +1010,11 @@ ResourceErrorOr> CachedResourceLoader::requ @@ -5776,7 +5774,7 @@ index 77f9612dc13d47fccc95311d46e34b103856c7fb..9beae814f5de87d905623969c8e56762 auto& page = *frame.page(); -@@ -1650,8 +1653,9 @@ Vector> CachedResourceLoader::allCachedSVGImages() const +@@ -1656,8 +1659,9 @@ Vector> CachedResourceLoader::allCachedSVGImages() const ResourceErrorOr> CachedResourceLoader::preload(CachedResource::Type type, CachedResourceRequest&& request) { @@ -5789,20 +5787,20 @@ index 77f9612dc13d47fccc95311d46e34b103856c7fb..9beae814f5de87d905623969c8e56762 if (request.charset().isEmpty() && (type == CachedResource::Type::Script || type == CachedResource::Type::CSSStyleSheet)) request.setCharset(m_document->charset()); diff --git a/Source/WebCore/page/ChromeClient.h b/Source/WebCore/page/ChromeClient.h -index 08333732a724302cf27fe71e254a97e60a36d633..2a60359ac0fa5ed8e341de9643dcfcad637fb161 100644 +index b1536109319d5ea2cedd2d30faae9da462fefa2b..18ea30e5b4efb623edf55c53f88bbaafbed3fa5b 100644 --- a/Source/WebCore/page/ChromeClient.h +++ b/Source/WebCore/page/ChromeClient.h -@@ -319,7 +319,7 @@ public: +@@ -318,7 +318,7 @@ public: #endif #if ENABLE(ORIENTATION_EVENTS) -- virtual int deviceOrientation() const = 0; -+ virtual int deviceOrientation() const { return 0; } +- virtual IntDegrees deviceOrientation() const = 0; ++ virtual IntDegrees deviceOrientation() const { return 0; } #endif #if ENABLE(INPUT_TYPE_COLOR) diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp -index 936154b76f8765af4c2db104c80d4ce6e5d7b683..a8616a28bcbcc87b3e9f40ef5c925e1df4464ba6 100644 +index e6f726c92fd927e3b030cf48242d8c4e2e58ae3b..d3b938f751b53e5c6994029149dd01e363b7d36f 100644 --- a/Source/WebCore/page/EventHandler.cpp +++ b/Source/WebCore/page/EventHandler.cpp @@ -143,6 +143,7 @@ @@ -5834,7 +5832,7 @@ index 936154b76f8765af4c2db104c80d4ce6e5d7b683..a8616a28bcbcc87b3e9f40ef5c925e1d bool EventHandler::supportsSelectionUpdatesOnMouseDrag() const @@ -882,8 +879,10 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e - Ref protectedFrame(m_frame); + Ref protectedFrame(m_frame); +#if ENABLE(DRAG_SUPPORT) if (handleDrag(event, checkDragHysteresis)) @@ -5900,7 +5898,7 @@ index 936154b76f8765af4c2db104c80d4ce6e5d7b683..a8616a28bcbcc87b3e9f40ef5c925e1d return swallowEvent; } -@@ -4194,7 +4194,14 @@ bool EventHandler::handleDrag(const MouseEventWithHitTestResults& event, CheckDr +@@ -4190,7 +4190,14 @@ bool EventHandler::handleDrag(const MouseEventWithHitTestResults& event, CheckDr if (!m_frame.document()) return false; @@ -5916,7 +5914,7 @@ index 936154b76f8765af4c2db104c80d4ce6e5d7b683..a8616a28bcbcc87b3e9f40ef5c925e1d auto hasNonDefaultPasteboardData = HasNonDefaultPasteboardData::No; if (dragState().shouldDispatchEvents) { -@@ -4764,7 +4771,8 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) +@@ -4759,7 +4766,8 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) allTouchReleased = false; } @@ -5926,7 +5924,7 @@ index 936154b76f8765af4c2db104c80d4ce6e5d7b683..a8616a28bcbcc87b3e9f40ef5c925e1d PlatformTouchPoint::State pointState = point.state(); LayoutPoint pagePoint = documentPointForWindowPoint(m_frame, point.pos()); -@@ -4891,6 +4899,9 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) +@@ -4886,6 +4894,9 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) changedTouches[pointState].m_touches->append(WTFMove(touch)); changedTouches[pointState].m_targets.add(touchTarget); } @@ -5937,7 +5935,7 @@ index 936154b76f8765af4c2db104c80d4ce6e5d7b683..a8616a28bcbcc87b3e9f40ef5c925e1d m_touchPressed = touches->length() > 0; if (allTouchReleased) diff --git a/Source/WebCore/page/EventHandler.h b/Source/WebCore/page/EventHandler.h -index bd65cf54c2ddcd191e0f4944350bbd0c76830e4f..a17d366ba6af75caa569affc05869916eb88bd8e 100644 +index b2674dd96b542499e6709e273fc95df64327106b..62f462dd233bb8bfcf8a2d39a77fe84170548948 100644 --- a/Source/WebCore/page/EventHandler.h +++ b/Source/WebCore/page/EventHandler.h @@ -137,9 +137,7 @@ public: @@ -5950,7 +5948,7 @@ index bd65cf54c2ddcd191e0f4944350bbd0c76830e4f..a17d366ba6af75caa569affc05869916 #if ENABLE(PAN_SCROLLING) void didPanScrollStart(); -@@ -397,10 +395,8 @@ private: +@@ -401,10 +399,8 @@ private: bool startKeyboardScrollAnimationOnRenderBoxAndItsAncestors(ScrollDirection, ScrollGranularity, RenderBox*, bool isKeyRepeat); bool startKeyboardScrollAnimationOnEnclosingScrollableContainer(ScrollDirection, ScrollGranularity, Node*, bool isKeyRepeat); @@ -5961,7 +5959,7 @@ index bd65cf54c2ddcd191e0f4944350bbd0c76830e4f..a17d366ba6af75caa569affc05869916 WEBCORE_EXPORT bool handleMouseReleaseEvent(const MouseEventWithHitTestResults&); -@@ -502,10 +498,8 @@ private: +@@ -506,10 +502,8 @@ private: void defaultTabEventHandler(KeyboardEvent&); void defaultArrowEventHandler(FocusDirection, KeyboardEvent&); @@ -5972,7 +5970,7 @@ index bd65cf54c2ddcd191e0f4944350bbd0c76830e4f..a17d366ba6af75caa569affc05869916 // The following are called at the beginning of handleMouseUp and handleDrag. // If they return true it indicates that they have consumed the event. -@@ -513,9 +507,10 @@ private: +@@ -517,9 +511,10 @@ private: #if ENABLE(DRAG_SUPPORT) bool eventLoopHandleMouseDragged(const MouseEventWithHitTestResults&); @@ -5984,7 +5982,7 @@ index bd65cf54c2ddcd191e0f4944350bbd0c76830e4f..a17d366ba6af75caa569affc05869916 enum class SetOrClearLastScrollbar { Clear, Set }; void updateLastScrollbarUnderMouse(Scrollbar*, SetOrClearLastScrollbar); -@@ -607,8 +602,8 @@ private: +@@ -612,8 +607,8 @@ private: Timer m_autoHideCursorTimer; #endif @@ -5994,19 +5992,107 @@ index bd65cf54c2ddcd191e0f4944350bbd0c76830e4f..a17d366ba6af75caa569affc05869916 std::optional m_dragStartSelection; RefPtr m_dragTarget; bool m_mouseDownMayStartDrag { false }; -diff --git a/Source/WebCore/page/Frame.cpp b/Source/WebCore/page/Frame.cpp -index 8a76efa7aaca2a75e8603e5074926c3b4579bc94..58f0cda256b3b22b3729ad8b5019d077b5ac6c5a 100644 ---- a/Source/WebCore/page/Frame.cpp -+++ b/Source/WebCore/page/Frame.cpp +diff --git a/Source/WebCore/page/FrameSnapshotting.cpp b/Source/WebCore/page/FrameSnapshotting.cpp +index 318ece9ac080ada83098fa17bf0e30a7f714d44a..f7da6c37f38f83fc9277e7a0097c9410d6c4757d 100644 +--- a/Source/WebCore/page/FrameSnapshotting.cpp ++++ b/Source/WebCore/page/FrameSnapshotting.cpp +@@ -108,7 +108,7 @@ RefPtr snapshotFrameRectWithClip(LocalFrame& frame, const IntRect& + // Other paint behaviors are set by paintContentsForSnapshot. + frame.view()->setPaintBehavior(paintBehavior); + +- float scaleFactor = frame.page()->deviceScaleFactor(); ++ float scaleFactor = options.flags.contains(SnapshotFlags::OmitDeviceScaleFactor) ? 1 : frame.page()->deviceScaleFactor(); + + if (frame.page()->delegatesScaling()) + scaleFactor *= frame.page()->pageScaleFactor(); +@@ -123,7 +123,13 @@ RefPtr snapshotFrameRectWithClip(LocalFrame& frame, const IntRect& + if (!buffer) + return nullptr; + ++#if !PLATFORM(MAC) ++ buffer->context().scale(scaleFactor); ++#endif ++ + buffer->context().translate(-imageRect.location()); ++ if (coordinateSpace != LocalFrameView::ViewCoordinates) ++ buffer->context().scale(1 / frame.page()->pageScaleFactor()); + + if (!clipRects.isEmpty()) { + Path clipPath; +@@ -132,7 +138,10 @@ RefPtr snapshotFrameRectWithClip(LocalFrame& frame, const IntRect& + buffer->context().clipPath(clipPath); + } + +- frame.view()->paintContentsForSnapshot(buffer->context(), imageRect, shouldIncludeSelection, coordinateSpace); ++ FloatRect fr = imageRect; ++ if (coordinateSpace != LocalFrameView::ViewCoordinates) ++ fr.scale(frame.page()->pageScaleFactor()); ++ frame.view()->paintContentsForSnapshot(buffer->context(), enclosingIntRect(fr), shouldIncludeSelection, coordinateSpace); + return buffer; + } + +diff --git a/Source/WebCore/page/FrameSnapshotting.h b/Source/WebCore/page/FrameSnapshotting.h +index 5f85bb24166b1c1805323fcbb34144be3191643b..09d2782e3961d70b9483a77e0c12923bc58860d7 100644 +--- a/Source/WebCore/page/FrameSnapshotting.h ++++ b/Source/WebCore/page/FrameSnapshotting.h +@@ -44,7 +44,7 @@ class ImageBuffer; + class LocalFrame; + class Node; + +-enum class SnapshotFlags : uint8_t { ++enum class SnapshotFlags : uint16_t { + ExcludeSelectionHighlighting = 1 << 0, + PaintSelectionOnly = 1 << 1, + InViewCoordinates = 1 << 2, +@@ -53,6 +53,7 @@ enum class SnapshotFlags : uint8_t { + PaintEverythingExcludingSelection = 1 << 5, + PaintWithIntegralScaleFactor = 1 << 6, + Shareable = 1 << 7, ++ OmitDeviceScaleFactor = 1 << 8, + }; + + struct SnapshotOptions { +diff --git a/Source/WebCore/page/History.cpp b/Source/WebCore/page/History.cpp +index c8ba6e09d790d98aaf36217870455f40bc35a1ea..a38e207bff38cbc33ccd62a564fcf21b7f950726 100644 +--- a/Source/WebCore/page/History.cpp ++++ b/Source/WebCore/page/History.cpp +@@ -32,6 +32,7 @@ + #include "FrameLoaderClient.h" + #include "HistoryController.h" + #include "HistoryItem.h" ++#include "InspectorInstrumentation.h" + #include "LocalFrame.h" + #include "Logging.h" + #include "NavigationScheduler.h" +@@ -273,6 +274,7 @@ ExceptionOr History::stateObjectAdded(RefPtr&& data + + if (!urlString.isEmpty()) + frame->document()->updateURLForPushOrReplaceState(fullURL); ++ InspectorInstrumentation::didNavigateWithinPage(*frame); + + if (stateObjectType == StateObjectType::Push) { + frame->loader().history().pushState(WTFMove(data), title, fullURL.string()); +diff --git a/Source/WebCore/page/LocalFrame.cpp b/Source/WebCore/page/LocalFrame.cpp +index 4e2ea3ab9aa529691cd213fb8d31c5d0d16962cf..e35d10d19994cf95a10aac37ac042c5d3c473dbc 100644 +--- a/Source/WebCore/page/LocalFrame.cpp ++++ b/Source/WebCore/page/LocalFrame.cpp @@ -40,6 +40,7 @@ #include "CachedResourceLoader.h" #include "Chrome.h" #include "ChromeClient.h" +#include "ComposedTreeIterator.h" - #include "DOMWindow.h" #include "DocumentLoader.h" #include "DocumentTimelinesController.h" -@@ -75,6 +76,7 @@ + #include "DocumentType.h" +@@ -58,6 +59,7 @@ + #include "FrameSelection.h" + #include "GraphicsContext.h" + #include "GraphicsLayer.h" ++#include "HTMLAreaElement.h" + #include "HTMLFormControlElement.h" + #include "HTMLFormElement.h" + #include "HTMLFrameElementBase.h" +@@ -75,6 +77,7 @@ #include "NavigationScheduler.h" #include "Navigator.h" #include "NodeList.h" @@ -6014,16 +6100,16 @@ index 8a76efa7aaca2a75e8603e5074926c3b4579bc94..58f0cda256b3b22b3729ad8b5019d077 #include "NodeTraversal.h" #include "Page.h" #include "ProcessWarming.h" -@@ -178,6 +180,7 @@ Frame::Frame(Page& page, UniqueRef&& frameLoaderClient, Frame +@@ -178,6 +181,7 @@ LocalFrame::LocalFrame(Page& page, UniqueRef&& frameLoaderCli - void Frame::init() + void LocalFrame::init() { + InspectorInstrumentation::frameAttached(this); m_loader->init(); } -@@ -372,7 +375,7 @@ void Frame::orientationChanged() - int Frame::orientation() const +@@ -372,7 +376,7 @@ void LocalFrame::orientationChanged() + IntDegrees LocalFrame::orientation() const { if (auto* page = this->page()) - return page->chrome().client().deviceOrientation(); @@ -6031,13 +6117,13 @@ index 8a76efa7aaca2a75e8603e5074926c3b4579bc94..58f0cda256b3b22b3729ad8b5019d077 return 0; } #endif // ENABLE(ORIENTATION_EVENTS) -@@ -1186,6 +1189,362 @@ DataDetectionResultsStorage& Frame::dataDetectionResults() +@@ -1189,6 +1193,362 @@ DataDetectionResultsStorage& LocalFrame::dataDetectionResults() #endif +#if !PLATFORM(IOS_FAMILY) + -+void Frame::betterApproximateNode(const IntPoint& testPoint, const NodeQualifier& nodeQualifierFunction, Node*& best, Node* failedNode, IntPoint& bestPoint, IntRect& bestRect, const IntRect& testRect) ++void LocalFrame::betterApproximateNode(const IntPoint& testPoint, const NodeQualifier& nodeQualifierFunction, Node*& best, Node* failedNode, IntPoint& bestPoint, IntRect& bestRect, const IntRect& testRect) +{ + IntRect candidateRect; + constexpr OptionSet hitType { HitTestRequest::Type::ReadOnly, HitTestRequest::Type::Active, HitTestRequest::Type::DisallowUserAgentShadowContent, HitTestRequest::Type::AllowVisibleChildFrameContentOnly }; @@ -6066,7 +6152,7 @@ index 8a76efa7aaca2a75e8603e5074926c3b4579bc94..58f0cda256b3b22b3729ad8b5019d077 + bestRect = candidateRect; +} + -+bool Frame::hitTestResultAtViewportLocation(const FloatPoint& viewportLocation, HitTestResult& hitTestResult, IntPoint& center) ++bool LocalFrame::hitTestResultAtViewportLocation(const FloatPoint& viewportLocation, HitTestResult& hitTestResult, IntPoint& center) +{ + if (!m_doc || !m_doc->renderView()) + return false; @@ -6081,7 +6167,7 @@ index 8a76efa7aaca2a75e8603e5074926c3b4579bc94..58f0cda256b3b22b3729ad8b5019d077 + return true; +} + -+Node* Frame::qualifyingNodeAtViewportLocation(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation, const NodeQualifier& nodeQualifierFunction, ShouldApproximate shouldApproximate, ShouldFindRootEditableElement shouldFindRootEditableElement) ++Node* LocalFrame::qualifyingNodeAtViewportLocation(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation, const NodeQualifier& nodeQualifierFunction, ShouldApproximate shouldApproximate, ShouldFindRootEditableElement shouldFindRootEditableElement) +{ + adjustedViewportLocation = viewportLocation; + @@ -6193,7 +6279,7 @@ index 8a76efa7aaca2a75e8603e5074926c3b4579bc94..58f0cda256b3b22b3729ad8b5019d077 + return approximateNode; +} + -+Node* Frame::deepestNodeAtLocation(const FloatPoint& viewportLocation) ++Node* LocalFrame::deepestNodeAtLocation(const FloatPoint& viewportLocation) +{ + IntPoint center; + HitTestResult hitTestResult; @@ -6229,7 +6315,7 @@ index 8a76efa7aaca2a75e8603e5074926c3b4579bc94..58f0cda256b3b22b3729ad8b5019d077 + return node.willRespondToMouseClickEvents() || node.willRespondToMouseMoveEvents() || nodeIsMouseFocusable(node); +} + -+Node* Frame::approximateNodeAtViewportLocationLegacy(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation) ++Node* LocalFrame::approximateNodeAtViewportLocationLegacy(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation) +{ + // This function is only used for UIWebView. + auto&& ancestorRespondingToClickEvents = [](const HitTestResult& hitTestResult, Node* terminationNode, IntRect* nodeBounds) -> Node* { @@ -6319,12 +6405,12 @@ index 8a76efa7aaca2a75e8603e5074926c3b4579bc94..58f0cda256b3b22b3729ad8b5019d077 + }; +} + -+Node* Frame::nodeRespondingToClickEvents(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation, SecurityOrigin* securityOrigin) ++Node* LocalFrame::nodeRespondingToClickEvents(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation, SecurityOrigin* securityOrigin) +{ + return qualifyingNodeAtViewportLocation(viewportLocation, adjustedViewportLocation, ancestorRespondingToClickEventsNodeQualifier(securityOrigin), ShouldApproximate::Yes); +} + -+Node* Frame::nodeRespondingToDoubleClickEvent(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation) ++Node* LocalFrame::nodeRespondingToDoubleClickEvent(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation) +{ + auto&& ancestorRespondingToDoubleClickEvent = [](const HitTestResult& hitTestResult, Node* terminationNode, IntRect* nodeBounds) -> Node* { + if (nodeBounds) @@ -6351,12 +6437,12 @@ index 8a76efa7aaca2a75e8603e5074926c3b4579bc94..58f0cda256b3b22b3729ad8b5019d077 + return qualifyingNodeAtViewportLocation(viewportLocation, adjustedViewportLocation, WTFMove(ancestorRespondingToDoubleClickEvent), ShouldApproximate::Yes); +} + -+Node* Frame::nodeRespondingToInteraction(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation) ++Node* LocalFrame::nodeRespondingToInteraction(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation) +{ + return qualifyingNodeAtViewportLocation(viewportLocation, adjustedViewportLocation, ancestorRespondingToClickEventsNodeQualifier(), ShouldApproximate::Yes, ShouldFindRootEditableElement::No); +} + -+Node* Frame::nodeRespondingToScrollWheelEvents(const FloatPoint& viewportLocation) ++Node* LocalFrame::nodeRespondingToScrollWheelEvents(const FloatPoint& viewportLocation) +{ + auto&& ancestorRespondingToScrollWheelEvents = [](const HitTestResult& hitTestResult, Node* terminationNode, IntRect* nodeBounds) -> Node* { + if (nodeBounds) @@ -6394,11 +6480,30 @@ index 8a76efa7aaca2a75e8603e5074926c3b4579bc94..58f0cda256b3b22b3729ad8b5019d077 } // namespace WebCore #undef FRAME_RELEASE_LOG_ERROR -diff --git a/Source/WebCore/page/Frame.h b/Source/WebCore/page/Frame.h -index 2ed8e07cc88c6a096b74fb9d0b5a0a76062072a6..fb507a23e53ce79fb0c02ba260a4a676a8d2b76a 100644 ---- a/Source/WebCore/page/Frame.h -+++ b/Source/WebCore/page/Frame.h -@@ -110,8 +110,8 @@ enum { +diff --git a/Source/WebCore/page/LocalFrame.h b/Source/WebCore/page/LocalFrame.h +index 85fb23a5c1ead92c0ecdb266434509afb5e61b2d..adfae0130d0d90c74d13d4861a6570f861dddf46 100644 +--- a/Source/WebCore/page/LocalFrame.h ++++ b/Source/WebCore/page/LocalFrame.h +@@ -28,8 +28,10 @@ + #pragma once + + #include "AdjustViewSizeOrNot.h" ++#include "DOMPasteAccess.h" + #include "Document.h" + #include "Frame.h" ++#include "IntDegrees.h" + #include "PageIdentifier.h" + #include "ScrollTypes.h" + #include "UserScriptTypes.h" +@@ -70,7 +72,6 @@ namespace WebCore { + class Color; + class LocalDOMWindow; + class DataDetectionResultsStorage; +-class Document; + class Editor; + class Element; + class EventHandler; +@@ -110,8 +111,8 @@ enum { }; enum OverflowScrollAction { DoNotPerformOverflowScroll, PerformOverflowScroll }; @@ -6406,9 +6511,9 @@ index 2ed8e07cc88c6a096b74fb9d0b5a0a76062072a6..fb507a23e53ce79fb0c02ba260a4a676 #endif +using NodeQualifier = Function; - // FIXME: Rename Frame to LocalFrame and AbstractFrame to Frame. - class Frame final : public AbstractFrame { -@@ -207,10 +207,6 @@ public: + class LocalFrame final : public Frame { + public: +@@ -206,10 +207,6 @@ public: WEBCORE_EXPORT DataDetectionResultsStorage& dataDetectionResults(); #endif @@ -6419,7 +6524,7 @@ index 2ed8e07cc88c6a096b74fb9d0b5a0a76062072a6..fb507a23e53ce79fb0c02ba260a4a676 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); -@@ -218,6 +214,10 @@ public: +@@ -217,6 +214,10 @@ public: WEBCORE_EXPORT Node* nodeRespondingToScrollWheelEvents(const FloatPoint& viewportLocation); WEBCORE_EXPORT Node* approximateNodeAtViewportLocationLegacy(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation); @@ -6430,7 +6535,7 @@ index 2ed8e07cc88c6a096b74fb9d0b5a0a76062072a6..fb507a23e53ce79fb0c02ba260a4a676 WEBCORE_EXPORT NSArray *wordsInCurrentParagraph() const; WEBCORE_EXPORT CGRect renderRectForPoint(CGPoint, bool* isReplaced, float* fontSize) const; -@@ -285,6 +285,7 @@ public: +@@ -284,6 +285,7 @@ public: WEBCORE_EXPORT FloatSize screenSize() const; void setOverrideScreenSize(FloatSize&&); @@ -6438,7 +6543,7 @@ index 2ed8e07cc88c6a096b74fb9d0b5a0a76062072a6..fb507a23e53ce79fb0c02ba260a4a676 void selfOnlyRef(); void selfOnlyDeref(); -@@ -319,7 +320,6 @@ private: +@@ -318,7 +320,6 @@ private: #if ENABLE(DATA_DETECTION) std::unique_ptr m_dataDetectionResults; #endif @@ -6446,7 +6551,7 @@ index 2ed8e07cc88c6a096b74fb9d0b5a0a76062072a6..fb507a23e53ce79fb0c02ba260a4a676 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); -@@ -327,6 +327,7 @@ private: +@@ -326,6 +327,7 @@ private: enum class ShouldFindRootEditableElement : bool { No, Yes }; Node* qualifyingNodeAtViewportLocation(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation, const NodeQualifier&, ShouldApproximate, ShouldFindRootEditableElement = ShouldFindRootEditableElement::Yes); @@ -6454,91 +6559,11 @@ index 2ed8e07cc88c6a096b74fb9d0b5a0a76062072a6..fb507a23e53ce79fb0c02ba260a4a676 void setTimersPausedInternal(bool); ViewportArguments m_viewportArguments; -diff --git a/Source/WebCore/page/FrameSnapshotting.cpp b/Source/WebCore/page/FrameSnapshotting.cpp -index abf96a0982ccabd034fa89f5125356c6e0619e4c..dbeadf420c16250304cb0bd8d834717261b8e132 100644 ---- a/Source/WebCore/page/FrameSnapshotting.cpp -+++ b/Source/WebCore/page/FrameSnapshotting.cpp -@@ -108,7 +108,7 @@ RefPtr snapshotFrameRectWithClip(Frame& frame, const IntRect& image - // Other paint behaviors are set by paintContentsForSnapshot. - frame.view()->setPaintBehavior(paintBehavior); - -- float scaleFactor = frame.page()->deviceScaleFactor(); -+ float scaleFactor = options.flags.contains(SnapshotFlags::OmitDeviceScaleFactor) ? 1 : frame.page()->deviceScaleFactor(); - - if (frame.page()->delegatesScaling()) - scaleFactor *= frame.page()->pageScaleFactor(); -@@ -123,7 +123,13 @@ RefPtr snapshotFrameRectWithClip(Frame& frame, const IntRect& image - if (!buffer) - return nullptr; - -+#if !PLATFORM(MAC) -+ buffer->context().scale(scaleFactor); -+#endif -+ - buffer->context().translate(-imageRect.location()); -+ if (coordinateSpace != FrameView::ViewCoordinates) -+ buffer->context().scale(1 / frame.page()->pageScaleFactor()); - - if (!clipRects.isEmpty()) { - Path clipPath; -@@ -132,7 +138,10 @@ RefPtr snapshotFrameRectWithClip(Frame& frame, const IntRect& image - buffer->context().clipPath(clipPath); - } - -- frame.view()->paintContentsForSnapshot(buffer->context(), imageRect, shouldIncludeSelection, coordinateSpace); -+ FloatRect fr = imageRect; -+ if (coordinateSpace != FrameView::ViewCoordinates) -+ fr.scale(frame.page()->pageScaleFactor()); -+ frame.view()->paintContentsForSnapshot(buffer->context(), enclosingIntRect(fr), shouldIncludeSelection, coordinateSpace); - return buffer; - } - -diff --git a/Source/WebCore/page/FrameSnapshotting.h b/Source/WebCore/page/FrameSnapshotting.h -index bb1bc2ffd02177718a77c5534e66bed55232e660..1eaff1702c30b337d4a8f5a804a9a4b134e1b111 100644 ---- a/Source/WebCore/page/FrameSnapshotting.h -+++ b/Source/WebCore/page/FrameSnapshotting.h -@@ -44,7 +44,7 @@ class IntRect; - class ImageBuffer; - class Node; - --enum class SnapshotFlags : uint8_t { -+enum class SnapshotFlags : uint16_t { - ExcludeSelectionHighlighting = 1 << 0, - PaintSelectionOnly = 1 << 1, - InViewCoordinates = 1 << 2, -@@ -53,6 +53,7 @@ enum class SnapshotFlags : uint8_t { - PaintEverythingExcludingSelection = 1 << 5, - PaintWithIntegralScaleFactor = 1 << 6, - Shareable = 1 << 7, -+ OmitDeviceScaleFactor = 1 << 8, - }; - - struct SnapshotOptions { -diff --git a/Source/WebCore/page/History.cpp b/Source/WebCore/page/History.cpp -index ea02a0741ef8e28b11bf7a5a2b4071e57ae74f3a..7fbe72719c609c54195a6f6d130255d277dcff29 100644 ---- a/Source/WebCore/page/History.cpp -+++ b/Source/WebCore/page/History.cpp -@@ -33,6 +33,7 @@ - #include "FrameLoaderClient.h" - #include "HistoryController.h" - #include "HistoryItem.h" -+#include "InspectorInstrumentation.h" - #include "Logging.h" - #include "NavigationScheduler.h" - #include "Page.h" -@@ -273,6 +274,7 @@ ExceptionOr History::stateObjectAdded(RefPtr&& data - - if (!urlString.isEmpty()) - frame->document()->updateURLForPushOrReplaceState(fullURL); -+ InspectorInstrumentation::didNavigateWithinPage(*frame); - - if (stateObjectType == StateObjectType::Push) { - frame->loader().history().pushState(WTFMove(data), title, fullURL.string()); diff --git a/Source/WebCore/page/Page.cpp b/Source/WebCore/page/Page.cpp -index e4785cefc7b6bb54fc6d38303bd6d6614860729e..58293f318ab0cb364c33b0cbd87a47147cff060e 100644 +index 543fb8f8734e431346a9bfb99b0cc9f2ce492b2d..5a182c20aa3128503b438dc6209081910b45d7b5 100644 --- a/Source/WebCore/page/Page.cpp +++ b/Source/WebCore/page/Page.cpp -@@ -511,6 +511,45 @@ void Page::setOverrideViewportArguments(const std::optional& +@@ -516,6 +516,45 @@ void Page::setOverrideViewportArguments(const std::optional& document->updateViewportArguments(); } @@ -6584,7 +6609,7 @@ index e4785cefc7b6bb54fc6d38303bd6d6614860729e..58293f318ab0cb364c33b0cbd87a4714 ScrollingCoordinator* Page::scrollingCoordinator() { if (!m_scrollingCoordinator && m_settings->scrollingCoordinatorEnabled()) { -@@ -1460,10 +1499,6 @@ void Page::didCommitLoad() +@@ -1465,10 +1504,6 @@ void Page::didCommitLoad() m_isEditableRegionEnabled = false; #endif @@ -6595,7 +6620,7 @@ index e4785cefc7b6bb54fc6d38303bd6d6614860729e..58293f318ab0cb364c33b0cbd87a4714 resetSeenPlugins(); resetSeenMediaEngines(); -@@ -3612,6 +3647,26 @@ void Page::setUseDarkAppearanceOverride(std::optional valueOverride) +@@ -3638,6 +3673,26 @@ void Page::setUseDarkAppearanceOverride(std::optional valueOverride) #endif } @@ -6623,7 +6648,7 @@ index e4785cefc7b6bb54fc6d38303bd6d6614860729e..58293f318ab0cb364c33b0cbd87a4714 { if (insets == m_fullscreenInsets) diff --git a/Source/WebCore/page/Page.h b/Source/WebCore/page/Page.h -index ff7dbfaea25c619707f9fcb74d50110e8bb43bb9..bafdf8a8763293d7397e081880af4c81a6efaa16 100644 +index ed6ccc749bd7cbad9ed42e14117b54f59246a68b..e5becddfce59dd234bd77bf7ad35e6f8713fdfbc 100644 --- a/Source/WebCore/page/Page.h +++ b/Source/WebCore/page/Page.h @@ -300,6 +300,9 @@ public: @@ -6636,10 +6661,10 @@ index ff7dbfaea25c619707f9fcb74d50110e8bb43bb9..bafdf8a8763293d7397e081880af4c81 static void refreshPlugins(bool reload); WEBCORE_EXPORT PluginData& pluginData(); void clearPluginData(); -@@ -355,6 +358,10 @@ public: - DragCaretController& dragCaretController() const { return *m_dragCaretController; } +@@ -358,6 +361,10 @@ public: #if ENABLE(DRAG_SUPPORT) - DragController& dragController() const { return *m_dragController; } + DragController& dragController() { return m_dragController.get(); } + const DragController& dragController() const { return m_dragController.get(); } +#if PLATFORM(MAC) + void setDragPasteboardName(const String& pasteboardName) { m_overrideDragPasteboardName = pasteboardName; } + const String& overrideDragPasteboardName() { return m_overrideDragPasteboardName; } @@ -6647,7 +6672,7 @@ index ff7dbfaea25c619707f9fcb74d50110e8bb43bb9..bafdf8a8763293d7397e081880af4c81 #endif FocusController& focusController() const { return *m_focusController; } #if ENABLE(CONTEXT_MENUS) -@@ -522,6 +529,10 @@ public: +@@ -527,6 +534,10 @@ public: WEBCORE_EXPORT void effectiveAppearanceDidChange(bool useDarkAppearance, bool useElevatedUserInterfaceLevel); bool defaultUseDarkAppearance() const { return m_useDarkAppearance; } void setUseDarkAppearanceOverride(std::optional); @@ -6658,7 +6683,7 @@ index ff7dbfaea25c619707f9fcb74d50110e8bb43bb9..bafdf8a8763293d7397e081880af4c81 #if ENABLE(TEXT_AUTOSIZING) float textAutosizingWidth() const { return m_textAutosizingWidth; } -@@ -946,6 +957,11 @@ public: +@@ -958,6 +969,11 @@ public: WEBCORE_EXPORT void setInteractionRegionsEnabled(bool); #endif @@ -6670,17 +6695,17 @@ index ff7dbfaea25c619707f9fcb74d50110e8bb43bb9..bafdf8a8763293d7397e081880af4c81 #if ENABLE(DEVICE_ORIENTATION) && PLATFORM(IOS_FAMILY) DeviceOrientationUpdateProvider* deviceOrientationUpdateProvider() const { return m_deviceOrientationUpdateProvider.get(); } #endif -@@ -1077,6 +1093,9 @@ private: +@@ -1092,6 +1108,9 @@ private: #if ENABLE(DRAG_SUPPORT) - const std::unique_ptr m_dragController; + UniqueRef m_dragController; +#if PLATFORM(MAC) + String m_overrideDragPasteboardName; +#endif #endif - const std::unique_ptr m_focusController; + std::unique_ptr m_focusController; #if ENABLE(CONTEXT_MENUS) -@@ -1156,6 +1175,8 @@ private: +@@ -1173,6 +1192,8 @@ private: bool m_useElevatedUserInterfaceLevel { false }; bool m_useDarkAppearance { false }; std::optional m_useDarkAppearanceOverride; @@ -6689,7 +6714,7 @@ index ff7dbfaea25c619707f9fcb74d50110e8bb43bb9..bafdf8a8763293d7397e081880af4c81 #if ENABLE(TEXT_AUTOSIZING) float m_textAutosizingWidth { 0 }; -@@ -1334,6 +1355,11 @@ private: +@@ -1351,6 +1372,11 @@ private: #endif std::optional m_overrideViewportArguments; @@ -6702,10 +6727,10 @@ index ff7dbfaea25c619707f9fcb74d50110e8bb43bb9..bafdf8a8763293d7397e081880af4c81 #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 b9be2c6da03eae4b1053bc24bdda533c9d57ea6c..294a902bd6ddce97186ae815f71c561269239d82 100644 +index a6d456114693426e589cb5221abb379cda53c354..16c1526bf9798d50eef024e9fea14503a5c13ae5 100644 --- a/Source/WebCore/page/PageConsoleClient.cpp +++ b/Source/WebCore/page/PageConsoleClient.cpp -@@ -451,4 +451,10 @@ void PageConsoleClient::screenshot(JSC::JSGlobalObject* lexicalGlobalObject, Ref +@@ -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)); } @@ -6729,7 +6754,7 @@ index 9a6549a792bf95f6d5671289bc58be259ec73732..03a6ceb14a18b3b74e8544a98fb85841 Page& m_page; }; diff --git a/Source/WebCore/page/PointerCaptureController.cpp b/Source/WebCore/page/PointerCaptureController.cpp -index e2bf099200da7776255299e3b053d044aaebde3a..1339fcfa621d79b3a3dd488b13a3227de1734286 100644 +index 9f23b808c242e5561330c70a6a0983f8fe66e9e2..2a2cb2b230a72b98aa2b291a9feee53d67b6b870 100644 --- a/Source/WebCore/page/PointerCaptureController.cpp +++ b/Source/WebCore/page/PointerCaptureController.cpp @@ -195,7 +195,7 @@ bool PointerCaptureController::preventsCompatibilityMouseEventsForIdentifier(Poi @@ -6741,7 +6766,7 @@ index e2bf099200da7776255299e3b053d044aaebde3a..1339fcfa621d79b3a3dd488b13a3227d static bool hierarchyHasCapturingEventListeners(Element* target, const AtomString& eventName) { for (RefPtr currentNode = target; currentNode; currentNode = currentNode->parentInComposedTree()) { -@@ -476,7 +476,7 @@ void PointerCaptureController::cancelPointer(PointerID pointerId, const IntPoint +@@ -474,7 +474,7 @@ void PointerCaptureController::cancelPointer(PointerID pointerId, const IntPoint capturingData->pendingTargetOverride = nullptr; capturingData->state = CapturingData::State::Cancelled; @@ -6773,10 +6798,10 @@ index 8c911ca663507b61640a4e29245dabe79573c420..08cdd2bfea9f5ac19c8cc39dc80032e1 #endif bool hasAnyElement() const { diff --git a/Source/WebCore/page/Screen.cpp b/Source/WebCore/page/Screen.cpp -index 848bd514aeed4cac5428534f89025dd526667ba7..3c9461ad9731c5563e8d61d9a751614429cd0c24 100644 +index 3161bc20838183906a01e85f0c1feedc82f34ce7..64f5ae86238b2621f5d1895eaae2b6077ab82a4a 100644 --- a/Source/WebCore/page/Screen.cpp +++ b/Source/WebCore/page/Screen.cpp -@@ -125,6 +125,9 @@ int Screen::availLeft() const +@@ -110,6 +110,9 @@ int Screen::availLeft() const if (isLoadingInHeadlessMode(*frame)) return 0; @@ -6786,7 +6811,7 @@ index 848bd514aeed4cac5428534f89025dd526667ba7..3c9461ad9731c5563e8d61d9a7516144 return static_cast(screenAvailableRect(frame->view()).x()); } -@@ -140,6 +143,9 @@ int Screen::availTop() const +@@ -125,6 +128,9 @@ int Screen::availTop() const if (isLoadingInHeadlessMode(*frame)) return 0; @@ -6796,7 +6821,7 @@ index 848bd514aeed4cac5428534f89025dd526667ba7..3c9461ad9731c5563e8d61d9a7516144 return static_cast(screenAvailableRect(frame->view()).y()); } -@@ -155,6 +161,9 @@ int Screen::availHeight() const +@@ -140,6 +146,9 @@ int Screen::availHeight() const if (isLoadingInHeadlessMode(*frame)) return static_cast(frame->screenSize().height()); @@ -6806,7 +6831,7 @@ index 848bd514aeed4cac5428534f89025dd526667ba7..3c9461ad9731c5563e8d61d9a7516144 return static_cast(screenAvailableRect(frame->view()).height()); } -@@ -170,6 +179,9 @@ int Screen::availWidth() const +@@ -155,6 +164,9 @@ int Screen::availWidth() const if (isLoadingInHeadlessMode(*frame)) return static_cast(frame->screenSize().width()); @@ -6817,7 +6842,7 @@ index 848bd514aeed4cac5428534f89025dd526667ba7..3c9461ad9731c5563e8d61d9a7516144 } diff --git a/Source/WebCore/page/csp/ContentSecurityPolicy.cpp b/Source/WebCore/page/csp/ContentSecurityPolicy.cpp -index fcbf74effb3128c09e36c26f1ddf1628ffc9b62a..3820ff1faf95ad1ca0b170977e4dd0380f582335 100644 +index fbab07305da2f2a3dd66d00f97ee31bbce0a67bd..50ec55843cd531ee67e4c00e701ec7b8b102daef 100644 --- a/Source/WebCore/page/csp/ContentSecurityPolicy.cpp +++ b/Source/WebCore/page/csp/ContentSecurityPolicy.cpp @@ -336,6 +336,8 @@ bool ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtoc @@ -6849,7 +6874,7 @@ index fcbf74effb3128c09e36c26f1ddf1628ffc9b62a..3820ff1faf95ad1ca0b170977e4dd038 if (const ContentSecurityPolicyDirective* violatedDirective = (policy.get()->*predicate)(std::forward(args)...)) { diff --git a/Source/WebCore/page/wpe/DragControllerWPE.cpp b/Source/WebCore/page/wpe/DragControllerWPE.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..2549355fc55ca55d2b6917dbfd05999f0e5607b3 +index 0000000000000000000000000000000000000000..803239911006cfb3b03ea911c003f2d233f67600 --- /dev/null +++ b/Source/WebCore/page/wpe/DragControllerWPE.cpp @@ -0,0 +1,80 @@ @@ -6927,7 +6952,7 @@ index 0000000000000000000000000000000000000000..2549355fc55ca55d2b6917dbfd05999f + +void DragController::declareAndWriteDragImage(DataTransfer& dataTransfer, Element& element, const URL& url, const String& label) +{ -+ Frame* frame = element.document().frame(); ++ auto* frame = element.document().frame(); + ASSERT(frame); + frame->editor().writeImageToPasteboard(dataTransfer.pasteboard(), element, url, label); +} @@ -6979,7 +7004,7 @@ index c77ddd17643628a87c0245ee2ea3ba417d40bc23..c5179ff48e57cdcfbe709a10bae517ff bool m_disallowFileAccess { false }; }; diff --git a/Source/WebCore/platform/DragImage.cpp b/Source/WebCore/platform/DragImage.cpp -index 9c01aa83e00b7e87d29846069f2a9a394680f6a9..8894cc1401d168d4a2abce8ee72eba0bd6b77fb5 100644 +index 550600c6f370af1b71a896d4fa3ef5a871a48c19..35d125361b7fa892cf863352bf0bd7131325ff38 100644 --- a/Source/WebCore/platform/DragImage.cpp +++ b/Source/WebCore/platform/DragImage.cpp @@ -279,7 +279,7 @@ DragImage::~DragImage() @@ -6992,7 +7017,7 @@ index 9c01aa83e00b7e87d29846069f2a9a394680f6a9..8894cc1401d168d4a2abce8ee72eba0b IntSize dragImageSize(DragImageRef) { diff --git a/Source/WebCore/platform/Pasteboard.h b/Source/WebCore/platform/Pasteboard.h -index f6396fc0d0f2c57393392815a895ade31c09788d..4f76ed28acc0787b6467794dbb41033211d804bf 100644 +index 39f37fc92f9be35cd3164b8a10b063fe270610ea..13523a3ca41e8ae264ba4b0d823a72208f2fc077 100644 --- a/Source/WebCore/platform/Pasteboard.h +++ b/Source/WebCore/platform/Pasteboard.h @@ -44,7 +44,7 @@ OBJC_CLASS NSString; @@ -7025,8 +7050,8 @@ index f6396fc0d0f2c57393392815a895ade31c09788d..4f76ed28acc0787b6467794dbb410332 #if PLATFORM(WIN) explicit Pasteboard(std::unique_ptr&&, IDataObject*); explicit Pasteboard(std::unique_ptr&&, WCDataObject*); -@@ -259,6 +264,12 @@ public: - static std::unique_ptr createForGlobalSelection(std::unique_ptr&&); +@@ -260,6 +265,12 @@ public: + int64_t changeCount() const; #endif +#if PLATFORM(WPE) @@ -7038,7 +7063,7 @@ index f6396fc0d0f2c57393392815a895ade31c09788d..4f76ed28acc0787b6467794dbb410332 #if PLATFORM(IOS_FAMILY) explicit Pasteboard(std::unique_ptr&&, int64_t changeCount); explicit Pasteboard(std::unique_ptr&&, const String& pasteboardName); -@@ -293,6 +304,7 @@ public: +@@ -296,6 +307,7 @@ public: COMPtr dataObject() const { return m_dataObject; } WEBCORE_EXPORT void setExternalDataObject(IDataObject*); const DragDataMap& dragDataMap() const { return m_dragDataMap; } @@ -7046,8 +7071,8 @@ index f6396fc0d0f2c57393392815a895ade31c09788d..4f76ed28acc0787b6467794dbb410332 void writeURLToWritableDataObject(const URL&, const String&); COMPtr writableDataObject() const { return m_writableDataObject; } void writeImageToDataObject(Element&, const URL&); // FIXME: Layering violation. -@@ -344,6 +356,10 @@ private: - String m_name; +@@ -348,6 +360,10 @@ private: + int64_t m_changeCount { 0 }; #endif +#if PLATFORM(WPE) @@ -7057,7 +7082,7 @@ index f6396fc0d0f2c57393392815a895ade31c09788d..4f76ed28acc0787b6467794dbb410332 #if PLATFORM(COCOA) String m_pasteboardName; int64_t m_changeCount; -@@ -359,6 +375,7 @@ private: +@@ -363,6 +379,7 @@ private: COMPtr m_dataObject; COMPtr m_writableDataObject; DragDataMap m_dragDataMap; @@ -7151,19 +7176,6 @@ index 44799e0b2a93cbcf25f4315d62a3d95896c02f3d..ec593ea30f6e45c355f5d6806290f246 } // namespace WebCore namespace WTF { -diff --git a/Source/WebCore/platform/ScrollableArea.h b/Source/WebCore/platform/ScrollableArea.h -index 035f4f4978bd6562d13b2ce68dfb6132f533c697..e7b88b4c345b2dc13245f211461102ec3977f89a 100644 ---- a/Source/WebCore/platform/ScrollableArea.h -+++ b/Source/WebCore/platform/ScrollableArea.h -@@ -111,7 +111,7 @@ public: - void stopKeyboardScrollAnimation(); - - #if ENABLE(TOUCH_EVENTS) -- virtual bool handleTouchEvent(const PlatformTouchEvent&); -+ WEBCORE_EXPORT virtual bool handleTouchEvent(const PlatformTouchEvent&); - #endif - - #if PLATFORM(IOS_FAMILY) diff --git a/Source/WebCore/platform/adwaita/ScrollbarThemeAdwaita.cpp b/Source/WebCore/platform/adwaita/ScrollbarThemeAdwaita.cpp index 6016d84a982356c6c89d8719158346fd181dc0f6..572be8257134f190aed7befd548120fc6041b37c 100644 --- a/Source/WebCore/platform/adwaita/ScrollbarThemeAdwaita.cpp @@ -7631,7 +7643,7 @@ index 23f7caefeb0fdfd47d05b8bbc0f949d0b772dc15..d89d5395c7c5eddeaa3aebae8ae3fcc0 { switch (val) { diff --git a/Source/WebCore/platform/gtk/PlatformScreenGtk.cpp b/Source/WebCore/platform/gtk/PlatformScreenGtk.cpp -index 9d425d17e44698949f04ef1c0a84e00013fb8dea..3533cf6c70ba9404c99b56199c7cfcece9704652 100644 +index d16c5990bd872a76b9ea01a25a1a0f8035977cb2..b438aaa1063d61321f16942e47ecc85b6927e071 100644 --- a/Source/WebCore/platform/gtk/PlatformScreenGtk.cpp +++ b/Source/WebCore/platform/gtk/PlatformScreenGtk.cpp @@ -225,7 +225,7 @@ bool screenSupportsExtendedColor(Widget*) @@ -8256,7 +8268,7 @@ 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 0bcd59f0c0e50d8e57b0b9818b101f55992d8ad5..250afa2c6483348fb9fe0a3a6e4b65659032d8c2 100644 +index 7e9c164031f26bd8cfc3467f0ed7ef65ba49a02c..1d928190765aaa1e91371e7c3a144b07ae446643 100644 --- a/Source/WebCore/platform/network/NetworkStorageSession.h +++ b/Source/WebCore/platform/network/NetworkStorageSession.h @@ -152,6 +152,8 @@ public: @@ -8269,10 +8281,10 @@ index 0bcd59f0c0e50d8e57b0b9818b101f55992d8ad5..250afa2c6483348fb9fe0a3a6e4b6565 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 1e9280cc7df42d6caa0eab7b8093ea704fab41eb..e12e1a6f9bbe920162e7b2a46f57806974588f5c 100644 +index adb39a306c5c43c6775d2ae033a1eaf74c8039d4..8e1a10a623f6cfe70bc49e149fcbba56a5d9e322 100644 --- a/Source/WebCore/platform/network/ResourceResponseBase.cpp +++ b/Source/WebCore/platform/network/ResourceResponseBase.cpp -@@ -70,6 +70,7 @@ ResourceResponseBase::ResourceResponseBase(std::optionalm_httpStatusText : AtomString { }) , m_httpVersion(data ? data->m_httpVersion : AtomString { }) , m_httpHeaderFields(data ? data->m_httpHeaderFields : HTTPHeaderMap { }) @@ -8280,7 +8292,7 @@ index 1e9280cc7df42d6caa0eab7b8093ea704fab41eb..e12e1a6f9bbe920162e7b2a46f578069 , m_networkLoadMetrics(data ? data->m_networkLoadMetrics : Box { }) , m_certificateInfo(data ? data->m_certificateInfo : std::nullopt) , m_httpStatusCode(data ? data->m_httpStatusCode : 0) -@@ -875,6 +876,7 @@ std::optional ResourceResponseBase::getRespo +@@ -890,6 +891,7 @@ std::optional ResourceResponseBase::getRespo m_httpStatusText, m_httpVersion, m_httpHeaderFields, @@ -8289,10 +8301,10 @@ index 1e9280cc7df42d6caa0eab7b8093ea704fab41eb..e12e1a6f9bbe920162e7b2a46f578069 m_httpStatusCode, diff --git a/Source/WebCore/platform/network/ResourceResponseBase.h b/Source/WebCore/platform/network/ResourceResponseBase.h -index 8f7fc2544206f25c7c6e60ff6305e9fa21461fe3..3d3d23b70c5db484a8ad270031b9dca7d4d0ef4c 100644 +index 11047df0961be66bd5abaf6ac168df3a66b7fa68..a3594c556dd1c83a4afd42af692a32b78bbc1e04 100644 --- a/Source/WebCore/platform/network/ResourceResponseBase.h +++ b/Source/WebCore/platform/network/ResourceResponseBase.h -@@ -102,6 +102,7 @@ public: +@@ -127,6 +127,7 @@ public: AtomString m_httpStatusText; AtomString m_httpVersion; HTTPHeaderMap m_httpHeaderFields; @@ -8300,7 +8312,7 @@ index 8f7fc2544206f25c7c6e60ff6305e9fa21461fe3..3d3d23b70c5db484a8ad270031b9dca7 Box m_networkLoadMetrics; short m_httpStatusCode; -@@ -295,6 +296,11 @@ protected: +@@ -320,6 +321,11 @@ protected: AtomString m_httpStatusText; AtomString m_httpVersion; HTTPHeaderMap m_httpHeaderFields; @@ -8312,7 +8324,7 @@ index 8f7fc2544206f25c7c6e60ff6305e9fa21461fe3..3d3d23b70c5db484a8ad270031b9dca7 Box m_networkLoadMetrics; mutable std::optional m_certificateInfo; -@@ -343,6 +349,7 @@ void ResourceResponseBase::encode(Encoder& encoder) const +@@ -368,6 +374,7 @@ void ResourceResponseBase::encode(Encoder& encoder) const encoder << m_httpStatusText; encoder << m_httpVersion; encoder << m_httpHeaderFields; @@ -8320,7 +8332,7 @@ index 8f7fc2544206f25c7c6e60ff6305e9fa21461fe3..3d3d23b70c5db484a8ad270031b9dca7 encoder << m_httpStatusCode; encoder << m_certificateInfo; -@@ -412,6 +419,12 @@ bool ResourceResponseBase::decode(Decoder& decoder, ResourceResponseBase& respon +@@ -437,6 +444,12 @@ bool ResourceResponseBase::decode(Decoder& decoder, ResourceResponseBase& respon return false; response.m_httpHeaderFields = WTFMove(*httpHeaderFields); @@ -8470,50 +8482,6 @@ index 846dc505de08da17da8aeee12512eb5b20d1ae8d..a380660f6bc2a7b00e1e5bac5de2910c HTTPCookieAcceptPolicy NetworkStorageSession::cookieAcceptPolicy() const { switch (cookieDatabase().acceptPolicy()) { -diff --git a/Source/WebCore/platform/network/curl/SocketStreamHandleImpl.h b/Source/WebCore/platform/network/curl/SocketStreamHandleImpl.h -index 950cd1b1ac6800212e8192b5cb53e69b34409111..58b1f55543f1bdcfc8e6b19b06633c0c4c45095a 100644 ---- a/Source/WebCore/platform/network/curl/SocketStreamHandleImpl.h -+++ b/Source/WebCore/platform/network/curl/SocketStreamHandleImpl.h -@@ -44,7 +44,7 @@ class StorageSessionProvider; - - class SocketStreamHandleImpl : public SocketStreamHandle, public CurlStream::Client { - public: -- static Ref create(const URL& url, SocketStreamHandleClient& client, PAL::SessionID, const String&, SourceApplicationAuditToken&&, const StorageSessionProvider* provider, bool) { return adoptRef(*new SocketStreamHandleImpl(url, client, provider)); } -+ static Ref create(const URL& url, SocketStreamHandleClient& client, PAL::SessionID, const String&, SourceApplicationAuditToken&&, const StorageSessionProvider* provider, bool ignoreCertificateErrors) { return adoptRef(*new SocketStreamHandleImpl(url, ignoreCertificateErrors, client, provider)); } - - virtual ~SocketStreamHandleImpl(); - -@@ -53,7 +53,7 @@ public: - WEBCORE_EXPORT void platformClose() final; - - private: -- WEBCORE_EXPORT SocketStreamHandleImpl(const URL&, SocketStreamHandleClient&, const StorageSessionProvider*); -+ WEBCORE_EXPORT SocketStreamHandleImpl(const URL&, bool ignoreCertificateErrors, SocketStreamHandleClient&, const StorageSessionProvider*); - - size_t bufferedAmount() final; - std::optional platformSendInternal(const uint8_t*, size_t); -diff --git a/Source/WebCore/platform/network/curl/SocketStreamHandleImplCurl.cpp b/Source/WebCore/platform/network/curl/SocketStreamHandleImplCurl.cpp -index e106d2e9c4bdf2f099c34d61270ab1ab12e1b1bc..d1ffe11e4fc2a0bece55c4a70f4d1eef28c4dadb 100644 ---- a/Source/WebCore/platform/network/curl/SocketStreamHandleImplCurl.cpp -+++ b/Source/WebCore/platform/network/curl/SocketStreamHandleImplCurl.cpp -@@ -44,7 +44,7 @@ - - namespace WebCore { - --SocketStreamHandleImpl::SocketStreamHandleImpl(const URL& url, SocketStreamHandleClient& client, const StorageSessionProvider* provider) -+SocketStreamHandleImpl::SocketStreamHandleImpl(const URL& url, bool ignoreCertificateErrors, SocketStreamHandleClient& client, const StorageSessionProvider* provider) - : SocketStreamHandle(url, client) - , m_storageSessionProvider(provider) - , m_scheduler(CurlContext::singleton().streamScheduler()) -@@ -53,7 +53,7 @@ SocketStreamHandleImpl::SocketStreamHandleImpl(const URL& url, SocketStreamHandl - if (m_url.protocolIs("wss"_s) && DeprecatedGlobalSettings::allowsAnySSLCertificate()) - CurlContext::singleton().sslHandle().setIgnoreSSLErrors(true); - -- m_streamID = m_scheduler.createStream(m_url, *this); -+ m_streamID = m_scheduler.createStream(m_url, ignoreCertificateErrors, *this); - } - - SocketStreamHandleImpl::~SocketStreamHandleImpl() diff --git a/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp b/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp index ad7471cbd809b2c9b8bedeab15ead1f9d824b8e3..07ce9246c343d18602b31481f6df0c8603d15ba2 100644 --- a/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp @@ -8640,7 +8608,7 @@ index 6350161d8c2cd0832f68883b98615e7c52630c75..f20f5c90459ec160e990eccf902cb028 OptionSet PlatformKeyboardEvent::currentStateOfModifierKeys() diff --git a/Source/WebCore/platform/win/PasteboardWin.cpp b/Source/WebCore/platform/win/PasteboardWin.cpp -index 4ad2497fa8c9f0a2857965e40f239735e0db411c..48ff919f35d52df949474764da0753637212a6ad 100644 +index c4aea7f4acf1d81d064156addf8fbfebda0ced76..478bf6c806d107642f7f91debe388e7ef91ddd65 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) @@ -9167,53 +9135,20 @@ index 1d8488e0d36288e09cd5662bd7f770ade95dfee3..dee07f87b47d62d4ef8ede45824bdb2f WorkerOrWorkletGlobalScope& m_globalScope; }; -diff --git a/Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in b/Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in -index 54caa5d9afa8d084cef49cfe3d958908a799ad31..a6cc60bd8ea1cea39a085ba05c3e71d221d2028a 100644 ---- a/Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in -+++ b/Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in -@@ -26,13 +26,13 @@ - messages -> WebCookieManager NotRefCounted { - void GetHostnamesWithCookies(PAL::SessionID sessionID) -> (Vector hostnames) - void DeleteCookiesForHostnames(PAL::SessionID sessionID, Vector hostnames) -> () -- void DeleteAllCookies(PAL::SessionID sessionID) -> () - - void SetCookie(PAL::SessionID sessionID, Vector cookie) -> () - void SetCookies(PAL::SessionID sessionID, Vector cookies, URL url, URL mainDocumentURL) -> () - void GetAllCookies(PAL::SessionID sessionID) -> (Vector cookies) - void GetCookies(PAL::SessionID sessionID, URL url) -> (Vector cookies) - void DeleteCookie(PAL::SessionID sessionID, struct WebCore::Cookie cookie) -> () -+ void DeleteAllCookies(PAL::SessionID sessionID) -> () - void DeleteAllCookiesModifiedSince(PAL::SessionID sessionID, WallTime time) -> () - - void SetHTTPCookieAcceptPolicy(PAL::SessionID sessionID, enum:uint8_t WebCore::HTTPCookieAcceptPolicy policy) -> () diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp -index 6ca59278158fd53a5d29ae37298439299c7f294f..8d1b3f7284f78c83e04666f6591d8faeea5f54fe 100644 +index 6f8572252893523039159a48a08ada463b493a05..6c90ecf3ce3c1baea834739a64724e6b1dfbcd42 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp -@@ -87,6 +87,11 @@ - #include - #include +@@ -87,6 +87,8 @@ -+#if PLATFORM(COCOA) + #if PLATFORM(COCOA) + #include +#include "NetworkDataTaskCocoa.h" +#include "NetworkSessionCocoa.h" -+#endif -+ - #if ENABLE(APPLE_PAY_REMOTE_UI) - #include "WebPaymentCoordinatorProxyMessages.h" #endif -@@ -493,6 +498,10 @@ void NetworkConnectionToWebProcess::createSocketStream(URL&& url, String cachePa - if (auto* session = networkSession()) - acceptInsecureCertificates = session->shouldAcceptInsecureCertificatesForWebSockets(); - #endif -+ if (auto* session = networkSession()) { -+ if (session->ignoreCertificateErrors()) -+ acceptInsecureCertificates = true; -+ } - m_networkSocketStreams.add(identifier, NetworkSocketStream::create(m_networkProcess.get(), WTFMove(url), m_sessionID, cachePartition, identifier, m_connection, WTFMove(token), acceptInsecureCertificates)); - } -@@ -1037,6 +1046,14 @@ void NetworkConnectionToWebProcess::clearPageSpecificData(PageIdentifier pageID) + #if ENABLE(APPLE_PAY_REMOTE_UI) +@@ -1015,6 +1017,14 @@ void NetworkConnectionToWebProcess::clearPageSpecificData(PageIdentifier pageID) #endif } @@ -9229,10 +9164,10 @@ index 6ca59278158fd53a5d29ae37298439299c7f294f..8d1b3f7284f78c83e04666f6591d8fae void NetworkConnectionToWebProcess::removeStorageAccessForFrame(FrameIdentifier frameID, PageIdentifier pageID) { diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h -index 8de90ddda89e94c0665c026909417b6e6ebe4195..e99798f3d15d48982d34fa919b641539a87ad8fe 100644 +index 46b47bf28756e69b66c6b6dfc1baa6772445608b..e80526ff7db8df818c86b5c1b740e63ba4e3ec51 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h -@@ -313,6 +313,8 @@ private: +@@ -310,6 +310,8 @@ private: void clearPageSpecificData(WebCore::PageIdentifier); @@ -9242,10 +9177,10 @@ index 8de90ddda89e94c0665c026909417b6e6ebe4195..e99798f3d15d48982d34fa919b641539 void removeStorageAccessForFrame(WebCore::FrameIdentifier, WebCore::PageIdentifier); diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in -index 058fb0192a382f3e3ef70e6326ae442395f0d191..23c7c91c33fde0a4bba50c747ec7fd7d8caea0c5 100644 +index 4269d8e4442536a68bcad12b694b2d1fe96cf69f..536004789ac196597d5365f0321f85d20e3906ee 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in -@@ -66,6 +66,8 @@ messages -> NetworkConnectionToWebProcess LegacyReceiver { +@@ -65,6 +65,8 @@ messages -> NetworkConnectionToWebProcess LegacyReceiver { ClearPageSpecificData(WebCore::PageIdentifier pageID); @@ -9255,10 +9190,10 @@ index 058fb0192a382f3e3ef70e6326ae442395f0d191..23c7c91c33fde0a4bba50c747ec7fd7d RemoveStorageAccessForFrame(WebCore::FrameIdentifier frameID, WebCore::PageIdentifier pageID); LogUserInteraction(WebCore::RegistrableDomain domain) diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.cpp b/Source/WebKit/NetworkProcess/NetworkProcess.cpp -index ed500c0a594e61d50b638a79ad8a73fe4d91002d..190eb233829f4d66e1979f256f9d3a5f2cce20f7 100644 +index 337c37bc16aa2bc5c30d7a88188b3cc7b23475e3..6cc8e60f19b28b357f62bd09c3843aedba7f5578 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.cpp +++ b/Source/WebKit/NetworkProcess/NetworkProcess.cpp -@@ -596,6 +596,12 @@ void NetworkProcess::destroySession(PAL::SessionID sessionID) +@@ -599,6 +599,12 @@ void NetworkProcess::destroySession(PAL::SessionID sessionID) m_sessionsControlledByAutomation.remove(sessionID); } @@ -9272,7 +9207,7 @@ index ed500c0a594e61d50b638a79ad8a73fe4d91002d..190eb233829f4d66e1979f256f9d3a5f void NetworkProcess::dumpResourceLoadStatistics(PAL::SessionID sessionID, CompletionHandler&& completionHandler) { diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.h b/Source/WebKit/NetworkProcess/NetworkProcess.h -index 7631c53a00d064392a3e96eced38fa4cb09e1a7a..7755fe1a7a1547eb3213c64aed36e7161e6b9c41 100644 +index 51ec51889da82d3965ad20040545c11f2cbf4de7..58f67bcd94f228839046cc3d70345b6f12d70783 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.h +++ b/Source/WebKit/NetworkProcess/NetworkProcess.h @@ -37,6 +37,7 @@ @@ -9283,7 +9218,7 @@ index 7631c53a00d064392a3e96eced38fa4cb09e1a7a..7755fe1a7a1547eb3213c64aed36e716 #include "WebPageProxyIdentifier.h" #include "WebResourceLoadStatisticsStore.h" #include "WebsiteData.h" -@@ -83,6 +84,7 @@ class SessionID; +@@ -84,6 +85,7 @@ class SessionID; namespace WebCore { class CertificateInfo; @@ -9291,7 +9226,7 @@ index 7631c53a00d064392a3e96eced38fa4cb09e1a7a..7755fe1a7a1547eb3213c64aed36e716 class CurlProxySettings; class ProtectionSpace; class NetworkStorageSession; -@@ -202,6 +204,8 @@ public: +@@ -203,6 +205,8 @@ public: void addWebsiteDataStore(WebsiteDataStoreParameters&&); @@ -9301,7 +9236,7 @@ index 7631c53a00d064392a3e96eced38fa4cb09e1a7a..7755fe1a7a1547eb3213c64aed36e716 void clearPrevalentResource(PAL::SessionID, RegistrableDomain&&, CompletionHandler&&); void clearUserInteraction(PAL::SessionID, RegistrableDomain&&, CompletionHandler&&); diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in -index 4f64693c943900509f7144be85c3afc6d4e9d7b1..a8c1a00ab00f71219365ebb2b4f73c58c7de5b76 100644 +index 74b0f2982ef2a829a0c2b55306004da05759adc0..811c6ff52d70c3af87da8ce6b69b0f944b16f947 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in +++ b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in @@ -79,6 +79,8 @@ messages -> NetworkProcess LegacyReceiver { @@ -9314,7 +9249,7 @@ index 4f64693c943900509f7144be85c3afc6d4e9d7b1..a8c1a00ab00f71219365ebb2b4f73c58 ClearPrevalentResource(PAL::SessionID sessionID, WebCore::RegistrableDomain resourceDomain) -> () ClearUserInteraction(PAL::SessionID sessionID, WebCore::RegistrableDomain resourceDomain) -> () diff --git a/Source/WebKit/NetworkProcess/NetworkSession.h b/Source/WebKit/NetworkProcess/NetworkSession.h -index 6c1113fc064a56b786cc0368f89dcd3e60d00523..344cc4a5c6bde9d9e517b897514f35334bc0a799 100644 +index 86ff8f80fc35c14208a34b3d47f25bdcc59124fa..65c2326838e428ccdbeaf160e3e33690d14b1fe4 100644 --- a/Source/WebKit/NetworkProcess/NetworkSession.h +++ b/Source/WebKit/NetworkProcess/NetworkSession.h @@ -204,6 +204,9 @@ public: @@ -9327,7 +9262,7 @@ index 6c1113fc064a56b786cc0368f89dcd3e60d00523..344cc4a5c6bde9d9e517b897514f3533 #if ENABLE(SERVICE_WORKER) void removeSoftUpdateLoader(ServiceWorkerSoftUpdateLoader* loader) { m_softUpdateLoaders.remove(loader); } void addNavigationPreloaderTask(ServiceWorkerFetchTask&); -@@ -317,6 +320,7 @@ protected: +@@ -319,6 +322,7 @@ protected: bool m_privateClickMeasurementDebugModeEnabled { false }; std::optional m_ephemeralMeasurement; bool m_isRunningEphemeralMeasurementTest { false }; @@ -9336,7 +9271,7 @@ index 6c1113fc064a56b786cc0368f89dcd3e60d00523..344cc4a5c6bde9d9e517b897514f3533 HashSet> m_keptAliveLoads; diff --git a/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm b/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm -index 897619af0ea86dec03b7e338e41c60585fb208dd..0e4039609c8986b3d522b604919024951ff1728f 100644 +index a3f79deb9f4fce052cdeebc0d174fd4fd6da4b93..43a893fc9d2b319c0913d92d816f9a7f603aa2c6 100644 --- a/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm +++ b/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm @@ -751,7 +751,7 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didRece @@ -9406,10 +9341,10 @@ index 92a56b944d04850494c27b954ad68ec9ca3324b8..ead9a4c8b7f4b8add8439c02e72cdafe } // namespace WebKit diff --git a/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp b/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp -index 908f75f83b9fe887cc26779f1c2babbadb646464..f468d8a15091ffa03ec15299f27ff5237133be40 100644 +index 40e466a49926c304695e0e86c57fbfeef80ceec1..3210765c6a8327b17849530cf13808c187b667ea 100644 --- a/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp +++ b/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.cpp -@@ -33,7 +33,7 @@ +@@ -34,7 +34,7 @@ namespace WebKit { @@ -9418,7 +9353,7 @@ index 908f75f83b9fe887cc26779f1c2babbadb646464..f468d8a15091ffa03ec15299f27ff523 : m_channel(channel) , m_request(request.isolatedCopy()) , m_protocol(protocol) -@@ -42,7 +42,7 @@ WebSocketTask::WebSocketTask(NetworkSocketChannel& channel, const WebCore::Resou +@@ -43,7 +43,7 @@ WebSocketTask::WebSocketTask(NetworkSocketChannel& channel, const WebCore::Resou if (request.url().protocolIs("wss"_s) && WebCore::DeprecatedGlobalSettings::allowsAnySSLCertificate()) WebCore::CurlContext::singleton().sslHandle().setIgnoreSSLErrors(true); @@ -9428,10 +9363,10 @@ index 908f75f83b9fe887cc26779f1c2babbadb646464..f468d8a15091ffa03ec15299f27ff523 } diff --git a/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.h b/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.h -index 2027a4b929fda90b34f46bf563846ca8d4553829..34bfbb236d5f16c8bb34920a2bb01c048d63ab5f 100644 +index c2e60f5ec6766e485996764bc240c18e8e747d85..20eb908199ea8735d38dfb27985fa2f3f8136181 100644 --- a/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.h +++ b/Source/WebKit/NetworkProcess/curl/WebSocketTaskCurl.h -@@ -45,7 +45,7 @@ struct SessionSet; +@@ -47,7 +47,7 @@ struct SessionSet; class WebSocketTask : public CanMakeWeakPtr, public WebCore::CurlStream::Client { WTF_MAKE_FAST_ALLOCATED; public: @@ -9523,28 +9458,11 @@ index 7726f1ad59430f11a11bbec0300fcc86b4654e41..cdccb0f1d72c5350b5eebc197eeae8f5 #endif } return makeUnique(channel, request, soupSession(), soupMessage.get(), protocol); -diff --git a/Source/WebKit/Platform/IPC/ArgumentCoders.h b/Source/WebKit/Platform/IPC/ArgumentCoders.h -index ae37b2145fc2737ee1314ef3e5a161570d7b812d..65874cad76a2dff70477ae5952d4cff0ebc6c7a4 100644 ---- a/Source/WebKit/Platform/IPC/ArgumentCoders.h -+++ b/Source/WebKit/Platform/IPC/ArgumentCoders.h -@@ -154,8 +154,11 @@ struct ArgumentCoder> { - { - constexpr size_t Index = sizeof...(DataPointerTypes); - static_assert(Index <= sizeof...(Types)); -+ // Must be a separate variable, as otherwise -+ // the Visual Studio C++ compiler gets confused -+ constexpr bool Recurse = Index < sizeof...(Types); - -- if constexpr (Index < sizeof...(Types)) { -+ if constexpr (Recurse) { - using ElementType = std::tuple_element_t>; - auto data = decoder.template decodeSpan(size); - if (!data.data()) diff --git a/Source/WebKit/PlatformGTK.cmake b/Source/WebKit/PlatformGTK.cmake -index 6252529e8b2e86b5780e25b8a63aae1dea0eccf7..8bc9909fcad4e3a322268bddde7d3c2006d70533 100644 +index 6b1211d0a13f7df90932484c6dc2740ef3a19efe..c124dbdf443d1c9745332c692447854122491473 100644 --- a/Source/WebKit/PlatformGTK.cmake +++ b/Source/WebKit/PlatformGTK.cmake -@@ -298,6 +298,9 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES +@@ -301,6 +301,9 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES ${GSTREAMER_PBUTILS_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${LIBSOUP_INCLUDE_DIRS} @@ -9553,8 +9471,8 @@ index 6252529e8b2e86b5780e25b8a63aae1dea0eccf7..8bc9909fcad4e3a322268bddde7d3c20 +# Playwright end ) - if (USE_WPE_RENDERER) -@@ -339,6 +342,9 @@ if (USE_LIBWEBRTC) + list(APPEND WebKit_INTERFACE_INCLUDE_DIRECTORIES +@@ -347,6 +350,9 @@ if (USE_LIBWEBRTC) list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES "${THIRDPARTY_DIR}/libwebrtc/Source/" "${THIRDPARTY_DIR}/libwebrtc/Source/webrtc" @@ -9564,7 +9482,7 @@ index 6252529e8b2e86b5780e25b8a63aae1dea0eccf7..8bc9909fcad4e3a322268bddde7d3c20 ) endif () -@@ -382,6 +388,12 @@ else () +@@ -390,6 +396,12 @@ else () set(WebKitGTK_ENUM_HEADER_TEMPLATE ${WEBKIT_DIR}/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in) endif () @@ -9578,7 +9496,7 @@ index 6252529e8b2e86b5780e25b8a63aae1dea0eccf7..8bc9909fcad4e3a322268bddde7d3c20 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 0b03e3913067286018161b4ee5342444fa761185..ffb1886482a324d2d5406afde0c1f0a09b4e56df 100644 +index 3662aacc86a6a86abe77a0706c1097d51f56c738..87145b8902721aa1b15a1ba9f3e55cdd1a3bb864 100644 --- a/Source/WebKit/PlatformWPE.cmake +++ b/Source/WebKit/PlatformWPE.cmake @@ -202,6 +202,7 @@ set(WPE_API_INSTALLED_HEADERS @@ -9589,7 +9507,7 @@ index 0b03e3913067286018161b4ee5342444fa761185..ffb1886482a324d2d5406afde0c1f0a0 ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitRectangle.h ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitWebViewBackend.h ) -@@ -366,6 +367,7 @@ list(APPEND WebKit_INCLUDE_DIRECTORIES +@@ -366,6 +367,7 @@ list(APPEND WebKit_PRIVATE_INCLUDE_DIRECTORIES "${WEBKIT_DIR}/UIProcess/Launcher/libwpe" "${WEBKIT_DIR}/UIProcess/Notifications/glib/" "${WEBKIT_DIR}/UIProcess/geoclue" @@ -9616,19 +9534,10 @@ index 0b03e3913067286018161b4ee5342444fa761185..ffb1886482a324d2d5406afde0c1f0a0 Cairo::Cairo Freetype::Freetype diff --git a/Source/WebKit/PlatformWin.cmake b/Source/WebKit/PlatformWin.cmake -index 36458208fbb6dfc50764f9f4a166011f2ab921ca..d00a1b80deb8600d63be99097bde7088dc0ee0ad 100644 +index 762876285efcbb06266a8b993dfe97b9a26e890a..dc816ef34571f7ededd9635dddc81567fc56238a 100644 --- a/Source/WebKit/PlatformWin.cmake +++ b/Source/WebKit/PlatformWin.cmake -@@ -4,6 +4,8 @@ set(NetworkProcess_OUTPUT_NAME WebKitNetworkProcess) - set(GPUProcess_OUTPUT_NAME WebKitGPUProcess) - set(PluginProcess_OUTPUT_NAME WebKitPluginProcess) - -+set(WebKit_USE_PREFIX_HEADER ON) -+ - include(Headers.cmake) - - list(APPEND WebKit_SOURCES -@@ -89,8 +91,12 @@ list(APPEND WebKit_SOURCES +@@ -89,8 +89,12 @@ list(APPEND WebKit_SOURCES UIProcess/wc/DrawingAreaProxyWC.cpp @@ -9641,7 +9550,7 @@ index 36458208fbb6dfc50764f9f4a166011f2ab921ca..d00a1b80deb8600d63be99097bde7088 UIProcess/win/WebPageProxyWin.cpp UIProcess/win/WebPopupMenuProxyWin.cpp UIProcess/win/WebProcessPoolWin.cpp -@@ -111,6 +117,7 @@ list(APPEND WebKit_SOURCES +@@ -111,6 +115,7 @@ list(APPEND WebKit_SOURCES WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.cpp WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp @@ -9649,13 +9558,13 @@ index 36458208fbb6dfc50764f9f4a166011f2ab921ca..d00a1b80deb8600d63be99097bde7088 WebProcess/WebPage/AcceleratedSurface.cpp -@@ -171,7 +178,74 @@ list(APPEND WebKit_MESSAGES_IN_FILES +@@ -171,8 +176,84 @@ list(APPEND WebKit_MESSAGES_IN_FILES 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" @@ -9666,7 +9575,7 @@ index 36458208fbb6dfc50764f9f4a166011f2ab921ca..d00a1b80deb8600d63be99097bde7088 + "${THIRDPARTY_DIR}/libwebrtc/Source/third_party/libwebm" +) + -+list(APPEND WebKit_SOURCES ++set(vpxutils_SOURCES + "${THIRDPARTY_DIR}/libwebrtc/Source/third_party/libwebm/mkvmuxer/mkvmuxer.cc" + "${THIRDPARTY_DIR}/libwebrtc/Source/third_party/libwebm/mkvmuxer/mkvmuxerutil.cc" + "${THIRDPARTY_DIR}/libwebrtc/Source/third_party/libwebm/mkvmuxer/mkvwriter.cc" @@ -9719,11 +9628,21 @@ index 36458208fbb6dfc50764f9f4a166011f2ab921ca..d00a1b80deb8600d63be99097bde7088 + "${THIRDPARTY_DIR}/libwebrtc/Source/third_party/libyuv/source/scale_uv.cc" + "${THIRDPARTY_DIR}/libwebrtc/Source/third_party/libyuv/source/scale_win.cc" + "${THIRDPARTY_DIR}/libwebrtc/Source/third_party/libyuv/source/video_common.cc" - ) ++) ++ ++add_library(vpxutils STATIC ${vpxutils_SOURCES}) ++ ++target_include_directories(vpxutils PRIVATE ++ "${THIRDPARTY_DIR}/libwebrtc/Source/third_party/libyuv/include" ++ "${THIRDPARTY_DIR}/libwebrtc/Source/third_party/libwebm" ++) ++ ++target_link_libraries(WebKit PRIVATE vpxutils) +# Playwright end - ++ list(APPEND WebProcess_SOURCES 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 --- a/Source/WebKit/Shared/API/c/wpe/WebKit.h @@ -9801,10 +9720,10 @@ index cd5bd406daa4d1ff7b38d1a6e59cedbd234e642c..13899dc1ebd083d871ca63979a482c0e NSEvent* nativeEvent() const { return m_nativeEvent.get(); } #elif PLATFORM(GTK) diff --git a/Source/WebKit/Shared/NativeWebWheelEvent.h b/Source/WebKit/Shared/NativeWebWheelEvent.h -index d294b46e3ca59de0aa5898db488ade26ccc47f2e..5e50be35ac39c22669d589e0a4a7fc15c33b414a 100644 +index 072a1f359bd50060da6a347fa06b72d89086825d..ca1b11ccc6241dfc3948910115df966b742d1af8 100644 --- a/Source/WebKit/Shared/NativeWebWheelEvent.h +++ b/Source/WebKit/Shared/NativeWebWheelEvent.h -@@ -68,7 +68,8 @@ public: +@@ -65,7 +65,8 @@ public: #elif PLATFORM(WIN) NativeWebWheelEvent(HWND, UINT message, WPARAM, LPARAM); #endif @@ -9840,10 +9759,10 @@ index 8b8223a49829fd2c0a325519881d6878f8c3f2b5..7e1cc65fecf18e0f71166c99f2242941 ALLOW_COMMA_BEGIN diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.cpp b/Source/WebKit/Shared/WebCoreArgumentCoders.cpp -index a904376ed6288f441a45c2d90dc25ff15fe00b4e..d0c74ea56c4f1a6c161412d763c8d54a4f622c78 100644 +index 70010a1a8ffae48ba7544c433905b4c3abb7d071..ec3a853a513188b9d17470003edf41c381893a3c 100644 --- a/Source/WebKit/Shared/WebCoreArgumentCoders.cpp +++ b/Source/WebKit/Shared/WebCoreArgumentCoders.cpp -@@ -192,6 +192,10 @@ +@@ -193,6 +193,10 @@ #include #endif @@ -9855,10 +9774,10 @@ index a904376ed6288f441a45c2d90dc25ff15fe00b4e..d0c74ea56c4f1a6c161412d763c8d54a namespace IPC { diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -index c0f05346467f628439fc918875793de4b9e7967f..0a3cbe58b424a8bcd04a742b4d060511b03cf58c 100644 +index 09ff0a84eac17f9621e25320b6735d9bf6aea516..4dc36ba1096ad567546a9e39719dcb9e8f9067a7 100644 --- a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in +++ b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -@@ -1382,6 +1382,10 @@ struct WebCore::WindowFeatures { +@@ -1417,6 +1417,10 @@ struct WebCore::WindowFeatures { bool fullscreen; bool dialog; @@ -9869,7 +9788,7 @@ index c0f05346467f628439fc918875793de4b9e7967f..0a3cbe58b424a8bcd04a742b4d060511 }; [Nested] enum class WebCore::CompositionUnderlineColor : bool -@@ -1833,6 +1837,9 @@ class WebCore::AuthenticationChallenge { +@@ -1872,6 +1876,9 @@ class WebCore::AuthenticationChallenge { class WebCore::DragData { #if PLATFORM(COCOA) String pasteboardName(); @@ -9879,7 +9798,7 @@ index c0f05346467f628439fc918875793de4b9e7967f..0a3cbe58b424a8bcd04a742b4d060511 #endif WebCore::IntPoint clientPosition(); WebCore::IntPoint globalPosition(); -@@ -2334,6 +2341,7 @@ enum class WebCore::ResourceLoadPriority : uint8_t { +@@ -2368,6 +2375,7 @@ enum class WebCore::ResourceLoadPriority : uint8_t { AtomString m_httpStatusText; AtomString m_httpVersion; WebCore::HTTPHeaderMap m_httpHeaderFields; @@ -10025,10 +9944,10 @@ index a7862db2df45ac3ab8ba5c7dee7d9d0c5641c27b..149d8cc4ef277ebdfc3bb27be7d52f5c const WebCore::IntPoint& globalPosition() const { return m_globalPosition; } float deltaX() const { return m_deltaX; } diff --git a/Source/WebKit/Shared/WebPageCreationParameters.cpp b/Source/WebKit/Shared/WebPageCreationParameters.cpp -index a690d3278b3a21c138ab13a644dcaaf5c482ed90..0b98909a1f722b0373d4962f57d9a88eefae99ce 100644 +index 0fbade27139d9cea7452a90b22e8a825188cecc4..c1709472c2fc2d086b1b2e08832936c537c56633 100644 --- a/Source/WebKit/Shared/WebPageCreationParameters.cpp +++ b/Source/WebKit/Shared/WebPageCreationParameters.cpp -@@ -159,6 +159,8 @@ void WebPageCreationParameters::encode(IPC::Encoder& encoder) const +@@ -160,6 +160,8 @@ void WebPageCreationParameters::encode(IPC::Encoder& encoder) const encoder << crossOriginAccessControlCheckEnabled; encoder << processDisplayName; @@ -10037,7 +9956,7 @@ index a690d3278b3a21c138ab13a644dcaaf5c482ed90..0b98909a1f722b0373d4962f57d9a88e encoder << shouldCaptureAudioInUIProcess; encoder << shouldCaptureAudioInGPUProcess; encoder << shouldCaptureVideoInUIProcess; -@@ -563,7 +565,10 @@ std::optional WebPageCreationParameters::decode(IPC:: +@@ -566,7 +568,10 @@ std::optional WebPageCreationParameters::decode(IPC:: if (!processDisplayName) return std::nullopt; parameters.processDisplayName = WTFMove(*processDisplayName); @@ -10050,10 +9969,10 @@ index a690d3278b3a21c138ab13a644dcaaf5c482ed90..0b98909a1f722b0373d4962f57d9a88e return std::nullopt; diff --git a/Source/WebKit/Shared/WebPageCreationParameters.h b/Source/WebKit/Shared/WebPageCreationParameters.h -index fa7bcd79595495471f70f9f9fce57ae1ed0125b4..a865a33f033c53ac994de1587d5ad98d0f982fbc 100644 +index 9a87975362acb4e957b287138456dc17813a5048..1aec6045e3462104d2a58ffa4d0623fcb5d7304c 100644 --- a/Source/WebKit/Shared/WebPageCreationParameters.h +++ b/Source/WebKit/Shared/WebPageCreationParameters.h -@@ -270,6 +270,8 @@ struct WebPageCreationParameters { +@@ -273,6 +273,8 @@ struct WebPageCreationParameters { bool httpsUpgradeEnabled { true }; @@ -10337,21 +10256,8 @@ index 0000000000000000000000000000000000000000..789a0d7cf69704c8f665a9ed79348fbc +}; + +} // namespace IPC -diff --git a/Source/WebKit/Shared/win/WebEventFactory.cpp b/Source/WebKit/Shared/win/WebEventFactory.cpp -index bb3a9f57582b1d7ebe5829c379cc8b288415937d..ede3dbadb38578bdaecb9caad351b1573c7ac50e 100644 ---- a/Source/WebKit/Shared/win/WebEventFactory.cpp -+++ b/Source/WebKit/Shared/win/WebEventFactory.cpp -@@ -474,7 +474,7 @@ WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(HWND hwnd, UINT message - } - - #if ENABLE(TOUCH_EVENTS) --WebTouchEvent WebEventFactory::createWebTouchEvent(const GdkEvent* event, Vector&& touchPoints) -+WebTouchEvent WebEventFactory::createWebTouchEvent() - { - return WebTouchEvent(); - } diff --git a/Source/WebKit/Sources.txt b/Source/WebKit/Sources.txt -index f53bb1dc917334f0b3e77c835e52304e8c6798ee..df0e24dff2aef9d8d747af05032a71e4e52f8135 100644 +index eb728f2606494a73748b7f577c83ce540c8da684..ecbd84e088af4a590bab37190340478e28c87c41 100644 --- a/Source/WebKit/Sources.txt +++ b/Source/WebKit/Sources.txt @@ -382,11 +382,14 @@ Shared/XR/XRDeviceProxy.cpp @@ -10386,7 +10292,7 @@ index f53bb1dc917334f0b3e77c835e52304e8c6798ee..df0e24dff2aef9d8d747af05032a71e4 UIProcess/WebPageProxy.cpp UIProcess/WebPasteboardProxy.cpp UIProcess/WebPermissionControllerProxy.cpp -@@ -568,7 +574,11 @@ UIProcess/Inspector/WebInspectorUtilities.cpp +@@ -569,7 +575,11 @@ UIProcess/Inspector/WebInspectorUtilities.cpp UIProcess/Inspector/WebPageDebuggable.cpp UIProcess/Inspector/WebPageInspectorController.cpp @@ -10399,7 +10305,7 @@ index f53bb1dc917334f0b3e77c835e52304e8c6798ee..df0e24dff2aef9d8d747af05032a71e4 UIProcess/Media/AudioSessionRoutingArbitratorProxy.cpp UIProcess/Media/MediaUsageManager.cpp diff --git a/Source/WebKit/SourcesCocoa.txt b/Source/WebKit/SourcesCocoa.txt -index c69f1edc7309544b95ea1d130346f4c4833564de..33bf48713c5bdb6da512f2b0c816edc269939dd0 100644 +index 429a607f2d778829c9b4a2d9663cc55fb0afc163..b2856e731d6e3537fc531a65c4e0765e25888161 100644 --- a/Source/WebKit/SourcesCocoa.txt +++ b/Source/WebKit/SourcesCocoa.txt @@ -260,6 +260,7 @@ UIProcess/API/Cocoa/_WKApplicationManifest.mm @@ -10419,18 +10325,18 @@ index c69f1edc7309544b95ea1d130346f4c4833564de..33bf48713c5bdb6da512f2b0c816edc2 UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm UIProcess/Inspector/mac/WKInspectorViewController.mm diff --git a/Source/WebKit/SourcesGTK.txt b/Source/WebKit/SourcesGTK.txt -index bc3a817a8540118c9e10e466e4129227e6df169f..9f4ad8400990ea78cdf27957d3e5298b1a6a16b9 100644 +index 6420f55eac43f3fa9c75a07c1a361aa32c1b7289..8c9c50bc4a2200360b53cfbf10de6d0d402bb131 100644 --- a/Source/WebKit/SourcesGTK.txt +++ b/Source/WebKit/SourcesGTK.txt -@@ -132,6 +132,7 @@ UIProcess/API/glib/WebKitAuthenticationRequest.cpp @no-unify - UIProcess/API/glib/WebKitAutomationSession.cpp @no-unify +@@ -133,6 +133,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 +UIProcess/API/glib/WebKitBrowserInspector.cpp @no-unify UIProcess/API/glib/WebKitContextMenuClient.cpp @no-unify UIProcess/API/glib/WebKitCookieManager.cpp @no-unify UIProcess/API/glib/WebKitCredential.cpp @no-unify -@@ -254,6 +255,7 @@ UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp +@@ -255,6 +256,7 @@ UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp UIProcess/cairo/BackingStoreCairo.cpp @no-unify @@ -10438,7 +10344,7 @@ index bc3a817a8540118c9e10e466e4129227e6df169f..9f4ad8400990ea78cdf27957d3e5298b UIProcess/glib/WebPageProxyGLib.cpp UIProcess/glib/WebProcessPoolGLib.cpp UIProcess/glib/WebProcessProxyGLib.cpp -@@ -269,6 +271,7 @@ UIProcess/gtk/ClipboardGtk4.cpp @no-unify +@@ -271,6 +273,7 @@ UIProcess/gtk/ClipboardGtk4.cpp @no-unify UIProcess/gtk/WebDateTimePickerGtk.cpp UIProcess/gtk/GtkSettingsManager.cpp UIProcess/gtk/HardwareAccelerationManager.cpp @@ -10446,7 +10352,7 @@ index bc3a817a8540118c9e10e466e4129227e6df169f..9f4ad8400990ea78cdf27957d3e5298b UIProcess/gtk/KeyBindingTranslator.cpp UIProcess/gtk/PointerLockManager.cpp @no-unify UIProcess/gtk/PointerLockManagerWayland.cpp @no-unify -@@ -280,6 +283,8 @@ UIProcess/gtk/ViewGestureControllerGtk.cpp +@@ -282,6 +285,8 @@ UIProcess/gtk/ViewGestureControllerGtk.cpp UIProcess/gtk/WebColorPickerGtk.cpp UIProcess/gtk/WebContextMenuProxyGtk.cpp UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp @@ -10520,6 +10426,18 @@ index 237f0919b5bbe1a1cb0b8415dfe3d70a6a848294..736c338e76f10a73fbbe2ee2359a3c81 WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp WebProcess/WebPage/AcceleratedSurface.cpp +diff --git a/Source/WebKit/UIProcess/API/APIAttachment.cpp b/Source/WebKit/UIProcess/API/APIAttachment.cpp +index 9a7a422ba18e36be0863c25aa77bc7ab4832a42c..1d0b699d1d28e1320a9dc11fc8937a9a2e3eb323 100644 +--- a/Source/WebKit/UIProcess/API/APIAttachment.cpp ++++ b/Source/WebKit/UIProcess/API/APIAttachment.cpp +@@ -30,6 +30,7 @@ + + #include "WebPageProxy.h" + #include ++#include + #include + + namespace API { diff --git a/Source/WebKit/UIProcess/API/APIAttachment.h b/Source/WebKit/UIProcess/API/APIAttachment.h index 72b3aa0f4e44e7d9c66582586023decafb36c80b..79e75248be46d50b5126c500de6cc51793326023 100644 --- a/Source/WebKit/UIProcess/API/APIAttachment.h @@ -10533,10 +10451,10 @@ index 72b3aa0f4e44e7d9c66582586023decafb36c80b..79e75248be46d50b5126c500de6cc517 OBJC_CLASS NSString; diff --git a/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp b/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp -index 833ec10e3e50da911cd562b05c7b1c2eae56b4ab..088f662a94e799efa359b8017be2c43928bd30c9 100644 +index 524060060c8953ad7bc30fc6bbda8abee5e8d3b0..86797760ad804c77d26f8ea8fbd5998da66079be 100644 --- a/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp +++ b/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp -@@ -53,6 +53,10 @@ Ref ProcessPoolConfiguration::copy() +@@ -52,6 +52,10 @@ Ref ProcessPoolConfiguration::copy() copy->m_ignoreSynchronousMessagingTimeoutsForTesting = this->m_ignoreSynchronousMessagingTimeoutsForTesting; copy->m_attrStyleEnabled = this->m_attrStyleEnabled; copy->m_shouldThrowExceptionForGlobalConstantRedeclaration = this->m_shouldThrowExceptionForGlobalConstantRedeclaration; @@ -10548,10 +10466,10 @@ index 833ec10e3e50da911cd562b05c7b1c2eae56b4ab..088f662a94e799efa359b8017be2c439 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 d0d9fd8fb69f514e1cab4d01a5cefcc415d81f57..ffeb2bc9fbf765feac9256db601a1e299be9c7ab 100644 +index 81ae40e623476c4397447d0a5572883dd2abe6cd..bd23ba5fff29eb6bea285ea3b90f3cdea81401b9 100644 --- a/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h +++ b/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h -@@ -99,6 +99,16 @@ public: +@@ -96,6 +96,16 @@ public: bool shouldThrowExceptionForGlobalConstantRedeclaration() const { return m_shouldThrowExceptionForGlobalConstantRedeclaration; } void setShouldThrowExceptionForGlobalConstantRedeclaration(bool shouldThrow) { m_shouldThrowExceptionForGlobalConstantRedeclaration = shouldThrow; } @@ -10568,7 +10486,7 @@ index d0d9fd8fb69f514e1cab4d01a5cefcc415d81f57..ffeb2bc9fbf765feac9256db601a1e29 bool alwaysRunsAtBackgroundPriority() const { return m_alwaysRunsAtBackgroundPriority; } void setAlwaysRunsAtBackgroundPriority(bool alwaysRunsAtBackgroundPriority) { m_alwaysRunsAtBackgroundPriority = alwaysRunsAtBackgroundPriority; } -@@ -177,6 +187,10 @@ private: +@@ -170,6 +180,10 @@ private: bool m_ignoreSynchronousMessagingTimeoutsForTesting { false }; bool m_attrStyleEnabled { false }; bool m_shouldThrowExceptionForGlobalConstantRedeclaration { true }; @@ -10580,10 +10498,10 @@ index d0d9fd8fb69f514e1cab4d01a5cefcc415d81f57..ffeb2bc9fbf765feac9256db601a1e29 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 43178b087ff4e508a0508ed8b82febaf182ec33a..affc9d1353497daf149ca66bce35cbc95e957052 100644 +index 87fe6179167eb7712c740ddb3e9129b166e10b09..634b9b19b04fd4ce4ddecb0958faf72a6539fe3a 100644 --- a/Source/WebKit/UIProcess/API/APIUIClient.h +++ b/Source/WebKit/UIProcess/API/APIUIClient.h -@@ -108,6 +108,7 @@ public: +@@ -112,6 +112,7 @@ public: virtual void runJavaScriptAlert(WebKit::WebPageProxy&, const WTF::String&, WebKit::WebFrameProxy*, WebKit::FrameInfoData&&, Function&& completionHandler) { completionHandler(); } virtual void runJavaScriptConfirm(WebKit::WebPageProxy&, const WTF::String&, WebKit::WebFrameProxy*, WebKit::FrameInfoData&&, Function&& completionHandler) { completionHandler(false); } virtual void runJavaScriptPrompt(WebKit::WebPageProxy&, const WTF::String&, const WTF::String&, WebKit::WebFrameProxy*, WebKit::FrameInfoData&&, Function&& completionHandler) { completionHandler(WTF::String()); } @@ -10592,7 +10510,7 @@ index 43178b087ff4e508a0508ed8b82febaf182ec33a..affc9d1353497daf149ca66bce35cbc9 virtual void setStatusText(WebKit::WebPageProxy*, const WTF::String&) { } virtual void mouseDidMoveOverElement(WebKit::WebPageProxy&, const WebKit::WebHitTestResultData&, OptionSet, Object*) { } diff --git a/Source/WebKit/UIProcess/API/C/WKInspector.cpp b/Source/WebKit/UIProcess/API/C/WKInspector.cpp -index e1465edd29caf3109c17d44bb3c88aaba98cfbb5..32d569d3240c583334b8b6512407430fd448ae75 100644 +index 988637e3347397ae751691f6356d090e1e5a9dbf..474c27a0849324c915e304d61b73ba4f98fdf365 100644 --- a/Source/WebKit/UIProcess/API/C/WKInspector.cpp +++ b/Source/WebKit/UIProcess/API/C/WKInspector.cpp @@ -28,6 +28,11 @@ @@ -10605,9 +10523,9 @@ index e1465edd29caf3109c17d44bb3c88aaba98cfbb5..32d569d3240c583334b8b6512407430f +#endif + #include "WKAPICast.h" + #include "WebFrameProxy.h" #include "WebInspectorUIProxy.h" - #include "WebPageProxy.h" -@@ -130,4 +135,11 @@ void WKInspectorToggleElementSelection(WKInspectorRef inspectorRef) +@@ -131,4 +136,11 @@ void WKInspectorToggleElementSelection(WKInspectorRef inspectorRef) toImpl(inspectorRef)->toggleElementSelection(); } @@ -10635,10 +10553,10 @@ index 026121d114c5fcad84c1396be8d692625beaa3bd..edd6e5cae033124c589959a42522fde0 } #endif diff --git a/Source/WebKit/UIProcess/API/C/WKPage.cpp b/Source/WebKit/UIProcess/API/C/WKPage.cpp -index d4490865e59b4400791bebe67cfa061cdac946b1..0d1a71b09ce83b056d017882bbdb4aa700e7b1b8 100644 +index 03f4804b4a8e9d6772a215c69d161a85a5c0df56..903fe0f16a4db6164d7c521b9a0a9a09aadeb71b 100644 --- a/Source/WebKit/UIProcess/API/C/WKPage.cpp +++ b/Source/WebKit/UIProcess/API/C/WKPage.cpp -@@ -1759,6 +1759,13 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient +@@ -1764,6 +1764,13 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient completionHandler(String()); } @@ -10652,7 +10570,7 @@ index d4490865e59b4400791bebe67cfa061cdac946b1..0d1a71b09ce83b056d017882bbdb4aa7 void setStatusText(WebPageProxy* page, const String& text) final { if (!m_client.setStatusText) -@@ -1788,6 +1795,8 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient +@@ -1793,6 +1800,8 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient { if (!m_client.didNotHandleKeyEvent) return; @@ -10722,7 +10640,7 @@ index 65d8ab73430840b02682ce879d1db18b9597d6b0..ea89752f4b90018ea1f008e0d89f9a2a // Version 15. WKPageDecidePolicyForSpeechRecognitionPermissionRequestCallback decidePolicyForSpeechRecognitionPermissionRequest; diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm b/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm -index 9909bb725a8ff9c42caa40cca3719a22d8a80034..fbb0ea9afc27b15966f1b71d7aa3d9c471e3b01b 100644 +index 75ccc77ff06a8a7f5fa2463bf1d863ec569579a7..fa72623e5176883353f5a1bf8e357a0e5b28a72b 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm @@ -691,6 +691,16 @@ - (void)_setMediaCaptureRequiresSecureConnection:(BOOL)requiresSecureConnection @@ -10743,7 +10661,7 @@ index 9909bb725a8ff9c42caa40cca3719a22d8a80034..fbb0ea9afc27b15966f1b71d7aa3d9c4 { return _preferences->inactiveMediaCaptureSteamRepromptIntervalInMinutes(); diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h b/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h -index a8cad3e243372193fef5262aa9fc8e5d743a5e7d..7ab43ea66c7264048d36e1142bfec3316900b168 100644 +index cc434efae7e94c8c1e4f6f9a4a023a84b48def3a..3253e67d1787d4349458a61a90fac7fa06cf7dfe 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h +++ b/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h @@ -122,6 +122,7 @@ typedef NS_ENUM(NSInteger, _WKPitchCorrectionAlgorithm) { @@ -10793,7 +10711,7 @@ index 67da62d607a6cfe180c61776467f95f872312bf0..62a2494b0aaaef0910510dd6a30fcd3b NS_ASSUME_NONNULL_END diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm -index ec6c586f4a0d0ffbee0eea0e21d58a2a047a6b7f..5eb4e4ae82db7a45d3fa2ae4c64fddd2ab3d4815 100644 +index 862ac19f8108e65e2efc5145e6a354d752e6ea6c..89e682ddaab4c5ef39f834370dd145434556287f 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm @@ -50,6 +50,7 @@ @@ -10981,7 +10899,7 @@ index 8c8c9d77a3071f4093994c27dbe8e448ed1c62d8..dffc5b228d0d7d964954aa4e93e23519 template<> struct WrapperTraits { diff --git a/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h b/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h -index a8119337eead3c07fb7cceab832ba9ad51f7a9b1..ea4c7ad8234e0ee237b49fdc268dca70c11448ac 100644 +index 70b039a44ad29aab69f724a1da9b0917cd1f01cd..09ed375c4a4c748acaaa32c8ec99e5a81895d793 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)) @@ -10993,10 +10911,10 @@ index a8119337eead3c07fb7cceab832ba9ad51f7a9b1..ea4c7ad8234e0ee237b49fdc268dca70 @property (nonatomic) BOOL processSwapsOnWindowOpenWithOpener WK_API_AVAILABLE(macos(10.14), ios(12.0)); @property (nonatomic) BOOL processSwapsOnNavigationWithinSameNonHTTPFamilyProtocol WK_API_AVAILABLE(macos(12.0), ios(15.0)); diff --git a/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm b/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm -index 65589f14fc1bf38f97cf244fc0812c0d8e513aa1..496d4b5ac7d840678a6d5b73df54ee69ea4f3c7d 100644 +index 238b8f3cc40232dcebacd31e021b4626ec8f156e..2dee0bae80ab75d428a4b22a5c84ca5edd3b210a 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm -@@ -257,6 +257,16 @@ - (BOOL)processSwapsOnNavigation +@@ -241,6 +241,16 @@ - (BOOL)processSwapsOnNavigation return _processPoolConfiguration->processSwapsOnNavigation(); } @@ -11252,10 +11170,10 @@ index 0000000000000000000000000000000000000000..e0b1da48465c850f541532ed961d1b77 +WebKit::WebPageProxy* webkitBrowserInspectorCreateNewPageInContext(WebKitWebContext*); +void webkitBrowserInspectorQuitApplication(); diff --git a/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp b/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp -index 81f7f11584960e18a053964303128efb0e5032f3..6dd253a561cb8c56e874a1283e00ffe37bc6a9c6 100644 +index d75c5ee48b2cedc8df984841fd52478b0620078c..d9cd7bf5749ff192eb938b12b4c2d82bb73e6026 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp -@@ -92,6 +92,10 @@ private: +@@ -93,6 +93,10 @@ private: page.makeViewBlankIfUnpaintedSinceLastLoadCommit(); webkitWebViewRunJavaScriptPrompt(m_webView, message.utf8(), defaultValue.utf8(), WTFMove(completionHandler)); } @@ -11267,7 +11185,7 @@ index 81f7f11584960e18a053964303128efb0e5032f3..6dd253a561cb8c56e874a1283e00ffe3 bool canRunBeforeUnloadConfirmPanel() const final { return true; } diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp -index 44784336025d2e24aae9936474467b52dcc77708..2ce6d8299fae359b85e906907d26ec581eb17f72 100644 +index e1715db53e7edf1e39ef58f114d75e777bca40db..bb8133d1dba3438271da76c6ce093799a2c57ff7 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp @@ -413,10 +413,19 @@ static void webkitWebContextSetProperty(GObject* object, guint propID, const GVa @@ -11309,18 +11227,18 @@ 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 837aa061fcabefd01f9637be9baffef588e9ff51..f886e0244c035b74b3581da467701c235c3e0e24 100644 +index ea08fc61a2164c99ee92e5c8c3cbc63b0b2a8f0f..b000450f7aa63281a54090d71594364cd2e8e77d 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp -@@ -32,6 +32,7 @@ - #include "ProvisionalPageProxy.h" +@@ -34,6 +34,7 @@ #include "WebContextMenuItem.h" #include "WebContextMenuItemData.h" + #include "WebFrameProxy.h" +#include "WebPageInspectorController.h" #include "WebKitAuthenticationRequestPrivate.h" #include "WebKitBackForwardListPrivate.h" #include "WebKitContextMenuClient.h" -@@ -49,6 +50,7 @@ +@@ -51,6 +52,7 @@ #include "WebKitNavigationClient.h" #include "WebKitNotificationPrivate.h" #include "WebKitPermissionStateQueryPrivate.h" @@ -11328,7 +11246,7 @@ index 837aa061fcabefd01f9637be9baffef588e9ff51..f886e0244c035b74b3581da467701c23 #include "WebKitPrivate.h" #include "WebKitResponsePolicyDecision.h" #include "WebKitScriptDialogPrivate.h" -@@ -87,7 +89,6 @@ +@@ -91,7 +93,6 @@ #if PLATFORM(GTK) #include "WebKitFaviconDatabasePrivate.h" #include "WebKitInputMethodContextImplGtk.h" @@ -11336,7 +11254,7 @@ index 837aa061fcabefd01f9637be9baffef588e9ff51..f886e0244c035b74b3581da467701c23 #include "WebKitPrintOperationPrivate.h" #include "WebKitWebInspectorPrivate.h" #include "WebKitWebViewBasePrivate.h" -@@ -138,6 +139,7 @@ enum { +@@ -142,6 +143,7 @@ enum { CLOSE, SCRIPT_DIALOG, @@ -11344,7 +11262,7 @@ index 837aa061fcabefd01f9637be9baffef588e9ff51..f886e0244c035b74b3581da467701c23 DECIDE_POLICY, PERMISSION_REQUEST, -@@ -485,6 +487,9 @@ GRefPtr WebKitWebViewClient::showOptionMenu(WebKitPopupMenu& p +@@ -489,6 +491,9 @@ GRefPtr WebKitWebViewClient::showOptionMenu(WebKitPopupMenu& p void WebKitWebViewClient::frameDisplayed(WKWPE::View&) { @@ -11354,7 +11272,7 @@ index 837aa061fcabefd01f9637be9baffef588e9ff51..f886e0244c035b74b3581da467701c23 { SetForScope inFrameDisplayedGuard(m_webView->priv->inFrameDisplayed, true); for (const auto& callback : m_webView->priv->frameDisplayedCallbacks) { -@@ -575,7 +580,7 @@ static gboolean webkitWebViewDecidePolicy(WebKitWebView*, WebKitPolicyDecision* +@@ -579,7 +584,7 @@ static gboolean webkitWebViewDecidePolicy(WebKitWebView*, WebKitPolicyDecision* static gboolean webkitWebViewPermissionRequest(WebKitWebView*, WebKitPermissionRequest* request) { @@ -11363,7 +11281,7 @@ index 837aa061fcabefd01f9637be9baffef588e9ff51..f886e0244c035b74b3581da467701c23 if (WEBKIT_IS_POINTER_LOCK_PERMISSION_REQUEST(request)) { webkit_permission_request_allow(request); return TRUE; -@@ -1822,6 +1827,15 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) +@@ -1826,6 +1831,15 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) G_TYPE_BOOLEAN, 1, WEBKIT_TYPE_SCRIPT_DIALOG); @@ -11379,7 +11297,7 @@ index 837aa061fcabefd01f9637be9baffef588e9ff51..f886e0244c035b74b3581da467701c23 /** * WebKitWebView::decide-policy: * @web_view: the #WebKitWebView on which the signal is emitted -@@ -2620,6 +2634,23 @@ void webkitWebViewRunJavaScriptBeforeUnloadConfirm(WebKitWebView* webView, const +@@ -2624,6 +2638,23 @@ void webkitWebViewRunJavaScriptBeforeUnloadConfirm(WebKitWebView* webView, const webkit_script_dialog_unref(webView->priv->currentScriptDialog); } @@ -11404,10 +11322,10 @@ index 837aa061fcabefd01f9637be9baffef588e9ff51..f886e0244c035b74b3581da467701c23 { if (!webView->priv->currentScriptDialog) diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h b/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h -index b9430167f605a38f31e38679118220d372a33d6a..8462bbdea5cf4047ec027aa47ed6f09dfec829a6 100644 +index c2c3aaa89344742b3e53e2e7afc004828e02b46e..7863882532a6cf4cb592a475ff165a264c3c1913 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h -@@ -64,6 +64,7 @@ void webkitWebViewRunJavaScriptAlert(WebKitWebView*, const CString& message, Fun +@@ -65,6 +65,7 @@ void webkitWebViewRunJavaScriptAlert(WebKitWebView*, const CString& message, Fun void webkitWebViewRunJavaScriptConfirm(WebKitWebView*, const CString& message, Function&& completionHandler); void webkitWebViewRunJavaScriptPrompt(WebKitWebView*, const CString& message, const CString& defaultText, Function&& completionHandler); void webkitWebViewRunJavaScriptBeforeUnloadConfirm(WebKitWebView*, const CString& message, Function&& completionHandler); @@ -11416,7 +11334,7 @@ index b9430167f605a38f31e38679118220d372a33d6a..8462bbdea5cf4047ec027aa47ed6f09d bool webkitWebViewIsScriptDialogRunning(WebKitWebView*, WebKitScriptDialog*); String webkitWebViewGetCurrentScriptDialogMessage(WebKitWebView*); diff --git a/Source/WebKit/UIProcess/API/glib/webkit.h.in b/Source/WebKit/UIProcess/API/glib/webkit.h.in -index 5fed4419ef7a7a421777aeff8e6d780da49e1258..b34870bb54ffd3ab7766054a04ca069a6e299900 100644 +index 548329e0ecb18dc5a14ab2af502720079dc63167..0bca1ab6fa8e12f23d7ece5b1a5362ec9f4240d0 100644 --- a/Source/WebKit/UIProcess/API/glib/webkit.h.in +++ b/Source/WebKit/UIProcess/API/glib/webkit.h.in @@ -45,6 +45,7 @@ @@ -11425,13 +11343,13 @@ index 5fed4419ef7a7a421777aeff8e6d780da49e1258..b34870bb54ffd3ab7766054a04ca069a #include <@API_INCLUDE_PREFIX@/WebKitBackForwardListItem.h> +#include <@API_INCLUDE_PREFIX@/WebKitBrowserInspector.h> #if PLATFORM(GTK) + #include <@API_INCLUDE_PREFIX@/WebKitClipboardPermissionRequest.h> #include <@API_INCLUDE_PREFIX@/WebKitColorChooserRequest.h> - #endif diff --git a/Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp b/Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp -index 52e60b0319cb5cfaa453ca216ede56d667635995..ba71ffa7d9695783d27e2287e23c5eed826117cf 100644 +index 02e09ebc89d4a7cbf8023340b763c7f8d6c20eb1..0a89bec6e3b3ef9032a725ec2f5feb8edfe20dd0 100644 --- a/Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp +++ b/Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp -@@ -252,6 +252,8 @@ void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent& event, bool +@@ -257,6 +257,8 @@ void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent& event, bool { if (wasEventHandled || event.type() != WebEventType::KeyDown || !event.nativeEvent()) return; @@ -11528,10 +11446,10 @@ index 0000000000000000000000000000000000000000..45221096280941d747ef3f46749b1466 + +#endif diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -index 0ec20131969bf50962eecbcb573e676abd1a35f6..0ac8b44b61a2ed4d3f5e91d702e4a48773b8cf94 100644 +index ffc0e771c69395a654b1b20d14ba6d1c98e38352..3d799cc25c1ec200ee0e5dddd0dd52cd722c9fc4 100644 --- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp +++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -@@ -2685,6 +2685,11 @@ void webkitWebViewBaseResetClickCounter(WebKitWebViewBase* webkitWebViewBase) +@@ -2747,6 +2747,11 @@ void webkitWebViewBaseResetClickCounter(WebKitWebViewBase* webkitWebViewBase) #endif } @@ -11562,10 +11480,10 @@ index 1204b4342c1cf8d38d215c1c8628bd7eb1fbd415..8534e582f54a343dc3bf6e01b8e43270 + +WebKit::AcceleratedBackingStore* webkitWebViewBaseGetAcceleratedBackingStore(WebKitWebViewBase*); diff --git a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp -index 274e458e6c406826c3f06b1b53b78eecf7b60e85..c0848de352ce3bf14143c75c23e0ea0033057f28 100644 +index 5deb91e3872223142169ae6e16fd6c50b0ceefb9..770d649c54142e4d2f8c972f78a6382a9a92564b 100644 --- a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp +++ b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp -@@ -32,8 +32,11 @@ +@@ -33,8 +33,11 @@ #include "NativeWebWheelEvent.h" #include "TouchGestureController.h" #include "WPEView.h" @@ -11577,7 +11495,7 @@ index 274e458e6c406826c3f06b1b53b78eecf7b60e85..c0848de352ce3bf14143c75c23e0ea00 #include "WebKitPopupMenu.h" #include #include -@@ -189,7 +192,7 @@ WebCore::IntPoint PageClientImpl::accessibilityScreenToRootView(const WebCore::I +@@ -190,7 +193,7 @@ WebCore::IntPoint PageClientImpl::accessibilityScreenToRootView(const WebCore::I WebCore::IntRect PageClientImpl::rootViewToAccessibilityScreen(const WebCore::IntRect& rect) { @@ -11586,7 +11504,7 @@ index 274e458e6c406826c3f06b1b53b78eecf7b60e85..c0848de352ce3bf14143c75c23e0ea00 } void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent&, bool) -@@ -440,4 +443,23 @@ WebKitWebResourceLoadManager* PageClientImpl::webResourceLoadManager() +@@ -441,4 +444,23 @@ WebKitWebResourceLoadManager* PageClientImpl::webResourceLoadManager() return m_view.webResourceLoadManager(); } @@ -11633,7 +11551,7 @@ index 948d0f4a4759afa1533cd84a190f3d56e54a5cb5..fc43ce6cc53636b5e6f9b5af9d6609b6 }; diff --git a/Source/WebKit/UIProcess/API/wpe/WPEView.cpp b/Source/WebKit/UIProcess/API/wpe/WPEView.cpp -index cf80591763eb13effd889e8493c2db5566e5a8f8..fd6fbd3ddd8f10d9d8496919367042283cc8e9da 100644 +index 8cbd950868a296eee8b38d07c8212d93c2790162..dd660f6392f02b366a02aeac1847b6b03f20eadd 100644 --- a/Source/WebKit/UIProcess/API/wpe/WPEView.cpp +++ b/Source/WebKit/UIProcess/API/wpe/WPEView.cpp @@ -76,7 +76,9 @@ View::View(struct wpe_view_backend* backend, const API::PageConfiguration& baseC @@ -11997,7 +11915,7 @@ index e4b92ace1531090ae38a7aec3d3d4febf19aee84..43690f9ef4969a39084501613bfc00a7 + +cairo_surface_t* webkitWebViewBackendTakeScreenshot(WebKitWebViewBackend*); diff --git a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp -index 7bc7b93a1e449e0d918d538783e8013367a6ae4a..8ed8c6dbb0ab4d5ba5c885c15679313a1f440365 100644 +index 38ca49dd6220ead604784d4f1399e2edd0ad1fb5..faed1ded037ca66df850200dfb46bafd846023d4 100644 --- a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp +++ b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp @@ -123,7 +123,11 @@ void AuxiliaryProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& lau @@ -12013,7 +11931,7 @@ index 7bc7b93a1e449e0d918d538783e8013367a6ae4a..8ed8c6dbb0ab4d5ba5c885c15679313a platformGetLaunchOptions(launchOptions); } diff --git a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h -index c0eee8c681b6af387496172cd54420777cb21f26..13127cabedfa2be1efea02d6c003064f38192b7c 100644 +index 03d81ec4c46f27bb952dbf50b6a7be5e2aa2a82d..36b6a07d03c6f6bf7f26f832f963cb2b55a2d3e3 100644 --- a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h +++ b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h @@ -199,12 +199,15 @@ protected: @@ -12226,10 +12144,10 @@ index 11091dca0bc84e5390287f2ce5ea05910eb18550..892f2c01a31d815675536eca99341f76 bool webViewRunBeforeUnloadConfirmPanelWithMessageInitiatedByFrameCompletionHandler : 1; bool webViewRequestGeolocationPermissionForFrameDecisionHandler : 1; diff --git a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm -index b05676183fba02bd2a8e6b58d2cb02edebff01c2..9cb7e8ca5a4cf32b2456197f08b31d80eca3b067 100644 +index 770ae367af73461bcd838bc6326527e2baae44dd..55e7638a1aea274bbbefd66675f3176f5edd3d4d 100644 --- a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm +++ b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm -@@ -112,6 +112,7 @@ void UIDelegate::setDelegate(id delegate) +@@ -116,6 +116,7 @@ void UIDelegate::setDelegate(id delegate) m_delegateMethods.webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:)]; m_delegateMethods.webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:)]; m_delegateMethods.webViewRunJavaScriptTextInputPanelWithPromptDefaultTextInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:)]; @@ -12237,7 +12155,7 @@ index b05676183fba02bd2a8e6b58d2cb02edebff01c2..9cb7e8ca5a4cf32b2456197f08b31d80 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:)]; -@@ -419,6 +420,15 @@ void UIDelegate::UIClient::runJavaScriptPrompt(WebPageProxy& page, const WTF::St +@@ -423,6 +424,15 @@ void UIDelegate::UIClient::runJavaScriptPrompt(WebPageProxy& page, const WTF::St }).get()]; } @@ -12254,10 +12172,10 @@ index b05676183fba02bd2a8e6b58d2cb02edebff01c2..9cb7e8ca5a4cf32b2456197f08b31d80 { if (!m_uiDelegate) diff --git a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm -index b379e63e52cd33784be2aade97eaa980ef368068..f6b7b2e8eebc632dd2280febabc0bcad1017f93a 100644 +index 348d52ac45c4c4c65addaa8216d66a33fe1d963d..f4847f4f1fcdfbce30dfe3ef5b2a0f01e0892718 100644 --- a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm +++ b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm -@@ -38,6 +38,7 @@ +@@ -39,6 +39,7 @@ #import "ModalContainerControlClassifier.h" #import "NetworkConnectionIntegrityHelpers.h" #import "PageClient.h" @@ -12265,7 +12183,7 @@ index b379e63e52cd33784be2aade97eaa980ef368068..f6b7b2e8eebc632dd2280febabc0bcad #import "PlaybackSessionManagerProxy.h" #import "QuickLookThumbnailLoader.h" #import "RemoteLayerTreeTransaction.h" -@@ -292,9 +293,66 @@ bool WebPageProxy::scrollingUpdatesDisabledForTesting() +@@ -295,10 +296,87 @@ bool WebPageProxy::scrollingUpdatesDisabledForTesting() void WebPageProxy::startDrag(const DragItem& dragItem, const ShareableBitmapHandle& dragImageHandle) { @@ -12305,6 +12223,7 @@ index b379e63e52cd33784be2aade97eaa980ef368068..f6b7b2e8eebc632dd2280febabc0bcad pageClient().startDrag(dragItem, dragImageHandle); } +-#endif +void WebPageProxy::releaseInspectorDragPasteboard() { + if (!!m_dragSelectionData) + m_dragSelectionData = std::nullopt; @@ -12329,14 +12248,35 @@ index b379e63e52cd33784be2aade97eaa980ef368068..f6b7b2e8eebc632dd2280febabc0bcad + } +} + - // FIXME: Move these functions to WebPageProxyIOS.mm. - #if PLATFORM(IOS_FAMILY) ++// FIXME: Move these functions to WebPageProxyIOS.mm. ++#if PLATFORM(IOS_FAMILY) ++ ++void WebPageProxy::setPromisedDataForImage(const String&, const SharedMemory::Handle&, const String&, const String&, const String&, const String&, const String&, const SharedMemory::Handle&, const String&) ++{ ++ notImplemented(); ++} ++ ++void WebPageProxy::setDragCaretRect(const IntRect& dragCaretRect) ++{ ++ if (m_currentDragCaretRect == dragCaretRect) ++ return; ++ ++ auto previousRect = m_currentDragCaretRect; ++ m_currentDragCaretRect = dragCaretRect; ++ pageClient().didChangeDragCaretRect(previousRect, dragCaretRect); ++} ++ ++#endif // PLATFORM(IOS_FAMILY) ++ ++#endif // ENABLE(DRAG_SUPPORT) + + #if ENABLE(ATTACHMENT_ELEMENT) diff --git a/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm b/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm -index 35545a2889043cf0d726f557925c7010127f7d87..7885a50d4c6c4ebf2c40588e1089ba98c1b0c136 100644 +index def2b80112e24a7c494ee9e710ac42981a637607..d1097242848557d8938ee5710d59dd36f27a17b2 100644 --- a/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm +++ b/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm -@@ -467,7 +467,7 @@ void WebProcessPool::platformInitializeWebProcess(const WebProcessProxy& process +@@ -466,7 +466,7 @@ void WebProcessPool::platformInitializeWebProcess(const WebProcessProxy& process auto screenProperties = WebCore::collectScreenProperties(); parameters.screenProperties = WTFMove(screenProperties); #if PLATFORM(MAC) @@ -12345,7 +12285,7 @@ index 35545a2889043cf0d726f557925c7010127f7d87..7885a50d4c6c4ebf2c40588e1089ba98 #endif #if PLATFORM(IOS) && HAVE(AGX_COMPILER_SERVICE) -@@ -741,8 +741,8 @@ void WebProcessPool::registerNotificationObservers() +@@ -740,8 +740,8 @@ void WebProcessPool::registerNotificationObservers() }]; m_scrollerStyleNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSPreferredScrollerStyleDidChangeNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) { @@ -12357,12 +12297,12 @@ index 35545a2889043cf0d726f557925c7010127f7d87..7885a50d4c6c4ebf2c40588e1089ba98 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 9a08675b5a84f00f19f19605b2a1e1bba9c70203..acc16ad65ac0fabcd97300f98fc9a44a86a01d05 100644 +index 86f4d20a8a26fcc209ea70445770cf71f7190d6e..8155187eaf80f55cea238c2c5d69d09e8b71759f 100644 --- a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp +++ b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp -@@ -32,13 +32,16 @@ - #include "DrawingAreaProxyMessages.h" +@@ -33,13 +33,16 @@ #include "LayerTreeContext.h" + #include "MessageSenderInlines.h" #include "UpdateInfo.h" +#include "WebPageInspectorController.h" #include "WebPageProxy.h" @@ -12377,7 +12317,7 @@ index 9a08675b5a84f00f19f19605b2a1e1bba9c70203..acc16ad65ac0fabcd97300f98fc9a44a #include #endif -@@ -46,6 +49,13 @@ +@@ -47,6 +50,13 @@ #include #endif @@ -12391,7 +12331,7 @@ index 9a08675b5a84f00f19f19605b2a1e1bba9c70203..acc16ad65ac0fabcd97300f98fc9a44a namespace WebKit { using namespace WebCore; -@@ -114,6 +124,10 @@ void DrawingAreaProxyCoordinatedGraphics::paint(BackingStore::PlatformGraphicsCo +@@ -115,6 +125,10 @@ void DrawingAreaProxyCoordinatedGraphics::paint(BackingStore::PlatformGraphicsCo void DrawingAreaProxyCoordinatedGraphics::sizeDidChange() { @@ -12402,7 +12342,7 @@ index 9a08675b5a84f00f19f19605b2a1e1bba9c70203..acc16ad65ac0fabcd97300f98fc9a44a backingStoreStateDidChange(RespondImmediately); } -@@ -122,6 +136,11 @@ void DrawingAreaProxyCoordinatedGraphics::deviceScaleFactorDidChange() +@@ -123,6 +137,11 @@ void DrawingAreaProxyCoordinatedGraphics::deviceScaleFactorDidChange() backingStoreStateDidChange(RespondImmediately); } @@ -12414,7 +12354,7 @@ index 9a08675b5a84f00f19f19605b2a1e1bba9c70203..acc16ad65ac0fabcd97300f98fc9a44a void DrawingAreaProxyCoordinatedGraphics::waitForBackingStoreUpdateOnNextPaint() { m_hasReceivedFirstUpdate = true; -@@ -244,6 +263,45 @@ void DrawingAreaProxyCoordinatedGraphics::targetRefreshRateDidChange(unsigned ra +@@ -245,6 +264,45 @@ void DrawingAreaProxyCoordinatedGraphics::targetRefreshRateDidChange(unsigned ra m_webPageProxy.send(Messages::DrawingArea::TargetRefreshRateDidChange(rate), m_identifier); } @@ -12605,7 +12545,7 @@ index 42e9c901f866a2892396c83441ecbc5638270b52..42d2f292df2f337e302a8ec281333c70 } // namespace WebKit diff --git a/Source/WebKit/UIProcess/DrawingAreaProxy.h b/Source/WebKit/UIProcess/DrawingAreaProxy.h -index 44b79059000992694a448846e7bcd9fb1d80a4c1..ff2413f9d9bf848b4efa20fdab7f37ae34cffb1a 100644 +index 06113cdff03f01243e04a62cbf6dd2c2da8552a3..23540238c04242df7f791df288c57b75951efe2f 100644 --- a/Source/WebKit/UIProcess/DrawingAreaProxy.h +++ b/Source/WebKit/UIProcess/DrawingAreaProxy.h @@ -85,6 +85,7 @@ public: @@ -12616,7 +12556,7 @@ index 44b79059000992694a448846e7bcd9fb1d80a4c1..ff2413f9d9bf848b4efa20fdab7f37ae #if USE(COORDINATED_GRAPHICS) || USE(TEXTURE_MAPPER) // The timeout we use when waiting for a UpdateGeometry reply. -@@ -163,6 +164,10 @@ private: +@@ -165,6 +166,10 @@ private: virtual void didUpdateBackingStoreState(uint64_t /* backingStoreStateID */, const UpdateInfo&, const LayerTreeContext&) { } virtual void exitAcceleratedCompositingMode(uint64_t /* backingStoreStateID */, const UpdateInfo&) { } #endif @@ -12639,6 +12579,18 @@ index 8d8898b79532e874b0ea3b506342b3621acc37fd..294cb8ebed6cab59270abbc1773fd082 + DidChangeAcceleratedCompositingMode(bool enabled) +#endif } +diff --git a/Source/WebKit/UIProcess/HighPerformanceGraphicsUsageSampler.cpp b/Source/WebKit/UIProcess/HighPerformanceGraphicsUsageSampler.cpp +index 5c00b67736df96d56554c143f5db6aee78a0fb91..a04ceb13d42f7fa3a408b769a752a5c0b9d7cfa3 100644 +--- a/Source/WebKit/UIProcess/HighPerformanceGraphicsUsageSampler.cpp ++++ b/Source/WebKit/UIProcess/HighPerformanceGraphicsUsageSampler.cpp +@@ -29,6 +29,7 @@ + #include "WebPageProxy.h" + #include "WebProcessPool.h" + #include ++#include + + namespace WebKit { + using namespace WebCore; diff --git a/Source/WebKit/UIProcess/Inspector/Agents/CairoJpegEncoder.cpp b/Source/WebKit/UIProcess/Inspector/Agents/CairoJpegEncoder.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f9af359a8b81babaf855132ec168feb22ef5799b @@ -13969,12 +13921,12 @@ index 0f83f41855bf996b5846e677934a202851941d54..cf4afbd2cccf4607dd8d6e6d7983b03c @class _WKInspectorExtension; diff --git a/Source/WebKit/UIProcess/Inspector/InspectorTargetProxy.cpp b/Source/WebKit/UIProcess/Inspector/InspectorTargetProxy.cpp -index cfcacce0122bb03fa47fd8580cfbedfb2ad37d48..5619cbd7e4e842be0d8e2db2c64a7e0028838808 100644 +index 4a945dd8063cd7cd90174f6d4cd4197bcb98a101..16e73d6a724dd80487b7b140aaaccfec253eb7aa 100644 --- a/Source/WebKit/UIProcess/Inspector/InspectorTargetProxy.cpp +++ b/Source/WebKit/UIProcess/Inspector/InspectorTargetProxy.cpp -@@ -27,11 +27,10 @@ - #include "InspectorTargetProxy.h" +@@ -28,11 +28,10 @@ + #include "MessageSenderInlines.h" #include "ProvisionalPageProxy.h" -#include "WebFrameProxy.h" +#include "WebPageInspectorController.h" @@ -13985,7 +13937,7 @@ index cfcacce0122bb03fa47fd8580cfbedfb2ad37d48..5619cbd7e4e842be0d8e2db2c64a7e00 namespace WebKit { -@@ -39,18 +38,17 @@ using namespace Inspector; +@@ -40,18 +39,17 @@ using namespace Inspector; std::unique_ptr InspectorTargetProxy::create(WebPageProxy& page, const String& targetId, Inspector::InspectorTargetType type) { @@ -14009,7 +13961,7 @@ index cfcacce0122bb03fa47fd8580cfbedfb2ad37d48..5619cbd7e4e842be0d8e2db2c64a7e00 , m_identifier(targetId) , m_type(type) { -@@ -97,6 +95,31 @@ void InspectorTargetProxy::didCommitProvisionalTarget() +@@ -98,6 +96,31 @@ void InspectorTargetProxy::didCommitProvisionalTarget() m_provisionalPage = nullptr; } @@ -14784,10 +14736,10 @@ index 0000000000000000000000000000000000000000..d0e11ed81a6257c011df23d5870da740 +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..1c62305fc60fd18f672a53e19b2fdaf8d3bf9923 +index 0000000000000000000000000000000000000000..e71832c2e6ec5d44ada8817b18588da8084af2ad --- /dev/null +++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp -@@ -0,0 +1,975 @@ +@@ -0,0 +1,976 @@ +/* + * Copyright (C) 2019 Microsoft Corporation. + * @@ -14832,6 +14784,7 @@ index 0000000000000000000000000000000000000000..1c62305fc60fd18f672a53e19b2fdaf8 +#include "WebAutomationSession.h" +#include "WebGeolocationManagerProxy.h" +#include "WebGeolocationPosition.h" ++#include "WebFrameProxy.h" +#include "WebInspectorUtilities.h" +#include "WebPageGroup.h" +#include "WebPageInspectorController.h" @@ -15990,10 +15943,10 @@ index f2377683234a05a45d6dd4ccbb317bdec47feb30..f70925c506dcf1283d1a9b6663f42ccc BOOL result = ::CreateProcess(0, commandLine.data(), 0, 0, true, 0, 0, 0, &startupInfo, &processInformation); diff --git a/Source/WebKit/UIProcess/PageClient.h b/Source/WebKit/UIProcess/PageClient.h -index 27ec5b9f25de4a3b45a32688286eb642a280aa30..b7dae33ba47f4bbe4e1a3e719361bfe9a3b9e342 100644 +index df02b948812a8cbf337a40a5384c5642da9e9ae9..f99f2c2de7b3c52c5e1df47b77c373562258209a 100644 --- a/Source/WebKit/UIProcess/PageClient.h +++ b/Source/WebKit/UIProcess/PageClient.h -@@ -325,6 +325,11 @@ public: +@@ -332,6 +332,11 @@ public: virtual void selectionDidChange() = 0; #endif @@ -16005,6 +15958,18 @@ index 27ec5b9f25de4a3b45a32688286eb642a280aa30..b7dae33ba47f4bbe4e1a3e719361bfe9 #if PLATFORM(COCOA) || PLATFORM(GTK) virtual RefPtr takeViewSnapshot(std::optional&&) = 0; #endif +diff --git a/Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp b/Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp +index 144a678186fb97bee038882e158b2d2617cbb8bb..fa1ebd37207dabb30472629a21adaa114e34b379 100644 +--- a/Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp ++++ b/Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp +@@ -37,6 +37,7 @@ + #include "WebFrameProxy.h" + #include "WebFrameProxyMessages.h" + #include "WebPageMessages.h" ++#include "WebPageProxy.h" + #include "WebPageProxyMessages.h" + #include "WebProcessMessages.h" + #include "WebProcessProxy.h" diff --git a/Source/WebKit/UIProcess/RemoteInspectorPipe.cpp b/Source/WebKit/UIProcess/RemoteInspectorPipe.cpp new file mode 100644 index 0000000000000000000000000000000000000000..dd8b28e692dca4078eb710b2a97e61716126a4cb @@ -16306,8 +16271,20 @@ index 0000000000000000000000000000000000000000..6d04f9290135069359ce6bf872654648 +} // namespace WebKit + +#endif // ENABLE(REMOTE_INSPECTOR) +diff --git a/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm b/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm +index 2239966ba2a82ca3d9909ff6338919504bede651..8c0d221484cc9345eefdb63365d5897423c82810 100644 +--- a/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm ++++ b/Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm +@@ -35,6 +35,7 @@ + #import "WKAnimationDelegate.h" + #import "WebPageProxy.h" + #import "WebProcessProxy.h" ++#import "WindowKind.h" + #import + #import + #import diff --git a/Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp b/Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp -index e6ad1c26ee6c4b6d730317eda114ed30179cd887..45353306b4b913593d2ed2e5ebd5a20d95d50f75 100644 +index c0241ac40e2cadd2d49ea7155e43b8a7dc6f6507..83ed82637b588c97516582ac63bff8ba5429b6ec 100644 --- a/Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp +++ b/Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp @@ -32,6 +32,7 @@ @@ -16319,7 +16296,7 @@ index e6ad1c26ee6c4b6d730317eda114ed30179cd887..45353306b4b913593d2ed2e5ebd5a20d #include #include diff --git a/Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h b/Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h -index ef3458da101afa56c31fcb41fb935d25db571742..7d17b49c60ee4cead65f4bc720b6a3bfb0d7eab9 100644 +index aaa3cd9eaf75a6d7c757b36a0e95f340f11149c7..114bd31141f8b1431883622e596cb169ec58b3bd 100644 --- a/Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h +++ b/Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h @@ -36,6 +36,11 @@ @@ -16334,23 +16311,26 @@ index ef3458da101afa56c31fcb41fb935d25db571742..7d17b49c60ee4cead65f4bc720b6a3bf namespace WebCore { class PlatformWheelEvent; -@@ -76,17 +81,17 @@ public: +@@ -79,18 +84,18 @@ public: void windowScreenDidChange(WebCore::PlatformDisplayID, std::optional); private: - OptionSet determineWheelEventProcessing(const WebCore::PlatformWheelEvent&, WebCore::RectEdges rubberBandableEdges); + OptionSet determineWheelEventProcessing(const WebCore::PlatformWheelEvent&, WebCore::RectEdges rubberBandableEdges); - WebCore::WheelEventHandlingResult scrollingThreadHandleWheelEvent(const WebWheelEvent&, WebCore::RectEdges rubberBandableEdges); +- void scrollingThreadHandleWheelEvent(const WebWheelEvent&, RectEdges rubberBandableEdges); - WebCore::WheelEventHandlingResult internalHandleWheelEvent(const WebCore::PlatformWheelEvent&, OptionSet); ++ void scrollingThreadHandleWheelEvent(const WebWheelEvent&, WebCore::RectEdges rubberBandableEdges); + WebCore::WheelEventHandlingResult internalHandleWheelEvent(const WebCore::PlatformWheelEvent&, OptionSet); WebCore::PlatformWheelEvent filteredWheelEvent(const WebCore::PlatformWheelEvent&); void wheelEventHysteresisUpdated(PAL::HysteresisState); - void willHandleWheelEvent(const NativeWebWheelEvent&); + void willHandleWheelEvent(const WebWheelEvent&); +- void continueWheelEventHandling(WheelEventHandlingResult); - void wheelEventWasHandledByScrollingThread(WheelEventHandlingResult); ++ void continueWheelEventHandling(WebCore::WheelEventHandlingResult); + void wheelEventWasHandledByScrollingThread(WebCore::WheelEventHandlingResult); DisplayLink* displayLink() const; @@ -16367,6 +16347,18 @@ index 1064df65b50b1880db0b49a2c0809a4f414f4704..d6f105eb0742b15923b87bcb29095827 #include #include +diff --git a/Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp b/Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp +index d1e64c8027013f63d530416dba0e4c3ff09f80ef..26d65aa3a1d92f0e2bac0e9ea47bd43646813545 100644 +--- a/Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp ++++ b/Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp +@@ -25,6 +25,7 @@ + + #include "config.h" + #include "SpeechRecognitionRemoteRealtimeMediaSourceManager.h" ++#include "MessageSenderInlines.h" + + #if ENABLE(MEDIA_STREAM) + diff --git a/Source/WebKit/UIProcess/WebAuthentication/Mock/MockLocalConnection.h b/Source/WebKit/UIProcess/WebAuthentication/Mock/MockLocalConnection.h index 684b9616573761123fbcc0d94be29de519ecced6..51ff18323ece0ee15c87d63a1d6fd604377ee968 100644 --- a/Source/WebKit/UIProcess/WebAuthentication/Mock/MockLocalConnection.h @@ -16379,6 +16371,18 @@ index 684b9616573761123fbcc0d94be29de519ecced6..51ff18323ece0ee15c87d63a1d6fd604 #include namespace WebKit { +diff --git a/Source/WebKit/UIProcess/WebContextMenuProxy.cpp b/Source/WebKit/UIProcess/WebContextMenuProxy.cpp +index 4190e7620e6e9822446026242ed634102279b4ff..31e3e0776bc90f1ea7c60065e0ee54d455c5189f 100644 +--- a/Source/WebKit/UIProcess/WebContextMenuProxy.cpp ++++ b/Source/WebKit/UIProcess/WebContextMenuProxy.cpp +@@ -32,6 +32,7 @@ + #include "WebPageMessages.h" + #include "WebPageProxy.h" + #include "WebProcessProxy.h" ++#include "MessageSenderInlines.h" + + namespace WebKit { + diff --git a/Source/WebKit/UIProcess/WebContextMenuProxy.h b/Source/WebKit/UIProcess/WebContextMenuProxy.h index 2071f653d6fd7413dd5336b85d02c6a92cab68b2..af9409c0adfc97a60d4ed789999310a7745a26be 100644 --- a/Source/WebKit/UIProcess/WebContextMenuProxy.h @@ -16392,7 +16396,7 @@ index 2071f653d6fd7413dd5336b85d02c6a92cab68b2..af9409c0adfc97a60d4ed789999310a7 WebPageProxy* page() const { return m_page.get(); } diff --git a/Source/WebKit/UIProcess/WebFrameProxy.cpp b/Source/WebKit/UIProcess/WebFrameProxy.cpp -index 1c60e29803a459509da6d472cac2c82698a67a75..864cdd280a58f25cf3d39d1dd772048d1b9eb113 100644 +index 6dab458b3ca1836a949433da81f93b49b0bb2a82..f08156ca2962bacb8100f6128276e85c421aaea2 100644 --- a/Source/WebKit/UIProcess/WebFrameProxy.cpp +++ b/Source/WebKit/UIProcess/WebFrameProxy.cpp @@ -30,6 +30,7 @@ @@ -16402,15 +16406,15 @@ index 1c60e29803a459509da6d472cac2c82698a67a75..864cdd280a58f25cf3d39d1dd772048d +#include "FormDataReference.h" #include "FrameTreeCreationParameters.h" #include "FrameTreeNodeData.h" - #include "ProvisionalFrameProxy.h" -@@ -38,6 +39,7 @@ + #include "MessageSenderInlines.h" +@@ -39,6 +40,7 @@ #include "WebFrameMessages.h" #include "WebFramePolicyListenerProxy.h" #include "WebFrameProxyMessages.h" +#include "WebPageInspectorController.h" #include "WebPageMessages.h" + #include "WebPageProxy.h" #include "WebPageProxyMessages.h" - #include "WebPasteboardProxy.h" diff --git a/Source/WebKit/UIProcess/WebPageInspectorEmulationAgent.cpp b/Source/WebKit/UIProcess/WebPageInspectorEmulationAgent.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f679253970367597bf4801dc5070edd6b8f4026a @@ -16647,10 +16651,10 @@ index 0000000000000000000000000000000000000000..12657f8e7c4b2596707680d299dc8084 +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/WebPageInspectorInputAgent.cpp b/Source/WebKit/UIProcess/WebPageInspectorInputAgent.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..0c479471cef9c281801cea873f4d6eba678c9243 +index 0000000000000000000000000000000000000000..0b33e978d46982cee8ed5b39c331502770694478 --- /dev/null +++ b/Source/WebKit/UIProcess/WebPageInspectorInputAgent.cpp -@@ -0,0 +1,332 @@ +@@ -0,0 +1,334 @@ +/* + * Copyright (C) 2019 Microsoft Corporation. + * @@ -16677,6 +16681,7 @@ index 0000000000000000000000000000000000000000..0c479471cef9c281801cea873f4d6eba + */ + +#include "config.h" ++#include "MessageSenderInlines.h" +#include "WebPageInspectorInputAgent.h" + +#include "NativeWebKeyboardEvent.h" @@ -16686,6 +16691,7 @@ index 0000000000000000000000000000000000000000..0c479471cef9c281801cea873f4d6eba +#include "WebPageProxy.h" +#include +#include ++#include + +#include "WebPageMessages.h" + @@ -16979,7 +16985,7 @@ index 0000000000000000000000000000000000000000..0c479471cef9c281801cea873f4d6eba + wheelTicks.scale(1.0f / WebCore::Scrollbar::pixelsPerLineStep()); + WebWheelEvent webEvent({WebEventType::Wheel, eventModifiers, timestamp}, {x, y}, {x, y}, delta, wheelTicks, WebWheelEvent::ScrollByPixelWheelEvent); + NativeWebWheelEvent event(webEvent); -+ m_page.handleWheelEvent(event); ++ m_page.handleNativeWheelEvent(event); +} + +} // namespace WebKit @@ -17076,10 +17082,10 @@ index 0000000000000000000000000000000000000000..3e87bf40ced2301f4fb145c6cb31f2cf + +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp -index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12cc457d08 100644 +index 49d45dad29af78417cf7c6fd2072bdc1de5a027f..1cdcd9eccdbb03a97a22f5466316c62ff0bd3815 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.cpp +++ b/Source/WebKit/UIProcess/WebPageProxy.cpp -@@ -157,6 +157,7 @@ +@@ -164,12 +164,14 @@ #include #include #include @@ -17087,26 +17093,34 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 #include #include #include -@@ -180,15 +181,18 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -188,16 +190,19 @@ #include #include #include +#include #include + #include #include #include - #include #include #include +#include #include #include + #include #include +#include #include #include #include -@@ -257,6 +261,9 @@ +@@ -267,6 +272,9 @@ #if PLATFORM(GTK) #include "GtkSettingsManager.h" @@ -17116,16 +17130,16 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 #include #endif -@@ -357,6 +364,8 @@ using namespace WebCore; - - namespace WebKit { +@@ -372,6 +380,8 @@ static constexpr Seconds tryCloseTimeoutDelay = 50_ms; + static constexpr Seconds audibleActivityClearDelay = 10_s; + #endif +using namespace WebCore; + DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, webPageProxyCounter, ("WebPageProxy")); class StorageRequests { -@@ -622,6 +631,10 @@ WebPageProxy::~WebPageProxy() +@@ -643,6 +653,10 @@ WebPageProxy::~WebPageProxy() if (m_preferences->mediaSessionCoordinatorEnabled()) GroupActivitiesSessionNotifier::sharedNotifier().removeWebPage(*this); #endif @@ -17136,15 +17150,15 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 } void WebPageProxy::addAllMessageReceivers() -@@ -1050,6 +1063,7 @@ void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason) - m_pageLoadState.didSwapWebProcesses(); +@@ -1073,6 +1087,7 @@ void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason) + internals().pageLoadState.didSwapWebProcesses(); if (reason != ProcessLaunchReason::InitialProcess) m_drawingArea->waitForBackingStoreUpdateOnNextPaint(); + m_inspectorController->didFinishAttachingToWebProcess(); } void WebPageProxy::didAttachToRunningProcess() -@@ -1435,6 +1449,21 @@ WebProcessProxy& WebPageProxy::ensureRunningProcess() +@@ -1458,6 +1473,21 @@ WebProcessProxy& WebPageProxy::ensureRunningProcess() return m_process; } @@ -17159,14 +17173,14 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 + loadParameters.request = WTFMove(request); + loadParameters.shouldOpenExternalURLsPolicy = WebCore::ShouldOpenExternalURLsPolicy::ShouldNotAllow; + loadParameters.shouldTreatAsContinuingLoad = ShouldTreatAsContinuingLoad::No; -+ m_process->send(Messages::WebPage::LoadRequestInFrameForInspector(loadParameters, frame->frameID()), m_webPageID); ++ m_process->send(Messages::WebPage::LoadRequestInFrameForInspector(loadParameters, frame->frameID()), internals().webPageID); + return navigation; +} + RefPtr WebPageProxy::loadRequest(ResourceRequest&& request, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, API::Object* userData) { if (m_isClosed) -@@ -2011,6 +2040,32 @@ void WebPageProxy::setControlledByAutomation(bool controlled) +@@ -2014,6 +2044,32 @@ void WebPageProxy::setControlledByAutomation(bool controlled) websiteDataStore().networkProcess().send(Messages::NetworkProcess::SetSessionIsControlledByAutomation(m_websiteDataStore->sessionID(), m_controlledByAutomation), 0); } @@ -17183,7 +17197,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 + +void WebPageProxy::setActiveForAutomation(std::optional active) { + m_activeForAutomation = active; -+ OptionSet state; ++ OptionSet state; + state.add(ActivityState::IsFocused); + state.add(ActivityState::WindowIsActive); + state.add(ActivityState::IsVisible); @@ -17199,22 +17213,22 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 void WebPageProxy::createInspectorTarget(const String& targetId, Inspector::InspectorTargetType type) { MESSAGE_CHECK(m_process, !targetId.isEmpty()); -@@ -2205,6 +2260,25 @@ void WebPageProxy::updateActivityState(OptionSet flagsToUpd +@@ -2247,6 +2303,25 @@ void WebPageProxy::updateActivityState(OptionSet flagsToUpdate) { bool wasVisible = isViewVisible(); - m_activityState.remove(flagsToUpdate); + internals().activityState.remove(flagsToUpdate); + + + if (m_activeForAutomation) { + if (*m_activeForAutomation) { + if (flagsToUpdate & ActivityState::IsFocused) -+ m_activityState.add(ActivityState::IsFocused); ++ internals().activityState.add(ActivityState::IsFocused); + if (flagsToUpdate & ActivityState::WindowIsActive) -+ m_activityState.add(ActivityState::WindowIsActive); ++ internals().activityState.add(ActivityState::WindowIsActive); + if (flagsToUpdate & ActivityState::IsVisible) -+ m_activityState.add(ActivityState::IsVisible); ++ internals().activityState.add(ActivityState::IsVisible); + if (flagsToUpdate & ActivityState::IsVisibleOrOccluded) -+ m_activityState.add(ActivityState::IsVisibleOrOccluded); ++ internals().activityState.add(ActivityState::IsVisibleOrOccluded); + } + flagsToUpdate.remove(ActivityState::IsFocused); + flagsToUpdate.remove(ActivityState::WindowIsActive); @@ -17223,9 +17237,9 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 + } + if (flagsToUpdate & ActivityState::IsFocused && pageClient().isViewFocused()) - m_activityState.add(ActivityState::IsFocused); + internals().activityState.add(ActivityState::IsFocused); if (flagsToUpdate & ActivityState::WindowIsActive && pageClient().isViewWindowActive()) -@@ -2841,6 +2915,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag +@@ -2932,6 +3007,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag { if (!hasRunningProcess()) return; @@ -17234,7 +17248,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 #if PLATFORM(GTK) UNUSED_PARAM(dragStorageName); UNUSED_PARAM(sandboxExtensionHandle); -@@ -2851,6 +2927,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag +@@ -2942,6 +3019,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag m_process->assumeReadAccessToBaseURL(*this, url); ASSERT(dragData.platformData()); @@ -17243,12 +17257,12 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 send(Messages::WebPage::PerformDragControllerAction(action, dragData.clientPosition(), dragData.globalPosition(), dragData.draggingSourceOperationMask(), *dragData.platformData(), dragData.flags())); #else send(Messages::WebPage::PerformDragControllerAction(action, dragData, sandboxExtensionHandle, sandboxExtensionsForUpload)); -@@ -2866,18 +2944,41 @@ void WebPageProxy::didPerformDragControllerAction(std::optionaldidProcessAllPendingMouseEvents(); + } @@ -17288,7 +17302,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& globalPosition, OptionSet dragOperationMask) { if (!hasRunningProcess()) -@@ -2886,6 +2987,24 @@ void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& glo +@@ -2977,6 +3079,24 @@ void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& glo setDragCaretRect({ }); } @@ -17313,7 +17327,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 void WebPageProxy::didPerformDragOperation(bool handled) { pageClient().didPerformDragOperation(handled); -@@ -2898,8 +3017,18 @@ void WebPageProxy::didStartDrag() +@@ -2989,6 +3109,16 @@ void WebPageProxy::didStartDrag() discardQueuedMouseEvents(); send(Messages::WebPage::DidStartDrag()); @@ -17328,12 +17342,9 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 + dragUpdated(dragData); + } } -- -+ + void WebPageProxy::dragCancelled() - { - if (hasRunningProcess()) -@@ -3008,17 +3137,39 @@ void WebPageProxy::processNextQueuedMouseEvent() +@@ -3100,17 +3230,39 @@ void WebPageProxy::processNextQueuedMouseEvent() m_process->startResponsivenessTimer(); } @@ -17349,9 +17360,12 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 + bool eventMayStartDrag = !m_currentDragOperation && eventType == WebEventType::MouseMove && event.button() != WebMouseEventButton::NoButton; + if (eventMayStartDrag) + sandboxExtensions = SandboxExtension::createHandlesForMachLookup({ "com.apple.iconservices"_s, "com.apple.iconservices.store"_s }, process().auditToken(), SandboxExtension::MachBootstrapOptions::EnableMachBootstrap); -+#endif -+ -+ LOG_WITH_STREAM(MouseHandling, stream << "UIProcess: sent mouse event " << eventType << " (queue size " << m_mouseEventQueue.size() << ")"); + #endif + +- LOG_WITH_STREAM(MouseHandling, stream << "UIProcess: sent mouse event " << eventType << " (queue size " << internals().mouseEventQueue.size() << ")"); +- m_process->recordUserGestureAuthorizationToken(event.authorizationToken()); +- send(Messages::WebPage::MouseEvent(event, sandboxExtensions)); ++ LOG_WITH_STREAM(MouseHandling, stream << "UIProcess: sent mouse event " << eventType << " (queue size " << internals().mouseEventQueue.size() << ")"); + m_process->recordUserGestureAuthorizationToken(event.authorizationToken()); + send(Messages::WebPage::MouseEvent(event, sandboxExtensions)); + } else { @@ -17359,17 +17373,14 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 + DragData dragData(*m_dragSelectionData, event.position(), event.globalPosition(), m_dragSourceOperationMask); +#else + DragData dragData(&*m_dragSelectionData, event.position(), event.globalPosition(), m_dragSourceOperationMask); - #endif ++#endif + if (eventType == WebEventType::MouseMove) { + dragUpdated(dragData); + } else if (eventType == WebEventType::MouseUp) { + if (m_currentDragOperation && m_dragSourceOperationMask.containsAny(m_currentDragOperation.value())) { + SandboxExtension::Handle sandboxExtensionHandle; + Vector sandboxExtensionsForUpload; - -- LOG_WITH_STREAM(MouseHandling, stream << "UIProcess: sent mouse event " << eventType << " (queue size " << m_mouseEventQueue.size() << ")"); -- m_process->recordUserGestureAuthorizationToken(event.authorizationToken()); -- send(Messages::WebPage::MouseEvent(event, sandboxExtensions)); ++ + performDragOperation(dragData, ""_s, WTFMove(sandboxExtensionHandle), WTFMove(sandboxExtensionsForUpload)); + } + m_dragSelectionData = std::nullopt; @@ -17380,42 +17391,42 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 } void WebPageProxy::doAfterProcessingAllPendingMouseEvents(WTF::Function&& action) -@@ -3204,7 +3355,7 @@ static TrackingType mergeTrackingTypes(TrackingType a, TrackingType b) +@@ -3244,6 +3396,8 @@ void WebPageProxy::wheelEventHandlingCompleted(bool wasHandled) + + if (auto* automationSession = process().processPool().automationSession()) + automationSession->wheelEventsFlushedForPage(*this); ++ ++ m_inspectorController->didProcessAllPendingWheelEvents(); + } + + void WebPageProxy::cacheWheelEventScrollingAccelerationCurve(const NativeWebWheelEvent& nativeWheelEvent) +@@ -3367,7 +3521,7 @@ static TrackingType mergeTrackingTypes(TrackingType a, TrackingType b) void WebPageProxy::updateTouchEventTracking(const WebTouchEvent& touchStartEvent) { -#if ENABLE(ASYNC_SCROLLING) && PLATFORM(COCOA) +#if ENABLE(ASYNC_SCROLLING) && PLATFORM(IOS_FAMILY) for (auto& touchPoint : touchStartEvent.touchPoints()) { - IntPoint location = touchPoint.location(); - auto updateTrackingType = [this, location](TrackingType& trackingType, EventTrackingRegions::EventType eventType) { -@@ -3236,7 +3387,7 @@ void WebPageProxy::updateTouchEventTracking(const WebTouchEvent& touchStartEvent - m_touchAndPointerEventTracking.touchStartTracking = TrackingType::Synchronous; - m_touchAndPointerEventTracking.touchMoveTracking = TrackingType::Synchronous; - m_touchAndPointerEventTracking.touchEndTracking = TrackingType::Synchronous; --#endif // ENABLE(ASYNC_SCROLLING) -+#endif // ENABLE(ASYNC_SCROLLING) && PLATFORM(IOS_FAMILY) - } - - TrackingType WebPageProxy::touchEventTrackingType(const WebTouchEvent& touchStartEvent) const -@@ -3626,6 +3777,8 @@ void WebPageProxy::receivedNavigationPolicyDecision(PolicyAction policyAction, A + auto location = touchPoint.location(); + auto update = [this, location](TrackingType& trackingType, EventTrackingRegions::EventType eventType) { +@@ -3788,6 +3942,8 @@ void WebPageProxy::receivedNavigationPolicyDecision(PolicyAction policyAction, A if (policyAction != PolicyAction::Use || (!preferences().siteIsolationEnabled() && !frame.isMainFrame()) || !navigation) { + if (policyAction == PolicyAction::Download && navigation) -+ m_decidePolicyForResponseRequest = navigation->currentRequest(); - receivedPolicyDecision(policyAction, navigation, navigation->websitePolicies(), WTFMove(navigationAction), WTFMove(sender)); ++ internals().decidePolicyForResponseRequest = navigation->currentRequest(); + receivedPolicyDecision(policyAction, navigation, navigation->websitePolicies(), WTFMove(navigationAction), WTFMove(sender), WillContinueLoadInNewProcess::No, std::nullopt); return; } -@@ -3698,6 +3851,7 @@ void WebPageProxy::receivedNavigationPolicyDecision(PolicyAction policyAction, A +@@ -3860,6 +4016,7 @@ void WebPageProxy::receivedNavigationPolicyDecision(PolicyAction policyAction, A void WebPageProxy::receivedPolicyDecision(PolicyAction action, API::Navigation* navigation, RefPtr&& websitePolicies, std::variant, Ref>&& navigationActionOrResponse, Ref&& sender, WillContinueLoadInNewProcess willContinueLoadInNewProcess, std::optional sandboxExtensionHandle) { + m_inspectorController->didReceivePolicyDecision(action, navigation ? navigation->navigationID() : 0); if (!hasRunningProcess()) { - sender->send(PolicyDecision { sender->identifier(), isNavigatingToAppBoundDomain(), PolicyAction::Ignore, 0, std::nullopt, std::nullopt }); + sender->send(PolicyDecision { sender->identifier(), isNavigatingToAppBoundDomain() }); return; -@@ -4483,6 +4637,11 @@ void WebPageProxy::pageScaleFactorDidChange(double scaleFactor) +@@ -4690,6 +4847,11 @@ void WebPageProxy::pageScaleFactorDidChange(double scaleFactor) m_pageScaleFactor = scaleFactor; } @@ -17426,8 +17437,8 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 + void WebPageProxy::pluginScaleFactorDidChange(double pluginScaleFactor) { - m_pluginScaleFactor = pluginScaleFactor; -@@ -4903,6 +5062,7 @@ void WebPageProxy::didDestroyNavigation(uint64_t navigationID) + MESSAGE_CHECK(m_process, scaleFactorIsValid(pluginScaleFactor)); +@@ -5117,6 +5279,7 @@ void WebPageProxy::didDestroyNavigation(uint64_t navigationID) return; m_navigationState->didDestroyNavigation(navigationID); @@ -17435,7 +17446,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 } void WebPageProxy::didStartProvisionalLoadForFrame(FrameIdentifier frameID, FrameInfoData&& frameInfo, ResourceRequest&& request, uint64_t navigationID, URL&& url, URL&& unreachableURL, const UserData& userData) -@@ -5131,6 +5291,8 @@ void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref&& p +@@ -5345,6 +5508,8 @@ void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref&& p m_failingProvisionalLoadURL = { }; @@ -17444,23 +17455,23 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 // 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; -@@ -5662,7 +5824,14 @@ void WebPageProxy::decidePolicyForNavigationActionAsync(IPC::Connection& connect +@@ -5882,7 +6047,14 @@ void WebPageProxy::decidePolicyForNavigationActionAsync(IPC::Connection& connect { RefPtr frame = WebFrameProxy::webFrame(frameID); MESSAGE_CHECK_BASE(frame, &connection); -- decidePolicyForNavigationActionAsyncShared(Ref { frame->process() }, m_webPageID, frameID, WTFMove(frameInfo), identifier, navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), listenerID); +- decidePolicyForNavigationActionAsyncShared(Ref { frame->process() }, internals().webPageID, frameID, WTFMove(frameInfo), identifier, navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), listenerID); + if (m_inspectorController->shouldPauseLoading()) { + m_inspectorController->setContinueLoadingCallback([this, protectedThis = Ref { *this }, frame, frameID, frameInfo = WTFMove(frameInfo), identifier, navigationID, navigationActionData = WTFMove(navigationActionData), + originatingFrameInfo = WTFMove(originatingFrameInfo), originatingPageID, originalRequest, request = WTFMove(request), requestBody = WTFMove(requestBody), redirectResponse = WTFMove(redirectResponse), listenerID] () mutable { -+ decidePolicyForNavigationActionAsyncShared(Ref { frame->process() }, m_webPageID, frameID, WTFMove(frameInfo), identifier, navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), listenerID); ++ decidePolicyForNavigationActionAsyncShared(Ref { frame->process() }, internals().webPageID, frameID, WTFMove(frameInfo), identifier, navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), listenerID); + }); + } else { -+ decidePolicyForNavigationActionAsyncShared(Ref { frame->process() }, m_webPageID, frameID, WTFMove(frameInfo), identifier, navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), listenerID); ++ decidePolicyForNavigationActionAsyncShared(Ref { frame->process() }, internals().webPageID, frameID, WTFMove(frameInfo), identifier, navigationID, WTFMove(navigationActionData), WTFMove(originatingFrameInfo), originatingPageID, originalRequest, WTFMove(request), WTFMove(requestBody), WTFMove(redirectResponse), listenerID); + } } - void WebPageProxy::decidePolicyForNavigationActionAsyncShared(Ref&& process, PageIdentifier webPageID, FrameIdentifier frameID, FrameInfoData&& frameInfo, -@@ -6269,6 +6438,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa + void WebPageProxy::decidePolicyForNavigationActionAsyncShared(Ref&& process, PageIdentifier webPageID, FrameIdentifier frameID, FrameInfoData&& frameInfo, WebCore::PolicyCheckIdentifier identifier, uint64_t navigationID, NavigationActionData&& navigationActionData, FrameInfoData&& originatingFrameInfo, std::optional originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, uint64_t listenerID) +@@ -6478,6 +6650,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa if (auto* page = originatingFrameInfo->page()) openerAppInitiatedState = page->lastNavigationWasAppInitiated(); @@ -17468,7 +17479,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 auto completionHandler = [this, protectedThis = Ref { *this }, mainFrameURL, request, reply = WTFMove(reply), privateClickMeasurement = navigationActionData.privateClickMeasurement, openerAppInitiatedState = WTFMove(openerAppInitiatedState)] (RefPtr newPage) mutable { if (!newPage) { reply(std::nullopt, std::nullopt); -@@ -6322,6 +6492,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa +@@ -6531,6 +6704,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa void WebPageProxy::showPage() { m_uiClient->showPage(this); @@ -17476,7 +17487,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 } void WebPageProxy::exitFullscreenImmediately() -@@ -6391,6 +6562,10 @@ void WebPageProxy::closePage() +@@ -6600,6 +6774,10 @@ void WebPageProxy::closePage() if (isClosed()) return; @@ -17487,7 +17498,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 WEBPAGEPROXY_RELEASE_LOG(Process, "closePage:"); pageClient().clearAllEditCommands(); m_uiClient->close(this); -@@ -6427,6 +6602,8 @@ void WebPageProxy::runJavaScriptAlert(FrameIdentifier frameID, FrameInfoData&& f +@@ -6636,6 +6814,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 { @@ -17496,7 +17507,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 page.m_uiClient->runJavaScriptAlert(page, message, frame, WTFMove(frameInfo), [reply = WTFMove(reply), completion = WTFMove(completion)]() mutable { reply(); completion(); -@@ -6448,6 +6625,8 @@ void WebPageProxy::runJavaScriptConfirm(FrameIdentifier frameID, FrameInfoData&& +@@ -6657,6 +6837,8 @@ void WebPageProxy::runJavaScriptConfirm(FrameIdentifier frameID, FrameInfoData&& if (auto* automationSession = process().processPool().automationSession()) automationSession->willShowJavaScriptDialog(*this); } @@ -17505,7 +17516,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 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 { -@@ -6471,6 +6650,8 @@ void WebPageProxy::runJavaScriptPrompt(FrameIdentifier frameID, FrameInfoData&& +@@ -6680,6 +6862,8 @@ void WebPageProxy::runJavaScriptPrompt(FrameIdentifier frameID, FrameInfoData&& if (auto* automationSession = process().processPool().automationSession()) automationSession->willShowJavaScriptDialog(*this); } @@ -17514,7 +17525,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 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 { -@@ -6586,6 +6767,8 @@ void WebPageProxy::runBeforeUnloadConfirmPanel(FrameIdentifier frameID, FrameInf +@@ -6795,6 +6979,8 @@ void WebPageProxy::runBeforeUnloadConfirmPanel(FrameIdentifier frameID, FrameInf return; } } @@ -17523,7 +17534,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 // Since runBeforeUnloadConfirmPanel() can spin a nested run loop we need to turn off the responsiveness timer and the tryClose timer. m_process->stopResponsivenessTimer(); -@@ -7921,6 +8104,8 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) +@@ -8149,6 +8335,8 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) if (auto* automationSession = process().processPool().automationSession()) automationSession->mouseEventsFlushedForPage(*this); didFinishProcessingAllPendingMouseEvents(); @@ -17532,24 +17543,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 } break; } -@@ -7933,10 +8118,13 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) - if (!handled) - wheelEventWasNotHandled(oldestProcessedEvent); - -- if (auto eventToSend = wheelEventCoalescer().nextEventToDispatch()) -+ if (auto eventToSend = wheelEventCoalescer().nextEventToDispatch()) { - sendWheelEvent(eventToSend->event, eventToSend->processingSteps, rubberBandableEdgesRespectingHistorySwipe()); -- else if (auto* automationSession = process().processPool().automationSession()) -- automationSession->wheelEventsFlushedForPage(*this); -+ } else { -+ if (auto* automationSession = process().processPool().automationSession()) -+ automationSession->wheelEventsFlushedForPage(*this); -+ m_inspectorController->didProcessAllPendingWheelEvents(); -+ } - break; - } - -@@ -7966,7 +8154,6 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) +@@ -8185,7 +8373,6 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) // The call to doneWithKeyEvent may close this WebPage. // Protect against this being destroyed. Ref protect(*this); @@ -17557,7 +17551,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 pageClient().doneWithKeyEvent(event, handled); if (!handled) m_uiClient->didNotHandleKeyEvent(this, event); -@@ -7975,6 +8162,7 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) +@@ -8194,6 +8381,7 @@ void WebPageProxy::didReceiveEvent(WebEventType eventType, bool handled) if (!canProcessMoreKeyEvents) { if (auto* automationSession = process().processPool().automationSession()) automationSession->keyboardEventsFlushedForPage(*this); @@ -17565,7 +17559,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 } break; } -@@ -8328,7 +8516,10 @@ void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason) +@@ -8547,7 +8735,10 @@ void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason) { WEBPAGEPROXY_RELEASE_LOG_ERROR(Loading, "dispatchProcessDidTerminate: reason=%" PUBLIC_LOG_STRING, processTerminationReasonToString(reason)); @@ -17577,7 +17571,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 if (m_loaderClient) handledByClient = reason != ProcessTerminationReason::RequestedByClient && m_loaderClient->processDidCrash(*this); else -@@ -8676,6 +8867,7 @@ bool WebPageProxy::useGPUProcessForDOMRenderingEnabled() const +@@ -8915,6 +9106,7 @@ bool WebPageProxy::useGPUProcessForDOMRenderingEnabled() const WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& process, DrawingAreaProxy& drawingArea, RefPtr&& websitePolicies) { @@ -17585,7 +17579,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 WebPageCreationParameters parameters; parameters.processDisplayName = configuration().processDisplayName(); -@@ -8879,6 +9071,8 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc +@@ -9115,6 +9307,8 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc parameters.httpsUpgradeEnabled = preferences().upgradeKnownHostsToHTTPSEnabled() ? m_configuration->httpsUpgradeEnabled() : false; @@ -17594,7 +17588,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 #if PLATFORM(IOS) // FIXME: This is also being passed over the to WebProcess via the PreferencesStore. parameters.allowsDeprecatedSynchronousXMLHttpRequestDuringUnload = allowsDeprecatedSynchronousXMLHttpRequestDuringUnload(); -@@ -8959,8 +9153,42 @@ void WebPageProxy::gamepadActivity(const Vector>& gam +@@ -9201,8 +9395,42 @@ void WebPageProxy::gamepadActivity(const Vector>& gam #endif @@ -17637,7 +17631,7 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 if (negotiatedLegacyTLS == NegotiatedLegacyTLS::Yes) { m_navigationClient->shouldAllowLegacyTLS(*this, authenticationChallenge.get(), [this, protectedThis = Ref { *this }, authenticationChallenge] (bool shouldAllowLegacyTLS) { if (shouldAllowLegacyTLS) -@@ -9064,6 +9292,15 @@ void WebPageProxy::requestGeolocationPermissionForFrame(GeolocationIdentifier ge +@@ -9306,6 +9534,15 @@ void WebPageProxy::requestGeolocationPermissionForFrame(GeolocationIdentifier ge request->deny(); }; @@ -17654,33 +17648,24 @@ index d0e7a128c2514d2d6f660a7f751c6484ecacda4b..b5a5fad0b3817bd6d695d366a332ff12 // and make it one UIClient call that calls the completionHandler with false // if there is no delegate instead of returning the completionHandler diff --git a/Source/WebKit/UIProcess/WebPageProxy.h b/Source/WebKit/UIProcess/WebPageProxy.h -index d684b3cc6f4b5cc7d5f8b92df46653b51a6c14e1..d2f7a814f59db2cbc385928ac7546e01ba034271 100644 +index 07d67c9b74345984d6453391deffa7e0e00b1ee3..1b438d7622845d7b430f0e85e1567a8f809d0663 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.h +++ b/Source/WebKit/UIProcess/WebPageProxy.h -@@ -39,6 +39,7 @@ - #include "GeolocationPermissionRequestManagerProxy.h" - #include "HiddenPageThrottlingAutoIncreasesCounter.h" - #include "IdentifierTypes.h" +@@ -30,6 +30,24 @@ + #include "MessageSender.h" + #include + #include +#include "InspectorDialogAgent.h" - #include "LayerTreeContext.h" - #include "MediaKeySystemPermissionRequestManagerProxy.h" - #include "MediaPlaybackState.h" -@@ -150,8 +151,11 @@ - #include "EndowmentStateTracker.h" - #endif - ++#include "WebProtectionSpace.h" ++#include ++#include ++#include "WebPageDiagnosticLoggingClient.h" ++#include "WebPageInjectedBundleClient.h" ++#include "WebPreferences.h" ++#include "ViewSnapshotStore.h" ++ +OBJC_CLASS NSPasteboard; + - #if ENABLE(DRAG_SUPPORT) - #include -+#include - #endif - - #if ENABLE(TOUCH_EVENTS) -@@ -174,6 +178,14 @@ - #include "ArgumentCodersGtk.h" - #endif - +#if PLATFORM(WPE) +#include "ArgumentCodersWPE.h" +#endif @@ -17688,27 +17673,18 @@ index d684b3cc6f4b5cc7d5f8b92df46653b51a6c14e1..d2f7a814f59db2cbc385928ac7546e01 +#if PLATFORM(GTK) || PLATFORM(WPE) +#include +#endif -+ - #if ENABLE(WIRELESS_PLAYBACK_TARGET) && !PLATFORM(IOS_FAMILY) - #include - #include -@@ -261,6 +273,7 @@ class CertificateInfo; - class Cursor; - class DataSegment; + + namespace API { + class Attachment; +@@ -90,6 +108,7 @@ class DestinationColorSpace; class DragData; + class FloatPoint; + class FloatQuad; +typedef HashMap> DragDataMap; class FloatRect; + class FloatSize; class FontAttributeChanges; - class FontChanges; -@@ -268,7 +281,6 @@ class GraphicsLayer; - class IntSize; - class ProtectionSpace; - class RunLoopObserver; --class SelectionData; - class SharedBuffer; - class SpeechRecognitionRequest; - class TextIndicator; -@@ -567,6 +579,8 @@ public: +@@ -562,6 +581,8 @@ public: void setControlledByAutomation(bool); WebPageInspectorController& inspectorController() { return *m_inspectorController; } @@ -17717,9 +17693,9 @@ index d684b3cc6f4b5cc7d5f8b92df46653b51a6c14e1..d2f7a814f59db2cbc385928ac7546e01 #if PLATFORM(IOS_FAMILY) void showInspectorIndication(); -@@ -680,6 +694,11 @@ public: +@@ -677,6 +698,11 @@ public: - void setPageLoadStateObserver(std::unique_ptr&&); + void setPageLoadStateObserver(std::unique_ptr&&); + void setAuthCredentialsForAutomation(std::optional&&, std::optional&&); + void setPermissionsForAutomation(const HashMap>&); @@ -17729,15 +17705,15 @@ index d684b3cc6f4b5cc7d5f8b92df46653b51a6c14e1..d2f7a814f59db2cbc385928ac7546e01 void initializeWebPage(); void setDrawingArea(std::unique_ptr&&); -@@ -704,6 +723,7 @@ public: - void closePage(); - +@@ -703,6 +729,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 loadRequest(WebCore::ResourceRequest&&, WebCore::ShouldOpenExternalURLsPolicy = WebCore::ShouldOpenExternalURLsPolicy::ShouldAllowExternalSchemesButNotAppLinks, API::Object* userData = nullptr); 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, WebCore::ShouldOpenExternalURLsPolicy = WebCore::ShouldOpenExternalURLsPolicy::ShouldNotAllow); -@@ -1257,6 +1277,7 @@ public: + 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); +@@ -1268,6 +1295,7 @@ public: #endif void pageScaleFactorDidChange(double); @@ -17745,7 +17721,7 @@ index d684b3cc6f4b5cc7d5f8b92df46653b51a6c14e1..d2f7a814f59db2cbc385928ac7546e01 void pluginScaleFactorDidChange(double); void pluginZoomFactorDidChange(double); -@@ -1347,14 +1368,20 @@ public: +@@ -1358,14 +1386,20 @@ public: void didStartDrag(); void dragCancelled(); void setDragCaretRect(const WebCore::IntRect&); @@ -17753,8 +17729,8 @@ index d684b3cc6f4b5cc7d5f8b92df46653b51a6c14e1..d2f7a814f59db2cbc385928ac7546e01 + bool cancelDragIfNeeded(); #if PLATFORM(COCOA) void startDrag(const WebCore::DragItem&, const ShareableBitmapHandle& dragImageHandle); - void setPromisedDataForImage(const String& pasteboardName, const SharedMemory::Handle& imageHandle, const String& filename, const String& extension, - const String& title, const String& url, const String& visibleURL, const SharedMemory::Handle& archiveHandle, const String& originIdentifier); + void setPromisedDataForImage(const String& pasteboardName, const SharedMemoryHandle& imageHandle, const String& filename, const String& extension, + const String& title, const String& url, const String& visibleURL, const SharedMemoryHandle& archiveHandle, const String& originIdentifier); + void releaseInspectorDragPasteboard(); #endif -#if PLATFORM(GTK) @@ -17767,15 +17743,15 @@ index d684b3cc6f4b5cc7d5f8b92df46653b51a6c14e1..d2f7a814f59db2cbc385928ac7546e01 #endif void processDidBecomeUnresponsive(); -@@ -1578,6 +1605,7 @@ public: +@@ -1588,6 +1622,7 @@ public: void setViewportSizeForCSSViewportUnits(const WebCore::FloatSize&); - WebCore::FloatSize viewportSizeForCSSViewportUnits() const { return valueOrDefault(m_viewportSizeForCSSViewportUnits); } + WebCore::FloatSize viewportSizeForCSSViewportUnits() const; + bool shouldSendAutomationCredentialsForProtectionSpace(const WebProtectionSpace&); void didReceiveAuthenticationChallengeProxy(Ref&&, NegotiatedLegacyTLS); void negotiatedLegacyTLS(); void didNegotiateModernTLS(const URL&); -@@ -1612,6 +1640,8 @@ public: +@@ -1622,6 +1657,8 @@ public: #if PLATFORM(COCOA) || PLATFORM(GTK) RefPtr takeViewSnapshot(std::optional&&); @@ -17784,18 +17760,20 @@ index d684b3cc6f4b5cc7d5f8b92df46653b51a6c14e1..d2f7a814f59db2cbc385928ac7546e01 #endif #if ENABLE(WEB_CRYPTO) -@@ -2862,6 +2892,7 @@ private: +@@ -2838,6 +2875,7 @@ private: String m_overrideContentSecurityPolicy; RefPtr m_inspector; + InspectorDialogAgent* m_inspectorDialogAgent { nullptr }; - #if PLATFORM(COCOA) - WeakObjCPtr m_cocoaView; -@@ -3138,6 +3169,20 @@ private: + #if ENABLE(FULLSCREEN_API) + std::unique_ptr m_fullScreenManager; +@@ -3023,6 +3061,22 @@ private: + std::optional m_currentDragOperation; + bool m_currentDragIsOverFileInput { false }; unsigned m_currentDragNumberOfFilesToBeAccepted { 0 }; - WebCore::IntRect m_currentDragCaretRect; - WebCore::IntRect m_currentDragCaretEditableElementRect; ++ WebCore::IntRect m_currentDragCaretRect; ++ WebCore::IntRect m_currentDragCaretEditableElementRect; + bool m_interceptDrags { false }; + OptionSet m_dragSourceOperationMask; + WebCore::IntPoint m_lastMousePositionForDrag; @@ -17812,8 +17790,8 @@ index d684b3cc6f4b5cc7d5f8b92df46653b51a6c14e1..d2f7a814f59db2cbc385928ac7546e01 +#endif #endif - PageLoadState m_pageLoadState; -@@ -3352,6 +3397,10 @@ private: + bool m_mainFrameHasHorizontalScrollbar { false }; +@@ -3190,6 +3244,10 @@ private: RefPtr messageBody; }; Vector m_pendingInjectedBundleMessages; @@ -17825,7 +17803,7 @@ index d684b3cc6f4b5cc7d5f8b92df46653b51a6c14e1..d2f7a814f59db2cbc385928ac7546e01 #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 a87e39caa0320485c51e503cb958805dd0bf2dd2..f045c8dbe1e465154c89f1f10f70491e7e360772 100644 +index a2f5460e8f236379edfe221405cf776f573d63be..ea03c4b49e6ad13cf252f1d5a1a31322e98592df 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.messages.in +++ b/Source/WebKit/UIProcess/WebPageProxy.messages.in @@ -29,6 +29,7 @@ messages -> WebPageProxy { @@ -17836,7 +17814,7 @@ index a87e39caa0320485c51e503cb958805dd0bf2dd2..f045c8dbe1e465154c89f1f10f70491e DidChangeViewportProperties(struct WebCore::ViewportAttributes attributes) DidReceiveEvent(enum:int8_t WebKit::WebEventType eventType, bool handled) -@@ -177,6 +178,7 @@ messages -> WebPageProxy { +@@ -178,6 +179,7 @@ messages -> WebPageProxy { #endif PageScaleFactorDidChange(double scaleFactor) @@ -17844,7 +17822,7 @@ index a87e39caa0320485c51e503cb958805dd0bf2dd2..f045c8dbe1e465154c89f1f10f70491e PluginScaleFactorDidChange(double zoomFactor) PluginZoomFactorDidChange(double zoomFactor) -@@ -306,10 +308,12 @@ messages -> WebPageProxy { +@@ -307,10 +309,12 @@ messages -> WebPageProxy { StartDrag(struct WebCore::DragItem dragItem, WebKit::ShareableBitmapHandle dragImage) SetPromisedDataForImage(String pasteboardName, WebKit::SharedMemory::Handle imageHandle, String filename, String extension, String title, String url, String visibleURL, WebKit::SharedMemory::Handle archiveHandle, String originIdentifier) #endif @@ -17875,14 +17853,11 @@ index e68471d45366b6f7a609e6a57bcfea2820511e29..d2344e7b428ae19399ded4e37bfbf81c } diff --git a/Source/WebKit/UIProcess/WebProcessPool.cpp b/Source/WebKit/UIProcess/WebProcessPool.cpp -index 314b088a6b877917913dd8281574982c313b05ef..2b6b4fbde5d8b693efd916e88c8f5434f5d9a935 100644 +index 794caa155f914a8e7c3745087b0893c762f3aece..91d56b5b45b64cf8e79103698262450970cf14e8 100644 --- a/Source/WebKit/UIProcess/WebProcessPool.cpp +++ b/Source/WebKit/UIProcess/WebProcessPool.cpp -@@ -374,17 +374,19 @@ void WebProcessPool::setCustomWebContentServiceBundleIdentifier(const String& cu - m_configuration->setCustomWebContentServiceBundleIdentifier(customWebContentServiceBundleIdentifier); - } +@@ -371,15 +371,16 @@ void WebProcessPool::setAutomationClient(std::unique_ptr& -+/* playwright revert fb205fb */ void WebProcessPool::setOverrideLanguages(Vector&& languages) { - WebKit::setOverrideLanguages(WTFMove(languages)); @@ -17901,7 +17876,7 @@ index 314b088a6b877917913dd8281574982c313b05ef..2b6b4fbde5d8b693efd916e88c8f5434 void WebProcessPool::fullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled) { -@@ -521,6 +523,14 @@ void WebProcessPool::establishRemoteWorkerContextConnectionToNetworkProcess(Remo +@@ -516,6 +517,14 @@ void WebProcessPool::establishRemoteWorkerContextConnectionToNetworkProcess(Remo RefPtr requestingProcess = requestingProcessIdentifier ? WebProcessProxy::processForIdentifier(*requestingProcessIdentifier) : nullptr; WebProcessPool* processPool = requestingProcess ? &requestingProcess->processPool() : processPools()[0]; @@ -17916,7 +17891,7 @@ index 314b088a6b877917913dd8281574982c313b05ef..2b6b4fbde5d8b693efd916e88c8f5434 ASSERT(processPool); WebProcessProxy* remoteWorkerProcessProxy { nullptr }; -@@ -818,7 +828,7 @@ void WebProcessPool::initializeNewWebProcess(WebProcessProxy& process, WebsiteDa +@@ -813,7 +822,7 @@ void WebProcessPool::initializeNewWebProcess(WebProcessProxy& process, WebsiteDa #endif parameters.cacheModel = LegacyGlobalSettings::singleton().cacheModel(); @@ -17926,10 +17901,10 @@ index 314b088a6b877917913dd8281574982c313b05ef..2b6b4fbde5d8b693efd916e88c8f5434 parameters.urlSchemesRegisteredAsEmptyDocument = copyToVector(m_schemesToRegisterAsEmptyDocument); diff --git a/Source/WebKit/UIProcess/WebProcessProxy.cpp b/Source/WebKit/UIProcess/WebProcessProxy.cpp -index 5b43953ac5472e3d54f7d2bc3fab92d7fa6fd751..4256d6f2d3291808a694d494bcfe64e40fcdb313 100644 +index 8dbfe2e5f0865c154f626dafff0bface635eeda3..112c2fd0f6c0be13559fafdd9db43977ef563fbd 100644 --- a/Source/WebKit/UIProcess/WebProcessProxy.cpp +++ b/Source/WebKit/UIProcess/WebProcessProxy.cpp -@@ -162,6 +162,11 @@ Vector> WebProcessProxy::allProcesses() +@@ -166,6 +166,11 @@ Vector> WebProcessProxy::allProcesses() }); } @@ -17941,7 +17916,7 @@ index 5b43953ac5472e3d54f7d2bc3fab92d7fa6fd751..4256d6f2d3291808a694d494bcfe64e4 RefPtr WebProcessProxy::processForIdentifier(ProcessIdentifier identifier) { return allProcessMap().get(identifier).get(); -@@ -491,6 +496,26 @@ void WebProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOpt +@@ -493,6 +498,26 @@ void WebProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOpt if (WebKit::isInspectorProcessPool(processPool())) launchOptions.extraInitializationData.add("inspector-process"_s, "1"_s); @@ -17969,10 +17944,10 @@ index 5b43953ac5472e3d54f7d2bc3fab92d7fa6fd751..4256d6f2d3291808a694d494bcfe64e4 if (isPrewarmed()) diff --git a/Source/WebKit/UIProcess/WebProcessProxy.h b/Source/WebKit/UIProcess/WebProcessProxy.h -index 0c60da7c7026566c30707cd19221e4358506b7f1..3bbb794bb9d76ac2b8466bab900f44b2336f2790 100644 +index d4fa06e4d9c3a4ad378055e8120d4465105327da..808b526f60c23bcdab69414900657003d065d39e 100644 --- a/Source/WebKit/UIProcess/WebProcessProxy.h +++ b/Source/WebKit/UIProcess/WebProcessProxy.h -@@ -165,6 +165,7 @@ public: +@@ -162,6 +162,7 @@ public: static void forWebPagesWithOrigin(PAL::SessionID, const WebCore::SecurityOriginData&, const Function&); static Vector> allowedFirstPartiesForCookies(); @@ -17980,11 +17955,23 @@ index 0c60da7c7026566c30707cd19221e4358506b7f1..3bbb794bb9d76ac2b8466bab900f44b2 WebConnection* webConnection() const { return m_webConnection.get(); } +diff --git a/Source/WebKit/UIProcess/WebScreenOrientationManagerProxy.cpp b/Source/WebKit/UIProcess/WebScreenOrientationManagerProxy.cpp +index cc2b267138cbe32d971cb80ef07f9735d7eeb189..f943f73124819e36617c131b1e13c4ee9abf343b 100644 +--- a/Source/WebKit/UIProcess/WebScreenOrientationManagerProxy.cpp ++++ b/Source/WebKit/UIProcess/WebScreenOrientationManagerProxy.cpp +@@ -28,6 +28,7 @@ + + #include "APIUIClient.h" + #include "MessageSenderInlines.h" ++#include "WebCoreArgumentCoders.h" + #include "WebFullScreenManagerProxy.h" + #include "WebPageProxy.h" + #include "WebProcessProxy.h" diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp -index be87ba0c28b0ddd68e38f173c7a2b29116b26f80..a9a2024c83d831adda624bd51e4259634528ff62 100644 +index 52ee22c91b408557e6dea711bbc2adfb1f5ce236..fa13a5522b1f67ad144a864c0ec6cdebf949426c 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp -@@ -2172,6 +2172,12 @@ void WebsiteDataStore::originDirectoryForTesting(WebCore::ClientOrigin&& origin, +@@ -2187,6 +2187,12 @@ void WebsiteDataStore::originDirectoryForTesting(WebCore::ClientOrigin&& origin, networkProcess().websiteDataOriginDirectoryForTesting(m_sessionID, WTFMove(origin), type, WTFMove(completionHandler)); } @@ -17998,7 +17985,7 @@ index be87ba0c28b0ddd68e38f173c7a2b29116b26f80..a9a2024c83d831adda624bd51e425963 void WebsiteDataStore::hasAppBoundSession(CompletionHandler&& completionHandler) const { diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h -index c38e3b1bc5d2d91b038eea9202d3d5e4aa1bf765..a46f122f7ff0306d11500e9ed7707e22dd919a39 100644 +index 05a50bcc992c6a0a21134765e0a84256d258bdbe..5fafe11da7c541fe57b73cffc1447abea03586e3 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h @@ -95,6 +95,7 @@ class DeviceIdHashSaltStorage; @@ -18032,7 +18019,7 @@ index c38e3b1bc5d2d91b038eea9202d3d5e4aa1bf765..a46f122f7ff0306d11500e9ed7707e22 class WebsiteDataStore : public API::ObjectImpl, public Identified, public CanMakeWeakPtr { public: static Ref defaultDataStore(); -@@ -311,11 +321,13 @@ public: +@@ -314,11 +324,13 @@ public: const WebCore::CurlProxySettings& networkProxySettings() const { return m_proxySettings; } #endif @@ -18047,7 +18034,7 @@ index c38e3b1bc5d2d91b038eea9202d3d5e4aa1bf765..a46f122f7ff0306d11500e9ed7707e22 void setNetworkProxySettings(WebCore::SoupNetworkProxySettings&&); const WebCore::SoupNetworkProxySettings& networkProxySettings() const { return m_networkProxySettings; } void setCookiePersistentStorage(const String&, SoupCookiePersistentStorageType); -@@ -389,6 +401,12 @@ public: +@@ -392,6 +404,12 @@ public: static const String& defaultBaseDataDirectory(); #endif @@ -18060,7 +18047,7 @@ index c38e3b1bc5d2d91b038eea9202d3d5e4aa1bf765..a46f122f7ff0306d11500e9ed7707e22 void resetQuota(CompletionHandler&&); void resetStoragePersistedState(CompletionHandler&&); #if PLATFORM(IOS_FAMILY) -@@ -531,9 +549,11 @@ private: +@@ -534,9 +552,11 @@ private: WebCore::CurlProxySettings m_proxySettings; #endif @@ -18073,7 +18060,7 @@ index c38e3b1bc5d2d91b038eea9202d3d5e4aa1bf765..a46f122f7ff0306d11500e9ed7707e22 WebCore::SoupNetworkProxySettings m_networkProxySettings; String m_cookiePersistentStoragePath; SoupCookiePersistentStorageType m_cookiePersistentStorageType { SoupCookiePersistentStorageType::SQLite }; -@@ -561,6 +581,10 @@ private: +@@ -564,6 +584,10 @@ private: RefPtr m_cookieStore; RefPtr m_networkProcess; @@ -18670,10 +18657,10 @@ index 0000000000000000000000000000000000000000..6a204c5bba8fb95ddb2d1c14cae7a3a7 + +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm b/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm -index 8d3ead887b12f3521048e99ee79408aa3a1416be..909ef8fe617cc5b126f47ce2b093328ff21711d0 100644 +index 4d3604799a920a728322826d994fd723442f1612..5c3bdaeab381d2c5c3f020253cbc4fa41e75483b 100644 --- a/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm +++ b/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm -@@ -434,6 +434,8 @@ IntRect PageClientImpl::rootViewToAccessibilityScreen(const IntRect& rect) +@@ -446,6 +446,8 @@ IntRect PageClientImpl::rootViewToAccessibilityScreen(const IntRect& rect) void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent& event, bool eventWasHandled) { @@ -18683,10 +18670,10 @@ index 8d3ead887b12f3521048e99ee79408aa3a1416be..909ef8fe617cc5b126f47ce2b093328f } diff --git a/Source/WebKit/UIProcess/mac/DisplayCaptureSessionManager.mm b/Source/WebKit/UIProcess/mac/DisplayCaptureSessionManager.mm -index 727c18932b6cbebc5bc4838446c65ed379fe30bf..d1740cdba438101a35babc0232cd163713785a54 100644 +index fda048d2388ff8d694274361abe9d9d38268f51f..e325ac426faa1c8bf443df12ba041a44e3bf9786 100644 --- a/Source/WebKit/UIProcess/mac/DisplayCaptureSessionManager.mm +++ b/Source/WebKit/UIProcess/mac/DisplayCaptureSessionManager.mm -@@ -115,7 +115,7 @@ std::optional DisplayCaptureSessionManager::deviceSelect +@@ -116,7 +116,7 @@ std::optional DisplayCaptureSessionManager::deviceSelect bool DisplayCaptureSessionManager::useMockCaptureDevices() const { @@ -18884,10 +18871,10 @@ index 0000000000000000000000000000000000000000..721826c8c98fc85b68a4f45deaee69c1 + +#endif diff --git a/Source/WebKit/UIProcess/mac/PageClientImplMac.h b/Source/WebKit/UIProcess/mac/PageClientImplMac.h -index a1ecd944c24e577656ff192029f0bf960ec2a73a..bd5df7c6b7ae87cdd5864a06a4a5b88299f5c085 100644 +index d1237e42fffb6e34f95f856cee8e8f250a0c43ed..374b375919ee72936cf3a4556f180fb0472acef4 100644 --- a/Source/WebKit/UIProcess/mac/PageClientImplMac.h +++ b/Source/WebKit/UIProcess/mac/PageClientImplMac.h -@@ -53,6 +53,8 @@ class PageClientImpl final : public PageClientImplCocoa +@@ -54,6 +54,8 @@ class PageClientImpl final : public PageClientImplCocoa #endif { public: @@ -18896,7 +18883,7 @@ index a1ecd944c24e577656ff192029f0bf960ec2a73a..bd5df7c6b7ae87cdd5864a06a4a5b882 PageClientImpl(NSView *, WKWebView *); virtual ~PageClientImpl(); -@@ -169,6 +171,9 @@ private: +@@ -172,6 +174,9 @@ private: void updateAcceleratedCompositingMode(const LayerTreeContext&) override; void didFirstLayerFlush(const LayerTreeContext&) override; @@ -18906,7 +18893,7 @@ index a1ecd944c24e577656ff192029f0bf960ec2a73a..bd5df7c6b7ae87cdd5864a06a4a5b882 RefPtr takeViewSnapshot(std::optional&&) override; void wheelEventWasNotHandledByWebCore(const NativeWebWheelEvent&) override; #if ENABLE(MAC_GESTURE_EVENTS) -@@ -225,6 +230,10 @@ private: +@@ -228,6 +233,10 @@ private: void beganExitFullScreen(const WebCore::IntRect& initialFrame, const WebCore::IntRect& finalFrame) override; #endif @@ -18918,10 +18905,10 @@ index a1ecd944c24e577656ff192029f0bf960ec2a73a..bd5df7c6b7ae87cdd5864a06a4a5b882 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 bacd760091da8a2954be7aa263fdb5cd2fb33c41..82b3b4d96e64e54ad19f6aaf519639ace1979b04 100644 +index 08be9afe1c3aeea5c9775c3f0b8d8a1fd0686bb7..058279f40676664da1c36a9911e5270e566f1fb4 100644 --- a/Source/WebKit/UIProcess/mac/PageClientImplMac.mm +++ b/Source/WebKit/UIProcess/mac/PageClientImplMac.mm -@@ -80,6 +80,7 @@ +@@ -81,6 +81,7 @@ #import #import #import @@ -18929,7 +18916,7 @@ index bacd760091da8a2954be7aa263fdb5cd2fb33c41..82b3b4d96e64e54ad19f6aaf519639ac #import #import #import -@@ -106,6 +107,13 @@ namespace WebKit { +@@ -107,6 +108,13 @@ namespace WebKit { using namespace WebCore; @@ -18943,7 +18930,7 @@ index bacd760091da8a2954be7aa263fdb5cd2fb33c41..82b3b4d96e64e54ad19f6aaf519639ac PageClientImpl::PageClientImpl(NSView *view, WKWebView *webView) : PageClientImplCocoa(webView) , m_view(view) -@@ -159,6 +167,9 @@ NSWindow *PageClientImpl::activeWindow() const +@@ -160,6 +168,9 @@ NSWindow *PageClientImpl::activeWindow() const bool PageClientImpl::isViewWindowActive() { @@ -18953,7 +18940,7 @@ index bacd760091da8a2954be7aa263fdb5cd2fb33c41..82b3b4d96e64e54ad19f6aaf519639ac ASSERT(hasProcessPrivilege(ProcessPrivilege::CanCommunicateWithWindowServer)); NSWindow *activeViewWindow = activeWindow(); return activeViewWindow.isKeyWindow || (activeViewWindow && [NSApp keyWindow] == activeViewWindow); -@@ -166,6 +177,9 @@ bool PageClientImpl::isViewWindowActive() +@@ -167,6 +178,9 @@ bool PageClientImpl::isViewWindowActive() bool PageClientImpl::isViewFocused() { @@ -18963,7 +18950,7 @@ index bacd760091da8a2954be7aa263fdb5cd2fb33c41..82b3b4d96e64e54ad19f6aaf519639ac // 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) -@@ -189,6 +203,9 @@ void PageClientImpl::makeFirstResponder() +@@ -190,6 +204,9 @@ void PageClientImpl::makeFirstResponder() bool PageClientImpl::isViewVisible() { @@ -18973,7 +18960,7 @@ index bacd760091da8a2954be7aa263fdb5cd2fb33c41..82b3b4d96e64e54ad19f6aaf519639ac NSView *activeView = this->activeView(); NSWindow *activeViewWindow = activeWindow(); -@@ -272,7 +289,8 @@ void PageClientImpl::didRelaunchProcess() +@@ -273,7 +290,8 @@ void PageClientImpl::didRelaunchProcess() void PageClientImpl::preferencesDidChange() { @@ -18983,7 +18970,7 @@ index bacd760091da8a2954be7aa263fdb5cd2fb33c41..82b3b4d96e64e54ad19f6aaf519639ac } void PageClientImpl::toolTipChanged(const String& oldToolTip, const String& newToolTip) -@@ -479,6 +497,8 @@ IntRect PageClientImpl::rootViewToAccessibilityScreen(const IntRect& rect) +@@ -480,6 +498,8 @@ IntRect PageClientImpl::rootViewToAccessibilityScreen(const IntRect& rect) void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent& event, bool eventWasHandled) { @@ -18992,17 +18979,17 @@ index bacd760091da8a2954be7aa263fdb5cd2fb33c41..82b3b4d96e64e54ad19f6aaf519639ac m_impl->doneWithKeyEvent(event.nativeEvent(), eventWasHandled); } -@@ -498,6 +518,8 @@ void PageClientImpl::computeHasVisualSearchResults(const URL& imageURL, Shareabl +@@ -499,6 +519,8 @@ void PageClientImpl::computeHasVisualSearchResults(const URL& imageURL, Shareabl RefPtr PageClientImpl::createPopupMenuProxy(WebPageProxy& page) { + if (_headless) + return nullptr; - return WebPopupMenuProxyMac::create(m_view, page); + return WebPopupMenuProxyMac::create(m_view, page.popupMenuClient()); } -@@ -629,6 +651,12 @@ CALayer *PageClientImpl::acceleratedCompositingRootLayer() const - return m_impl->acceleratedCompositingRootLayer(); +@@ -640,6 +662,12 @@ CALayer *PageClientImpl::footerBannerLayer() const + return m_impl->footerBannerLayer(); } +// Paywright begin @@ -19014,7 +19001,7 @@ index bacd760091da8a2954be7aa263fdb5cd2fb33c41..82b3b4d96e64e54ad19f6aaf519639ac RefPtr PageClientImpl::takeViewSnapshot(std::optional&&) { return m_impl->takeViewSnapshot(); -@@ -809,6 +837,13 @@ void PageClientImpl::beganExitFullScreen(const IntRect& initialFrame, const IntR +@@ -820,6 +848,13 @@ void PageClientImpl::beganExitFullScreen(const IntRect& initialFrame, const IntR #endif // ENABLE(FULLSCREEN_API) @@ -19028,7 +19015,7 @@ index bacd760091da8a2954be7aa263fdb5cd2fb33c41..82b3b4d96e64e54ad19f6aaf519639ac void PageClientImpl::navigationGestureDidBegin() { m_impl->dismissContentRelativeChildWindowsWithAnimation(true); -@@ -986,6 +1021,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) { @@ -19038,6 +19025,18 @@ index bacd760091da8a2954be7aa263fdb5cd2fb33c41..82b3b4d96e64e54ad19f6aaf519639ac return m_impl->windowIsFrontWindowUnderMouse(event.nativeEvent()); } +diff --git a/Source/WebKit/UIProcess/mac/WKFullScreenWindowController.mm b/Source/WebKit/UIProcess/mac/WKFullScreenWindowController.mm +index dafa15efb5b35d3b4c0180b9bde35de0d8f95d20..b484abaa8a0ac223452629fc6ef985070f8db729 100644 +--- a/Source/WebKit/UIProcess/mac/WKFullScreenWindowController.mm ++++ b/Source/WebKit/UIProcess/mac/WKFullScreenWindowController.mm +@@ -42,6 +42,7 @@ + #import + #import + #import ++#import + #import + #import + #import diff --git a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h b/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h index 46aaf12accb35a2e7685d61887e76f0fe14d76c5..37f418197dcc3f6c74fac258ba77d00df0effeb2 100644 --- a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.h @@ -19051,10 +19050,10 @@ index 46aaf12accb35a2e7685d61887e76f0fe14d76c5..37f418197dcc3f6c74fac258ba77d00d bool showAfterPostProcessingContextData(); diff --git a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm b/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm -index f8d2ef1c25fce3c064ff94a1edf0577c52c0dc5d..a005b389f22e14d9f5af525b8e175dc8cf16efe2 100644 +index 81628ead7d128fd819e6d5b4cfae0e00535077f6..5ebd244402a8ad61d8c80fc4384f607e830d6715 100644 --- a/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm +++ b/Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm -@@ -478,6 +478,12 @@ void WebContextMenuProxyMac::getShareMenuItem(CompletionHandler takeWindowSnapshot(CGSWindowID windowID, bool captu - return adoptCF(CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, windowID, imageOptions)); +@@ -4399,6 +4404,18 @@ static RetainPtr takeWindowSnapshot(CGSWindowID windowID, bool captu + ALLOW_DEPRECATED_DECLARATIONS_END } +// Paywright begin @@ -19302,7 +19301,7 @@ index ea27c810d90e43352eb09e55ef2f61f09ef2873f..45083c197830048ce59eb865e0c5ebc8 RefPtr WebViewImpl::takeViewSnapshot() { NSWindow *window = [m_view window]; -@@ -4982,11 +4999,11 @@ static Vector compositionHighlights(NSAttributedS +@@ -5019,11 +5036,11 @@ static Vector compositionHighlights(NSAttributedS Vector highlights; [string enumerateAttributesInRange:NSMakeRange(0, string.length) options:0 usingBlock:[&highlights](NSDictionary *attributes, NSRange range, BOOL *) { std::optional backgroundHighlightColor; @@ -19721,7 +19720,7 @@ index 0000000000000000000000000000000000000000..7453194ca6f032ba86a4c67f5bf12688 +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/wpe/WebColorPickerWPE.cpp b/Source/WebKit/UIProcess/wpe/WebColorPickerWPE.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..2433afca5cdbac71d11ae1fce223766091b5c843 +index 0000000000000000000000000000000000000000..adec63a0a9d6d67bdbdadb4024005ff97ce79d10 --- /dev/null +++ b/Source/WebKit/UIProcess/wpe/WebColorPickerWPE.cpp @@ -0,0 +1,61 @@ @@ -19766,7 +19765,7 @@ index 0000000000000000000000000000000000000000..2433afca5cdbac71d11ae1fce2237660 +} + +WebColorPickerWPE::WebColorPickerWPE(WebPageProxy& page, const Color& initialColor, const IntRect&) -+ : WebColorPicker(&page) ++ : WebColorPicker(&page.colorPickerClient()) +{ +} + @@ -20076,7 +20075,7 @@ index 0000000000000000000000000000000000000000..a7d88f8c745f95af21db71dcfce368ba + +} // namespace WebKit diff --git a/Source/WebKit/WebKit.xcodeproj/project.pbxproj b/Source/WebKit/WebKit.xcodeproj/project.pbxproj -index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d666056f38 100644 +index c63d566cf0c6c6280b9c7070e94507fdfeeda7a6..1d4b4b26854bedbd0ab1fb303ba1b7bd6483cd52 100644 --- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj +++ b/Source/WebKit/WebKit.xcodeproj/project.pbxproj @@ -1335,6 +1335,7 @@ @@ -20087,7 +20086,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 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 */; }; -@@ -2086,6 +2087,18 @@ +@@ -2092,6 +2093,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 */; }; @@ -20106,7 +20105,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 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, ); }; }; -@@ -2147,6 +2160,8 @@ +@@ -2155,6 +2168,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 */; }; @@ -20115,7 +20114,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 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 */; }; -@@ -2165,6 +2180,9 @@ +@@ -2173,6 +2188,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, ); }; }; @@ -20125,7 +20124,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 F409BA181E6E64BC009DA28E /* WKDragDestinationAction.h in Headers */ = {isa = PBXBuildFile; fileRef = F409BA171E6E64B3009DA28E /* WKDragDestinationAction.h */; settings = {ATTRIBUTES = (Private, ); }; }; F4299507270E234D0032298B /* StreamMessageReceiver.h in Headers */ = {isa = PBXBuildFile; fileRef = F4299506270E234C0032298B /* StreamMessageReceiver.h */; }; F42D634122A0EFDF00D2FB3A /* WebAutocorrectionData.h in Headers */ = {isa = PBXBuildFile; fileRef = F42D633F22A0EFD300D2FB3A /* WebAutocorrectionData.h */; }; -@@ -5379,6 +5397,7 @@ +@@ -5391,6 +5409,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 = ""; }; @@ -20133,7 +20132,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 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 = ""; }; -@@ -6964,6 +6983,19 @@ +@@ -6984,6 +7003,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 = ""; }; @@ -20153,7 +20152,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 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 = ""; }; -@@ -7096,6 +7128,8 @@ +@@ -7118,6 +7150,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 = ""; }; @@ -20162,7 +20161,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 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 = ""; }; -@@ -7119,6 +7153,14 @@ +@@ -7141,6 +7175,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 = ""; }; @@ -20177,7 +20176,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 F409BA171E6E64B3009DA28E /* WKDragDestinationAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDragDestinationAction.h; sourceTree = ""; }; F40D1B68220BDC0F00B49A01 /* WebAutocorrectionContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WebAutocorrectionContext.h; path = ios/WebAutocorrectionContext.h; sourceTree = ""; }; F41056612130699A0092281D /* APIAttachmentCocoa.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = APIAttachmentCocoa.mm; sourceTree = ""; }; -@@ -7284,6 +7326,7 @@ +@@ -7307,6 +7349,7 @@ 3766F9EE189A1241003CF19B /* JavaScriptCore.framework in Frameworks */, 3766F9F1189A1254003CF19B /* libicucore.dylib in Frameworks */, 7B9FC5BB28A5233B007570E7 /* libWebKitPlatform.a in Frameworks */, @@ -20185,7 +20184,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 3766F9EF189A1244003CF19B /* QuartzCore.framework in Frameworks */, 37694525184FC6B600CDE21F /* Security.framework in Frameworks */, 37BEC4DD1948FC6A008B4286 /* WebCore.framework in Frameworks */, -@@ -9755,6 +9798,7 @@ +@@ -9780,6 +9823,7 @@ 99788ACA1F421DCA00C08000 /* _WKAutomationSessionConfiguration.mm */, 990D28A81C6404B000986977 /* _WKAutomationSessionDelegate.h */, 990D28AF1C65203900986977 /* _WKAutomationSessionInternal.h */, @@ -20193,7 +20192,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 5C4609E222430E4C009943C2 /* _WKContentRuleListAction.h */, 5C4609E322430E4D009943C2 /* _WKContentRuleListAction.mm */, 5C4609E422430E4D009943C2 /* _WKContentRuleListActionInternal.h */, -@@ -10900,6 +10944,7 @@ +@@ -10928,6 +10972,7 @@ E34B110C27C46BC6006D2F2E /* libWebCoreTestShim.dylib */, E34B110F27C46D09006D2F2E /* libWebCoreTestSupport.dylib */, DDE992F4278D06D900F60D26 /* libWebKitAdditions.a */, @@ -20201,7 +20200,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 57A9FF15252C6AEF006A2040 /* libWTF.a */, 5750F32A2032D4E500389347 /* LocalAuthentication.framework */, 570DAAB0230273D200E8FC04 /* NearField.framework */, -@@ -11444,6 +11489,12 @@ +@@ -11476,6 +11521,12 @@ children = ( 9197940423DBC4BB00257892 /* InspectorBrowserAgent.cpp */, 9197940323DBC4BB00257892 /* InspectorBrowserAgent.h */, @@ -20214,7 +20213,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 ); path = Agents; sourceTree = ""; -@@ -11452,6 +11503,7 @@ +@@ -11484,6 +11535,7 @@ isa = PBXGroup; children = ( A5D3504D1D78F0D2005124A9 /* RemoteWebInspectorUIProxyMac.mm */, @@ -20222,7 +20221,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 1CA8B935127C774E00576C2B /* WebInspectorUIProxyMac.mm */, 99A7ACE326012919006D57FD /* WKInspectorResourceURLSchemeHandler.h */, 99A7ACE42601291A006D57FD /* WKInspectorResourceURLSchemeHandler.mm */, -@@ -12037,6 +12089,7 @@ +@@ -12074,6 +12126,7 @@ E1513C65166EABB200149FCB /* AuxiliaryProcessProxy.h */, 46A2B6061E5675A200C3DEDA /* BackgroundProcessResponsivenessTimer.cpp */, 46A2B6071E5675A200C3DEDA /* BackgroundProcessResponsivenessTimer.h */, @@ -20230,7 +20229,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 07297F9C1C1711EA003F0735 /* DeviceIdHashSaltStorage.cpp */, 07297F9D1C17BBEA223F0735 /* DeviceIdHashSaltStorage.h */, BC2652121182608100243E12 /* DrawingAreaProxy.cpp */, -@@ -12052,6 +12105,8 @@ +@@ -12089,6 +12142,8 @@ 2DD5A72A1EBF09A7009BA597 /* HiddenPageThrottlingAutoIncreasesCounter.h */, 839A2F2F1E2067390039057E /* HighPerformanceGraphicsUsageSampler.cpp */, 839A2F301E2067390039057E /* HighPerformanceGraphicsUsageSampler.h */, @@ -20239,7 +20238,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 5CEABA2B2333251400797797 /* LegacyGlobalSettings.cpp */, 5CEABA2A2333247700797797 /* LegacyGlobalSettings.h */, 31607F3819627002009B87DA /* LegacySessionStateCoding.h */, -@@ -12086,6 +12141,7 @@ +@@ -12123,6 +12178,7 @@ 1A0C227D2451130A00ED614D /* QuickLookThumbnailingSoftLink.mm */, 1AEE57232409F142002005D6 /* QuickLookThumbnailLoader.h */, 1AEE57242409F142002005D6 /* QuickLookThumbnailLoader.mm */, @@ -20247,7 +20246,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 BC111B08112F5E3C00337BAB /* ResponsivenessTimer.cpp */, 1A30066C1110F4F70031937C /* ResponsivenessTimer.h */, 5CA98549210BEB5A0057EB6B /* SafeBrowsingWarning.h */, -@@ -12189,6 +12245,8 @@ +@@ -12226,6 +12282,8 @@ BC7B6204129A0A6700D174A4 /* WebPageGroup.h */, 2D9EA3101A96D9EB002D2807 /* WebPageInjectedBundleClient.cpp */, 2D9EA30E1A96CBFF002D2807 /* WebPageInjectedBundleClient.h */, @@ -20256,7 +20255,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 BC111B0B112F5E4F00337BAB /* WebPageProxy.cpp */, BC032DCB10F4389F0058C15A /* WebPageProxy.h */, BCBD38FA125BAB9A00D2C29F /* WebPageProxy.messages.in */, -@@ -12347,6 +12405,7 @@ +@@ -12386,6 +12444,7 @@ BC646C1911DD399F006455B0 /* WKBackForwardListItemRef.h */, BC646C1611DD399F006455B0 /* WKBackForwardListRef.cpp */, BC646C1711DD399F006455B0 /* WKBackForwardListRef.h */, @@ -20264,7 +20263,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 BCB9E24A1120E15C00A137E0 /* WKContext.cpp */, BCB9E2491120E15C00A137E0 /* WKContext.h */, 1AE52F9319201F6B00A1FA37 /* WKContextConfigurationRef.cpp */, -@@ -12928,6 +12987,9 @@ +@@ -12967,6 +13026,9 @@ 0F49294628FF0F4B00AF8509 /* DisplayLinkProcessProxyClient.h */, 31ABA79C215AF9E000C90E31 /* HighPerformanceGPUManager.h */, 31ABA79D215AF9E000C90E31 /* HighPerformanceGPUManager.mm */, @@ -20274,7 +20273,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 1AFDE65B1954E8D500C48FFA /* LegacySessionStateCoding.cpp */, 0FCB4E5818BBE3D9000FCFC9 /* PageClientImplMac.h */, 0FCB4E5918BBE3D9000FCFC9 /* PageClientImplMac.mm */, -@@ -12951,6 +13013,8 @@ +@@ -12990,6 +13052,8 @@ E568B92120A3AC6A00E3C856 /* WebDataListSuggestionsDropdownMac.mm */, E55CD20124D09F1F0042DB9C /* WebDateTimePickerMac.h */, E55CD20224D09F1F0042DB9C /* WebDateTimePickerMac.mm */, @@ -20283,7 +20282,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 BC857E8512B71EBB00EDEB2E /* WebPageProxyMac.mm */, BC5750951268F3C6006F0F12 /* WebPopupMenuProxyMac.h */, BC5750961268F3C6006F0F12 /* WebPopupMenuProxyMac.mm */, -@@ -13857,6 +13921,7 @@ +@@ -13893,6 +13957,7 @@ 99788ACB1F421DDA00C08000 /* _WKAutomationSessionConfiguration.h in Headers */, 990D28AC1C6420CF00986977 /* _WKAutomationSessionDelegate.h in Headers */, 990D28B11C65208D00986977 /* _WKAutomationSessionInternal.h in Headers */, @@ -20291,7 +20290,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 5C4609E7224317B4009943C2 /* _WKContentRuleListAction.h in Headers */, 5C4609E8224317BB009943C2 /* _WKContentRuleListActionInternal.h in Headers */, 1A5704F81BE01FF400874AF1 /* _WKContextMenuElementInfo.h in Headers */, -@@ -14127,6 +14192,7 @@ +@@ -14163,6 +14228,7 @@ E170876C16D6CA6900F99226 /* BlobRegistryProxy.h in Headers */, 4F601432155C5AA2001FBDE0 /* BlockingResponseMap.h in Headers */, 1A5705111BE410E600874AF1 /* BlockSPI.h in Headers */, @@ -20299,8 +20298,8 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 BC3065FA1259344E00E71278 /* CacheModel.h in Headers */, 935BF7FC2936BF1A00B41326 /* CacheStorageCache.h in Headers */, 934CF817294B884C00304F7D /* CacheStorageDiskStore.h in Headers */, -@@ -14262,7 +14328,11 @@ - 2DD45ADE1E5F8972006C355F /* InputViewUpdateDeferrer.h in Headers */, +@@ -14297,7 +14363,11 @@ + BC14DF77120B5B7900826C0C /* InjectedBundleScriptWorld.h in Headers */, CE550E152283752200D28791 /* InsertTextOptions.h in Headers */, 9197940523DBC4BB00257892 /* InspectorBrowserAgent.h in Headers */, + D76D6888238DBD81008D314B /* InspectorDialogAgent.h in Headers */, @@ -20311,7 +20310,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 A5E391FD2183C1F800C8FB31 /* InspectorTargetProxy.h in Headers */, 51E9049C27BCB9D400929E7E /* InstallCoordinationSPI.h in Headers */, C5BCE5DF1C50766A00CDE3FA /* InteractionInformationAtPosition.h in Headers */, -@@ -14486,6 +14556,7 @@ +@@ -14524,6 +14594,7 @@ CDAC20CA23FC2F750021DEE3 /* RemoteCDMInstanceSession.h in Headers */, CDAC20C923FC2F750021DEE3 /* RemoteCDMInstanceSessionIdentifier.h in Headers */, F451C0FE2703B263002BA03B /* RemoteDisplayListRecorderProxy.h in Headers */, @@ -20319,7 +20318,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 2D47B56D1810714E003A3AEE /* RemoteLayerBackingStore.h in Headers */, 2DDF731518E95060004F5A66 /* RemoteLayerBackingStoreCollection.h in Headers */, 1AB16AEA164B3A8800290D62 /* RemoteLayerTreeContext.h in Headers */, -@@ -14538,6 +14609,7 @@ +@@ -14576,6 +14647,7 @@ E1E552C516AE065F004ED653 /* SandboxInitializationParameters.h in Headers */, E36FF00327F36FBD004BE21A /* SandboxStateVariables.h in Headers */, 7BAB111025DD02B3008FC479 /* ScopedActiveMessageReceiveQueue.h in Headers */, @@ -20327,8 +20326,8 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 E4D54D0421F1D72D007E3C36 /* ScrollingTreeFrameScrollingNodeRemoteIOS.h in Headers */, 0F931C1C18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.h in Headers */, 0F931C1C18C5711900DBB8D4 /* ScrollingTreeScrollingNodeDelegateIOS.h in Headers */, -@@ -14822,6 +14894,8 @@ - 2D9EA30F1A96CBFF002D2807 /* WebPageInjectedBundleClient.h in Headers */, +@@ -14862,6 +14934,8 @@ + 939EF87029D112EE00F23AEE /* WebPageInlines.h in Headers */, 9197940823DBC4CB00257892 /* WebPageInspectorAgentBase.h in Headers */, A513F5402154A5D700662841 /* WebPageInspectorController.h in Headers */, + D71A94422371F67E002C4D9E /* WebPageInspectorEmulationAgent.h in Headers */, @@ -20336,7 +20335,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 A543E30C215C8A8D00279CD9 /* WebPageInspectorTarget.h in Headers */, A543E30D215C8A9000279CD9 /* WebPageInspectorTargetController.h in Headers */, A543E307215AD13700279CD9 /* WebPageInspectorTargetFrontendChannel.h in Headers */, -@@ -16888,6 +16962,8 @@ +@@ -16912,6 +16986,8 @@ 51E9049727BCB3D900929E7E /* ICAppBundle.mm in Sources */, 2749F6442146561B008380BF /* InjectedBundleNodeHandle.cpp in Sources */, 2749F6452146561E008380BF /* InjectedBundleRangeHandle.cpp in Sources */, @@ -20345,7 +20344,7 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 B6114A7F29394A1600380B1B /* JSWebExtensionAPIEvent.mm in Sources */, 1C5DC471290B33A20061EC62 /* JSWebExtensionAPIExtension.mm in Sources */, 1C5DC4552908AC900061EC62 /* JSWebExtensionAPINamespace.mm in Sources */, -@@ -17258,6 +17334,8 @@ +@@ -17284,6 +17360,8 @@ E3816B3D27E2463A005EAFC0 /* WebMockContentFilterManager.cpp in Sources */, 31BA924D148831260062EDB5 /* WebNotificationManagerMessageReceiver.cpp in Sources */, 2DF6FE52212E110900469030 /* WebPage.cpp in Sources */, @@ -20355,10 +20354,10 @@ index ee5d2c89b59bd32b86f9adc494421705c6170021..9f2701c79e524820e46d3a435de7c0d6 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 fb5f7c777e1cb127834ac0f5b4003a16033cf635..2c61918379564158cff2a81057b82c2e236b436b 100644 +index 1ddf46cca6e5070080832b31687b4a193f589b71..8cf77815dc265512db07bf3e0c9c42492cb4315e 100644 --- a/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp +++ b/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp -@@ -236,6 +236,11 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou +@@ -237,6 +237,11 @@ void WebLoaderStrategy::scheduleLoad(ResourceLoader& resourceLoader, CachedResou } #endif @@ -20370,7 +20369,7 @@ index fb5f7c777e1cb127834ac0f5b4003a16033cf635..2c61918379564158cff2a81057b82c2e #if ENABLE(PDFJS) if (tryLoadingUsingPDFJSHandler(resourceLoader, trackingParameters)) return; -@@ -354,7 +359,8 @@ static void addParametersShared(const Frame* frame, NetworkResourceLoadParameter +@@ -355,7 +360,8 @@ static void addParametersShared(const LocalFrame* frame, NetworkResourceLoadPara parameters.linkPreconnectEarlyHintsEnabled = mainFrame.settings().linkPreconnectEarlyHintsEnabled(); } @@ -20380,7 +20379,7 @@ index fb5f7c777e1cb127834ac0f5b4003a16033cf635..2c61918379564158cff2a81057b82c2e { auto identifier = resourceLoader.identifier(); ASSERT(identifier); -@@ -370,7 +376,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -371,7 +377,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL RunLoop::main().dispatch([resourceLoader = Ref { resourceLoader }, error = blockedError(request)] { resourceLoader->didFail(error); }); @@ -20389,7 +20388,7 @@ index fb5f7c777e1cb127834ac0f5b4003a16033cf635..2c61918379564158cff2a81057b82c2e } } -@@ -380,7 +386,6 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -381,7 +387,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); @@ -20397,7 +20396,7 @@ index fb5f7c777e1cb127834ac0f5b4003a16033cf635..2c61918379564158cff2a81057b82c2e loadParameters.identifier = identifier; loadParameters.webPageProxyID = trackingParameters.webPageProxyID; loadParameters.webPageID = trackingParameters.pageID; -@@ -469,14 +474,11 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -470,14 +475,11 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL if (loadParameters.options.mode != FetchOptions::Mode::Navigate) { ASSERT(loadParameters.sourceOrigin); @@ -20415,7 +20414,7 @@ index fb5f7c777e1cb127834ac0f5b4003a16033cf635..2c61918379564158cff2a81057b82c2e loadParameters.isMainFrameNavigation = isMainFrameNavigation; if (loadParameters.isMainFrameNavigation && document) -@@ -512,6 +514,17 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -513,6 +515,17 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL } ASSERT((loadParameters.webPageID && loadParameters.webFrameID) || loadParameters.clientCredentialPolicy == ClientCredentialPolicy::CannotAskClientForCredentials); @@ -20433,7 +20432,7 @@ index fb5f7c777e1cb127834ac0f5b4003a16033cf635..2c61918379564158cff2a81057b82c2e std::optional existingNetworkResourceLoadIdentifierToResume; if (loadParameters.isMainFrameNavigation) -@@ -526,7 +539,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL +@@ -527,7 +540,7 @@ void WebLoaderStrategy::scheduleLoadFromNetworkProcess(ResourceLoader& resourceL } auto loader = WebResourceLoader::create(resourceLoader, trackingParameters); @@ -20442,7 +20441,7 @@ index fb5f7c777e1cb127834ac0f5b4003a16033cf635..2c61918379564158cff2a81057b82c2e } void WebLoaderStrategy::scheduleInternallyFailedLoad(WebCore::ResourceLoader& resourceLoader) -@@ -942,7 +955,7 @@ void WebLoaderStrategy::didFinishPreconnection(WebCore::ResourceLoaderIdentifier +@@ -943,7 +956,7 @@ void WebLoaderStrategy::didFinishPreconnection(WebCore::ResourceLoaderIdentifier bool WebLoaderStrategy::isOnLine() const { @@ -20451,7 +20450,7 @@ index fb5f7c777e1cb127834ac0f5b4003a16033cf635..2c61918379564158cff2a81057b82c2e } void WebLoaderStrategy::addOnlineStateChangeListener(Function&& listener) -@@ -969,6 +982,11 @@ void WebLoaderStrategy::isResourceLoadFinished(CachedResource& resource, Complet +@@ -970,6 +983,11 @@ void WebLoaderStrategy::isResourceLoadFinished(CachedResource& resource, Complet void WebLoaderStrategy::setOnLineState(bool isOnLine) { @@ -20463,7 +20462,7 @@ index fb5f7c777e1cb127834ac0f5b4003a16033cf635..2c61918379564158cff2a81057b82c2e if (m_isOnLine == isOnLine) return; -@@ -977,6 +995,12 @@ void WebLoaderStrategy::setOnLineState(bool isOnLine) +@@ -978,6 +996,12 @@ void WebLoaderStrategy::setOnLineState(bool isOnLine) listener(isOnLine); } @@ -20477,7 +20476,7 @@ index fb5f7c777e1cb127834ac0f5b4003a16033cf635..2c61918379564158cff2a81057b82c2e { WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::SetCaptureExtraNetworkLoadMetricsEnabled(enabled), 0); diff --git a/Source/WebKit/WebProcess/Network/WebLoaderStrategy.h b/Source/WebKit/WebProcess/Network/WebLoaderStrategy.h -index af139eb8713f22c8e3cc493d7f1892fcb0e4a8cd..71ef3007f1308ca186761ea28a7cee7916437d7f 100644 +index 3a3e596fa167fadaf36cfafdf8fd91dd0d7c8a8e..a6a305585706f9a407375fd2e365c52bcb1b8a43 100644 --- a/Source/WebKit/WebProcess/Network/WebLoaderStrategy.h +++ b/Source/WebKit/WebProcess/Network/WebLoaderStrategy.h @@ -41,6 +41,7 @@ struct FetchOptions; @@ -20507,10 +20506,10 @@ index af139eb8713f22c8e3cc493d7f1892fcb0e4a8cd..71ef3007f1308ca186761ea28a7cee79 } // namespace WebKit diff --git a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp -index 3218ba6dd2a24d0ca6769723b387e0915f1a66ab..5a389780519802f92c0deae83302f78ef5297e44 100644 +index d65c5854c2a1a86491b11c646671fd1dbfea5951..221169382ad7be66b9cc643b3d877c7a49585be3 100644 --- a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp +++ b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp -@@ -197,9 +197,6 @@ void WebResourceLoader::didReceiveResponse(ResourceResponse&& response, PrivateR +@@ -198,9 +198,6 @@ void WebResourceLoader::didReceiveResponse(ResourceResponse&& response, PrivateR } m_coreLoader->didReceiveResponse(inspectorResponse, [this, protectedThis = WTFMove(protectedThis), interceptedRequestIdentifier, policyDecisionCompletionHandler = WTFMove(policyDecisionCompletionHandler), overrideData = WTFMove(overrideData)]() mutable { @@ -20520,7 +20519,7 @@ index 3218ba6dd2a24d0ca6769723b387e0915f1a66ab..5a389780519802f92c0deae83302f78e if (!m_coreLoader || !m_coreLoader->identifier()) { m_interceptController.continueResponse(interceptedRequestIdentifier); return; -@@ -217,6 +214,8 @@ void WebResourceLoader::didReceiveResponse(ResourceResponse&& response, PrivateR +@@ -218,6 +215,8 @@ void WebResourceLoader::didReceiveResponse(ResourceResponse&& response, PrivateR } }); }); @@ -20530,10 +20529,10 @@ index 3218ba6dd2a24d0ca6769723b387e0915f1a66ab..5a389780519802f92c0deae83302f78e } diff --git a/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp b/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp -index f6cbdb00920e43b98b43f153797d60a622f113dc..6d1a6fb19056a6c87d8900c8022efc42acff77c2 100644 +index 777d8c44883adc46d0bb782dc411dedc8c2b2213..1e3611ffedbf6c57f73a99df3d4122bfdefffd65 100644 --- a/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp +++ b/Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp -@@ -84,7 +84,7 @@ void NotificationPermissionRequestManager::startRequest(const SecurityOriginData +@@ -85,7 +85,7 @@ void NotificationPermissionRequestManager::startRequest(const SecurityOriginData m_page->sendWithAsyncReply(Messages::WebPageProxy::RequestNotificationPermission(securityOrigin.toString()), [this, protectedThis = Ref { *this }, securityOrigin, permissionHandler = WTFMove(permissionHandler)](bool allowed) mutable { @@ -20542,11 +20541,23 @@ index f6cbdb00920e43b98b43f153797d60a622f113dc..6d1a6fb19056a6c87d8900c8022efc42 WebProcess::singleton().supplement()->didUpdateNotificationDecision(securityOrigin.toString(), allowed); auto permissionHandlers = m_requestsPerOrigin.take(securityOrigin); +diff --git a/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm b/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm +index ca92cdf17488fb0e136422c1d172f0a3a9f95f02..8bfbcec0273fc12a8daf9e65491314cd9487e2ad 100644 +--- a/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm ++++ b/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm +@@ -32,6 +32,7 @@ + #import "DataReference.h" + #import "FrameInfoData.h" + #import "Logging.h" ++#import "MessageSenderInlines.h" + #import "PDFAnnotationTextWidgetDetails.h" + #import "PDFContextMenu.h" + #import "PDFLayerControllerSPI.h" diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp -index 682e93d84835981630b7d8b51719da700b1a74dc..3731d9ae535f234f00d7c40ad8b441e9bd8741c0 100644 +index cc3a238360d27df2518a47167be2ae579f9ec0fb..6bbab298a05e1c4e8d40e15248c97de0d299ca4a 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp +++ b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp -@@ -440,6 +440,8 @@ void WebChromeClient::setResizable(bool resizable) +@@ -449,6 +449,8 @@ void WebChromeClient::setResizable(bool resizable) void WebChromeClient::addMessageToConsole(MessageSource source, MessageLevel level, const String& message, unsigned lineNumber, unsigned columnNumber, const String& sourceID) { @@ -20556,7 +20567,7 @@ index 682e93d84835981630b7d8b51719da700b1a74dc..3731d9ae535f234f00d7c40ad8b441e9 m_page.injectedBundleUIClient().willAddMessageToConsole(&m_page, source, level, message, lineNumber, columnNumber, sourceID); } diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebDragClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebDragClient.cpp -index 2eb0886f13ed035a53b8eaa60605de4dfe53fbe3..c46393209cb4f80704bbc9268fad4371347d5b30 100644 +index 87121e8b57e5ad7ef74857685f0db65e164a5bf8..580dca6ca0709a2d620d3999beb69856981a54e8 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/WebDragClient.cpp +++ b/Source/WebKit/WebProcess/WebCoreSupport/WebDragClient.cpp @@ -29,6 +29,13 @@ @@ -20579,14 +20590,14 @@ index 2eb0886f13ed035a53b8eaa60605de4dfe53fbe3..c46393209cb4f80704bbc9268fad4371 -#if !PLATFORM(COCOA) && !PLATFORM(GTK) +#if !PLATFORM(COCOA) && !PLATFORM(GTK) && !PLATFORM(WPE) && !PLATFORM(WIN) - void WebDragClient::startDrag(DragItem, DataTransfer&, Frame&) + void WebDragClient::startDrag(DragItem, DataTransfer&, LocalFrame&) { } diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp -index 321fff05e020c06aabd51e6cc770145f4596f533..99b8b7575ffd8502b18c9f84da39b2b3b24f2d86 100644 +index b0593edec485dc99628e0214733de9ea41dc38da..b057c4e725f9374212364ab981ee79928b3acf8a 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp +++ b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp -@@ -1674,13 +1674,6 @@ void WebFrameLoaderClient::transitionToCommittedForNewPage() +@@ -1678,13 +1678,6 @@ void WebFrameLoaderClient::transitionToCommittedForNewPage() if (webPage->scrollPinningBehavior() != ScrollPinningBehavior::DoNotPin) view->setScrollPinningBehavior(webPage->scrollPinningBehavior()); @@ -20601,12 +20612,12 @@ index 321fff05e020c06aabd51e6cc770145f4596f533..99b8b7575ffd8502b18c9f84da39b2b3 void WebFrameLoaderClient::didRestoreFromBackForwardCache() diff --git a/Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm b/Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm -index 8226f9545ed2283cfe135d93d4e2f047f74a9ef0..4a5139d70449c5116a5406cf685a7e3b089abe7c 100644 +index 234a7c2c4cfb78f7a4961e4e10026e63d12f1562..071f41bed2e12baed839804d0dc91412b76cebfd 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm +++ b/Source/WebKit/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm -@@ -132,7 +132,8 @@ static WebCore::CachedImage* cachedImage(Element& element) +@@ -133,7 +133,8 @@ static WebCore::CachedImage* cachedImage(Element& element) - void WebDragClient::declareAndWriteDragImage(const String& pasteboardName, Element& element, const URL& url, const String& label, Frame*) + void WebDragClient::declareAndWriteDragImage(const String& pasteboardName, Element& element, const URL& url, const String& label, LocalFrame*) { - ASSERT(pasteboardName == String(NSPasteboardNameDrag)); + if (pasteboardName != String(NSPasteboardNameDrag)) @@ -20616,10 +20627,10 @@ index 8226f9545ed2283cfe135d93d4e2f047f74a9ef0..4a5139d70449c5116a5406cf685a7e3b diff --git a/Source/WebKit/WebProcess/WebCoreSupport/win/WebDragClientWin.cpp b/Source/WebKit/WebProcess/WebCoreSupport/win/WebDragClientWin.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..2606914d22e85affd9b2f71c361c9db3a14da4f3 +index 0000000000000000000000000000000000000000..ba14bf43794ef03a4b090135631a8f7f880a2f02 --- /dev/null +++ b/Source/WebKit/WebProcess/WebCoreSupport/win/WebDragClientWin.cpp -@@ -0,0 +1,58 @@ +@@ -0,0 +1,59 @@ +/* + * Copyright (C) 2011 Igalia S.L. + * @@ -20652,13 +20663,14 @@ index 0000000000000000000000000000000000000000..2606914d22e85affd9b2f71c361c9db3 + +//#include "ArgumentCodersWPE.h" +#include "ShareableBitmap.h" ++#include "MessageSenderInlines.h" +#include "WebPage.h" +#include "WebPageProxyMessages.h" +#include +#include +#include +#include -+#include ++#include + +//#include + @@ -20669,7 +20681,7 @@ index 0000000000000000000000000000000000000000..2606914d22e85affd9b2f71c361c9db3 +{ +} + -+void WebDragClient::startDrag(DragItem, DataTransfer& dataTransfer, Frame& frame) ++void WebDragClient::startDrag(DragItem, DataTransfer& dataTransfer, LocalFrame& frame) +{ + m_page->willStartDrag(); + m_page->send(Messages::WebPageProxy::StartDrag(dataTransfer.pasteboard().createDragDataMap())); @@ -20680,10 +20692,10 @@ index 0000000000000000000000000000000000000000..2606914d22e85affd9b2f71c361c9db3 +#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..b1fcb0774ce90cfc33f08fd3e74bdedb37dc554f +index 0000000000000000000000000000000000000000..8e44922ab13ed645532b54934255336717618b18 --- /dev/null +++ b/Source/WebKit/WebProcess/WebCoreSupport/wpe/WebDragClientWPE.cpp -@@ -0,0 +1,57 @@ +@@ -0,0 +1,58 @@ +/* + * Copyright (C) 2011 Igalia S.L. + * @@ -20720,6 +20732,7 @@ index 0000000000000000000000000000000000000000..b1fcb0774ce90cfc33f08fd3e74bdedb +#include "WebPageProxyMessages.h" +#include +#include ++#include +#include +#include + @@ -20730,7 +20743,7 @@ index 0000000000000000000000000000000000000000..b1fcb0774ce90cfc33f08fd3e74bdedb +{ +} + -+void WebDragClient::startDrag(DragItem, DataTransfer& dataTransfer, Frame&) ++void WebDragClient::startDrag(DragItem, DataTransfer& dataTransfer, LocalFrame&) +{ + m_page->willStartDrag(); + @@ -20742,18 +20755,18 @@ index 0000000000000000000000000000000000000000..b1fcb0774ce90cfc33f08fd3e74bdedb + +#endif // ENABLE(DRAG_SUPPORT) diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp -index c50d98240d1d9dcf7141f3951909d88b00c1997f..3ce9b0604eeb930b7e0c5ce497ddab177abdd50e 100644 +index 63caeccf06fa08b437a306333c64d8f5cee3d294..8a1c029568d19646a086b9d6b4b4cb1cb3f57764 100644 --- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp +++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp @@ -39,6 +39,7 @@ - #include - #include + #include "WebPreferencesKeys.h" + #include "WebProcess.h" #include +#include + #include + #include #include - #include - #include -@@ -117,6 +118,16 @@ void DrawingAreaCoordinatedGraphics::scroll(const IntRect& scrollRect, const Int +@@ -119,6 +120,16 @@ void DrawingAreaCoordinatedGraphics::scroll(const IntRect& scrollRect, const Int ASSERT(m_scrollRect.isEmpty()); ASSERT(m_scrollOffset.isEmpty()); ASSERT(m_dirtyRegion.isEmpty()); @@ -20770,7 +20783,7 @@ index c50d98240d1d9dcf7141f3951909d88b00c1997f..3ce9b0604eeb930b7e0c5ce497ddab17 m_layerTreeHost->scrollNonCompositedContents(scrollRect); return; } -@@ -249,6 +260,7 @@ void DrawingAreaCoordinatedGraphics::updatePreferences(const WebPreferencesStore +@@ -251,6 +262,7 @@ void DrawingAreaCoordinatedGraphics::updatePreferences(const WebPreferencesStore settings.setAcceleratedCompositingEnabled(false); } #endif @@ -20778,7 +20791,7 @@ index c50d98240d1d9dcf7141f3951909d88b00c1997f..3ce9b0604eeb930b7e0c5ce497ddab17 settings.setForceCompositingMode(store.getBoolValueForKey(WebPreferencesKey::forceCompositingModeKey())); // Fixed position elements need to be composited and create stacking contexts // in order to be scrolled by the ScrollingCoordinator. -@@ -687,6 +699,11 @@ void DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode(GraphicsLay +@@ -692,6 +704,11 @@ void DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode(GraphicsLay m_scrollOffset = IntSize(); m_displayTimer.stop(); m_isWaitingForDidUpdate = false; @@ -20790,7 +20803,7 @@ index c50d98240d1d9dcf7141f3951909d88b00c1997f..3ce9b0604eeb930b7e0c5ce497ddab17 } void DrawingAreaCoordinatedGraphics::exitAcceleratedCompositingMode() -@@ -736,6 +753,11 @@ void DrawingAreaCoordinatedGraphics::exitAcceleratedCompositingMode() +@@ -741,6 +758,11 @@ void DrawingAreaCoordinatedGraphics::exitAcceleratedCompositingMode() // UI process, we still need to let it know about the new contents, so send an Update message. send(Messages::DrawingAreaProxy::Update(m_backingStoreStateID, updateInfo)); } @@ -20803,7 +20816,7 @@ index c50d98240d1d9dcf7141f3951909d88b00c1997f..3ce9b0604eeb930b7e0c5ce497ddab17 void DrawingAreaCoordinatedGraphics::scheduleDisplay() diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp -index a0b2c1c72238775b31c42283fb2f394d0cc5c64b..f56aba0f1ba6bc10256001ceaa3a697ccd23a0af 100644 +index 0e8172a6d93e1351ae583e0ca508b1d06a3ed44e..9f4381ec30045013f10304f764fbf246f95eb1da 100644 --- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp +++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp @@ -186,8 +186,16 @@ void LayerTreeHost::setViewOverlayRootLayer(GraphicsLayer* viewOverlayRootLayer) @@ -20835,7 +20848,7 @@ index a0b2c1c72238775b31c42283fb2f394d0cc5c64b..f56aba0f1ba6bc10256001ceaa3a697c if (m_lastPageScaleFactor != pageScale) { diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h -index 45e4bbd8225e738453a4fa2d8238874ceb03d9de..fa1ecdd2ea661014f6f8eded307db1a785274c95 100644 +index bd26f86559b253ef7651f0e4993742d6675119eb..8992abdd8716363d7b74441c52d5d5802118a9b7 100644 --- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h +++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h @@ -103,6 +103,13 @@ public: @@ -20853,7 +20866,7 @@ index 45e4bbd8225e738453a4fa2d8238874ceb03d9de..fa1ecdd2ea661014f6f8eded307db1a7 #if USE(COORDINATED_GRAPHICS) void layerFlushTimerFired(); diff --git a/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp b/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp -index 19870d671df40a96d42ab0f531f34f6421695c07..b823ea19a055278d49091ea3cea801869e9a68d9 100644 +index 4eff97ae17b6c1b56181a4ae2b7e1b74c6c007a2..9bbeb368f89d71a2968d93b305dd1ffc773730e8 100644 --- a/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp +++ b/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp @@ -27,6 +27,7 @@ @@ -20861,10 +20874,10 @@ index 19870d671df40a96d42ab0f531f34f6421695c07..b823ea19a055278d49091ea3cea80186 #include "DrawingAreaMessages.h" +#include "DrawingAreaProxyMessages.h" + #include "Logging.h" #include "WebPage.h" #include "WebPageCreationParameters.h" - #include "WebProcess.h" -@@ -107,6 +108,13 @@ void DrawingArea::tryMarkLayersVolatile(CompletionHandler&& completi +@@ -108,6 +109,13 @@ void DrawingArea::tryMarkLayersVolatile(CompletionHandler&& completi completionFunction(true); } @@ -20879,10 +20892,10 @@ index 19870d671df40a96d42ab0f531f34f6421695c07..b823ea19a055278d49091ea3cea80186 { if (m_hasRemovedMessageReceiver) diff --git a/Source/WebKit/WebProcess/WebPage/DrawingArea.h b/Source/WebKit/WebProcess/WebPage/DrawingArea.h -index c3ecbd1194db3c52e510c1c0250f2bc194f434a7..4c7515b83dfbd300401fe60558c4f1c42383a690 100644 +index 85c74632635ab5c697b4435063154026101ab4e4..8320d19e3638ac6d1b2238cffbfaa9f91ec7f78c 100644 --- a/Source/WebKit/WebProcess/WebPage/DrawingArea.h +++ b/Source/WebKit/WebProcess/WebPage/DrawingArea.h -@@ -158,6 +158,9 @@ public: +@@ -161,6 +161,9 @@ public: virtual void didChangeViewportAttributes(WebCore::ViewportAttributes&&) = 0; virtual void deviceOrPageScaleFactorChanged() = 0; #endif @@ -20893,18 +20906,18 @@ index c3ecbd1194db3c52e510c1c0250f2bc194f434a7..4c7515b83dfbd300401fe60558c4f1c4 virtual void adoptLayersFromDrawingArea(DrawingArea&) { } virtual void adoptDisplayRefreshMonitorsFromDrawingArea(DrawingArea&) { } diff --git a/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp b/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp -index 90de993273cbf2dbcec26c6437eca7bb4b45d2ca..603ba4af6b0d88bb27269b4d24aae530f02e63fe 100644 +index 4b41faf35718778a1a0cba51e088bf94056d42eb..b84502bc1f701264b8e2c98d85de5649ecd9806d 100644 --- a/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp -@@ -38,6 +38,7 @@ - #include - #include +@@ -39,6 +39,7 @@ #include + #include + #include +#include #include #include -@@ -258,4 +259,10 @@ void WebCookieJar::deleteCookie(const WebCore::Document& document, const URL& ur +@@ -259,4 +260,10 @@ void WebCookieJar::deleteCookie(const WebCore::Document& document, const URL& ur WebProcess::singleton().ensureNetworkProcessConnection().connection().sendWithAsyncReply(Messages::NetworkConnectionToWebProcess::DeleteCookie(url, cookieName), WTFMove(completionHandler)); } @@ -20929,14 +20942,14 @@ index 83df17e2137dc7664e9240ddfa7a03feb473aeab..9426d55f31beeaf6f6875ab33fa5a46b WebCookieJar(); diff --git a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp -index 16f522fe281f8174b254b0a18626ace238229fd8..86e9489334107fbeb10df041f04eadc4bfb05657 100644 +index 16f522fe281f8174b254b0a18626ace238229fd8..3ff3842047bae47b07d67741900d508a63272a57 100644 --- a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.cpp @@ -49,6 +49,14 @@ void WebDocumentLoader::detachFromFrame() DocumentLoader::detachFromFrame(); } -+void WebDocumentLoader::replacedByFragmentNavigation(Frame& frame) ++void WebDocumentLoader::replacedByFragmentNavigation(LocalFrame& frame) +{ + ASSERT(!this->frame()); + // Notify WebPageProxy that the navigation has been converted into same page navigation. @@ -20948,25 +20961,33 @@ index 16f522fe281f8174b254b0a18626ace238229fd8..86e9489334107fbeb10df041f04eadc4 { ASSERT(navigationID); diff --git a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h -index f127d64d005ab7b93875591b94a5899205e91579..df0de26e4dc449a0fbf93e7037444df4e5365822 100644 +index f127d64d005ab7b93875591b94a5899205e91579..ebb981d69b2d73f234612275bbf9c6130cfb0f49 100644 --- a/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h +++ b/Source/WebKit/WebProcess/WebPage/WebDocumentLoader.h -@@ -43,7 +43,10 @@ public: +@@ -27,6 +27,7 @@ + #define WebDocumentLoader_h + + #include ++#include + + namespace WebKit { + +@@ -43,7 +44,10 @@ public: private: WebDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&); + uint64_t loaderIDForInspector() override { return navigationID(); } + void detachFromFrame() override; -+ void replacedByFragmentNavigation(WebCore::Frame&) override; ++ void replacedByFragmentNavigation(WebCore::LocalFrame&) override; uint64_t m_navigationID; }; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35cb7bcb869 100644 +index 47a01cb008e61bfa563c707499a3f10a654025de..f0f2e63dd7a5c115fa2be8328403aecf0f119465 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -@@ -226,6 +226,7 @@ +@@ -233,6 +233,7 @@ #include #include #include @@ -20974,7 +20995,7 @@ index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35c #include #include #include -@@ -977,6 +978,9 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) +@@ -1003,6 +1004,9 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) sandbox_enable_state_flag("LockdownModeEnabled", *auditToken); #endif // HAVE(SANDBOX_STATE_FLAGS) @@ -20984,7 +21005,7 @@ index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35c updateThrottleState(); #if ENABLE(ACCESSIBILITY_ANIMATION_CONTROL) updateImageAnimationEnabled(); -@@ -1739,6 +1743,22 @@ void WebPage::platformDidReceiveLoadParameters(const LoadParameters& loadParamet +@@ -1779,6 +1783,22 @@ void WebPage::platformDidReceiveLoadParameters(const LoadParameters& loadParamet } #endif @@ -21007,7 +21028,7 @@ index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35c 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()); -@@ -1992,21 +2012,17 @@ void WebPage::setSize(const WebCore::IntSize& viewSize) +@@ -2043,21 +2063,17 @@ void WebPage::setSize(const WebCore::IntSize& viewSize) view->resize(viewSize); m_drawingArea->setNeedsDisplay(); @@ -21024,13 +21045,13 @@ index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35c if (!localMainFrame) return; -- FrameView* view = localMainFrame->view(); +- auto* view = localMainFrame->view(); - ASSERT(view && view->useFixedLayout()); + ASSERT(localMainFrame->view() && localMainFrame->view()->useFixedLayout()); // Viewport properties have no impact on zero sized fixed viewports. if (m_viewSize.isEmpty()) -@@ -2023,20 +2039,18 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg +@@ -2074,20 +2090,18 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg ViewportAttributes attr = computeViewportAttributes(viewportArguments, minimumLayoutFallbackWidth, deviceWidth, deviceHeight, 1, m_viewSize); @@ -21058,7 +21079,7 @@ index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35c #if USE(COORDINATED_GRAPHICS) m_drawingArea->didChangeViewportAttributes(WTFMove(attr)); -@@ -2044,7 +2058,6 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg +@@ -2095,7 +2109,6 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg send(Messages::WebPageProxy::DidChangeViewportProperties(attr)); #endif } @@ -21066,7 +21087,7 @@ index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35c void WebPage::scrollMainFrameIfNotAtMaxScrollPosition(const IntSize& scrollOffset) { -@@ -2336,6 +2349,7 @@ void WebPage::scaleView(double scale) +@@ -2387,6 +2400,7 @@ void WebPage::scaleView(double scale) } m_page->setViewScaleFactor(scale); @@ -21074,13 +21095,13 @@ index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35c scalePage(pageScale, scrollPositionAtNewScale); } -@@ -2515,18 +2529,14 @@ void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArgum +@@ -2566,18 +2580,14 @@ void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArgum viewportConfigurationChanged(); #endif -#if USE(COORDINATED_GRAPHICS) auto* localMainFrame = dynamicDowncast(m_page->mainFrame()); - FrameView* view = localMainFrame ? localMainFrame->view() : nullptr; + auto* view = localMainFrame ? localMainFrame->view() : nullptr; if (view && view->useFixedLayout()) sendViewportAttributesChanged(viewportArguments); +#if USE(COORDINATED_GRAPHICS) @@ -21094,7 +21115,7 @@ index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35c } void WebPage::listenForLayoutMilestones(OptionSet milestones) -@@ -3474,6 +3484,97 @@ void WebPage::touchEvent(const WebTouchEvent& touchEvent) +@@ -3566,6 +3576,97 @@ void WebPage::touchEvent(const WebTouchEvent& touchEvent) send(Messages::WebPageProxy::DidReceiveEvent(touchEvent.type(), handled)); } @@ -21192,7 +21213,7 @@ index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35c #endif void WebPage::cancelPointer(WebCore::PointerID pointerId, const WebCore::IntPoint& documentPoint) -@@ -3551,6 +3652,11 @@ void WebPage::sendMessageToTargetBackend(const String& targetId, const String& m +@@ -3643,6 +3744,11 @@ void WebPage::sendMessageToTargetBackend(const String& targetId, const String& m m_inspectorTargetController->sendMessageToTargetBackend(targetId, message); } @@ -21204,7 +21225,7 @@ index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35c void WebPage::insertNewlineInQuotedContent() { Ref frame = CheckedRef(m_page->focusController())->focusedOrMainFrame(); -@@ -3783,6 +3889,7 @@ void WebPage::didCompletePageTransition() +@@ -3875,6 +3981,7 @@ void WebPage::didCompletePageTransition() void WebPage::show() { send(Messages::WebPageProxy::ShowPage()); @@ -21212,7 +21233,7 @@ index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35c } void WebPage::setIsTakingSnapshotsForApplicationSuspension(bool isTakingSnapshotsForApplicationSuspension) -@@ -4751,7 +4858,7 @@ NotificationPermissionRequestManager* WebPage::notificationPermissionRequestMana +@@ -4846,7 +4953,7 @@ NotificationPermissionRequestManager* WebPage::notificationPermissionRequestMana #if ENABLE(DRAG_SUPPORT) @@ -21221,7 +21242,7 @@ index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35c void WebPage::performDragControllerAction(DragControllerAction action, const IntPoint& clientPosition, const IntPoint& globalPosition, OptionSet draggingSourceOperationMask, SelectionData&& selectionData, OptionSet flags) { if (!m_page) { -@@ -7288,6 +7395,9 @@ Ref WebPage::createDocumentLoader(Frame& frame, const ResourceRe +@@ -7378,6 +7485,9 @@ Ref WebPage::createDocumentLoader(LocalFrame& frame, const Resou WebsitePoliciesData::applyToDocumentLoader(WTFMove(*m_pendingWebsitePolicies), documentLoader); m_pendingWebsitePolicies = std::nullopt; } @@ -21232,10 +21253,10 @@ index 717961cc5399ee09337203297fdc6f23851bec79..40846b8524a54c0ea454141af3c0a35c return documentLoader; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.h b/Source/WebKit/WebProcess/WebPage/WebPage.h -index 48b2214d43a81356463b8171f13e6ec0812b6bc1..467f419ac2d4c3f0cc0e65e46aa1ccc9156f6a35 100644 +index 5d3b2e1c2d3c4f9e26e1241fc67fd51b702fac48..69d90cadb21b26b17dfead1cfe88e1eb57848674 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.h +++ b/Source/WebKit/WebProcess/WebPage/WebPage.h -@@ -121,6 +121,10 @@ +@@ -122,6 +122,10 @@ #include "WebPrintOperationGtk.h" #endif @@ -21246,7 +21267,7 @@ index 48b2214d43a81356463b8171f13e6ec0812b6bc1..467f419ac2d4c3f0cc0e65e46aa1ccc9 #if PLATFORM(GTK) || PLATFORM(WPE) #include "InputMethodState.h" #endif -@@ -1049,11 +1053,11 @@ public: +@@ -1063,11 +1067,11 @@ public: void clearSelection(); void restoreSelectionInFocusedEditableElement(); @@ -21260,7 +21281,7 @@ index 48b2214d43a81356463b8171f13e6ec0812b6bc1..467f419ac2d4c3f0cc0e65e46aa1ccc9 void performDragControllerAction(DragControllerAction, WebCore::DragData&&, SandboxExtension::Handle&&, Vector&&); #endif -@@ -1067,6 +1071,9 @@ public: +@@ -1081,6 +1085,9 @@ public: void didStartDrag(); void dragCancelled(); OptionSet allowedDragSourceActions() const { return m_allowedDragSourceActions; } @@ -21270,7 +21291,7 @@ index 48b2214d43a81356463b8171f13e6ec0812b6bc1..467f419ac2d4c3f0cc0e65e46aa1ccc9 #endif void beginPrinting(WebCore::FrameIdentifier, const PrintInfo&); -@@ -1306,6 +1313,7 @@ public: +@@ -1320,6 +1327,7 @@ public: void connectInspector(const String& targetId, Inspector::FrontendChannel::ConnectionType); void disconnectInspector(const String& targetId); void sendMessageToTargetBackend(const String& targetId, const String& message); @@ -21278,7 +21299,7 @@ index 48b2214d43a81356463b8171f13e6ec0812b6bc1..467f419ac2d4c3f0cc0e65e46aa1ccc9 void insertNewlineInQuotedContent(); -@@ -1729,6 +1737,7 @@ private: +@@ -1745,6 +1753,7 @@ private: // Actions void tryClose(CompletionHandler&&); void platformDidReceiveLoadParameters(const LoadParameters&); @@ -21286,7 +21307,7 @@ index 48b2214d43a81356463b8171f13e6ec0812b6bc1..467f419ac2d4c3f0cc0e65e46aa1ccc9 void loadRequest(LoadParameters&&); [[noreturn]] void loadRequestWaitingForProcessLaunch(LoadParameters&&, URL&&, WebPageProxyIdentifier, bool); void loadData(LoadParameters&&); -@@ -1766,6 +1775,7 @@ private: +@@ -1782,6 +1791,7 @@ private: void updatePotentialTapSecurityOrigin(const WebTouchEvent&, bool wasHandled); #elif ENABLE(TOUCH_EVENTS) void touchEvent(const WebTouchEvent&); @@ -21294,8 +21315,8 @@ index 48b2214d43a81356463b8171f13e6ec0812b6bc1..467f419ac2d4c3f0cc0e65e46aa1ccc9 #endif void cancelPointer(WebCore::PointerID, const WebCore::IntPoint&); -@@ -1911,9 +1921,7 @@ private: - void addLayerForFindOverlay(CompletionHandler&&); +@@ -1927,9 +1937,7 @@ private: + void addLayerForFindOverlay(CompletionHandler&&); void removeLayerForFindOverlay(CompletionHandler&&); -#if USE(COORDINATED_GRAPHICS) @@ -21304,7 +21325,7 @@ index 48b2214d43a81356463b8171f13e6ec0812b6bc1..467f419ac2d4c3f0cc0e65e46aa1ccc9 void didChangeSelectedIndexForActivePopupMenu(int32_t newIndex); void setTextForActivePopupMenu(int32_t index); -@@ -2455,6 +2463,7 @@ private: +@@ -2471,6 +2479,7 @@ private: UserActivity m_userActivity; uint64_t m_pendingNavigationID { 0 }; @@ -21313,7 +21334,7 @@ index 48b2214d43a81356463b8171f13e6ec0812b6bc1..467f419ac2d4c3f0cc0e65e46aa1ccc9 bool m_mainFrameProgressCompleted { false }; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.messages.in b/Source/WebKit/WebProcess/WebPage/WebPage.messages.in -index 4126fd3a3289dcd00b451680a6baf741fb2598d0..ef68d2ab384334febd08e4f7193e4641b976abe4 100644 +index 417c48f9495d3020c2200a5c4a55942f97b85bcf..853547fb4066acf15edbeb960204e22677b01284 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.messages.in +++ b/Source/WebKit/WebProcess/WebPage/WebPage.messages.in @@ -146,6 +146,7 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType @@ -21365,10 +21386,10 @@ index 4126fd3a3289dcd00b451680a6baf741fb2598d0..ef68d2ab384334febd08e4f7193e4641 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 4f693ad3d74212bf898d3bdbf661ebfc5543fcd1..4ce4ec8ec5fd896670a8c43e60b2e9676309e017 100644 +index a66872c21ed4922a2ac150a3c8377c80a546b720..b749a41b0339c446ebfeda6e2bb46daebdebb9bb 100644 --- a/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm +++ b/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm -@@ -791,21 +791,37 @@ String WebPage::platformUserAgent(const URL&) const +@@ -794,21 +794,37 @@ String WebPage::platformUserAgent(const URL&) const bool WebPage::hoverSupportedByPrimaryPointingDevice() const { @@ -21407,7 +21428,7 @@ index 4f693ad3d74212bf898d3bdbf661ebfc5543fcd1..4ce4ec8ec5fd896670a8c43e60b2e967 } diff --git a/Source/WebKit/WebProcess/WebPage/win/WebPageWin.cpp b/Source/WebKit/WebProcess/WebPage/win/WebPageWin.cpp -index 4d8fbc9ad1ed1f45081608e485a605640dedae34..a0110028fc3651f9370f3904097d0853c5205896 100644 +index f17f5d719d892309ed9c7093384945866b5117b9..1dba47bbf0dbd0362548423a74b380346dbea147 100644 --- a/Source/WebKit/WebProcess/WebPage/win/WebPageWin.cpp +++ b/Source/WebKit/WebProcess/WebPage/win/WebPageWin.cpp @@ -43,6 +43,7 @@ @@ -21457,7 +21478,7 @@ index 4d8fbc9ad1ed1f45081608e485a605640dedae34..a0110028fc3651f9370f3904097d0853 } diff --git a/Source/WebKit/WebProcess/WebProcess.cpp b/Source/WebKit/WebProcess/WebProcess.cpp -index 40aa1e285fa7b28fa50cbf608ed3b131f32c070a..4509d545838a8e8d37c55401b702ec57bfcb7fbf 100644 +index c4c4115505a462291b413ff402d3d24771216f4c..66b4798d311a5b1d3a114aaf379d30c286dde5c1 100644 --- a/Source/WebKit/WebProcess/WebProcess.cpp +++ b/Source/WebKit/WebProcess/WebProcess.cpp @@ -94,6 +94,7 @@ @@ -21468,7 +21489,7 @@ index 40aa1e285fa7b28fa50cbf608ed3b131f32c070a..4509d545838a8e8d37c55401b702ec57 #include #include #include -@@ -377,6 +378,8 @@ void WebProcess::initializeProcess(const AuxiliaryProcessInitializationParameter +@@ -378,6 +379,8 @@ void WebProcess::initializeProcess(const AuxiliaryProcessInitializationParameter platformInitializeProcess(parameters); updateCPULimit(); @@ -21477,6 +21498,19 @@ index 40aa1e285fa7b28fa50cbf608ed3b131f32c070a..4509d545838a8e8d37c55401b702ec57 } void WebProcess::initializeConnection(IPC::Connection* connection) +diff --git a/Source/WebKit/WebProcess/WebProcess.h b/Source/WebKit/WebProcess/WebProcess.h +index 33768f58a77485553492a5e076a471bebc948c11..3ce7c975e561cb6864b277770b1747da4314dec5 100644 +--- a/Source/WebKit/WebProcess/WebProcess.h ++++ b/Source/WebKit/WebProcess/WebProcess.h +@@ -711,7 +711,7 @@ private: + + WeakHashMap m_userGestureTokens; + +-#if PLATFORM(GTK) && USE(EGL) ++#if PLATFORM(WAYLAND) || (PLATFORM(GTK) && USE(EGL)) + std::unique_ptr m_displayForCompositing; + #endif + diff --git a/Source/WebKit/WebProcess/win/WebProcessMainWin.cpp b/Source/WebKit/WebProcess/win/WebProcessMainWin.cpp index 8987c3964a9308f2454759de7f8972215a3ae416..bcac0afeb94ed8123d1f9fb0b932c8497d157b49 100644 --- a/Source/WebKit/WebProcess/win/WebProcessMainWin.cpp @@ -21493,7 +21527,7 @@ index 8987c3964a9308f2454759de7f8972215a3ae416..bcac0afeb94ed8123d1f9fb0b932c849 SetProcessDPIAware(); return true; diff --git a/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm b/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm -index 08c08028b0284abf96b75fc365031157eafac104..14387523cec1b53e39dd093d618c53bf08d6d303 100644 +index 60b591e67af468492a1b6db69602f0a5ff89d5dd..5ec155f32739f748480b2113f88a8d105021d80a 100644 --- a/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm +++ b/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm @@ -4210,7 +4210,7 @@ - (void)mouseDown:(WebEvent *)event @@ -21506,10 +21540,10 @@ index 08c08028b0284abf96b75fc365031157eafac104..14387523cec1b53e39dd093d618c53bf - (void)touch:(WebEvent *)event { diff --git a/Source/WebKitLegacy/mac/WebView/WebView.mm b/Source/WebKitLegacy/mac/WebView/WebView.mm -index d4cab0aa73247bfeb6b37f9e9b8927e475359563..29dbff91bcfdcb80a0fc236b36bc126c1ffb871e 100644 +index f8996e00b734296c405ec94640f808b1e48d37ff..a612683d1b32293966ff4c3b3cdbd83b5ce6a917 100644 --- a/Source/WebKitLegacy/mac/WebView/WebView.mm +++ b/Source/WebKitLegacy/mac/WebView/WebView.mm -@@ -4011,7 +4011,7 @@ + (void)_doNotStartObservingNetworkReachability +@@ -3984,7 +3984,7 @@ + (void)_doNotStartObservingNetworkReachability } #endif // PLATFORM(IOS_FAMILY) @@ -21518,7 +21552,7 @@ index d4cab0aa73247bfeb6b37f9e9b8927e475359563..29dbff91bcfdcb80a0fc236b36bc126c - (NSArray *)_touchEventRegions { -@@ -4053,7 +4053,7 @@ - (NSArray *)_touchEventRegions +@@ -4026,7 +4026,7 @@ - (NSArray *)_touchEventRegions }).autorelease(); } @@ -21559,7 +21593,7 @@ index 0000000000000000000000000000000000000000..dd6a53e2d57318489b7e49dd7373706d + LIBVPX_LIBRARIES +) diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake -index ff2b4af73a9cfaf8ff058ff54a7f5b244a6c047d..a51eb44421b834af3c6a9c4809a57e2cc630cf09 100644 +index fd8f191bab6d6b6413d1914e31c54eee86d65cb7..05db3f89babd88eaf3c360dba39cd2ed76bf8a66 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 @@ -21665,7 +21699,7 @@ index ff2b4af73a9cfaf8ff058ff54a7f5b244a6c047d..a51eb44421b834af3c6a9c4809a57e2c SET_AND_EXPOSE_TO_BUILD(HAVE_OS_DARK_MODE_SUPPORT 1) diff --git a/Source/cmake/OptionsWPE.cmake b/Source/cmake/OptionsWPE.cmake -index 817c7fa402719bd7b7f3e17630014c5a0887c6a0..49fe44540744e204798214815d319133888b6140 100644 +index 7974d2c1a072ac0c9ba747652c2b04227b6de459..590a576d20f3d1a1950ad6d77ab7ba951ad6e044 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 @@ -21832,10 +21866,10 @@ index 5bb66cd2d9cf9529ab813ed357a3ddb2534f3bc4..bdf1c642c3236305ddd5df65d23220d2 if (MSVC) set(FATAL_WARNINGS_FLAG /WX) diff --git a/Tools/MiniBrowser/gtk/BrowserTab.c b/Tools/MiniBrowser/gtk/BrowserTab.c -index 7a3f10169eb402c5158b37adbf75c27f70e2018a..3a7f919e0ed5a5f36cd57af2c26e8352e86d69a5 100644 +index 61616b96e2f4e21aa6d098445e0f1a933e512a9c..33732da18013679a869ff8eb2b44543413f7cf0f 100644 --- a/Tools/MiniBrowser/gtk/BrowserTab.c +++ b/Tools/MiniBrowser/gtk/BrowserTab.c -@@ -122,13 +122,16 @@ static gboolean decidePolicy(WebKitWebView *webView, WebKitPolicyDecision *decis +@@ -123,13 +123,16 @@ static gboolean decidePolicy(WebKitWebView *webView, WebKitPolicyDecision *decis return FALSE; WebKitResponsePolicyDecision *responseDecision = WEBKIT_RESPONSE_POLICY_DECISION(decision); @@ -21856,7 +21890,7 @@ index 7a3f10169eb402c5158b37adbf75c27f70e2018a..3a7f919e0ed5a5f36cd57af2c26e8352 return TRUE; } -@@ -158,6 +161,11 @@ static void loadChanged(WebKitWebView *webView, WebKitLoadEvent loadEvent, Brows +@@ -159,6 +162,11 @@ static void loadChanged(WebKitWebView *webView, WebKitLoadEvent loadEvent, Brows #endif } @@ -21868,7 +21902,7 @@ index 7a3f10169eb402c5158b37adbf75c27f70e2018a..3a7f919e0ed5a5f36cd57af2c26e8352 static GtkWidget *createInfoBarQuestionMessage(const char *title, const char *text) { GtkWidget *dialog = gtk_info_bar_new_with_buttons("No", GTK_RESPONSE_NO, "Yes", GTK_RESPONSE_YES, NULL); -@@ -705,6 +713,7 @@ static void browserTabConstructed(GObject *gObject) +@@ -720,6 +728,7 @@ static void browserTabConstructed(GObject *gObject) g_signal_connect(tab->webView, "notify::is-loading", G_CALLBACK(isLoadingChanged), tab); g_signal_connect(tab->webView, "decide-policy", G_CALLBACK(decidePolicy), tab); g_signal_connect(tab->webView, "load-changed", G_CALLBACK(loadChanged), tab); @@ -21876,7 +21910,7 @@ index 7a3f10169eb402c5158b37adbf75c27f70e2018a..3a7f919e0ed5a5f36cd57af2c26e8352 g_signal_connect(tab->webView, "load-failed-with-tls-errors", G_CALLBACK(loadFailedWithTLSerrors), tab); g_signal_connect(tab->webView, "permission-request", G_CALLBACK(decidePermissionRequest), tab); g_signal_connect(tab->webView, "run-color-chooser", G_CALLBACK(runColorChooserCallback), tab); -@@ -754,6 +763,9 @@ static char *getInternalURI(const char *uri) +@@ -772,6 +781,9 @@ static char *getInternalURI(const char *uri) if (g_str_has_prefix(uri, "about:") && !g_str_equal(uri, "about:blank")) return g_strconcat(BROWSER_ABOUT_SCHEME, uri + strlen ("about"), NULL); @@ -22442,7 +22476,7 @@ index b8056910b6cde5610c3e8e4c2992723f8cf80cd0..44367cb186bff1fb85e76cf8f0530170 "${WebKitTestRunner_DIR}/InjectedBundle/Bindings/AccessibilityController.idl" "${WebKitTestRunner_DIR}/InjectedBundle/Bindings/AccessibilityTextMarker.idl" diff --git a/Tools/WebKitTestRunner/TestController.cpp b/Tools/WebKitTestRunner/TestController.cpp -index 981ba306292ac9c905df1f4289e5a9f459496765..3d5ab75f8cbfd322961c105936665b39567f6930 100644 +index 4350cf03169d8533c1e45e460cbe5e68747cce09..43d83bf4def8f970fc7cc9c5b34aa6ca708b2f41 100644 --- a/Tools/WebKitTestRunner/TestController.cpp +++ b/Tools/WebKitTestRunner/TestController.cpp @@ -962,6 +962,7 @@ void TestController::createWebViewWithOptions(const TestOptions& options) @@ -22554,7 +22588,7 @@ index 92e312b9ce6383eb6b73296e70a3c9e996f55f2c..b3e968773a1919c3edadbb0a543ea056 # These are dependencies necessary for running tests. cups-daemon diff --git a/Tools/jhbuild/jhbuild-minimal.modules b/Tools/jhbuild/jhbuild-minimal.modules -index c004dfadb3cafe873011d6e003e47a422f8db620..79eed95ac99026518466164505f7daeb72359a27 100644 +index c004dfadb3cafe873011d6e003e47a422f8db620..35594ed226377c96a7e18cdfb38ea17261ba65af 100644 --- a/Tools/jhbuild/jhbuild-minimal.modules +++ b/Tools/jhbuild/jhbuild-minimal.modules @@ -22,7 +22,6 @@ @@ -22565,29 +22599,6 @@ index c004dfadb3cafe873011d6e003e47a422f8db620..79eed95ac99026518466164505f7daeb -@@ -77,18 +76,18 @@ - - - -- -+ hash="a6f00a7d091cbd4db57fe7ee3b4c12c6350921d654ed79812800a26c888481d2"/> - - - - - - -- -+ hash="9652a99c75fe1c6eab0585b6395f4e104b2427e4d1f42969f1f77df29920d253"> - - - diff --git a/Tools/win/DLLLauncher/DLLLauncherMain.cpp b/Tools/win/DLLLauncher/DLLLauncherMain.cpp index 879d19af24deecab1d55b97e4141ab1be753d8ce..5b28580d8bde8a346051a82b2c047bead17ec2b0 100644 --- a/Tools/win/DLLLauncher/DLLLauncherMain.cpp