From 1cf1f530766ebe563df788f8c7d64f3387c45d17 Mon Sep 17 00:00:00 2001 From: Andrey Lushnikov Date: Tue, 21 Feb 2023 11:46:10 -0800 Subject: [PATCH] chore: update browser patches as of Jan 11, 2023 (#21068) --- .../firefox/juggler/content/FrameTree.js | 15 +- .../screencast/nsScreencastService.cpp | 27 +- .../firefox/patches/bootstrap.diff | 22 +- browser_patches/webkit/UPSTREAM_CONFIG.sh | 2 +- browser_patches/webkit/patches/bootstrap.diff | 1699 ++++++++++------- browser_patches/winldd/README.md | 4 +- 6 files changed, 1001 insertions(+), 768 deletions(-) diff --git a/browser_patches/firefox/juggler/content/FrameTree.js b/browser_patches/firefox/juggler/content/FrameTree.js index b803327282..dfa169553a 100644 --- a/browser_patches/firefox/juggler/content/FrameTree.js +++ b/browser_patches/firefox/juggler/content/FrameTree.js @@ -157,8 +157,19 @@ class FrameTree { allFramesInBrowsingContextGroup(group) { const frames = []; - for (const frameTree of (group.__jugglerFrameTrees || [])) - frames.push(...frameTree.frames()); + for (const frameTree of (group.__jugglerFrameTrees || [])) { + for (const frame of frameTree.frames()) { + try { + // Try accessing docShell and domWindow to filter out dead frames. + // This might happen for print-preview frames, but maybe for something else as well. + frame.docShell(); + frame.domWindow(); + frames.push(frame); + } catch (e) { + dump(`WARNING: unable to access docShell and domWindow of the frame[id=${frame.id()}]\n`); + } + } + } return frames; } diff --git a/browser_patches/firefox/juggler/screencast/nsScreencastService.cpp b/browser_patches/firefox/juggler/screencast/nsScreencastService.cpp index c58cbf0c84..2a84221331 100644 --- a/browser_patches/firefox/juggler/screencast/nsScreencastService.cpp +++ b/browser_patches/firefox/juggler/screencast/nsScreencastService.cpp @@ -80,6 +80,7 @@ class nsScreencastService::Session : public rtc::VideoSinkInterface&& capturer, std::unique_ptr encoder, int width, int height, @@ -87,6 +88,7 @@ class nsScreencastService::Session : public rtc::VideoSinkInterface Create( nsIScreencastServiceClient* client, + nsIWidget* widget, rtc::scoped_refptr&& capturer, std::unique_ptr encoder, int width, int height, int viewportWidth, int viewportHeight, gfx::IntMargin margin, uint32_t jpegQuality) { - return do_AddRef(new Session(client, std::move(capturer), std::move(encoder), width, height, viewportWidth, viewportHeight, margin, jpegQuality)); + return do_AddRef(new Session(client, widget, std::move(capturer), std::move(encoder), width, height, viewportWidth, viewportHeight, margin, jpegQuality)); + } + + rtc::scoped_refptr ReuseCapturer(nsIWidget* widget) { + if (mWidget == widget) + return mCaptureModule; + return nullptr; } bool Start() { @@ -141,10 +150,6 @@ class nsScreencastService::Session : public rtc::VideoSinkInterfaceDeRegisterCaptureDataCallback(this); else mCaptureModule->DeRegisterRawFrameCallback(this); - int error = mCaptureModule->StopCapture(); - if (error) { - fprintf(stderr, "StopCapture error %d\n", error); - } if (mEncoder) { mEncoder->finish([this, protect = RefPtr{this}] { NS_DispatchToMainThread(NS_NewRunnableFunction( @@ -279,6 +284,7 @@ class nsScreencastService::Session : public rtc::VideoSinkInterface mClient; + nsIWidget* mWidget; rtc::scoped_refptr mCaptureModule; std::unique_ptr mEncoder; uint32_t mJpegQuality; @@ -322,7 +328,14 @@ nsresult nsScreencastService::StartVideoRecording(nsIScreencastServiceClient* aC return NS_ERROR_UNEXPECTED; nsIWidget* widget = view->GetWidget(); - rtc::scoped_refptr capturer = CreateWindowCapturer(widget); + rtc::scoped_refptr capturer = nullptr; + for (auto& it : mIdToSession) { + capturer = it.second->ReuseCapturer(widget); + if (capturer) + break; + } + if (!capturer) + capturer = CreateWindowCapturer(widget); if (!capturer) return NS_ERROR_FAILURE; @@ -349,7 +362,7 @@ nsresult nsScreencastService::StartVideoRecording(nsIScreencastServiceClient* aC NS_ENSURE_SUCCESS(rv, rv); sessionId = uid; - auto session = Session::Create(aClient, std::move(capturer), std::move(encoder), width, height, viewportWidth, viewportHeight, margin, isVideo ? 0 : quality); + auto session = Session::Create(aClient, widget, std::move(capturer), std::move(encoder), width, height, viewportWidth, viewportHeight, margin, isVideo ? 0 : quality); if (!session->Start()) return NS_ERROR_FAILURE; mIdToSession.emplace(sessionId, std::move(session)); diff --git a/browser_patches/firefox/patches/bootstrap.diff b/browser_patches/firefox/patches/bootstrap.diff index ad9f8aa2d0..a1cc1331fd 100644 --- a/browser_patches/firefox/patches/bootstrap.diff +++ b/browser_patches/firefox/patches/bootstrap.diff @@ -895,7 +895,7 @@ index b81fb1088ab0025555c24e7353cda836f896b26b..21403d0a219cc478b8de20fda410eb26 static bool AutomaticStorageAccessPermissionCanBeGranted( diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp -index e432d25c7397be64b009e4cb671cb6e322175830..074b1c7241c64412ee58a6239d36c9f74476ae46 100644 +index e432d25c7397be64b009e4cb671cb6e322175830..2d9fd36ed9bf96065b4d7cf37944523626522345 100644 --- a/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp @@ -326,14 +326,18 @@ void Navigator::GetAppName(nsAString& aAppName, CallerType aCallerType) const { @@ -949,16 +949,6 @@ index e432d25c7397be64b009e4cb671cb6e322175830..074b1c7241c64412ee58a6239d36c9f7 void Navigator::GetBuildID(nsAString& aBuildID, CallerType aCallerType, ErrorResult& aRv) const { -@@ -2257,7 +2273,8 @@ bool Navigator::Webdriver() { - } - #endif - -- return false; -+ // Playwright is automating the browser, so we should pretend to be a webdriver -+ return true; - } - - } // namespace mozilla::dom diff --git a/dom/base/Navigator.h b/dom/base/Navigator.h index 19b9c31fa2464fc3e865e7a7d69ff91140153510..14b617eefc5c23fcca20c407cb71b5618321f6da 100644 --- a/dom/base/Navigator.h @@ -2720,7 +2710,7 @@ diff --git a/widget/cocoa/NativeKeyBindings.mm b/widget/cocoa/NativeKeyBindings. index d3e5983259053175584254e7ac01ca9ce024f33a..97f5b851c402fea5477c0ee57af451c62b016eec 100644 --- a/widget/cocoa/NativeKeyBindings.mm +++ b/widget/cocoa/NativeKeyBindings.mm -@@ -492,6 +492,13 @@ +@@ -492,6 +492,13 @@ void NativeKeyBindings::GetEditCommandsForTests(NativeKeyBindingsType aType, break; case KEY_NAME_INDEX_ArrowLeft: if (aEvent.IsAlt()) { @@ -2734,7 +2724,7 @@ index d3e5983259053175584254e7ac01ca9ce024f33a..97f5b851c402fea5477c0ee57af451c6 break; } if (aEvent.IsMeta() || (aEvent.IsControl() && aEvent.IsShift())) { -@@ -512,6 +519,13 @@ +@@ -512,6 +519,13 @@ void NativeKeyBindings::GetEditCommandsForTests(NativeKeyBindingsType aType, break; case KEY_NAME_INDEX_ArrowRight: if (aEvent.IsAlt()) { @@ -2748,7 +2738,7 @@ index d3e5983259053175584254e7ac01ca9ce024f33a..97f5b851c402fea5477c0ee57af451c6 break; } if (aEvent.IsMeta() || (aEvent.IsControl() && aEvent.IsShift())) { -@@ -532,6 +546,10 @@ +@@ -532,6 +546,10 @@ void NativeKeyBindings::GetEditCommandsForTests(NativeKeyBindingsType aType, break; case KEY_NAME_INDEX_ArrowUp: if (aEvent.IsControl()) { @@ -2759,7 +2749,7 @@ index d3e5983259053175584254e7ac01ca9ce024f33a..97f5b851c402fea5477c0ee57af451c6 break; } if (aEvent.IsMeta()) { -@@ -541,7 +559,7 @@ +@@ -541,7 +559,7 @@ void NativeKeyBindings::GetEditCommandsForTests(NativeKeyBindingsType aType, instance->AppendEditCommandsForSelector( !aEvent.IsShift() ? ToObjcSelectorPtr(@selector(moveToBeginningOfDocument:)) @@ -2768,7 +2758,7 @@ index d3e5983259053175584254e7ac01ca9ce024f33a..97f5b851c402fea5477c0ee57af451c6 aCommands); break; } -@@ -564,6 +582,10 @@ +@@ -564,6 +582,10 @@ void NativeKeyBindings::GetEditCommandsForTests(NativeKeyBindingsType aType, break; case KEY_NAME_INDEX_ArrowDown: if (aEvent.IsControl()) { diff --git a/browser_patches/webkit/UPSTREAM_CONFIG.sh b/browser_patches/webkit/UPSTREAM_CONFIG.sh index 2647e291c6..9925fa4111 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="675d141bdcf7fa6df9bdf505d46e46fdac638452" +BASE_REVISION="654646fe6187abcf9ced6a3ace80eaf04754fd39" diff --git a/browser_patches/webkit/patches/bootstrap.diff b/browser_patches/webkit/patches/bootstrap.diff index c815a22f9d..2471618070 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 05cc3b536d85fd2fbc98e7add71f533c42a6f71b..b3917a9e9d88f5c030295273150745b9f5497abf 100644 +index 6c06f3fb67b6c047654660c5b3cff4dde8641c33..b6c7f6beb8d16224539d3fbbfed9351edb9e011e 100644 --- a/Source/JavaScriptCore/CMakeLists.txt +++ b/Source/JavaScriptCore/CMakeLists.txt @@ -1393,22 +1393,27 @@ set(JavaScriptCore_INSPECTOR_DOMAINS @@ -31,10 +31,10 @@ index 05cc3b536d85fd2fbc98e7add71f533c42a6f71b..b3917a9e9d88f5c030295273150745b9 ${JAVASCRIPTCORE_DIR}/inspector/protocol/ServiceWorker.json ${JAVASCRIPTCORE_DIR}/inspector/protocol/Target.json diff --git a/Source/JavaScriptCore/DerivedSources.make b/Source/JavaScriptCore/DerivedSources.make -index b03119859b76d648dc990e056e9ac78237bda7d4..fe2dda9d96752270d4d202c8ce6825dd51c4204a 100644 +index e3f99308f7066a980fe75d717bd90a0a5b354b98..d7cd13f5f2a33e9d0fd3bce673244bd05388ccc4 100644 --- a/Source/JavaScriptCore/DerivedSources.make +++ b/Source/JavaScriptCore/DerivedSources.make -@@ -298,22 +298,27 @@ INSPECTOR_DOMAINS := \ +@@ -297,22 +297,27 @@ INSPECTOR_DOMAINS := \ $(JavaScriptCore)/inspector/protocol/CSS.json \ $(JavaScriptCore)/inspector/protocol/Canvas.json \ $(JavaScriptCore)/inspector/protocol/Console.json \ @@ -984,7 +984,7 @@ index 96af27ece2ac200e11c4311b3ca0d9d3b5a048da..3168f7806fcbdabec07acc5e304bae1e ], "events": [ diff --git a/Source/JavaScriptCore/inspector/protocol/Page.json b/Source/JavaScriptCore/inspector/protocol/Page.json -index 1c97ad011c5ec183a5866bb98319badd5ec9442f..7a40d1c730b870a58f810cf3118b5004c8021017 100644 +index 0752749468843c52d3a86fae5660a5182b1f0df7..dc23a8a2b542e715a67ee027c0d0e2f94e3daaca 100644 --- a/Source/JavaScriptCore/inspector/protocol/Page.json +++ b/Source/JavaScriptCore/inspector/protocol/Page.json @@ -21,7 +21,14 @@ @@ -1003,9 +1003,9 @@ index 1c97ad011c5ec183a5866bb98319badd5ec9442f..7a40d1c730b870a58f810cf3118b5004 ] }, { -@@ -49,6 +56,18 @@ - "enum": ["Light", "Dark"], - "description": "Page appearance name." +@@ -63,6 +70,18 @@ + "enum": ["None", "Lax", "Strict"], + "description": "Same-Site policy of a cookie." }, + { + "id": "ReducedMotion", @@ -1022,7 +1022,7 @@ index 1c97ad011c5ec183a5866bb98319badd5ec9442f..7a40d1c730b870a58f810cf3118b5004 { "id": "Frame", "type": "object", -@@ -112,6 +131,51 @@ +@@ -126,6 +145,51 @@ { "name": "secure", "type": "boolean", "description": "True if cookie is secure." }, { "name": "sameSite", "$ref": "CookieSameSitePolicy", "description": "Cookie Same-Site policy." } ] @@ -1074,7 +1074,7 @@ index 1c97ad011c5ec183a5866bb98319badd5ec9442f..7a40d1c730b870a58f810cf3118b5004 } ], "commands": [ -@@ -131,6 +195,14 @@ +@@ -145,6 +209,14 @@ { "name": "revalidateAllResources", "type": "boolean", "optional": true, "description": "If true, all cached subresources will be revalidated when the main resource loads. Otherwise, only expired cached subresources will be revalidated (the default behavior for most WebKit clients)." } ] }, @@ -1089,7 +1089,7 @@ index 1c97ad011c5ec183a5866bb98319badd5ec9442f..7a40d1c730b870a58f810cf3118b5004 { "name": "navigate", "description": "Navigates current page to the given URL.", -@@ -147,6 +219,14 @@ +@@ -161,6 +233,14 @@ { "name": "value", "type": "string", "optional": true, "description": "Value to override the user agent with. If this value is not provided, the override is removed. Overrides are removed when Web Inspector closes/disconnects." } ] }, @@ -1104,7 +1104,7 @@ index 1c97ad011c5ec183a5866bb98319badd5ec9442f..7a40d1c730b870a58f810cf3118b5004 { "name": "overrideSetting", "description": "Allows the frontend to override the inspected page's settings.", -@@ -204,7 +284,8 @@ +@@ -227,7 +307,8 @@ "name": "setBootstrapScript", "targetTypes": ["page"], "parameters": [ @@ -1114,8 +1114,8 @@ index 1c97ad011c5ec183a5866bb98319badd5ec9442f..7a40d1c730b870a58f810cf3118b5004 ] }, { -@@ -270,6 +351,36 @@ - { "name": "appearance", "$ref": "Appearance", "optional": true } +@@ -284,6 +365,36 @@ + { "name": "media", "type": "string", "description": "Media type to emulate. Empty string disables the override." } ] }, + { @@ -1151,7 +1151,7 @@ index 1c97ad011c5ec183a5866bb98319badd5ec9442f..7a40d1c730b870a58f810cf3118b5004 { "name": "snapshotNode", "description": "Capture a snapshot of the specified node that does not include unrelated layers.", -@@ -290,7 +401,8 @@ +@@ -304,7 +415,8 @@ { "name": "y", "type": "integer", "description": "Y coordinate" }, { "name": "width", "type": "integer", "description": "Rectangle width" }, { "name": "height", "type": "integer", "description": "Rectangle height" }, @@ -1161,7 +1161,7 @@ index 1c97ad011c5ec183a5866bb98319badd5ec9442f..7a40d1c730b870a58f810cf3118b5004 ], "returns": [ { "name": "dataURL", "type": "string", "description": "Base64-encoded image data (PNG)." } -@@ -308,12 +420,92 @@ +@@ -322,12 +434,92 @@ { "name": "setScreenSizeOverride", "description": "Overrides screen size exposed to DOM and used in media queries for testing with provided values.", @@ -1255,7 +1255,7 @@ index 1c97ad011c5ec183a5866bb98319badd5ec9442f..7a40d1c730b870a58f810cf3118b5004 } ], "events": [ -@@ -321,14 +513,16 @@ +@@ -335,14 +527,16 @@ "name": "domContentEventFired", "targetTypes": ["page"], "parameters": [ @@ -1274,7 +1274,7 @@ index 1c97ad011c5ec183a5866bb98319badd5ec9442f..7a40d1c730b870a58f810cf3118b5004 ] }, { -@@ -338,6 +532,14 @@ +@@ -352,6 +546,14 @@ { "name": "frame", "$ref": "Frame", "description": "Frame object." } ] }, @@ -1289,7 +1289,7 @@ index 1c97ad011c5ec183a5866bb98319badd5ec9442f..7a40d1c730b870a58f810cf3118b5004 { "name": "frameDetached", "description": "Fired when frame has been detached from its parent.", -@@ -377,6 +579,22 @@ +@@ -391,6 +593,22 @@ { "name": "frameId", "$ref": "Network.FrameId", "description": "Id of the frame that has cleared its scheduled navigation." } ] }, @@ -1310,11 +1310,11 @@ index 1c97ad011c5ec183a5866bb98319badd5ec9442f..7a40d1c730b870a58f810cf3118b5004 + ] + }, { - "name": "defaultAppearanceDidChange", - "description": "Fired when page's default appearance changes, even if there is a forced appearance.", -@@ -385,6 +603,42 @@ + "name": "defaultUserPreferencesDidChange", + "description": "Fired when the default value of a user preference changes at the system level.", +@@ -398,6 +616,42 @@ "parameters": [ - { "name": "appearance", "$ref": "Appearance", "description": "Name of the appearance that is active (not considering any forced appearance.)" } + { "name": "preferences", "type": "array", "items": { "$ref": "UserPreference" }, "description": "List of user preferences that can be overriden and their new system (default) values." } ] + }, + { @@ -1834,7 +1834,7 @@ index 72c81757450ad5ebacd5fd20d2a16095514802ec..b7d8ab1e04d3850180079870468b28ef private: enum ArgumentRequirement { ArgumentRequired, ArgumentNotRequired }; diff --git a/Source/ThirdParty/libwebrtc/CMakeLists.txt b/Source/ThirdParty/libwebrtc/CMakeLists.txt -index 9d2c74d08ce6f19f91b3c6ee63cd9682e9a4b310..fed7d9787dbb7e21648a24e32c4bc418d1c881a5 100644 +index 026a804a74555ba7dbb13a0e0b84d9953424d85c..952162341951ca3a7713324305f41dd503a51615 100644 --- a/Source/ThirdParty/libwebrtc/CMakeLists.txt +++ b/Source/ThirdParty/libwebrtc/CMakeLists.txt @@ -551,6 +551,11 @@ set(webrtc_SOURCES @@ -1849,7 +1849,7 @@ index 9d2c74d08ce6f19f91b3c6ee63cd9682e9a4b310..fed7d9787dbb7e21648a24e32c4bc418 Source/third_party/libyuv/source/compare.cc Source/third_party/libyuv/source/compare_common.cc Source/third_party/libyuv/source/compare_gcc.cc -@@ -2187,6 +2192,10 @@ set(webrtc_INCLUDE_DIRECTORIES PRIVATE +@@ -2186,6 +2191,10 @@ set(webrtc_INCLUDE_DIRECTORIES PRIVATE Source/third_party/libsrtp/config Source/third_party/libsrtp/crypto/include Source/third_party/libsrtp/include @@ -1861,13 +1861,13 @@ index 9d2c74d08ce6f19f91b3c6ee63cd9682e9a4b310..fed7d9787dbb7e21648a24e32c4bc418 Source/third_party/opus/src/celt Source/third_party/opus/src/include diff --git a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp -index ca891a7159d890799759ff78c79de4c69be1f898..3eb14670d55db3dd0296ddc7f85c540ede3383e1 100644 +index 626efe5d02febd3d80066d2013dd479ecec29471..4c05722dfc3fe885968a69b64adc6f0a0470bcb1 100644 --- a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp +++ b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp -@@ -362,3 +362,24 @@ __ZNK6webrtc10ColorSpace5rangeEv - __ZNK6webrtc10ColorSpace6matrixEv - __ZNK6webrtc10ColorSpace8transferEv - __ZNK6webrtc10ColorSpace9primariesEv +@@ -376,3 +376,24 @@ __ZN6webrtc20VideoFrameBufferPoolC1Ebm + __ZN6webrtc20VideoFrameBufferPoolD1Ev + __ZTVN6webrtc12VideoDecoderE + __ZN6webrtc22CreateLibaomAv1EncoderEv +__ZN8mkvmuxer11SegmentInfo15set_writing_appEPKc +__ZN8mkvmuxer11SegmentInfo4InitEv +__ZN8mkvmuxer7Segment10OutputCuesEb @@ -1890,20 +1890,20 @@ index ca891a7159d890799759ff78c79de4c69be1f898..3eb14670d55db3dd0296ddc7f85c540e +_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 ce8d0e7792f5ea2eefdec09bdc821ed844257828..77763b7c70dd8d93f37e406d1fdfa3e481a1089c 100644 +index e49454249a4ca366dd840c174b67587a6a07521e..be7c83d56c01f7da6049824598f81b7190eb2eeb 100644 --- a/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig +++ b/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig -@@ -50,7 +50,7 @@ DYLIB_INSTALL_NAME_BASE_WK_RELOCATABLE_FRAMEWORKS_ = $(NORMAL_WEBCORE_FRAMEWORKS +@@ -47,7 +47,7 @@ DYLIB_INSTALL_NAME_BASE_WK_RELOCATABLE_FRAMEWORKS_ = $(NORMAL_UMBRELLA_FRAMEWORK DYLIB_INSTALL_NAME_BASE_WK_RELOCATABLE_FRAMEWORKS_YES = @loader_path/../../../; GCC_WARN_64_TO_32_BIT_CONVERSION = NO; --HEADER_SEARCH_PATHS = Source Source/third_party/libsrtp/crypto/include Source/third_party/libsrtp/include Source/third_party/boringssl/src/include Source/third_party/libyuv/include Source/webrtc/sdk/objc/Framework/Headers Source/webrtc/common_audio/signal_processing/include Source/webrtc/modules/audio_coding/codecs/isac/main/include Source/third_party/opus/src/celt Source/third_party/opus/src/include Source/third_party/opus/src/src Source/webrtc/modules/audio_device/mac Source/webrtc/modules/audio_device/ios Source/webrtc Source/webrtc/sdk/objc Source/webrtc/sdk/objc/base Source/webrtc/sdk/objc/Framework/Classes Source/third_party/libsrtp/config Source/webrtc/sdk/objc/Framework/Classes/Common Source/webrtc/sdk/objc/Framework/Classes/Video Source/webrtc/sdk/objc/Framework/Classes/PeerConnection Source/third_party/abseil-cpp Source/third_party/libvpx/source/libvpx Source/third_party/libwebm/webm_parser/include Source/third_party/crc32c/config Source/third_party/crc32c/include Source/third_party/crc32c/src/include; -+HEADER_SEARCH_PATHS = Source Source/third_party/libsrtp/crypto/include Source/third_party/libsrtp/include Source/third_party/boringssl/src/include Source/third_party/libyuv/include Source/webrtc/sdk/objc/Framework/Headers Source/webrtc/common_audio/signal_processing/include Source/webrtc/modules/audio_coding/codecs/isac/main/include Source/third_party/opus/src/celt Source/third_party/opus/src/include Source/third_party/opus/src/src Source/webrtc/modules/audio_device/mac Source/webrtc/modules/audio_device/ios Source/webrtc Source/webrtc/sdk/objc Source/webrtc/sdk/objc/base Source/webrtc/sdk/objc/Framework/Classes Source/third_party/libsrtp/config Source/webrtc/sdk/objc/Framework/Classes/Common Source/webrtc/sdk/objc/Framework/Classes/Video Source/webrtc/sdk/objc/Framework/Classes/PeerConnection Source/third_party/abseil-cpp Source/third_party/libvpx/source/libvpx Source/third_party/libwebm/webm_parser/include Source/third_party/crc32c/config Source/third_party/crc32c/include Source/third_party/crc32c/src/include Source/third_party/libwebm/mkvmuxer Source/third_party/libvpx/source/libvpx/third_party/libwebm; +-HEADER_SEARCH_PATHS = Source Source/third_party/libsrtp/crypto/include Source/third_party/libsrtp/include Source/third_party/boringssl/src/include Source/third_party/libyuv/include Source/webrtc/sdk/objc/Framework/Headers Source/webrtc/common_audio/signal_processing/include Source/webrtc/modules/audio_coding/codecs/isac/main/include Source/third_party/opus/src/celt Source/third_party/opus/src/include Source/third_party/opus/src/src Source/webrtc/modules/audio_device/mac Source/webrtc/modules/audio_device/ios Source/webrtc Source/webrtc/sdk/objc Source/webrtc/sdk/objc/base Source/webrtc/sdk/objc/Framework/Classes Source/third_party/libsrtp/config Source/webrtc/sdk/objc/Framework/Classes/Common Source/webrtc/sdk/objc/Framework/Classes/Video Source/webrtc/sdk/objc/Framework/Classes/PeerConnection Source/third_party/abseil-cpp Source/third_party/libvpx/source/libvpx Source/third_party/libwebm/webm_parser/include Source/third_party/crc32c/config Source/third_party/crc32c/include Source/third_party/crc32c/src/include Source/third_party/libaom/source/libaom; ++HEADER_SEARCH_PATHS = Source Source/third_party/libsrtp/crypto/include Source/third_party/libsrtp/include Source/third_party/boringssl/src/include Source/third_party/libyuv/include Source/webrtc/sdk/objc/Framework/Headers Source/webrtc/common_audio/signal_processing/include Source/webrtc/modules/audio_coding/codecs/isac/main/include Source/third_party/opus/src/celt Source/third_party/opus/src/include Source/third_party/opus/src/src Source/webrtc/modules/audio_device/mac Source/webrtc/modules/audio_device/ios Source/webrtc Source/webrtc/sdk/objc Source/webrtc/sdk/objc/base Source/webrtc/sdk/objc/Framework/Classes Source/third_party/libsrtp/config Source/webrtc/sdk/objc/Framework/Classes/Common Source/webrtc/sdk/objc/Framework/Classes/Video Source/webrtc/sdk/objc/Framework/Classes/PeerConnection Source/third_party/abseil-cpp Source/third_party/libvpx/source/libvpx Source/third_party/libwebm/webm_parser/include Source/third_party/crc32c/config Source/third_party/crc32c/include Source/third_party/crc32c/src/include Source/third_party/libaom/source/libaom Source/third_party/libwebm/mkvmuxer Source/third_party/libvpx/source/libvpx/third_party/libwebm; 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 4d7b343e1d78d5e66a02dbdfe1cc18747eef1de7..c24705abe9b37c66b0d2f4f4de8be1f453bd72a9 100644 +index e933f4a4936766b0430f947a0fa06811366fb1be..a43887624e093302e815c2f87e13a8ae187f99fb 100644 --- a/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj +++ b/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj @@ -6,6 +6,20 @@ @@ -1927,7 +1927,7 @@ index 4d7b343e1d78d5e66a02dbdfe1cc18747eef1de7..c24705abe9b37c66b0d2f4f4de8be1f4 /* Begin PBXBuildFile section */ 2D6BFF60280A93DF00A1A74F /* video_coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 4131C45B234C81710028A615 /* video_coding.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2D6BFF61280A93EC00A1A74F /* video_codec_initializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4131C45E234C81720028A615 /* video_codec_initializer.h */; settings = {ATTRIBUTES = (Public, ); }; }; -@@ -4659,6 +4673,9 @@ +@@ -5104,6 +5118,9 @@ DDF30D9127C5C725006A526F /* receive_side_congestion_controller.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF30D9027C5C725006A526F /* receive_side_congestion_controller.h */; }; DDF30D9527C5C756006A526F /* bwe_defines.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF30D9327C5C756006A526F /* bwe_defines.h */; }; DDF30D9627C5C756006A526F /* remote_bitrate_estimator.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF30D9427C5C756006A526F /* remote_bitrate_estimator.h */; }; @@ -1937,7 +1937,7 @@ index 4d7b343e1d78d5e66a02dbdfe1cc18747eef1de7..c24705abe9b37c66b0d2f4f4de8be1f4 /* End PBXBuildFile section */ /* Begin PBXBuildRule section */ -@@ -4902,6 +4919,13 @@ +@@ -5367,6 +5384,13 @@ remoteGlobalIDString = DDF30D0527C5C003006A526F; remoteInfo = absl; }; @@ -1951,7 +1951,7 @@ index 4d7b343e1d78d5e66a02dbdfe1cc18747eef1de7..c24705abe9b37c66b0d2f4f4de8be1f4 /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ -@@ -9804,6 +9828,9 @@ +@@ -10871,6 +10895,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 = ""; }; @@ -1961,7 +1961,7 @@ index 4d7b343e1d78d5e66a02dbdfe1cc18747eef1de7..c24705abe9b37c66b0d2f4f4de8be1f4 FB39D0D11200F0E300088E69 /* libwebrtc.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libwebrtc.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ -@@ -17390,6 +17417,7 @@ +@@ -19298,6 +19325,7 @@ isa = PBXGroup; children = ( CDFD2F9224C4B2F90048DAC3 /* common */, @@ -1969,7 +1969,7 @@ index 4d7b343e1d78d5e66a02dbdfe1cc18747eef1de7..c24705abe9b37c66b0d2f4f4de8be1f4 CDEBB19224C0191800ADBD44 /* webm_parser */, ); path = libwebm; -@@ -17844,6 +17872,16 @@ +@@ -19760,6 +19788,16 @@ path = include; sourceTree = ""; }; @@ -1986,23 +1986,23 @@ index 4d7b343e1d78d5e66a02dbdfe1cc18747eef1de7..c24705abe9b37c66b0d2f4f4de8be1f4 FB39D06E1200ED9200088E69 = { isa = PBXGroup; children = ( -@@ -20566,6 +20604,7 @@ - DDF30CFA27C5A98F006A526F /* PBXBuildRule */, +@@ -22744,6 +22782,7 @@ ); dependencies = ( + 410B3827292B73E90003E515 /* PBXTargetDependency */, + F31720B427FE273100EEE407 /* PBXTargetDependency */, DD2E76E827C6B69A00F2A74C /* PBXTargetDependency */, CDEBB4CC24C01AB400ADBD44 /* PBXTargetDependency */, 411ED040212E0811004320BA /* PBXTargetDependency */, -@@ -20624,6 +20663,7 @@ - 41F77D15215BE45E00E72967 /* yasm */, +@@ -22803,6 +22842,7 @@ CDEBB11824C0187400ADBD44 /* webm */, + DDEBB11824C0187400ADBD44 /* aom */, DDF30D0527C5C003006A526F /* absl */, + F31720AC27FE215900EEE407 /* Copy libvpx headers */, ); }; /* End PBXProject section */ -@@ -20757,6 +20797,23 @@ +@@ -22954,6 +22994,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"; }; @@ -2026,7 +2026,7 @@ index 4d7b343e1d78d5e66a02dbdfe1cc18747eef1de7..c24705abe9b37c66b0d2f4f4de8be1f4 /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ -@@ -22345,6 +22402,9 @@ +@@ -24757,6 +24814,9 @@ 5CDD865E1E43B8B500621E92 /* min_max_operations.c in Sources */, 4189395B242A71F5007FDC41 /* min_video_bitrate_experiment.cc in Sources */, 41B8D8FB28CB85CB00E5FA37 /* missing_mandatory_parameter_cause.cc in Sources */, @@ -2036,7 +2036,7 @@ index 4d7b343e1d78d5e66a02dbdfe1cc18747eef1de7..c24705abe9b37c66b0d2f4f4de8be1f4 4131C387234B957D0028A615 /* moving_average.cc in Sources */, 41FCBB1521B1F7AA00A5DF27 /* moving_average.cc in Sources */, 5CD286101E6A64C90094FDC8 /* moving_max.cc in Sources */, -@@ -23062,6 +23122,11 @@ +@@ -25481,6 +25541,11 @@ target = DDF30D0527C5C003006A526F /* absl */; targetProxy = DD2E76E727C6B69A00F2A74C /* PBXContainerItemProxy */; }; @@ -2048,7 +2048,7 @@ index 4d7b343e1d78d5e66a02dbdfe1cc18747eef1de7..c24705abe9b37c66b0d2f4f4de8be1f4 /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ -@@ -23268,6 +23333,27 @@ +@@ -25708,6 +25773,27 @@ }; name = Production; }; @@ -2076,7 +2076,7 @@ index 4d7b343e1d78d5e66a02dbdfe1cc18747eef1de7..c24705abe9b37c66b0d2f4f4de8be1f4 FB39D0711200ED9200088E69 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 5D7C59C71208C68B001C873E /* DebugRelease.xcconfig */; -@@ -23390,6 +23476,16 @@ +@@ -25840,6 +25926,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Production; }; @@ -2094,10 +2094,10 @@ index 4d7b343e1d78d5e66a02dbdfe1cc18747eef1de7..c24705abe9b37c66b0d2f4f4de8be1f4 isa = XCConfigurationList; buildConfigurations = ( diff --git a/Source/WTF/Scripts/Preferences/WebPreferences.yaml b/Source/WTF/Scripts/Preferences/WebPreferences.yaml -index 464f6bfc8e91b411509d22412fa278603a5c5ac7..7c669e977fe456ecd649d02cbb2a8105380a8962 100644 +index 564f5afdd9122bafb4aa96e1e216ea6282cd3e57..6107ef369dd5b538e90be1978b1743c8c49b8a8f 100644 --- a/Source/WTF/Scripts/Preferences/WebPreferences.yaml +++ b/Source/WTF/Scripts/Preferences/WebPreferences.yaml -@@ -957,7 +957,7 @@ InspectorStartsAttached: +@@ -979,7 +979,7 @@ InspectorStartsAttached: exposed: [ WebKit ] defaultValue: WebKit: @@ -2106,7 +2106,7 @@ index 464f6bfc8e91b411509d22412fa278603a5c5ac7..7c669e977fe456ecd649d02cbb2a8105 InspectorWindowFrame: type: String -@@ -1759,6 +1759,17 @@ PluginsEnabled: +@@ -1784,6 +1784,17 @@ PluginsEnabled: WebCore: default: false @@ -2125,10 +2125,10 @@ index 464f6bfc8e91b411509d22412fa278603a5c5ac7..7c669e977fe456ecd649d02cbb2a8105 type: bool humanReadableName: "Private Click Measurement" diff --git a/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml b/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml -index d81ce0249cdfae29b9dcfd98153cdbcafd04d01c..15b970e4978a1403f2949a4b1ebddadc55c99c2d 100644 +index 712cf13b0d34848990384965147ef71b7f728a80..6c13be70d8d9b3ef374e22e9506301a080864a28 100644 --- a/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml +++ b/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml -@@ -601,7 +601,7 @@ CrossOriginOpenerPolicyEnabled: +@@ -661,7 +661,7 @@ CrossOriginOpenerPolicyEnabled: WebKitLegacy: default: false WebKit: @@ -2137,7 +2137,7 @@ index d81ce0249cdfae29b9dcfd98153cdbcafd04d01c..15b970e4978a1403f2949a4b1ebddadc WebCore: default: false -@@ -985,6 +985,7 @@ IsThirdPartyCookieBlockingDisabled: +@@ -1019,6 +1019,7 @@ IsThirdPartyCookieBlockingDisabled: WebCore: default: false @@ -2145,7 +2145,7 @@ index d81ce0249cdfae29b9dcfd98153cdbcafd04d01c..15b970e4978a1403f2949a4b1ebddadc LazyIframeLoadingEnabled: type: bool humanReadableName: "Lazy iframe loading" -@@ -993,9 +994,9 @@ LazyIframeLoadingEnabled: +@@ -1027,9 +1028,9 @@ LazyIframeLoadingEnabled: WebKitLegacy: default: true WebKit: @@ -2157,7 +2157,7 @@ index d81ce0249cdfae29b9dcfd98153cdbcafd04d01c..15b970e4978a1403f2949a4b1ebddadc LazyImageLoadingEnabled: type: bool -@@ -1054,9 +1055,9 @@ MaskWebGLStringsEnabled: +@@ -1088,9 +1089,9 @@ MaskWebGLStringsEnabled: WebKitLegacy: default: true WebKit: @@ -2169,7 +2169,7 @@ index d81ce0249cdfae29b9dcfd98153cdbcafd04d01c..15b970e4978a1403f2949a4b1ebddadc MasonryEnabled: type: bool -@@ -1621,7 +1622,7 @@ SpeechRecognitionEnabled: +@@ -1655,7 +1656,7 @@ SpeechRecognitionEnabled: WebKitLegacy: default: false WebKit: @@ -2178,28 +2178,11 @@ index d81ce0249cdfae29b9dcfd98153cdbcafd04d01c..15b970e4978a1403f2949a4b1ebddadc default: false WebCore: default: false -@@ -1749,6 +1750,7 @@ UseGPUProcessForDisplayCapture: - WebKit: - default: true - -+# Playwright: force-disable on Windows - UseGPUProcessForWebGLEnabled: - type: bool - humanReadableName: "GPU Process: WebGL" -@@ -1759,7 +1761,7 @@ UseGPUProcessForWebGLEnabled: - default: false - WebKit: - "ENABLE(GPU_PROCESS_BY_DEFAULT) && PLATFORM(IOS_FAMILY) && !HAVE(UIKIT_WEBKIT_INTERNALS)": true -- "PLATFORM(WIN)": true -+ "PLATFORM(WIN)": false - default: false - WebCore: - "ENABLE(GPU_PROCESS_BY_DEFAULT) && PLATFORM(IOS_FAMILY) && !HAVE(UIKIT_WEBKIT_INTERNALS)": true diff --git a/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml b/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml -index 5ac46723fa7b3c5447c26eab2f669e8f00282bca..aa398a4e7811e5272372a96818ba9dfe7d82a625 100644 +index 59d2b3566ce487ff2f05c9f0d7360f10a6be0128..f013b577ced08245e30b2822a0b9e8333b9e3a7c 100644 --- a/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml +++ b/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml -@@ -1136,6 +1136,7 @@ UseCGDisplayListsForDOMRendering: +@@ -1164,6 +1164,7 @@ UseCGDisplayListsForDOMRendering: WebKit: default: true @@ -2207,7 +2190,7 @@ index 5ac46723fa7b3c5447c26eab2f669e8f00282bca..aa398a4e7811e5272372a96818ba9dfe UseGPUProcessForCanvasRenderingEnabled: type: bool humanReadableName: "GPU Process: Canvas Rendering" -@@ -1146,7 +1147,7 @@ UseGPUProcessForCanvasRenderingEnabled: +@@ -1174,7 +1175,7 @@ UseGPUProcessForCanvasRenderingEnabled: defaultValue: WebKit: "ENABLE(GPU_PROCESS_BY_DEFAULT)": true @@ -2216,8 +2199,25 @@ index 5ac46723fa7b3c5447c26eab2f669e8f00282bca..aa398a4e7811e5272372a96818ba9dfe default: false UseGPUProcessForMediaEnabled: +@@ -1189,6 +1190,7 @@ UseGPUProcessForMediaEnabled: + "ENABLE(GPU_PROCESS_BY_DEFAULT)": true + default: false + ++# Playwright: force-disable on Windows + UseGPUProcessForWebGLEnabled: + type: bool + humanReadableName: "GPU Process: WebGL" +@@ -1199,7 +1201,7 @@ UseGPUProcessForWebGLEnabled: + default: false + WebKit: + "ENABLE(GPU_PROCESS_BY_DEFAULT) && ENABLE(GPU_PROCESS_WEBGL_BY_DEFAULT)": true +- "PLATFORM(WIN)": true ++ "PLATFORM(WIN)": false + default: false + WebCore: + "ENABLE(GPU_PROCESS_BY_DEFAULT) && ENABLE(GPU_PROCESS_WEBGL_BY_DEFAULT)": true diff --git a/Source/WTF/wtf/PlatformEnable.h b/Source/WTF/wtf/PlatformEnable.h -index 2a22ed8c3ccd02d8463b2808a0aba322db54f7e5..30f4b61687ff570053d3aaa816323df94f88bc3f 100644 +index 4cb5cdfb3da22acf6a1f40a60040c45891017af6..a9c9fda14c9bf37f545ecf552039537059cbea87 100644 --- a/Source/WTF/wtf/PlatformEnable.h +++ b/Source/WTF/wtf/PlatformEnable.h @@ -412,7 +412,7 @@ @@ -2239,7 +2239,7 @@ index 2a22ed8c3ccd02d8463b2808a0aba322db54f7e5..30f4b61687ff570053d3aaa816323df9 #if !defined(ENABLE_TOUCH_ACTION_REGIONS) diff --git a/Source/WTF/wtf/PlatformEnableCocoa.h b/Source/WTF/wtf/PlatformEnableCocoa.h -index 8bda096be6b9abf155f7473d11a4141cf49ace72..dcbd25e3f1c02709b38e4c8b0bb3b9b91c3c83a1 100644 +index 5f7d59938cbbe0fde74a385f55a0e7b9b39ef104..e944e5bab6938cb9dd875f4928e0348bfe8aa1fd 100644 --- a/Source/WTF/wtf/PlatformEnableCocoa.h +++ b/Source/WTF/wtf/PlatformEnableCocoa.h @@ -255,7 +255,7 @@ @@ -2252,10 +2252,10 @@ index 8bda096be6b9abf155f7473d11a4141cf49ace72..dcbd25e3f1c02709b38e4c8b0bb3b9b9 #endif diff --git a/Source/WTF/wtf/PlatformHave.h b/Source/WTF/wtf/PlatformHave.h -index cc621805b4759e30fce1dc9610e57b85da7b5927..86ce0ef2f0880f6cb5d701dd681e6d7d5b1929e8 100644 +index 038b33f3fe519646aa8558e7c862d9cbd3150482..5f8226eaf0f09b72812b432483a2dda47844a6fd 100644 --- a/Source/WTF/wtf/PlatformHave.h +++ b/Source/WTF/wtf/PlatformHave.h -@@ -418,7 +418,7 @@ +@@ -422,7 +422,7 @@ #define HAVE_FOUNDATION_WITH_SAME_SITE_COOKIE_SUPPORT 1 #endif @@ -2264,7 +2264,7 @@ index cc621805b4759e30fce1dc9610e57b85da7b5927..86ce0ef2f0880f6cb5d701dd681e6d7d #define HAVE_OS_DARK_MODE_SUPPORT 1 #endif -@@ -1309,7 +1309,8 @@ +@@ -1317,7 +1317,8 @@ #endif #if PLATFORM(MAC) @@ -2275,10 +2275,10 @@ index cc621805b4759e30fce1dc9610e57b85da7b5927..86ce0ef2f0880f6cb5d701dd681e6d7d #if (!defined(HAVE_LOCKDOWN_MODE_PDF_ADDITIONS) && \ diff --git a/Source/WebCore/DerivedSources.make b/Source/WebCore/DerivedSources.make -index 756a2d80d4672c2a65515f58ca398f46584ac97f..0cabee776961eab326bb0ee7e313384f6131b835 100644 +index 3c5edc9b5faa51cc03cc61d4099e7bf1182496c3..7a01de4f2649ebc594f81122ae3a3d7be83c989a 100644 --- a/Source/WebCore/DerivedSources.make +++ b/Source/WebCore/DerivedSources.make -@@ -1029,6 +1029,10 @@ JS_BINDING_IDLS := \ +@@ -1034,6 +1034,10 @@ JS_BINDING_IDLS := \ $(WebCore)/dom/Slotable.idl \ $(WebCore)/dom/StaticRange.idl \ $(WebCore)/dom/StringCallback.idl \ @@ -2289,7 +2289,7 @@ index 756a2d80d4672c2a65515f58ca398f46584ac97f..0cabee776961eab326bb0ee7e313384f $(WebCore)/dom/Text.idl \ $(WebCore)/dom/TextDecoder.idl \ $(WebCore)/dom/TextDecoderStream.idl \ -@@ -1569,9 +1573,6 @@ ADDITIONAL_BINDING_IDLS = \ +@@ -1574,9 +1578,6 @@ ADDITIONAL_BINDING_IDLS = \ GestureEvent.idl \ Internals+Additions.idl \ InternalsAdditions.idl \ @@ -2375,10 +2375,10 @@ index 9741a79be98a93c7b6151d762af343f6bbd14bde..029fb407b941a38c3d0f5d0e4d293666 set(CSS_VALUE_PLATFORM_DEFINES "HAVE_OS_DARK_MODE_SUPPORT=1") diff --git a/Source/WebCore/SourcesCocoa.txt b/Source/WebCore/SourcesCocoa.txt -index 4ec42d4ecf9770f25339ff659c4579828004ac6d..80375f3419247bbabf14b383df5c275c7ee3b1f8 100644 +index fe796b9f241f7129bba5f9e1dc464f89cf10a7a1..ea0023693f722ed5df755185896306b98f3f50de 100644 --- a/Source/WebCore/SourcesCocoa.txt +++ b/Source/WebCore/SourcesCocoa.txt -@@ -650,3 +650,9 @@ platform/graphics/angle/GraphicsContextGLANGLE.cpp @no-unify +@@ -661,3 +661,9 @@ platform/graphics/angle/GraphicsContextGLANGLE.cpp @no-unify platform/graphics/cocoa/ANGLEUtilitiesCocoa.cpp @no-unify platform/graphics/cocoa/GraphicsContextGLCocoa.mm @no-unify platform/graphics/cv/GraphicsContextGLCVCocoa.cpp @no-unify @@ -2449,10 +2449,10 @@ index a5938677622935e2c6ca3ed76c3a12d0eb7e04a7..cea2a0e330cfdf01b172b3f6acc60acb __ZN7WebCore14DocumentLoaderD2Ev __ZN7WebCore14DocumentLoader17clearMainResourceEv diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj -index dbc69643468007f535fae8ffb9529f22a79e3f19..fa5c07bf98ed61d8f00be1606b92f235892ba648 100644 +index a2d61fc9cd55f36a64e6ea8a8cf7c79dd049070f..649fd9e8f50ea76ae90a6a5ebbde4bc44e252e02 100644 --- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj +++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj -@@ -5682,6 +5682,13 @@ +@@ -5709,6 +5709,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, ); }; }; @@ -2466,7 +2466,7 @@ index dbc69643468007f535fae8ffb9529f22a79e3f19..fa5c07bf98ed61d8f00be1606b92f235 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, ); }; }; -@@ -18405,6 +18412,14 @@ +@@ -18502,6 +18509,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 = ""; }; @@ -2481,7 +2481,7 @@ index dbc69643468007f535fae8ffb9529f22a79e3f19..fa5c07bf98ed61d8f00be1606b92f235 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 = ""; }; -@@ -25239,6 +25254,11 @@ +@@ -25380,6 +25395,11 @@ BC4A5324256055590028C592 /* TextDirectionSubmenuInclusionBehavior.h */, 2D4F96F11A1ECC240098BF88 /* TextIndicator.cpp */, 2D4F96F21A1ECC240098BF88 /* TextIndicator.h */, @@ -2493,7 +2493,7 @@ index dbc69643468007f535fae8ffb9529f22a79e3f19..fa5c07bf98ed61d8f00be1606b92f235 F48570A42644C76D00C05F71 /* TranslationContextMenuInfo.h */, F4E1965F21F26E4E00285078 /* UndoItem.cpp */, 2ECDBAD521D8906300F00ECD /* UndoItem.h */, -@@ -31145,6 +31165,8 @@ +@@ -31341,6 +31361,8 @@ 29E4D8DF16B0940F00C84704 /* PlatformSpeechSynthesizer.h */, 1AD8F81A11CAB9E900E93E54 /* PlatformStrategies.cpp */, 1AD8F81911CAB9E900E93E54 /* PlatformStrategies.h */, @@ -2502,7 +2502,7 @@ index dbc69643468007f535fae8ffb9529f22a79e3f19..fa5c07bf98ed61d8f00be1606b92f235 0FD7C21D23CE41E30096D102 /* PlatformWheelEvent.cpp */, 935C476A09AC4D4F00A6AAB4 /* PlatformWheelEvent.h */, BCBB8AB513F1AFB000734DF0 /* PODInterval.h */, -@@ -33611,6 +33633,7 @@ +@@ -33801,6 +33823,7 @@ AD6E71AB1668899D00320C13 /* DocumentSharedObjectPool.h */, 6BDB5DC1227BD3B800919770 /* DocumentStorageAccess.cpp */, 6BDB5DC0227BD3B800919770 /* DocumentStorageAccess.h */, @@ -2510,7 +2510,7 @@ index dbc69643468007f535fae8ffb9529f22a79e3f19..fa5c07bf98ed61d8f00be1606b92f235 7CE7FA5B1EF882300060C9D6 /* DocumentTouch.cpp */, 7CE7FA591EF882300060C9D6 /* DocumentTouch.h */, A8185F3209765765005826D9 /* DocumentType.cpp */, -@@ -37966,6 +37989,8 @@ +@@ -38173,6 +38196,8 @@ 1AD8F81B11CAB9E900E93E54 /* PlatformStrategies.h in Headers */, 0F7D07331884C56C00B4AF86 /* PlatformTextTrack.h in Headers */, 074E82BB18A69F0E007EF54C /* PlatformTimeRanges.h in Headers */, @@ -2519,7 +2519,7 @@ index dbc69643468007f535fae8ffb9529f22a79e3f19..fa5c07bf98ed61d8f00be1606b92f235 CDD08ABD277E542600EA3755 /* PlatformTrackConfiguration.h in Headers */, CD1F9B022700323D00617EB6 /* PlatformVideoColorPrimaries.h in Headers */, CD1F9B01270020B700617EB6 /* PlatformVideoColorSpace.h in Headers */, -@@ -39140,6 +39165,7 @@ +@@ -39354,6 +39379,7 @@ 0F54DD081881D5F5003EEDBB /* Touch.h in Headers */, 71B7EE0D21B5C6870031C1EF /* TouchAction.h in Headers */, 0F54DD091881D5F5003EEDBB /* TouchEvent.h in Headers */, @@ -2527,7 +2527,7 @@ index dbc69643468007f535fae8ffb9529f22a79e3f19..fa5c07bf98ed61d8f00be1606b92f235 0F54DD0A1881D5F5003EEDBB /* TouchList.h in Headers */, 070334D71459FFD5008D8D45 /* TrackBase.h in Headers */, BE88E0C21715CE2600658D98 /* TrackListBase.h in Headers */, -@@ -40117,6 +40143,7 @@ +@@ -40333,6 +40359,7 @@ 1ABA76CA11D20E50004C201C /* CSSPropertyNames.cpp in Sources */, 2D22830323A8470700364B7E /* CursorMac.mm in Sources */, 5CBD59592280E926002B22AA /* CustomHeaderFields.cpp in Sources */, @@ -2535,7 +2535,7 @@ index dbc69643468007f535fae8ffb9529f22a79e3f19..fa5c07bf98ed61d8f00be1606b92f235 329C0C2528BD96EB00F187D2 /* ElementName.cpp in Sources */, 7CE6CBFD187F394900D46BF5 /* FormatConverter.cpp in Sources */, 5130F2F624AEA60A00E1D0A0 /* GameControllerSoftLink.mm in Sources */, -@@ -40189,6 +40216,9 @@ +@@ -40406,6 +40433,9 @@ 329C0C2328BD96D600F187D2 /* TagName.cpp in Sources */, CE88EE262414467B007F29C2 /* TextAlternativeWithRange.mm in Sources */, 51DF6D800B92A18E00C2DC85 /* ThreadCheck.mm in Sources */, @@ -2546,7 +2546,7 @@ index dbc69643468007f535fae8ffb9529f22a79e3f19..fa5c07bf98ed61d8f00be1606b92f235 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 23debc73e35748078662e25801a34a3eb595931b..21a031bddda117ca732014f3e60451a08a825ba3 100644 +index 9ab9296131b597dc7a675b7f05637587874aafd3..b78cb5039f1d3f3350d0da171ef02d912280001a 100644 --- a/Source/WebCore/accessibility/AccessibilityObject.cpp +++ b/Source/WebCore/accessibility/AccessibilityObject.cpp @@ -62,6 +62,7 @@ @@ -2557,7 +2557,7 @@ index 23debc73e35748078662e25801a34a3eb595931b..21a031bddda117ca732014f3e60451a0 #include "LocalizedStrings.h" #include "MathMLNames.h" #include "NodeList.h" -@@ -3644,9 +3645,14 @@ AccessibilityObjectInclusion AccessibilityObject::defaultObjectInclusion() const +@@ -3653,9 +3654,14 @@ AccessibilityObjectInclusion AccessibilityObject::defaultObjectInclusion() const if (roleValue() == AccessibilityRole::ApplicationDialog) return AccessibilityObjectInclusion::IncludeObject; @@ -2575,7 +2575,7 @@ index 23debc73e35748078662e25801a34a3eb595931b..21a031bddda117ca732014f3e60451a0 { AXComputedObjectAttributeCache* attributeCache = nullptr; diff --git a/Source/WebCore/accessibility/AccessibilityObjectInterface.h b/Source/WebCore/accessibility/AccessibilityObjectInterface.h -index 1cb7bbf79d54c297ee4f03c41d42432160741572..64e5b7bb5a9bd0cc865af6e41e05705cbae149a6 100644 +index 4514a8f1fd9d79f4138c94ab9d8e7ac662862bba..ba3a6e13f595b47b968aae7ef3eab54b1eaf0d38 100644 --- a/Source/WebCore/accessibility/AccessibilityObjectInterface.h +++ b/Source/WebCore/accessibility/AccessibilityObjectInterface.h @@ -57,7 +57,7 @@ typedef const struct __AXTextMarkerRange* AXTextMarkerRangeRef; @@ -2597,10 +2597,10 @@ index 1cb7bbf79d54c297ee4f03c41d42432160741572..64e5b7bb5a9bd0cc865af6e41e05705c }; diff --git a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h -index d4f0ba7bb656c6410145bdeb81a9501d7b987208..8e795cc1b065612f39f153c2141571f2ff6cf1ab 100644 +index 418244258bf77191eabf6926790e2d42698eaa52..7e50b0035652c737c743c8d0a596f2aa4d36f846 100644 --- a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h +++ b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h -@@ -161,6 +161,8 @@ namespace WebCore { +@@ -162,6 +162,8 @@ namespace WebCore { macro(DecompressionStreamTransform) \ macro(DelayNode) \ macro(DeprecationReportBody) \ @@ -2609,47 +2609,22 @@ index d4f0ba7bb656c6410145bdeb81a9501d7b987208..8e795cc1b065612f39f153c2141571f2 macro(DocumentTimeline) \ macro(DynamicsCompressorNode) \ macro(ElementInternals) \ -diff --git a/Source/WebCore/css/LegacyMediaQueryEvaluator.cpp b/Source/WebCore/css/LegacyMediaQueryEvaluator.cpp -index c98b714d588e86303317e31ab3c97e8bd54da48f..98b28c71c8a802af492351485fafc1d70b03f22d 100644 ---- a/Source/WebCore/css/LegacyMediaQueryEvaluator.cpp -+++ b/Source/WebCore/css/LegacyMediaQueryEvaluator.cpp -@@ -453,8 +453,12 @@ static bool scanEvaluate(CSSValue* value, const CSSToLengthConversionData&, Fram - return primitiveValue->valueID() == CSSValueProgressive; - } - --static bool forcedColorsEvaluate(CSSValue* value, const CSSToLengthConversionData&, Frame&, MediaFeaturePrefix) -+static bool forcedColorsEvaluate(CSSValue* value, const CSSToLengthConversionData&, Frame& frame, MediaFeaturePrefix) - { -+ std::optional forcedColorsOverride = frame.page()->useForcedColorsOverride(); -+ if (forcedColorsOverride) -+ return downcast(*value).valueID() == (forcedColorsOverride.value() ? CSSValueActive : CSSValueNone); -+ - auto* primitiveValue = dynamicDowncast(value); - if (!primitiveValue) - return false; -@@ -838,7 +842,11 @@ static bool prefersContrastEvaluate(CSSValue* value, const CSSToLengthConversion - static bool prefersReducedMotionEvaluate(CSSValue* value, const CSSToLengthConversionData&, Frame& frame, MediaFeaturePrefix) - { - bool userPrefersReducedMotion = false; -- -+ -+ std::optional reducedMotionOverride = frame.page()->useReducedMotionOverride(); -+ if (reducedMotionOverride) -+ userPrefersReducedMotion = reducedMotionOverride.value(); -+ else { - switch (frame.settings().forcedPrefersReducedMotionAccessibilityValue()) { - case ForcedAccessibilityValue::On: - userPrefersReducedMotion = true; -@@ -851,6 +859,7 @@ static bool prefersReducedMotionEvaluate(CSSValue* value, const CSSToLengthConve - #endif - break; - } -+ } - - if (!value) - return userPrefersReducedMotion; +diff --git a/Source/WebCore/css/query/MediaQueryFeatures.cpp b/Source/WebCore/css/query/MediaQueryFeatures.cpp +index ab1ccbfa400ef05139c1f5c7cf25efaf6e74a16e..d6e8c2dc7ef6f0f6081057574d0ace874424ae03 100644 +--- a/Source/WebCore/css/query/MediaQueryFeatures.cpp ++++ b/Source/WebCore/css/query/MediaQueryFeatures.cpp +@@ -535,6 +535,9 @@ const FeatureSchema& prefersReducedMotion() + [](auto& context) { + bool userPrefersReducedMotion = [&] { + auto& frame = *context.document.frame(); ++ std::optional reducedMotionOverride = frame.page()->useReducedMotionOverride(); ++ if (reducedMotionOverride) ++ return reducedMotionOverride.value(); + switch (frame.settings().forcedPrefersReducedMotionAccessibilityValue()) { + case ForcedAccessibilityValue::On: + return true; diff --git a/Source/WebCore/dom/DataTransfer.cpp b/Source/WebCore/dom/DataTransfer.cpp -index e4c4e919c88f824e1e087819e35288f37eb7081a..8a70ed2258cd535924740de348c8f2519b2e8b33 100644 +index 4eaef7290df7c6c814e8fba35c222fe0a0152983..e49e2b3c75d9cabb28a134e25032a071b36683cf 100644 --- a/Source/WebCore/dom/DataTransfer.cpp +++ b/Source/WebCore/dom/DataTransfer.cpp @@ -503,6 +503,14 @@ Ref DataTransfer::createForDrag(const Document& document) @@ -2851,7 +2826,7 @@ index 7542bab569d49879f0eb460520738b3da37116f6..17c92229cc596bc80a718911b74737d3 #endif diff --git a/Source/WebCore/editing/libwpe/EditorLibWPE.cpp b/Source/WebCore/editing/libwpe/EditorLibWPE.cpp -index c70485a62c660838229d40db14bcb2786feb7202..8212b5df96b00ba79a84c122993b30e849fa6c30 100644 +index 780b9decb28f284cfdc3f88a11bef37dd3e96ca5..0b827f111748054377e296c3973089ebb4d20afd 100644 --- a/Source/WebCore/editing/libwpe/EditorLibWPE.cpp +++ b/Source/WebCore/editing/libwpe/EditorLibWPE.cpp @@ -34,6 +34,7 @@ @@ -2878,10 +2853,10 @@ index c70485a62c660838229d40db14bcb2786feb7202..8212b5df96b00ba79a84c122993b30e8 #endif // USE(LIBWPE) diff --git a/Source/WebCore/html/FileInputType.cpp b/Source/WebCore/html/FileInputType.cpp -index 0784b3bc15534d4ba0db1c02ec1a2dd4bc37ed15..0075c58ad1c02e0f8cf697d63ac2df4fa6286994 100644 +index 80d0a5347ef02ae78f1e99415b871cc6229a5bad..abc27f89fc177007a7e1da04ab25f0f833d3c294 100644 --- a/Source/WebCore/html/FileInputType.cpp +++ b/Source/WebCore/html/FileInputType.cpp -@@ -38,6 +38,7 @@ +@@ -39,6 +39,7 @@ #include "HTMLNames.h" #include "Icon.h" #include "InputTypeNames.h" @@ -2889,7 +2864,7 @@ index 0784b3bc15534d4ba0db1c02ec1a2dd4bc37ed15..0075c58ad1c02e0f8cf697d63ac2df4f #include "LocalizedStrings.h" #include "MIMETypeRegistry.h" #include "RenderFileUploadControl.h" -@@ -205,6 +206,11 @@ void FileInputType::handleDOMActivateEvent(Event& event) +@@ -206,6 +207,11 @@ void FileInputType::handleDOMActivateEvent(Event& event) if (input.isDisabledFormControl()) return; @@ -2960,7 +2935,7 @@ index d392cf514a0306ba9eb516a5cb4c92280ed13bb0..276daf6464546a451de17951d3c67735 + } // namespace WebCore diff --git a/Source/WebCore/inspector/InspectorController.h b/Source/WebCore/inspector/InspectorController.h -index 7aeee0352e6ade8c9bfa503fc15f468d1ab4f9c9..56843a129442849e31896fdf1366abe1b55113a8 100644 +index d41c9f913f5916aec62452041d5a40988b4a25c9..aa62e18e401249aad2939aa62a20c8e226936d01 100644 --- a/Source/WebCore/inspector/InspectorController.h +++ b/Source/WebCore/inspector/InspectorController.h @@ -101,6 +101,10 @@ public: @@ -2983,10 +2958,10 @@ index 7aeee0352e6ade8c9bfa503fc15f468d1ab4f9c9..56843a129442849e31896fdf1366abe1 } // namespace WebCore diff --git a/Source/WebCore/inspector/InspectorInstrumentation.cpp b/Source/WebCore/inspector/InspectorInstrumentation.cpp -index 8e79d4bdd8e36c8300a72ae5e91f873b9fc77731..17aad32435d1d878fb714ce4a81e3c7ec2188965 100644 +index 5186d9c00d3611633ff89dceb3230a7742f8e1db..0a0f0267104d54695c55860e16b92d983faa0e43 100644 --- a/Source/WebCore/inspector/InspectorInstrumentation.cpp +++ b/Source/WebCore/inspector/InspectorInstrumentation.cpp -@@ -593,6 +593,13 @@ void InspectorInstrumentation::applyUserAgentOverrideImpl(InstrumentingAgents& i +@@ -601,6 +601,12 @@ void InspectorInstrumentation::applyUserAgentOverrideImpl(InstrumentingAgents& i pageAgent->applyUserAgentOverride(userAgent); } @@ -2996,11 +2971,10 @@ index 8e79d4bdd8e36c8300a72ae5e91f873b9fc77731..17aad32435d1d878fb714ce4a81e3c7e + pageAgent->applyPlatformOverride(platform); +} + -+ - void InspectorInstrumentation::applyEmulatedMediaImpl(InstrumentingAgents& instrumentingAgents, String& media) + void InspectorInstrumentation::applyEmulatedMediaImpl(InstrumentingAgents& instrumentingAgents, AtomString& media) { if (auto* pageAgent = instrumentingAgents.enabledPageAgent()) -@@ -676,6 +683,12 @@ void InspectorInstrumentation::didFailLoadingImpl(InstrumentingAgents& instrumen +@@ -684,6 +690,12 @@ void InspectorInstrumentation::didFailLoadingImpl(InstrumentingAgents& instrumen consoleAgent->didFailLoading(identifier, error); // This should come AFTER resource notification, front-end relies on this. } @@ -3013,7 +2987,7 @@ index 8e79d4bdd8e36c8300a72ae5e91f873b9fc77731..17aad32435d1d878fb714ce4a81e3c7e void InspectorInstrumentation::willLoadXHRSynchronouslyImpl(InstrumentingAgents& instrumentingAgents) { if (auto* networkAgent = instrumentingAgents.enabledNetworkAgent()) -@@ -708,20 +721,17 @@ void InspectorInstrumentation::didReceiveScriptResponseImpl(InstrumentingAgents& +@@ -716,20 +728,17 @@ void InspectorInstrumentation::didReceiveScriptResponseImpl(InstrumentingAgents& void InspectorInstrumentation::domContentLoadedEventFiredImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) { @@ -3037,7 +3011,7 @@ index 8e79d4bdd8e36c8300a72ae5e91f873b9fc77731..17aad32435d1d878fb714ce4a81e3c7e } void InspectorInstrumentation::frameDetachedFromParentImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) -@@ -802,12 +812,6 @@ void InspectorInstrumentation::frameDocumentUpdatedImpl(InstrumentingAgents& ins +@@ -810,12 +819,6 @@ void InspectorInstrumentation::frameDocumentUpdatedImpl(InstrumentingAgents& ins pageDOMDebuggerAgent->frameDocumentUpdated(frame); } @@ -3050,8 +3024,8 @@ index 8e79d4bdd8e36c8300a72ae5e91f873b9fc77731..17aad32435d1d878fb714ce4a81e3c7e void InspectorInstrumentation::frameStartedLoadingImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) { if (frame.isMainFrame()) { -@@ -844,6 +848,12 @@ void InspectorInstrumentation::frameClearedScheduledNavigationImpl(Instrumenting - inspectorPageAgent->frameClearedScheduledNavigation(frame); +@@ -858,6 +861,12 @@ void InspectorInstrumentation::accessibilitySettingsDidChangeImpl(InstrumentingA + inspectorPageAgent->accessibilitySettingsDidChange(); } +void InspectorInstrumentation::didNavigateWithinPageImpl(InstrumentingAgents& instrumentingAgents, Frame& frame) @@ -3061,9 +3035,9 @@ index 8e79d4bdd8e36c8300a72ae5e91f873b9fc77731..17aad32435d1d878fb714ce4a81e3c7e +} + #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) - void InspectorInstrumentation::defaultAppearanceDidChangeImpl(InstrumentingAgents& instrumentingAgents, bool useDarkAppearance) + void InspectorInstrumentation::defaultAppearanceDidChangeImpl(InstrumentingAgents& instrumentingAgents) { -@@ -1026,6 +1036,12 @@ void InspectorInstrumentation::consoleStopRecordingCanvasImpl(InstrumentingAgent +@@ -1040,6 +1049,12 @@ void InspectorInstrumentation::consoleStopRecordingCanvasImpl(InstrumentingAgent canvasAgent->consoleStopRecordingCanvas(context); } @@ -3076,7 +3050,7 @@ index 8e79d4bdd8e36c8300a72ae5e91f873b9fc77731..17aad32435d1d878fb714ce4a81e3c7e void InspectorInstrumentation::didOpenDatabaseImpl(InstrumentingAgents& instrumentingAgents, Database& database) { if (auto* databaseAgent = instrumentingAgents.enabledDatabaseAgent()) -@@ -1326,6 +1342,36 @@ void InspectorInstrumentation::renderLayerDestroyedImpl(InstrumentingAgents& ins +@@ -1340,6 +1355,36 @@ void InspectorInstrumentation::renderLayerDestroyedImpl(InstrumentingAgents& ins layerTreeAgent->renderLayerDestroyed(renderLayer); } @@ -3113,7 +3087,7 @@ index 8e79d4bdd8e36c8300a72ae5e91f873b9fc77731..17aad32435d1d878fb714ce4a81e3c7e InstrumentingAgents& InspectorInstrumentation::instrumentingAgents(WorkerOrWorkletGlobalScope& globalScope) { return globalScope.inspectorController().m_instrumentingAgents; -@@ -1337,6 +1383,13 @@ InstrumentingAgents& InspectorInstrumentation::instrumentingAgents(Page& page) +@@ -1351,6 +1396,13 @@ InstrumentingAgents& InspectorInstrumentation::instrumentingAgents(Page& page) return page.inspectorController().m_instrumentingAgents.get(); } @@ -3128,7 +3102,7 @@ index 8e79d4bdd8e36c8300a72ae5e91f873b9fc77731..17aad32435d1d878fb714ce4a81e3c7e { if (is(context)) diff --git a/Source/WebCore/inspector/InspectorInstrumentation.h b/Source/WebCore/inspector/InspectorInstrumentation.h -index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd411c29df3 100644 +index 91ba27fea97c8925fdbd7b1ae967b784540c0d70..1aa4925aa1260605b3f7710e6b5e3b74818363bf 100644 --- a/Source/WebCore/inspector/InspectorInstrumentation.h +++ b/Source/WebCore/inspector/InspectorInstrumentation.h @@ -31,6 +31,7 @@ @@ -3160,7 +3134,7 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 static void didScheduleStyleRecalculation(Document&); static void applyUserAgentOverride(Frame&, String&); + static void applyPlatformOverride(Frame&, String&); - static void applyEmulatedMedia(Frame&, String&); + static void applyEmulatedMedia(Frame&, AtomString&); static void flexibleBoxRendererBeganLayout(const RenderObject&); @@ -204,6 +208,7 @@ public: @@ -3171,7 +3145,7 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 static void willSendRequest(WorkerOrWorkletGlobalScope&, ResourceLoaderIdentifier, ResourceRequest&); static void didReceiveResourceResponse(WorkerOrWorkletGlobalScope&, ResourceLoaderIdentifier, const ResourceResponse&); -@@ -230,11 +235,11 @@ public: +@@ -230,12 +235,12 @@ public: static void frameDetachedFromParent(Frame&); static void didCommitLoad(Frame&, DocumentLoader*); static void frameDocumentUpdated(Frame&); @@ -3180,11 +3154,12 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 static void frameStoppedLoading(Frame&); static void frameScheduledNavigation(Frame&, Seconds delay); static void frameClearedScheduledNavigation(Frame&); + static void accessibilitySettingsDidChange(Page&); + static void didNavigateWithinPage(Frame&); #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) - static void defaultAppearanceDidChange(Page&, bool useDarkAppearance); + static void defaultAppearanceDidChange(Page&); #endif -@@ -266,6 +271,7 @@ public: +@@ -267,6 +272,7 @@ public: static void stopProfiling(Page&, JSC::JSGlobalObject*, const String& title); static void consoleStartRecordingCanvas(CanvasRenderingContext&, JSC::JSGlobalObject&, JSC::JSObject* options); static void consoleStopRecordingCanvas(CanvasRenderingContext&); @@ -3192,7 +3167,7 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 static void didRequestAnimationFrame(Document&, int callbackId); static void didCancelAnimationFrame(Document&, int callbackId); -@@ -321,6 +327,12 @@ public: +@@ -322,6 +328,12 @@ public: static void layerTreeDidChange(Page*); static void renderLayerDestroyed(Page*, const RenderLayer&); @@ -3205,7 +3180,7 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 static void frontendCreated(); static void frontendDeleted(); static bool hasFrontends() { return InspectorInstrumentationPublic::hasFrontends(); } -@@ -337,6 +349,8 @@ public: +@@ -338,6 +350,8 @@ public: static void registerInstrumentingAgents(InstrumentingAgents&); static void unregisterInstrumentingAgents(InstrumentingAgents&); @@ -3214,15 +3189,15 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 private: static void didClearWindowObjectInWorldImpl(InstrumentingAgents&, Frame&, DOMWrapperWorld&); static bool isDebuggerPausedImpl(InstrumentingAgents&); -@@ -416,6 +430,7 @@ private: +@@ -417,6 +431,7 @@ private: static void didRecalculateStyleImpl(InstrumentingAgents&); static void didScheduleStyleRecalculationImpl(InstrumentingAgents&, Document&); static void applyUserAgentOverrideImpl(InstrumentingAgents&, String&); + static void applyPlatformOverrideImpl(InstrumentingAgents&, String&); - static void applyEmulatedMediaImpl(InstrumentingAgents&, String&); + static void applyEmulatedMediaImpl(InstrumentingAgents&, AtomString&); static void flexibleBoxRendererBeganLayoutImpl(InstrumentingAgents&, const RenderObject&); -@@ -430,6 +445,7 @@ private: +@@ -431,6 +446,7 @@ private: static void didReceiveDataImpl(InstrumentingAgents&, ResourceLoaderIdentifier, const SharedBuffer*, int encodedDataLength); static void didFinishLoadingImpl(InstrumentingAgents&, ResourceLoaderIdentifier, DocumentLoader*, const NetworkLoadMetrics&, ResourceLoader*); static void didFailLoadingImpl(InstrumentingAgents&, ResourceLoaderIdentifier, DocumentLoader*, const ResourceError&); @@ -3230,7 +3205,7 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 static void willLoadXHRSynchronouslyImpl(InstrumentingAgents&); static void didLoadXHRSynchronouslyImpl(InstrumentingAgents&); static void scriptImportedImpl(InstrumentingAgents&, ResourceLoaderIdentifier, const String& sourceString); -@@ -440,11 +456,11 @@ private: +@@ -441,12 +457,12 @@ private: static void frameDetachedFromParentImpl(InstrumentingAgents&, Frame&); static void didCommitLoadImpl(InstrumentingAgents&, Frame&, DocumentLoader*); static void frameDocumentUpdatedImpl(InstrumentingAgents&, Frame&); @@ -3239,11 +3214,12 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 static void frameStoppedLoadingImpl(InstrumentingAgents&, Frame&); static void frameScheduledNavigationImpl(InstrumentingAgents&, Frame&, Seconds delay); static void frameClearedScheduledNavigationImpl(InstrumentingAgents&, Frame&); + static void accessibilitySettingsDidChangeImpl(InstrumentingAgents&); + static void didNavigateWithinPageImpl(InstrumentingAgents&, Frame&); #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) - static void defaultAppearanceDidChangeImpl(InstrumentingAgents&, bool useDarkAppearance); + static void defaultAppearanceDidChangeImpl(InstrumentingAgents&); #endif -@@ -471,6 +487,7 @@ private: +@@ -473,6 +489,7 @@ private: static void stopProfilingImpl(InstrumentingAgents&, JSC::JSGlobalObject*, const String& title); static void consoleStartRecordingCanvasImpl(InstrumentingAgents&, CanvasRenderingContext&, JSC::JSGlobalObject&, JSC::JSObject* options); static void consoleStopRecordingCanvasImpl(InstrumentingAgents&, CanvasRenderingContext&); @@ -3251,7 +3227,7 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 static void didRequestAnimationFrameImpl(InstrumentingAgents&, int callbackId, Document&); static void didCancelAnimationFrameImpl(InstrumentingAgents&, int callbackId, Document&); -@@ -526,6 +543,12 @@ private: +@@ -528,6 +545,12 @@ private: static void layerTreeDidChangeImpl(InstrumentingAgents&); static void renderLayerDestroyedImpl(InstrumentingAgents&, const RenderLayer&); @@ -3264,7 +3240,7 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 static InstrumentingAgents& instrumentingAgents(Page&); static InstrumentingAgents& instrumentingAgents(WorkerOrWorkletGlobalScope&); -@@ -1058,6 +1081,13 @@ inline void InspectorInstrumentation::applyUserAgentOverride(Frame& frame, Strin +@@ -1061,6 +1084,13 @@ inline void InspectorInstrumentation::applyUserAgentOverride(Frame& frame, Strin applyUserAgentOverrideImpl(*agents, userAgent); } @@ -3275,10 +3251,10 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 + applyPlatformOverrideImpl(*agents, platform); +} + - inline void InspectorInstrumentation::applyEmulatedMedia(Frame& frame, String& media) + inline void InspectorInstrumentation::applyEmulatedMedia(Frame& frame, AtomString& media) { FAST_RETURN_IF_NO_FRONTENDS(void()); -@@ -1160,6 +1190,13 @@ inline void InspectorInstrumentation::didFailLoading(WorkerOrWorkletGlobalScope& +@@ -1163,6 +1193,13 @@ inline void InspectorInstrumentation::didFailLoading(WorkerOrWorkletGlobalScope& didFailLoadingImpl(instrumentingAgents(globalScope), identifier, nullptr, error); } @@ -3292,7 +3268,7 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 inline void InspectorInstrumentation::continueAfterXFrameOptionsDenied(Frame& frame, ResourceLoaderIdentifier identifier, DocumentLoader& loader, const ResourceResponse& response) { // Treat the same as didReceiveResponse. -@@ -1250,13 +1287,6 @@ inline void InspectorInstrumentation::frameDocumentUpdated(Frame& frame) +@@ -1253,13 +1290,6 @@ inline void InspectorInstrumentation::frameDocumentUpdated(Frame& frame) frameDocumentUpdatedImpl(*agents, frame); } @@ -3306,8 +3282,8 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 inline void InspectorInstrumentation::frameStartedLoading(Frame& frame) { FAST_RETURN_IF_NO_FRONTENDS(void()); -@@ -1285,6 +1315,13 @@ inline void InspectorInstrumentation::frameClearedScheduledNavigation(Frame& fra - frameClearedScheduledNavigationImpl(*agents, frame); +@@ -1294,6 +1324,13 @@ inline void InspectorInstrumentation::accessibilitySettingsDidChange(Page& page) + accessibilitySettingsDidChangeImpl(instrumentingAgents(page)); } +inline void InspectorInstrumentation::didNavigateWithinPage(Frame& frame) @@ -3318,9 +3294,9 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 +} + #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) - inline void InspectorInstrumentation::defaultAppearanceDidChange(Page& page, bool useDarkAppearance) + inline void InspectorInstrumentation::defaultAppearanceDidChange(Page& page) { -@@ -1659,6 +1696,11 @@ inline void InspectorInstrumentation::consoleStopRecordingCanvas(CanvasRendering +@@ -1668,6 +1705,11 @@ inline void InspectorInstrumentation::consoleStopRecordingCanvas(CanvasRendering consoleStopRecordingCanvasImpl(*agents, context); } @@ -3332,7 +3308,7 @@ index 21046dba54107ccd965b9f3df586b276806f870e..7cd364d86cbb76e40bb2978e31047dd4 inline void InspectorInstrumentation::didRequestAnimationFrame(Document& document, int callbackId) { FAST_RETURN_IF_NO_FRONTENDS(void()); -@@ -1715,6 +1757,42 @@ inline void InspectorInstrumentation::renderLayerDestroyed(Page* page, const Ren +@@ -1724,6 +1766,42 @@ inline void InspectorInstrumentation::renderLayerDestroyed(Page* page, const Ren renderLayerDestroyedImpl(*agents, renderLayer); } @@ -3388,7 +3364,7 @@ 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 4f713696232c2acc4d8d6b1a43939489ea0d7bfe..0d55b71d845257d41c55952a0a0d9f1468ad1ab5 100644 +index aefd8aa53a0578d335a077a224481cd139b32edf..fb2efda3bea3b924d49f26ed91ffe7d2f1f84b43 100644 --- a/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorDOMAgent.cpp @@ -62,12 +62,16 @@ @@ -3502,7 +3478,7 @@ index 4f713696232c2acc4d8d6b1a43939489ea0d7bfe..0d55b71d845257d41c55952a0a0d9f14 if (!node) return makeUnexpected(errorString); -@@ -1694,15 +1720,154 @@ Protocol::ErrorStringOr InspectorDOMAgent::setInspectedNode(Protocol::DOM: +@@ -1694,15 +1720,155 @@ Protocol::ErrorStringOr InspectorDOMAgent::setInspectedNode(Protocol::DOM: return { }; } @@ -3561,7 +3537,8 @@ index 4f713696232c2acc4d8d6b1a43939489ea0d7bfe..0d55b71d845257d41c55952a0a0d9f14 + String contentFrameId; + if (is(*node)) { + const auto& frameOwner = downcast(*node); -+ String frameId = pageAgent->frameId(frameOwner.contentFrame()); ++ // TODO(playwright): Unnecessary downcast to LocalFrame? ++ String frameId = pageAgent->frameId(dynamicDowncast(frameOwner.contentFrame())); + if (!frameId.isEmpty()) + contentFrameId = frameId; + } @@ -3660,7 +3637,7 @@ index 4f713696232c2acc4d8d6b1a43939489ea0d7bfe..0d55b71d845257d41c55952a0a0d9f14 if (!object) return makeUnexpected("Missing injected script for given nodeId"_s); -@@ -2959,7 +3124,7 @@ Protocol::ErrorStringOr InspectorDOMAgent::pushNodeByPath +@@ -2959,7 +3125,7 @@ Protocol::ErrorStringOr InspectorDOMAgent::pushNodeByPath return makeUnexpected("Missing node for given path"_s); } @@ -3669,7 +3646,7 @@ index 4f713696232c2acc4d8d6b1a43939489ea0d7bfe..0d55b71d845257d41c55952a0a0d9f14 { Document* document = &node->document(); if (auto* templateHost = document->templateDocumentHost()) -@@ -2968,12 +3133,18 @@ RefPtr InspectorDOMAgent::resolveNode(Node* nod +@@ -2968,12 +3134,18 @@ RefPtr InspectorDOMAgent::resolveNode(Node* nod if (!frame) return nullptr; @@ -3691,7 +3668,7 @@ index 4f713696232c2acc4d8d6b1a43939489ea0d7bfe..0d55b71d845257d41c55952a0a0d9f14 } Node* InspectorDOMAgent::scriptValueAsNode(JSC::JSValue value) -@@ -2996,4 +3167,57 @@ Protocol::ErrorStringOr InspectorDOMAgent::setAllowEditingUserAgentShadowT +@@ -2996,4 +3168,57 @@ Protocol::ErrorStringOr InspectorDOMAgent::setAllowEditingUserAgentShadowT return { }; } @@ -3823,7 +3800,7 @@ index 3388aaf2e56eef45ad037497af8721487ff88d8f..ec0c749db7f6128545b0c4a887b86190 void discardBindings(); diff --git a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp -index 596e029c72964a3dfe67dd4d22dd967a2bc06da0..672ed93ee6c733ed7f0b4b51088c2726c2ed471c 100644 +index 732278426b0b5360e42adf57b3872eeb77467949..f390a450084afb793737374303beaef6c3aff3cc 100644 --- a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp @@ -45,6 +45,7 @@ @@ -3941,10 +3918,10 @@ index c6ebcc9d7e399a35f71350c9374df0f2107c518b..3bfa03ae7f27d9128fe207c1de1bfea9 // InspectorInstrumentation void willRecalculateStyle(); diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp -index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d0b421859 100644 +index a88b7eec7ac6de39d55bb5e6045677b2a495299a..28f37879ac049ebce3ac1f83707f713ac8ad6143 100644 --- a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp -@@ -32,20 +32,28 @@ +@@ -32,21 +32,29 @@ #include "config.h" #include "InspectorPageAgent.h" @@ -3962,6 +3939,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d +#include "Editor.h" #include "ElementInlines.h" +#include "FocusController.h" + #include "ForcedAccessibilityValue.h" #include "Frame.h" #include "FrameLoadRequest.h" #include "FrameLoader.h" @@ -3973,7 +3951,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d #include "HTMLNames.h" #include "ImageBuffer.h" #include "InspectorClient.h" -@@ -56,19 +64,29 @@ +@@ -57,8 +65,11 @@ #include "MIMETypeRegistry.h" #include "MemoryCache.h" #include "Page.h" @@ -3985,8 +3963,9 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d #include "ScriptController.h" #include "ScriptSourceCode.h" #include "SecurityOrigin.h" - #include "Settings.h" +@@ -66,11 +77,18 @@ #include "StyleScope.h" + #include "Theme.h" #include +#include "TextIterator.h" +#include "TypingCommand.h" @@ -4003,7 +3982,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d #include #include #include -@@ -81,11 +99,15 @@ +@@ -83,11 +101,15 @@ #include "LegacyWebArchive.h" #endif @@ -4020,7 +3999,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d static bool decodeBuffer(const uint8_t* buffer, unsigned size, const String& textEncodingName, String* result) { if (buffer) { -@@ -329,6 +351,7 @@ InspectorPageAgent::InspectorPageAgent(PageAgentContext& context, InspectorClien +@@ -331,6 +353,7 @@ InspectorPageAgent::InspectorPageAgent(PageAgentContext& context, InspectorClien , m_frontendDispatcher(makeUnique(context.frontendRouter)) , m_backendDispatcher(Inspector::PageBackendDispatcher::create(context.backendDispatcher, this)) , m_inspectedPage(context.inspectedPage) @@ -4029,8 +4008,8 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d , m_overlay(overlay) { @@ -360,12 +383,20 @@ Protocol::ErrorStringOr InspectorPageAgent::enable() - defaultAppearanceDidChange(m_inspectedPage.defaultUseDarkAppearance()); - #endif + + defaultUserPreferencesDidChange(); + if (!createdUserWorlds().isEmpty()) { + Vector worlds; @@ -4149,7 +4128,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d case Protocol::Page::Setting::WebRTCEncryptionEnabled: inspectedPageSettings.setWebRTCEncryptionEnabledInspectorOverride(value); return { }; -@@ -720,9 +816,13 @@ Protocol::ErrorStringOr> InspectorP +@@ -780,9 +876,13 @@ Protocol::ErrorStringOr> InspectorP return { { content, base64Encoded } }; } @@ -4165,7 +4144,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d return { }; } -@@ -828,15 +928,16 @@ Protocol::ErrorStringOr InspectorPageAgent::setShowPaintRects(bool show) +@@ -888,15 +988,16 @@ Protocol::ErrorStringOr InspectorPageAgent::setShowPaintRects(bool show) return { }; } @@ -4187,7 +4166,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d } void InspectorPageAgent::frameNavigated(Frame& frame) -@@ -844,13 +945,23 @@ void InspectorPageAgent::frameNavigated(Frame& frame) +@@ -904,13 +1005,23 @@ void InspectorPageAgent::frameNavigated(Frame& frame) m_frontendDispatcher->frameNavigated(buildObjectForFrame(&frame)); } @@ -4214,7 +4193,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d } Frame* InspectorPageAgent::frameForId(const Protocol::Network::FrameId& frameId) -@@ -862,20 +973,18 @@ String InspectorPageAgent::frameId(Frame* frame) +@@ -922,20 +1033,18 @@ String InspectorPageAgent::frameId(Frame* frame) { if (!frame) return emptyString(); @@ -4241,7 +4220,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d } Frame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, const Protocol::Network::FrameId& frameId) -@@ -886,11 +995,6 @@ Frame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, const +@@ -946,11 +1055,6 @@ Frame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, const return frame; } @@ -4253,8 +4232,8 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d void InspectorPageAgent::frameStartedLoading(Frame& frame) { m_frontendDispatcher->frameStartedLoading(frameId(&frame)); -@@ -911,6 +1015,12 @@ void InspectorPageAgent::frameClearedScheduledNavigation(Frame& frame) - m_frontendDispatcher->frameClearedScheduledNavigation(frameId(&frame)); +@@ -1018,6 +1122,12 @@ void InspectorPageAgent::defaultUserPreferencesDidChange() + m_frontendDispatcher->defaultUserPreferencesDidChange(WTFMove(defaultUserPreferences)); } +void InspectorPageAgent::didNavigateWithinPage(Frame& frame) @@ -4264,9 +4243,9 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d +} + #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) - void InspectorPageAgent::defaultAppearanceDidChange(bool useDarkAppearance) + void InspectorPageAgent::defaultAppearanceDidChange() { -@@ -920,13 +1030,22 @@ void InspectorPageAgent::defaultAppearanceDidChange(bool useDarkAppearance) +@@ -1027,13 +1137,22 @@ void InspectorPageAgent::defaultAppearanceDidChange() void InspectorPageAgent::didClearWindowObjectInWorld(Frame& frame, DOMWrapperWorld& world) { @@ -4292,7 +4271,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d } void InspectorPageAgent::didPaint(RenderObject& renderer, const LayoutRect& rect) -@@ -970,6 +1089,51 @@ void InspectorPageAgent::didRecalculateStyle() +@@ -1078,6 +1197,51 @@ void InspectorPageAgent::didRecalculateStyle() m_overlay->update(); } @@ -4344,7 +4323,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d Ref InspectorPageAgent::buildObjectForFrame(Frame* frame) { ASSERT_ARG(frame, frame); -@@ -1086,6 +1250,12 @@ void InspectorPageAgent::applyUserAgentOverride(String& userAgent) +@@ -1171,6 +1335,12 @@ void InspectorPageAgent::applyUserAgentOverride(String& userAgent) userAgent = m_userAgentOverride; } @@ -4354,10 +4333,10 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d + platform = m_platformOverride; +} + - void InspectorPageAgent::applyEmulatedMedia(String& media) + void InspectorPageAgent::applyEmulatedMedia(AtomString& media) { if (!m_emulatedMedia.isEmpty()) -@@ -1109,11 +1279,13 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotNode(Protocol::DOM:: +@@ -1194,11 +1364,13 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotNode(Protocol::DOM:: return snapshot->toDataURL("image/png"_s, std::nullopt, PreserveResolution::Yes); } @@ -4372,7 +4351,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d IntRect rectangle(x, y, width, height); auto snapshot = snapshotFrameRect(m_inspectedPage.mainFrame(), rectangle, WTFMove(options)); -@@ -1124,6 +1296,67 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int x, int y, i +@@ -1209,6 +1381,67 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int x, int y, i return snapshot->toDataURL("image/png"_s, std::nullopt, PreserveResolution::Yes); } @@ -4440,7 +4419,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d #if ENABLE(WEB_ARCHIVE) && USE(CF) Protocol::ErrorStringOr InspectorPageAgent::archive() { -@@ -1136,7 +1369,6 @@ Protocol::ErrorStringOr InspectorPageAgent::archive() +@@ -1221,7 +1454,6 @@ Protocol::ErrorStringOr InspectorPageAgent::archive() } #endif @@ -4448,7 +4427,7 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::optional&& width, std::optional&& height) { if (width.has_value() != height.has_value()) -@@ -1151,6 +1383,634 @@ Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::opt +@@ -1236,6 +1468,634 @@ Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::opt m_inspectedPage.mainFrame().setOverrideScreenSize(FloatSize(width.value_or(0), height.value_or(0))); return { }; } @@ -4815,8 +4794,8 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d + axNode->setValue(JSON::Value::create(axObject->stringValue())); + if (!axObject->accessibilityDescription().isEmpty()) + axNode->setDescription(axObject->accessibilityDescription()); -+ if (!axObject->keyShortcutsValue().isEmpty()) -+ axNode->setKeyshortcuts(axObject->keyShortcutsValue()); ++ if (!axObject->keyShortcuts().isEmpty()) ++ axNode->setKeyshortcuts(axObject->keyShortcuts()); + if (!axObject->valueDescription().isEmpty()) + axNode->setValuetext(axObject->valueDescription()); + if (!axObject->roleDescription().isEmpty()) @@ -5084,10 +5063,10 @@ index 7efbf27a7d6881950365e9a20d546558630a62bf..37b2fc6aa36bc2af85398730f4b5a48d } // namespace WebCore diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.h b/Source/WebCore/inspector/agents/InspectorPageAgent.h -index 6d94ad131257d8d7cdb05898fd3f42e0c72766bf..06d6cc40ad9bd914fa77197b1910aa60e61c19f0 100644 +index da15dbfd4576edf4e958435ad4a247250b928245..204fb87fff6b6d63e6629e2874a2efa0330b2851 100644 --- a/Source/WebCore/inspector/agents/InspectorPageAgent.h +++ b/Source/WebCore/inspector/agents/InspectorPageAgent.h -@@ -32,19 +32,26 @@ +@@ -32,8 +32,10 @@ #pragma once #include "CachedResource.h" @@ -5097,7 +5076,8 @@ index 6d94ad131257d8d7cdb05898fd3f42e0c72766bf..06d6cc40ad9bd914fa77197b1910aa60 +#include "ProcessIdentifier.h" #include #include - #include + #include +@@ -41,11 +43,16 @@ #include #include @@ -5114,7 +5094,7 @@ index 6d94ad131257d8d7cdb05898fd3f42e0c72766bf..06d6cc40ad9bd914fa77197b1910aa60 class InspectorClient; class InspectorOverlay; class Page; -@@ -76,6 +83,7 @@ public: +@@ -77,6 +84,7 @@ public: OtherResource, }; @@ -5122,7 +5102,7 @@ index 6d94ad131257d8d7cdb05898fd3f42e0c72766bf..06d6cc40ad9bd914fa77197b1910aa60 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); -@@ -96,15 +104,18 @@ public: +@@ -97,8 +105,11 @@ public: Inspector::Protocol::ErrorStringOr enable(); Inspector::Protocol::ErrorStringOr disable(); Inspector::Protocol::ErrorStringOr reload(std::optional&& ignoreCache, std::optional&& revalidateAllResources); @@ -5132,8 +5112,9 @@ index 6d94ad131257d8d7cdb05898fd3f42e0c72766bf..06d6cc40ad9bd914fa77197b1910aa60 Inspector::Protocol::ErrorStringOr overrideUserAgent(const String&); + Inspector::Protocol::ErrorStringOr overridePlatform(const String&); Inspector::Protocol::ErrorStringOr overrideSetting(Inspector::Protocol::Page::Setting, std::optional&& value); + Inspector::Protocol::ErrorStringOr overrideUserPreference(Inspector::Protocol::Page::UserPreferenceName, std::optional&&); Inspector::Protocol::ErrorStringOr>> getCookies(); - Inspector::Protocol::ErrorStringOr setCookie(Ref&&); +@@ -106,7 +117,7 @@ public: Inspector::Protocol::ErrorStringOr deleteCookie(const String& cookieName, const String& url); Inspector::Protocol::ErrorStringOr> getResourceTree(); Inspector::Protocol::ErrorStringOr> getResourceContent(const Inspector::Protocol::Network::FrameId&, const String& url); @@ -5142,10 +5123,10 @@ index 6d94ad131257d8d7cdb05898fd3f42e0c72766bf..06d6cc40ad9bd914fa77197b1910aa60 Inspector::Protocol::ErrorStringOr>> searchInResource(const Inspector::Protocol::Network::FrameId&, const String& url, const String& query, std::optional&& caseSensitive, std::optional&& isRegex, const Inspector::Protocol::Network::RequestId&); Inspector::Protocol::ErrorStringOr>> searchInResources(const String&, std::optional&& caseSensitive, std::optional&& isRegex); #if !PLATFORM(IOS_FAMILY) -@@ -115,35 +126,56 @@ public: - #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) - Inspector::Protocol::ErrorStringOr setForcedAppearance(std::optional&&); +@@ -114,37 +125,58 @@ public: #endif + Inspector::Protocol::ErrorStringOr setShowPaintRects(bool); + Inspector::Protocol::ErrorStringOr setEmulatedMedia(const String&); + Inspector::Protocol::ErrorStringOr setForcedReducedMotion(std::optional&&); + Inspector::Protocol::ErrorStringOr setForcedColors(std::optional&&); + Inspector::Protocol::ErrorStringOr setTimeZone(const String&); @@ -5184,13 +5165,15 @@ index 6d94ad131257d8d7cdb05898fd3f42e0c72766bf..06d6cc40ad9bd914fa77197b1910aa60 void frameStoppedLoading(Frame&); void frameScheduledNavigation(Frame&, Seconds delay); void frameClearedScheduledNavigation(Frame&); + void accessibilitySettingsDidChange(); + void defaultUserPreferencesDidChange(); + void didNavigateWithinPage(Frame&); #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) - void defaultAppearanceDidChange(bool useDarkAppearance); + void defaultAppearanceDidChange(); #endif void applyUserAgentOverride(String&); + void applyPlatformOverride(String&); - void applyEmulatedMedia(String&); + void applyEmulatedMedia(AtomString&); void didClearWindowObjectInWorld(Frame&, DOMWrapperWorld&); void didPaint(RenderObject&, const LayoutRect&); void didLayout(); @@ -5205,7 +5188,7 @@ index 6d94ad131257d8d7cdb05898fd3f42e0c72766bf..06d6cc40ad9bd914fa77197b1910aa60 Frame* frameForId(const Inspector::Protocol::Network::FrameId&); WEBCORE_EXPORT String frameId(Frame*); -@@ -152,6 +184,7 @@ public: +@@ -153,6 +185,7 @@ public: private: double timestamp(); @@ -5213,7 +5196,7 @@ index 6d94ad131257d8d7cdb05898fd3f42e0c72766bf..06d6cc40ad9bd914fa77197b1910aa60 static bool mainResourceContent(Frame*, bool withBase64Encode, String* result); static bool dataContent(const uint8_t* data, unsigned size, const String& textEncodingName, bool withBase64Encode, String* result); -@@ -163,18 +196,20 @@ private: +@@ -168,18 +201,21 @@ private: RefPtr m_backendDispatcher; Page& m_inspectedPage; @@ -5228,8 +5211,8 @@ index 6d94ad131257d8d7cdb05898fd3f42e0c72766bf..06d6cc40ad9bd914fa77197b1910aa60 + HashMap m_worldNameToBootstrapScript; String m_userAgentOverride; + String m_platformOverride; - String m_emulatedMedia; -- String m_bootstrapScript; + AtomString m_emulatedMedia; + String m_bootstrapScript; bool m_isFirstLayoutAfterOnLoad { false }; bool m_showPaintRects { false }; + bool m_interceptFileChooserDialog { false }; @@ -5496,7 +5479,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 1f972cd312338d92e6cf937357a6ab45af25aa84..c687a73caaf2e7f55cddf041e110b41ac4356a73 100644 +index 7af93825419c992dd7c977275160d2b32ca8dbf4..eb46ca7341ad167db2076a432dd2e6c0fe37d583 100644 --- a/Source/WebCore/loader/DocumentLoader.cpp +++ b/Source/WebCore/loader/DocumentLoader.cpp @@ -741,8 +741,10 @@ void DocumentLoader::willSendRequest(ResourceRequest&& newRequest, const Resourc @@ -5510,7 +5493,7 @@ index 1f972cd312338d92e6cf937357a6ab45af25aa84..c687a73caaf2e7f55cddf041e110b41a switch (navigationPolicyDecision) { case NavigationPolicyDecision::IgnoreLoad: case NavigationPolicyDecision::StopAllLoads: -@@ -1508,8 +1510,6 @@ void DocumentLoader::detachFromFrame() +@@ -1511,8 +1513,6 @@ void DocumentLoader::detachFromFrame() if (!m_frame) return; @@ -5538,7 +5521,7 @@ index 56f62d1517898771d4df1f2159af15fd11770155..d95957f28dae75664f27b9a3b812dd56 DocumentWriter& writer() const { return m_writer; } diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp -index 428fc300039c57640861e71aaa1d89d3365f81ea..dfe0c6ab364b7e7d146dac9f626c7c29e10d77c3 100644 +index 548faab5a7b1b5e92b4780526f016ffe5307b75a..2afe4e4425b3c8622c14a8306531fb50ca3f58f4 100644 --- a/Source/WebCore/loader/FrameLoader.cpp +++ b/Source/WebCore/loader/FrameLoader.cpp @@ -1201,6 +1201,7 @@ void FrameLoader::loadInSameDocument(URL url, RefPtr stat @@ -5597,7 +5580,7 @@ index 428fc300039c57640861e71aaa1d89d3365f81ea..dfe0c6ab364b7e7d146dac9f626c7c29 } void FrameLoader::continueFragmentScrollAfterNavigationPolicy(const ResourceRequest& request, const SecurityOrigin* requesterOrigin, bool shouldContinue) -@@ -4110,9 +4122,6 @@ String FrameLoader::referrer() const +@@ -4116,9 +4128,6 @@ String FrameLoader::referrer() const void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() { @@ -5607,7 +5590,7 @@ index 428fc300039c57640861e71aaa1d89d3365f81ea..dfe0c6ab364b7e7d146dac9f626c7c29 Vector> worlds; ScriptController::getAllWorlds(worlds); for (auto& world : worlds) -@@ -4121,13 +4130,13 @@ void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() +@@ -4127,13 +4136,13 @@ void FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() void FrameLoader::dispatchDidClearWindowObjectInWorld(DOMWrapperWorld& world) { @@ -5674,7 +5657,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 59e8e53a29f5b03476765199e7243f46a522786b..a021e1674e702085c379fddcef74ee555e417cd8 100644 +index e0b17e394f60eb7f4d1935ebd789f294eab20eb3..848cd8f23b2c033f52d34645f06dc2105071ac01 100644 --- a/Source/WebCore/loader/cache/CachedResourceLoader.cpp +++ b/Source/WebCore/loader/cache/CachedResourceLoader.cpp @@ -1644,8 +1644,9 @@ Vector> CachedResourceLoader::allCachedSVGImages() const @@ -5690,10 +5673,10 @@ index 59e8e53a29f5b03476765199e7243f46a522786b..a021e1674e702085c379fddcef74ee55 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 44c390a31d95ba46b8c4094087cd9eb96929d423..8d6ca239802ddbf6fd0406ed84cc255826d96b25 100644 +index 527ce3c5a997853b849cceb611b18b556cad6d4f..c50928f6f4afb3caf5e059ef8264bc6bb09e7194 100644 --- a/Source/WebCore/page/ChromeClient.h +++ b/Source/WebCore/page/ChromeClient.h -@@ -320,7 +320,7 @@ public: +@@ -323,7 +323,7 @@ public: #endif #if ENABLE(ORIENTATION_EVENTS) @@ -5720,7 +5703,7 @@ index 05e59ace8adca913c2b9a5cefae6f25667a04d1e..0cbdcbbf56997a453bd7ccd45fd5b170 #endif diff --git a/Source/WebCore/page/DeprecatedGlobalSettings.h b/Source/WebCore/page/DeprecatedGlobalSettings.h -index 1e5943afa961784ddde45b07d263f46d497431ae..2ee54f0cc981376ae113dd0a208cfce22fb7cb4b 100644 +index b5b0f2dc098d9cc63398b29c5085cb715cef801b..fb7ec55e3c41003c7e2874c1b0da8b9b8cd37009 100644 --- a/Source/WebCore/page/DeprecatedGlobalSettings.h +++ b/Source/WebCore/page/DeprecatedGlobalSettings.h @@ -203,6 +203,7 @@ public: @@ -5732,10 +5715,10 @@ index 1e5943afa961784ddde45b07d263f46d497431ae..2ee54f0cc981376ae113dd0a208cfce2 static bool pageAtRuleSupportEnabled() { return shared().m_pageAtRuleSupportEnabled; } diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp -index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c679340109 100644 +index 670a2690fe686d1b02e4e634d012c5706de8f103..94f4ca96ef96475923adb3a61f18966e02066b4f 100644 --- a/Source/WebCore/page/EventHandler.cpp +++ b/Source/WebCore/page/EventHandler.cpp -@@ -142,6 +142,7 @@ +@@ -143,6 +143,7 @@ #if ENABLE(TOUCH_EVENTS) && !ENABLE(IOS_TOUCH_EVENTS) #include "PlatformTouchEvent.h" @@ -5743,7 +5726,7 @@ index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c6 #endif #if ENABLE(MAC_GESTURE_EVENTS) -@@ -818,9 +819,7 @@ bool EventHandler::handleMousePressEvent(const MouseEventWithHitTestResults& eve +@@ -820,9 +821,7 @@ bool EventHandler::handleMousePressEvent(const MouseEventWithHitTestResults& eve m_mousePressNode = event.targetNode(); m_frame.document()->setFocusNavigationStartingNode(event.targetNode()); @@ -5753,7 +5736,7 @@ index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c6 m_mousePressed = true; m_selectionInitiationState = HaveNotStartedSelection; -@@ -860,8 +859,6 @@ VisiblePosition EventHandler::selectionExtentRespectingEditingBoundary(const Vis +@@ -862,8 +861,6 @@ VisiblePosition EventHandler::selectionExtentRespectingEditingBoundary(const Vis return adjustedTarget->renderer()->positionForPoint(LayoutPoint(selectionEndPoint), nullptr); } @@ -5762,7 +5745,7 @@ index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c6 #if !PLATFORM(IOS_FAMILY) bool EventHandler::supportsSelectionUpdatesOnMouseDrag() const -@@ -883,8 +880,10 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e +@@ -885,8 +882,10 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e Ref protectedFrame(m_frame); @@ -5773,7 +5756,7 @@ index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c6 RefPtr targetNode = event.targetNode(); if (event.event().button() != LeftButton || !targetNode) -@@ -905,7 +904,9 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e +@@ -907,7 +906,9 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e ASSERT(mouseDownMayStartSelect() || m_mouseDownMayStartAutoscroll); #endif @@ -5783,7 +5766,7 @@ index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c6 if (m_mouseDownMayStartAutoscroll && !panScrollInProgress()) { m_autoscrollController->startAutoscrollForSelection(renderer); -@@ -922,6 +923,8 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e +@@ -924,6 +925,8 @@ bool EventHandler::handleMouseDraggedEvent(const MouseEventWithHitTestResults& e return true; } @@ -5792,7 +5775,7 @@ index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c6 bool EventHandler::eventMayStartDrag(const PlatformMouseEvent& event) const { // This is a pre-flight check of whether the event might lead to a drag being started. Be careful -@@ -953,6 +956,8 @@ bool EventHandler::eventMayStartDrag(const PlatformMouseEvent& event) const +@@ -955,6 +958,8 @@ bool EventHandler::eventMayStartDrag(const PlatformMouseEvent& event) const return targetElement && page->dragController().draggableElement(&m_frame, targetElement.get(), result.roundedPointInInnerNodeFrame(), state); } @@ -5801,7 +5784,7 @@ index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c6 void EventHandler::updateSelectionForMouseDrag() { if (!supportsSelectionUpdatesOnMouseDrag()) -@@ -1061,7 +1066,6 @@ void EventHandler::updateSelectionForMouseDrag(const HitTestResult& hitTestResul +@@ -1063,7 +1068,6 @@ void EventHandler::updateSelectionForMouseDrag(const HitTestResult& hitTestResul if (oldSelection != newSelection && ImageOverlay::isOverlayText(newSelection.start().containerNode()) && ImageOverlay::isOverlayText(newSelection.end().containerNode())) invalidateClick(); } @@ -5809,7 +5792,7 @@ index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c6 void EventHandler::lostMouseCapture() { -@@ -1109,9 +1113,7 @@ bool EventHandler::handleMouseReleaseEvent(const MouseEventWithHitTestResults& e +@@ -1111,9 +1115,7 @@ bool EventHandler::handleMouseReleaseEvent(const MouseEventWithHitTestResults& e // on the selection, the selection goes away. However, if we are // editing, place the caret. if (m_mouseDownWasSingleClickInSelection && m_selectionInitiationState != ExtendedSelection @@ -5819,7 +5802,7 @@ index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c6 && m_frame.selection().isRange() && event.event().button() != RightButton) { VisibleSelection newSelection; -@@ -2088,10 +2090,8 @@ bool EventHandler::handleMouseMoveEvent(const PlatformMouseEvent& platformMouseE +@@ -2093,10 +2095,8 @@ bool EventHandler::handleMouseMoveEvent(const PlatformMouseEvent& platformMouseE swallowEvent = !dispatchMouseEvent(eventNames().mousemoveEvent, mouseEvent.targetNode(), 0, platformMouseEvent, FireMouseOverOut::Yes); @@ -5830,7 +5813,7 @@ index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c6 return swallowEvent; } -@@ -4183,7 +4183,14 @@ bool EventHandler::handleDrag(const MouseEventWithHitTestResults& event, CheckDr +@@ -4188,7 +4188,14 @@ bool EventHandler::handleDrag(const MouseEventWithHitTestResults& event, CheckDr if (!m_frame.document()) return false; @@ -5846,7 +5829,7 @@ index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c6 auto hasNonDefaultPasteboardData = HasNonDefaultPasteboardData::No; if (dragState().shouldDispatchEvents) { -@@ -4755,7 +4762,8 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) +@@ -4760,7 +4767,8 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) allTouchReleased = false; } @@ -5856,7 +5839,7 @@ index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c6 PlatformTouchPoint::State pointState = point.state(); LayoutPoint pagePoint = documentPointForWindowPoint(m_frame, point.pos()); -@@ -4882,6 +4890,9 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) +@@ -4887,6 +4895,9 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) changedTouches[pointState].m_touches->append(WTFMove(touch)); changedTouches[pointState].m_targets.add(touchTarget); } @@ -5867,7 +5850,7 @@ index ed459c110a6d309b43d06c1f2ef39bc7e887132e..9456738629338750f84d37de6013f0c6 m_touchPressed = touches->length() > 0; if (allTouchReleased) diff --git a/Source/WebCore/page/EventHandler.h b/Source/WebCore/page/EventHandler.h -index 6985cd3f00ae178f8e11f4575733767f2f052ee8..fe2111a21248551ac0f7b4f0fd8d5ef3979816a5 100644 +index 1cf523aaa48a0bb6d1d4309eb92e15637c7d515a..78b0a805c4390eec5ea9338cc3ff74cf9951b97d 100644 --- a/Source/WebCore/page/EventHandler.h +++ b/Source/WebCore/page/EventHandler.h @@ -137,9 +137,7 @@ public: @@ -5925,7 +5908,7 @@ index 6985cd3f00ae178f8e11f4575733767f2f052ee8..fe2111a21248551ac0f7b4f0fd8d5ef3 RefPtr m_dragTarget; bool m_mouseDownMayStartDrag { false }; diff --git a/Source/WebCore/page/Frame.cpp b/Source/WebCore/page/Frame.cpp -index 8082d758326c993982746da4f25d5bcaa9877028..abbbee9b596f2b1f6550fe7c339e9aa0b09f0b10 100644 +index 1b4f16c3a6fe53719ad7cc0ae17264af318d9b2b..4c6be5f274ec6c4e36457ab480dccfcb8591047c 100644 --- a/Source/WebCore/page/Frame.cpp +++ b/Source/WebCore/page/Frame.cpp @@ -39,6 +39,7 @@ @@ -5944,7 +5927,7 @@ index 8082d758326c993982746da4f25d5bcaa9877028..abbbee9b596f2b1f6550fe7c339e9aa0 #include "NodeTraversal.h" #include "Page.h" #include "ProcessWarming.h" -@@ -180,6 +182,7 @@ Frame::Frame(Page& page, HTMLFrameOwnerElement* ownerElement, UniqueRefinit(); } -@@ -359,7 +362,7 @@ void Frame::orientationChanged() +@@ -353,7 +356,7 @@ void Frame::orientationChanged() int Frame::orientation() const { if (auto* page = this->page()) @@ -5961,7 +5944,7 @@ index 8082d758326c993982746da4f25d5bcaa9877028..abbbee9b596f2b1f6550fe7c339e9aa0 return 0; } #endif // ENABLE(ORIENTATION_EVENTS) -@@ -1158,6 +1161,362 @@ DataDetectionResultsStorage& Frame::dataDetectionResults() +@@ -1147,6 +1150,362 @@ DataDetectionResultsStorage& Frame::dataDetectionResults() #endif @@ -6325,7 +6308,7 @@ index 8082d758326c993982746da4f25d5bcaa9877028..abbbee9b596f2b1f6550fe7c339e9aa0 #undef FRAME_RELEASE_LOG_ERROR diff --git a/Source/WebCore/page/Frame.h b/Source/WebCore/page/Frame.h -index 9640894eebf3923ef32cbe33a1b93ee6652a4f30..93f7df7aa691b11bbfe818ffa7f0e808f4c771b3 100644 +index 99cea1c8385a2e4326d44a8d408ac46550326d58..1d1d899aa5ec302121b11bdfc00aefb98dad9dc5 100644 --- a/Source/WebCore/page/Frame.h +++ b/Source/WebCore/page/Frame.h @@ -111,8 +111,8 @@ enum { @@ -6338,7 +6321,7 @@ index 9640894eebf3923ef32cbe33a1b93ee6652a4f30..93f7df7aa691b11bbfe818ffa7f0e808 // FIXME: Rename Frame to LocalFrame and AbstractFrame to Frame. class Frame final : public AbstractFrame { -@@ -214,10 +214,6 @@ public: +@@ -211,10 +211,6 @@ public: WEBCORE_EXPORT DataDetectionResultsStorage& dataDetectionResults(); #endif @@ -6349,7 +6332,7 @@ index 9640894eebf3923ef32cbe33a1b93ee6652a4f30..93f7df7aa691b11bbfe818ffa7f0e808 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); -@@ -225,6 +221,10 @@ public: +@@ -222,6 +218,10 @@ public: WEBCORE_EXPORT Node* nodeRespondingToScrollWheelEvents(const FloatPoint& viewportLocation); WEBCORE_EXPORT Node* approximateNodeAtViewportLocationLegacy(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation); @@ -6360,7 +6343,7 @@ index 9640894eebf3923ef32cbe33a1b93ee6652a4f30..93f7df7aa691b11bbfe818ffa7f0e808 WEBCORE_EXPORT NSArray *wordsInCurrentParagraph() const; WEBCORE_EXPORT CGRect renderRectForPoint(CGPoint, bool* isReplaced, float* fontSize) const; -@@ -292,6 +292,7 @@ public: +@@ -289,6 +289,7 @@ public: WEBCORE_EXPORT FloatSize screenSize() const; void setOverrideScreenSize(FloatSize&&); @@ -6368,7 +6351,7 @@ index 9640894eebf3923ef32cbe33a1b93ee6652a4f30..93f7df7aa691b11bbfe818ffa7f0e808 void selfOnlyRef(); void selfOnlyDeref(); -@@ -327,7 +328,6 @@ private: +@@ -324,7 +325,6 @@ private: #if ENABLE(DATA_DETECTION) std::unique_ptr m_dataDetectionResults; #endif @@ -6376,7 +6359,7 @@ index 9640894eebf3923ef32cbe33a1b93ee6652a4f30..93f7df7aa691b11bbfe818ffa7f0e808 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); -@@ -335,6 +335,7 @@ private: +@@ -332,6 +332,7 @@ private: enum class ShouldFindRootEditableElement : bool { No, Yes }; Node* qualifyingNodeAtViewportLocation(const FloatPoint& viewportLocation, FloatPoint& adjustedViewportLocation, const NodeQualifier&, ShouldApproximate, ShouldFindRootEditableElement = ShouldFindRootEditableElement::Yes); @@ -6385,10 +6368,10 @@ index 9640894eebf3923ef32cbe33a1b93ee6652a4f30..93f7df7aa691b11bbfe818ffa7f0e808 ViewportArguments m_viewportArguments; diff --git a/Source/WebCore/page/FrameSnapshotting.cpp b/Source/WebCore/page/FrameSnapshotting.cpp -index 4e524dcb9f03fcc0e50919b16448be6b0421b5da..b566f02589bac9c3259a63db94a3108bbcbff554 100644 +index abf96a0982ccabd034fa89f5125356c6e0619e4c..dbeadf420c16250304cb0bd8d834717261b8e132 100644 --- a/Source/WebCore/page/FrameSnapshotting.cpp +++ b/Source/WebCore/page/FrameSnapshotting.cpp -@@ -107,7 +107,7 @@ RefPtr snapshotFrameRectWithClip(Frame& frame, const IntRect& image +@@ -108,7 +108,7 @@ RefPtr snapshotFrameRectWithClip(Frame& frame, const IntRect& image // Other paint behaviors are set by paintContentsForSnapshot. frame.view()->setPaintBehavior(paintBehavior); @@ -6397,7 +6380,7 @@ index 4e524dcb9f03fcc0e50919b16448be6b0421b5da..b566f02589bac9c3259a63db94a3108b if (frame.page()->delegatesScaling()) scaleFactor *= frame.page()->pageScaleFactor(); -@@ -122,7 +122,13 @@ RefPtr snapshotFrameRectWithClip(Frame& frame, const IntRect& image +@@ -123,7 +123,13 @@ RefPtr snapshotFrameRectWithClip(Frame& frame, const IntRect& image if (!buffer) return nullptr; @@ -6411,7 +6394,7 @@ index 4e524dcb9f03fcc0e50919b16448be6b0421b5da..b566f02589bac9c3259a63db94a3108b if (!clipRects.isEmpty()) { Path clipPath; -@@ -131,7 +137,10 @@ RefPtr snapshotFrameRectWithClip(Frame& frame, const IntRect& image +@@ -132,7 +138,10 @@ RefPtr snapshotFrameRectWithClip(Frame& frame, const IntRect& image buffer->context().clipPath(clipPath); } @@ -6465,10 +6448,10 @@ index 8b29ef05fbe815bc3f7505f624940294bee2c4f7..1a1348144f68982cebcef18418c317db 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 a10fa4ef64f030ae2cb48cab689cf9bd6f25e295..2625f6b5620fcd8a7a88b7b69df46cc3678ac6f3 100644 +index 6b1de221bd0200410edf7ba26bb40c1cccc41a1b..d99067f6ac977b79e872cbc354daa8b23ea4dd94 100644 --- a/Source/WebCore/page/Page.cpp +++ b/Source/WebCore/page/Page.cpp -@@ -490,6 +490,37 @@ void Page::setOverrideViewportArguments(const std::optional& +@@ -491,6 +491,37 @@ void Page::setOverrideViewportArguments(const std::optional& document->updateViewportArguments(); } @@ -6506,7 +6489,7 @@ index a10fa4ef64f030ae2cb48cab689cf9bd6f25e295..2625f6b5620fcd8a7a88b7b69df46cc3 ScrollingCoordinator* Page::scrollingCoordinator() { if (!m_scrollingCoordinator && m_settings->scrollingCoordinatorEnabled()) { -@@ -1411,10 +1442,6 @@ void Page::didCommitLoad() +@@ -1413,10 +1444,6 @@ void Page::didCommitLoad() m_isEditableRegionEnabled = false; #endif @@ -6517,7 +6500,7 @@ index a10fa4ef64f030ae2cb48cab689cf9bd6f25e295..2625f6b5620fcd8a7a88b7b69df46cc3 resetSeenPlugins(); resetSeenMediaEngines(); -@@ -3488,6 +3515,26 @@ void Page::setUseDarkAppearanceOverride(std::optional valueOverride) +@@ -3504,6 +3531,26 @@ void Page::setUseDarkAppearanceOverride(std::optional valueOverride) #endif } @@ -6545,10 +6528,10 @@ index a10fa4ef64f030ae2cb48cab689cf9bd6f25e295..2625f6b5620fcd8a7a88b7b69df46cc3 { if (insets == m_fullscreenInsets) diff --git a/Source/WebCore/page/Page.h b/Source/WebCore/page/Page.h -index 64efd272b34db5447eeaf797fa880d1a49c2e7a2..463e55ba610411303f5a45122ec85e8a159d0207 100644 +index 938111d6718ad79dbe549ca0f421f7185066d425..17430e0cfe3fdfe4c7b6f731b52058febefed74d 100644 --- a/Source/WebCore/page/Page.h +++ b/Source/WebCore/page/Page.h -@@ -287,6 +287,9 @@ public: +@@ -290,6 +290,9 @@ public: const std::optional& overrideViewportArguments() const { return m_overrideViewportArguments; } WEBCORE_EXPORT void setOverrideViewportArguments(const std::optional&); @@ -6558,7 +6541,7 @@ index 64efd272b34db5447eeaf797fa880d1a49c2e7a2..463e55ba610411303f5a45122ec85e8a static void refreshPlugins(bool reload); WEBCORE_EXPORT PluginData& pluginData(); void clearPluginData(); -@@ -341,6 +344,10 @@ public: +@@ -344,6 +347,10 @@ public: DragCaretController& dragCaretController() const { return *m_dragCaretController; } #if ENABLE(DRAG_SUPPORT) DragController& dragController() const { return *m_dragController; } @@ -6569,7 +6552,7 @@ index 64efd272b34db5447eeaf797fa880d1a49c2e7a2..463e55ba610411303f5a45122ec85e8a #endif FocusController& focusController() const { return *m_focusController; } #if ENABLE(CONTEXT_MENUS) -@@ -508,6 +515,10 @@ public: +@@ -511,6 +518,10 @@ public: WEBCORE_EXPORT void effectiveAppearanceDidChange(bool useDarkAppearance, bool useElevatedUserInterfaceLevel); bool defaultUseDarkAppearance() const { return m_useDarkAppearance; } void setUseDarkAppearanceOverride(std::optional); @@ -6580,7 +6563,7 @@ index 64efd272b34db5447eeaf797fa880d1a49c2e7a2..463e55ba610411303f5a45122ec85e8a #if ENABLE(TEXT_AUTOSIZING) float textAutosizingWidth() const { return m_textAutosizingWidth; } -@@ -922,6 +933,11 @@ public: +@@ -931,6 +942,11 @@ public: WEBCORE_EXPORT void setInteractionRegionsEnabled(bool); #endif @@ -6592,7 +6575,7 @@ index 64efd272b34db5447eeaf797fa880d1a49c2e7a2..463e55ba610411303f5a45122ec85e8a #if ENABLE(DEVICE_ORIENTATION) && PLATFORM(IOS_FAMILY) DeviceOrientationUpdateProvider* deviceOrientationUpdateProvider() const { return m_deviceOrientationUpdateProvider.get(); } #endif -@@ -1046,6 +1062,9 @@ private: +@@ -1061,6 +1077,9 @@ private: #if ENABLE(DRAG_SUPPORT) const std::unique_ptr m_dragController; @@ -6602,7 +6585,7 @@ index 64efd272b34db5447eeaf797fa880d1a49c2e7a2..463e55ba610411303f5a45122ec85e8a #endif const std::unique_ptr m_focusController; #if ENABLE(CONTEXT_MENUS) -@@ -1125,6 +1144,8 @@ private: +@@ -1140,6 +1159,8 @@ private: bool m_useElevatedUserInterfaceLevel { false }; bool m_useDarkAppearance { false }; std::optional m_useDarkAppearanceOverride; @@ -6611,7 +6594,7 @@ index 64efd272b34db5447eeaf797fa880d1a49c2e7a2..463e55ba610411303f5a45122ec85e8a #if ENABLE(TEXT_AUTOSIZING) float m_textAutosizingWidth { 0 }; -@@ -1302,6 +1323,11 @@ private: +@@ -1316,6 +1337,11 @@ private: #endif std::optional m_overrideViewportArguments; @@ -6735,10 +6718,10 @@ index 3c70bb46c5322bf836ca78e9ac5e78cad4da6e2b..8f6b1667907f9b4f374f96fbfb0293bc } diff --git a/Source/WebCore/page/csp/ContentSecurityPolicy.cpp b/Source/WebCore/page/csp/ContentSecurityPolicy.cpp -index 18dfe523967e9f727eba2ec4aa65aa832594602a..3fd356023550d75915e7f92845436fc74062f484 100644 +index c94640eda98ab01b02aba0d763473f25b9001e9b..f8e2f2e8528c92e172bfc4ae929cfc5a5b483124 100644 --- a/Source/WebCore/page/csp/ContentSecurityPolicy.cpp +++ b/Source/WebCore/page/csp/ContentSecurityPolicy.cpp -@@ -325,6 +325,8 @@ bool ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtoc +@@ -336,6 +336,8 @@ bool ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtoc template typename std::enable_if::value, bool>::type ContentSecurityPolicy::allPoliciesWithDispositionAllow(Disposition disposition, Predicate&& predicate, Args&&... args) const { @@ -6747,7 +6730,7 @@ index 18dfe523967e9f727eba2ec4aa65aa832594602a..3fd356023550d75915e7f92845436fc7 bool isReportOnly = disposition == ContentSecurityPolicy::Disposition::ReportOnly; for (auto& policy : m_policies) { if (policy->isReportOnly() != isReportOnly) -@@ -338,6 +340,8 @@ typename std::enable_if bool ContentSecurityPolicy::allPoliciesWithDispositionAllow(Disposition disposition, ViolatedDirectiveCallback&& callback, Predicate&& predicate, Args&&... args) const { @@ -6756,7 +6739,7 @@ index 18dfe523967e9f727eba2ec4aa65aa832594602a..3fd356023550d75915e7f92845436fc7 bool isReportOnly = disposition == ContentSecurityPolicy::Disposition::ReportOnly; bool isAllowed = true; for (auto& policy : m_policies) { -@@ -354,6 +358,8 @@ bool ContentSecurityPolicy::allPoliciesWithDispositionAllow(Disposition disposit +@@ -365,6 +369,8 @@ bool ContentSecurityPolicy::allPoliciesWithDispositionAllow(Disposition disposit template bool ContentSecurityPolicy::allPoliciesAllow(ViolatedDirectiveCallback&& callback, Predicate&& predicate, Args&&... args) const { @@ -6864,7 +6847,7 @@ index 1fb0e9d5cee3b3df4ee1e96eb8d75016ad687fc5..497bd34cc97e2d20c9d6982a8d92d852 ) diff --git a/Source/WebCore/platform/DragData.h b/Source/WebCore/platform/DragData.h -index 9bfca89c3beb3de7436072f78eafff543f9501cc..001008647d3ff26525a55649ee383130a9045d24 100644 +index 747347e5de70106fd85b7001904e2bb7f8c01b92..99b8436c844ecc3f0b613f68baf87e8be48eaa52 100644 --- a/Source/WebCore/platform/DragData.h +++ b/Source/WebCore/platform/DragData.h @@ -48,7 +48,7 @@ typedef void* DragDataRef; @@ -6890,7 +6873,7 @@ index 9e97dd5f689e6a1a90c9069445dc3f4b8c45e840..cc3ddc3e6d656a91c5ed58e050483d37 IntSize dragImageSize(DragImageRef) { diff --git a/Source/WebCore/platform/Pasteboard.h b/Source/WebCore/platform/Pasteboard.h -index e85de1de305e3c3313fe86b2f21056e0a7ec26e2..04344917c936497e38e33e0421083a657f558035 100644 +index 58c51c2bc278d4c228d456f5df9f5f03dd717c66..c74c01a5c3b9b7e82aec0f378cdb36d4b10c45f4 100644 --- a/Source/WebCore/platform/Pasteboard.h +++ b/Source/WebCore/platform/Pasteboard.h @@ -44,7 +44,7 @@ OBJC_CLASS NSString; @@ -6938,7 +6921,7 @@ index e85de1de305e3c3313fe86b2f21056e0a7ec26e2..04344917c936497e38e33e0421083a65 explicit Pasteboard(std::unique_ptr&&, const String& pasteboardName); @@ -293,6 +304,7 @@ public: COMPtr dataObject() const { return m_dataObject; } - void setExternalDataObject(IDataObject*); + WEBCORE_EXPORT void setExternalDataObject(IDataObject*); const DragDataMap& dragDataMap() const { return m_dragDataMap; } + WEBCORE_EXPORT DragDataMap createDragDataMap(); void writeURLToWritableDataObject(const URL&, const String&); @@ -6964,7 +6947,7 @@ index e85de1de305e3c3313fe86b2f21056e0a7ec26e2..04344917c936497e38e33e0421083a65 }; diff --git a/Source/WebCore/platform/PlatformKeyboardEvent.h b/Source/WebCore/platform/PlatformKeyboardEvent.h -index 1d3edd9585338828c7074fd8389e437c16c42d92..0f4b5b074f6c95919a09567bd1338577c0930627 100644 +index 0820575a57c946342b49fa81dcc64f619606a2c6..df35ad10a181dd85cf7e9ade8d5596c4ea74e815 100644 --- a/Source/WebCore/platform/PlatformKeyboardEvent.h +++ b/Source/WebCore/platform/PlatformKeyboardEvent.h @@ -134,6 +134,7 @@ namespace WebCore { @@ -7035,10 +7018,10 @@ index 44799e0b2a93cbcf25f4315d62a3d95896c02f3d..29277223448a0936a16f975970ab60d7 #endif diff --git a/Source/WebCore/platform/ScrollableArea.h b/Source/WebCore/platform/ScrollableArea.h -index 49ffc11a7aab50e52144275e37841dcd602a3842..fb43d85c27a65ef2205a079dd6574310ab198b21 100644 +index eac1056e04595cdc983baf57779603705d05c91e..c6c9c73464c4e7551fd0c175d43dea693a7a5f92 100644 --- a/Source/WebCore/platform/ScrollableArea.h +++ b/Source/WebCore/platform/ScrollableArea.h -@@ -110,7 +110,7 @@ public: +@@ -111,7 +111,7 @@ public: void stopKeyboardScrollAnimation(); #if ENABLE(TOUCH_EVENTS) @@ -7139,7 +7122,7 @@ index 0000000000000000000000000000000000000000..9713ccd3229ec26874b29de468bd9f90 + +#endif // ENABLE(SPEECH_SYNTHESIS) diff --git a/Source/WebCore/platform/graphics/FontCascade.h b/Source/WebCore/platform/graphics/FontCascade.h -index 5ed6a20e4830587cc6302b01787e4ca6d928c9db..3a4eff8a36184e777d49b1faab38ebfa960676eb 100644 +index f4b3f9f8441dfc68018953b326701725c295cb2d..5e403922983e1133ef369df04863a4bc16842cfd 100644 --- a/Source/WebCore/platform/graphics/FontCascade.h +++ b/Source/WebCore/platform/graphics/FontCascade.h @@ -308,7 +308,8 @@ private: @@ -7152,46 +7135,6 @@ index 5ed6a20e4830587cc6302b01787e4ca6d928c9db..3a4eff8a36184e777d49b1faab38ebfa return true; #else return false; -diff --git a/Source/WebCore/platform/graphics/GraphicsStyle.h b/Source/WebCore/platform/graphics/GraphicsStyle.h -index 7fcd97b7e8f99b05b700c63a7ae4d81eab53e4d8..2e6043d13f5f118d0e9903dd3f96d3247af0102c 100644 ---- a/Source/WebCore/platform/graphics/GraphicsStyle.h -+++ b/Source/WebCore/platform/graphics/GraphicsStyle.h -@@ -49,6 +49,11 @@ inline bool operator==(const GraphicsDropShadow& a, const GraphicsDropShadow& b) - return a.offset == b.offset && a.radius == b.radius && a.color == b.color; - } - -+inline bool operator!=(const GraphicsDropShadow& a, const GraphicsDropShadow& b) -+{ -+ return !(a == b); -+} -+ - struct GraphicsGaussianBlur { - FloatSize radius; - -@@ -61,6 +66,11 @@ inline bool operator==(const GraphicsGaussianBlur& a, const GraphicsGaussianBlur - return a.radius == b.radius; - } - -+inline bool operator!=(const GraphicsGaussianBlur& a, const GraphicsGaussianBlur& b) -+{ -+ return !(a == b); -+} -+ - struct GraphicsColorMatrix { - std::array values; - -@@ -73,6 +83,11 @@ inline bool operator==(const GraphicsColorMatrix& a, const GraphicsColorMatrix& - return a.values == b.values; - } - -+inline bool operator!=(const GraphicsColorMatrix& a, const GraphicsColorMatrix& b) -+{ -+ return !(a == b); -+} -+ - using GraphicsStyle = std::variant< - GraphicsDropShadow, - GraphicsGaussianBlur, diff --git a/Source/WebCore/platform/graphics/cairo/ImageBufferUtilitiesCairo.cpp b/Source/WebCore/platform/graphics/cairo/ImageBufferUtilitiesCairo.cpp index 97f733ef9af5558ef7375ab2b74c8d4c6e6d8502..cd201b0155a4e12576c2bd1af8b45c4be1101763 100644 --- a/Source/WebCore/platform/graphics/cairo/ImageBufferUtilitiesCairo.cpp @@ -8165,12 +8108,12 @@ index 93db57fd75b8fcac1a745f62294e27c97e040ab0..02411ac6bb361c2677c269945f665e0a Vector PlatformPasteboard::typesSafeForDOMToReadAndWrite(const String&) const diff --git a/Source/WebCore/platform/mediastream/libwebrtc/gstreamer/LibWebRTCProviderGStreamer.h b/Source/WebCore/platform/mediastream/libwebrtc/gstreamer/LibWebRTCProviderGStreamer.h -index b191296067d18bca4495f2b331a12f6257ae07bc..803c05a88f181781a9d197872813903f607204e5 100644 +index 0552842dbe3f3a2c12a504178f5a8ca977e1c4db..2ef3b1b459d8a9b4e86b4556feeb4f0737f05c54 100644 --- a/Source/WebCore/platform/mediastream/libwebrtc/gstreamer/LibWebRTCProviderGStreamer.h +++ b/Source/WebCore/platform/mediastream/libwebrtc/gstreamer/LibWebRTCProviderGStreamer.h -@@ -30,6 +30,8 @@ - #include "GStreamerVideoDecoderFactory.h" +@@ -31,6 +31,8 @@ #include "GStreamerVideoEncoderFactory.h" + #include "LibWebRTCProvider.h" +#include "LibWebRTCProvider.h" + @@ -8195,7 +8138,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 1e5675e4e072600844cf5948a627376df44f9437..718db1a41924e2b93581a1d1e3f8e497d64f0ea1 100644 +index d81d38a89d9c594188204c6aa1d311769d6de511..94bdde054debfdfe9b11667022c1a6823c90333c 100644 --- a/Source/WebCore/platform/network/NetworkStorageSession.h +++ b/Source/WebCore/platform/network/NetworkStorageSession.h @@ -156,6 +156,8 @@ public: @@ -8208,27 +8151,27 @@ index 1e5675e4e072600844cf5948a627376df44f9437..718db1a41924e2b93581a1d1e3f8e497 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.h b/Source/WebCore/platform/network/ResourceResponseBase.h -index 238b1349e1fc1a9ee168c82b35c6190ef3c46d24..d834ac702c5924044be3e4d84385288414c3e6ea 100644 +index b1f17979054c72ff73cd523737b5f171663e5be0..9592e283c7aa11e53bc76ab4276e8e2f7ad5db6a 100644 --- a/Source/WebCore/platform/network/ResourceResponseBase.h +++ b/Source/WebCore/platform/network/ResourceResponseBase.h -@@ -230,6 +230,8 @@ public: - - WEBCORE_EXPORT static ResourceResponse dataURLResponse(const URL&, const DataURLDecoder::Result&); +@@ -262,6 +262,8 @@ public: + + WEBCORE_EXPORT std::optional getResponseData() const; + HTTPHeaderMap m_httpRequestHeaderFields; + protected: enum InitLevel { Uninitialized, -@@ -310,6 +312,7 @@ void ResourceResponseBase::encode(Encoder& encoder) const +@@ -342,6 +344,7 @@ void ResourceResponseBase::encode(Encoder& encoder) const encoder << m_httpStatusText; encoder << m_httpVersion; encoder << m_httpHeaderFields; + encoder << m_httpRequestHeaderFields; - // We don't want to put the networkLoadMetrics info - // into the disk cache, because we will never use the old info. -@@ -384,6 +387,12 @@ bool ResourceResponseBase::decode(Decoder& decoder, ResourceResponseBase& respon + encoder << m_httpStatusCode; + encoder << m_certificateInfo; +@@ -411,6 +414,12 @@ bool ResourceResponseBase::decode(Decoder& decoder, ResourceResponseBase& respon return false; response.m_httpHeaderFields = WTFMove(*httpHeaderFields); @@ -8238,9 +8181,9 @@ index 238b1349e1fc1a9ee168c82b35c6190ef3c46d24..d834ac702c5924044be3e4d843852884 + return false; + response.m_httpRequestHeaderFields = WTFMove(*httpRequestHeaderFields); + - // The networkLoadMetrics info is only send over IPC and not stored in disk cache. - if constexpr (Decoder::isIPCDecoder) { - std::optional> networkLoadMetrics; + std::optional httpStatusCode; + decoder >> httpStatusCode; + if (!httpStatusCode) diff --git a/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm b/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm index f44cc0669cc095f192960b4767e8f61b13519937..6b06efd4233287b5dd8ba968bd77eb30d87f8fbd 100644 --- a/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm @@ -8269,7 +8212,7 @@ index f44cc0669cc095f192960b4767e8f61b13519937..6b06efd4233287b5dd8ba968bd77eb30 { ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies)); diff --git a/Source/WebCore/platform/network/curl/CookieJarDB.h b/Source/WebCore/platform/network/curl/CookieJarDB.h -index dd0553966d670c398bb352730905def8a0a3f289..0622f8a2d217365cfa4ceb1b4cab58b898835f92 100644 +index 7788bfea8bb631c51fe858b29cc33e43347cbfab..ad9f347ce55cbea4374a45d3c65f8e11bd7a00f4 100644 --- a/Source/WebCore/platform/network/curl/CookieJarDB.h +++ b/Source/WebCore/platform/network/curl/CookieJarDB.h @@ -72,7 +72,7 @@ public: @@ -8349,17 +8292,17 @@ index d94ff4f9169a6c0b5adb9719f5506d0fb80e6f89..3f955607764d028807d150619bf7f49e return streamID; diff --git a/Source/WebCore/platform/network/curl/CurlStreamScheduler.h b/Source/WebCore/platform/network/curl/CurlStreamScheduler.h -index 0c39c90aac884fca48849388acc1b42bad16d620..dd8e50686c348b46d5ae92fd67a31eb0cbdb014f 100644 +index 423a2f825e7c3090fbdab8d2963ad1b45b71af9a..dfa43d953dda13ba9ab6a928bc6c7b2758267d7f 100644 --- a/Source/WebCore/platform/network/curl/CurlStreamScheduler.h +++ b/Source/WebCore/platform/network/curl/CurlStreamScheduler.h @@ -38,7 +38,7 @@ public: CurlStreamScheduler(); virtual ~CurlStreamScheduler(); -- CurlStreamID createStream(const URL&, CurlStream::Client&); -+ CurlStreamID createStream(const URL&, bool ignoreCertificateErrors, CurlStream::Client&); - void destroyStream(CurlStreamID); - void send(CurlStreamID, UniqueArray&&, size_t); +- WEBCORE_EXPORT CurlStreamID createStream(const URL&, CurlStream::Client&); ++ WEBCORE_EXPORT CurlStreamID createStream(const URL&, bool ignoreCertificateErrors, CurlStream::Client&); + WEBCORE_EXPORT void destroyStream(CurlStreamID); + WEBCORE_EXPORT void send(CurlStreamID, UniqueArray&&, size_t); diff --git a/Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp b/Source/WebCore/platform/network/curl/NetworkStorageSessionCurl.cpp index 93f996d23372b2aee03f480d31905bddfa0e221a..cfd265e7576d4871c09c67aa3f53423af1fc2f08 100644 @@ -9091,7 +9034,7 @@ index 2081154f90fac8f7b9f7c6061cf5dc6da1af44b5..e7c6071a6f2e05e76e0fd1cb4661ebd3 void SetHTTPCookieAcceptPolicy(enum:uint8_t WebCore::HTTPCookieAcceptPolicy policy) -> () diff --git a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp -index a8c0e3238c8d71f3e691e29cf507249fb9457f1d..7b0da5539e96bbf4bd9d93e9e83d5d24a36d585c 100644 +index 6cdb6edc00f0fcda7706bb8863898005da8edbae..4300568c7bd07c7e86741f2d73223d2fb0162070 100644 --- a/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp +++ b/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp @@ -83,6 +83,11 @@ @@ -9117,7 +9060,7 @@ index a8c0e3238c8d71f3e691e29cf507249fb9457f1d..7b0da5539e96bbf4bd9d93e9e83d5d24 m_networkSocketStreams.add(identifier, NetworkSocketStream::create(m_networkProcess.get(), WTFMove(url), m_sessionID, cachePartition, identifier, m_connection, WTFMove(token), acceptInsecureCertificates)); } -@@ -1035,6 +1044,14 @@ void NetworkConnectionToWebProcess::clearPageSpecificData(PageIdentifier pageID) +@@ -1031,6 +1040,14 @@ void NetworkConnectionToWebProcess::clearPageSpecificData(PageIdentifier pageID) #endif } @@ -9159,10 +9102,10 @@ index 118aff35c592dd4ad9a29568a9139be61da7275b..22260b500fd3ebeb96f796709ecdd3d2 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 0f78fd289fea49391da88dad693cb7c79f00a1b8..c5aabe379f81979f335253cb9fc1318384fb26f5 100644 +index 01beddfd3a8e52b4f9fb975f3940e42889a31e95..c2852d0051294840120c4c313143e8b40c50e54c 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.cpp +++ b/Source/WebKit/NetworkProcess/NetworkProcess.cpp -@@ -569,6 +569,12 @@ void NetworkProcess::destroySession(PAL::SessionID sessionID) +@@ -577,6 +577,12 @@ void NetworkProcess::destroySession(PAL::SessionID sessionID) m_sessionsControlledByAutomation.remove(sessionID); } @@ -9176,7 +9119,7 @@ index 0f78fd289fea49391da88dad693cb7c79f00a1b8..c5aabe379f81979f335253cb9fc13183 void NetworkProcess::dumpResourceLoadStatistics(PAL::SessionID sessionID, CompletionHandler&& completionHandler) { diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.h b/Source/WebKit/NetworkProcess/NetworkProcess.h -index 04197c2ccaf4d95b41f0a7d086270b7f4e41f03d..34523aa912a5f675444be3352d49e18dcfc670e7 100644 +index daa9c06fc0815453d840f9f63dead4accf8cc33a..a84298042f48abe339c44771bddbac837ca3a4de 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.h +++ b/Source/WebKit/NetworkProcess/NetworkProcess.h @@ -36,6 +36,7 @@ @@ -9195,7 +9138,7 @@ index 04197c2ccaf4d95b41f0a7d086270b7f4e41f03d..34523aa912a5f675444be3352d49e18d class CurlProxySettings; class ProtectionSpace; class NetworkStorageSession; -@@ -203,6 +205,8 @@ public: +@@ -199,6 +201,8 @@ public: void addWebsiteDataStore(WebsiteDataStoreParameters&&); @@ -9205,7 +9148,7 @@ index 04197c2ccaf4d95b41f0a7d086270b7f4e41f03d..34523aa912a5f675444be3352d49e18d 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 569c112b6ecedaefa679b7141fed6fa766f5c39f..37885f9e46305b8a94f43cc5da3f7940a01b28b7 100644 +index ffea578a0e9dc1d79c9a31042a843dd76776fcec..3e6b665fb2804fa473e30dd1a63c619f852254cb 100644 --- a/Source/WebKit/NetworkProcess/NetworkProcess.messages.in +++ b/Source/WebKit/NetworkProcess/NetworkProcess.messages.in @@ -79,6 +79,8 @@ messages -> NetworkProcess LegacyReceiver { @@ -9218,10 +9161,10 @@ index 569c112b6ecedaefa679b7141fed6fa766f5c39f..37885f9e46305b8a94f43cc5da3f7940 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 a330f669ad83072259d88dd1e44b9e72471ad267..f4b6f6c79fe53a90b70df39debe7ee6f151b1e9e 100644 +index 267287ddbbdf8ab5c2606f3a45325a896ecf45a4..8bef9c0b75061b633d92a690ef825ec12c3c7985 100644 --- a/Source/WebKit/NetworkProcess/NetworkSession.h +++ b/Source/WebKit/NetworkProcess/NetworkSession.h -@@ -196,6 +196,9 @@ public: +@@ -197,6 +197,9 @@ public: void lowMemoryHandler(WTF::Critical); @@ -9231,7 +9174,7 @@ index a330f669ad83072259d88dd1e44b9e72471ad267..f4b6f6c79fe53a90b70df39debe7ee6f #if ENABLE(SERVICE_WORKER) void addSoftUpdateLoader(std::unique_ptr&& loader) { m_softUpdateLoaders.add(WTFMove(loader)); } void removeSoftUpdateLoader(ServiceWorkerSoftUpdateLoader* loader) { m_softUpdateLoaders.remove(loader); } -@@ -283,6 +286,7 @@ protected: +@@ -285,6 +288,7 @@ protected: bool m_privateClickMeasurementDebugModeEnabled { false }; std::optional m_ephemeralMeasurement; bool m_isRunningEphemeralMeasurementTest { false }; @@ -9240,10 +9183,10 @@ index a330f669ad83072259d88dd1e44b9e72471ad267..f4b6f6c79fe53a90b70df39debe7ee6f HashSet> m_keptAliveLoads; diff --git a/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm b/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm -index 446f27b5919f4e65f2795724e6e94995edcf2a3b..fb562a4f447dd2cab40121cd574fd635386e0aa3 100644 +index 7b439f33f331ab69dd29a3bd3a2f334c8ac0da25..88d51bc8d12bbf149b4143595507061f896cacbd 100644 --- a/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm +++ b/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm -@@ -722,7 +722,7 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didRece +@@ -747,7 +747,7 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didRece if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { sessionCocoa->setClientAuditToken(challenge); @@ -9252,7 +9195,7 @@ index 446f27b5919f4e65f2795724e6e94995edcf2a3b..fb562a4f447dd2cab40121cd574fd635 return completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]); NSURLSessionTaskTransactionMetrics *metrics = task._incompleteTaskMetrics.transactionMetrics.lastObject; -@@ -966,6 +966,13 @@ ALLOW_DEPRECATED_DECLARATIONS_END +@@ -995,6 +995,13 @@ ALLOW_DEPRECATED_DECLARATIONS_END resourceResponse.setDeprecatedNetworkLoadMetrics(WebCore::copyTimingData(taskMetrics, networkDataTask->networkLoadMetrics())); @@ -9267,10 +9210,10 @@ index 446f27b5919f4e65f2795724e6e94995edcf2a3b..fb562a4f447dd2cab40121cd574fd635 #if !LOG_DISABLED LOG(NetworkSession, "%llu didReceiveResponse completionHandler (%d)", taskIdentifier, policyAction); diff --git a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp -index b7e2b29834846db2cd2e034b7923b5bbcf36a87b..c35f153793f6ee6d48556509c8f17e0860a0000c 100644 +index c97a7ea07e79f95216f2f43bbcf643edd508c4a2..4d6b8e72e01a2dd5f143b113968fb13f9ca879af 100644 --- a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp +++ b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp -@@ -87,6 +87,8 @@ NetworkDataTaskCurl::NetworkDataTaskCurl(NetworkSession& session, NetworkDataTas +@@ -89,6 +89,8 @@ NetworkDataTaskCurl::NetworkDataTaskCurl(NetworkSession& session, NetworkDataTas m_curlRequest->setUserPass(m_initialCredential.user(), m_initialCredential.password()); m_curlRequest->setAuthenticationScheme(ProtectionSpace::AuthenticationScheme::HTTPBasic); } @@ -9279,7 +9222,7 @@ index b7e2b29834846db2cd2e034b7923b5bbcf36a87b..c35f153793f6ee6d48556509c8f17e08 m_curlRequest->start(); } -@@ -165,6 +167,7 @@ void NetworkDataTaskCurl::curlDidReceiveResponse(CurlRequest& request, CurlRespo +@@ -166,6 +168,7 @@ void NetworkDataTaskCurl::curlDidReceiveResponse(CurlRequest& request, CurlRespo updateNetworkLoadMetrics(receivedResponse.networkLoadMetrics); m_response.setDeprecatedNetworkLoadMetrics(Box::create(WTFMove(receivedResponse.networkLoadMetrics))); @@ -9287,7 +9230,7 @@ index b7e2b29834846db2cd2e034b7923b5bbcf36a87b..c35f153793f6ee6d48556509c8f17e08 handleCookieHeaders(request.resourceRequest(), receivedResponse); -@@ -395,6 +398,8 @@ void NetworkDataTaskCurl::willPerformHTTPRedirection() +@@ -396,6 +399,8 @@ void NetworkDataTaskCurl::willPerformHTTPRedirection() m_curlRequest->setUserPass(m_initialCredential.user(), m_initialCredential.password()); m_curlRequest->setAuthenticationScheme(ProtectionSpace::AuthenticationScheme::HTTPBasic); } @@ -9345,10 +9288,10 @@ index 2027a4b929fda90b34f46bf563846ca8d4553829..34bfbb236d5f16c8bb34920a2bb01c04 void sendString(const IPC::DataReference&, CompletionHandler&&); diff --git a/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp b/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp -index 1ca32e3c9320415163dbb5b870fd8817942c64ca..8f2c0c39d282b60e6faa39c4f075a89bfddf8060 100644 +index 0ed3ef8b632b9c0c57aceb413fbf263cbd485e68..45b434cbf1b1a55cf6314ea94f3ae1811cb22cdb 100644 --- a/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp +++ b/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp -@@ -494,6 +494,8 @@ void NetworkDataTaskSoup::didSendRequest(GRefPtr&& inputStream) +@@ -492,6 +492,8 @@ void NetworkDataTaskSoup::didSendRequest(GRefPtr&& inputStream) m_networkLoadMetrics.failsTAOCheck = !passesTimingAllowOriginCheck(m_response, *origin); } @@ -9357,7 +9300,7 @@ index 1ca32e3c9320415163dbb5b870fd8817942c64ca..8f2c0c39d282b60e6faa39c4f075a89b dispatchDidReceiveResponse(); } -@@ -591,6 +593,8 @@ bool NetworkDataTaskSoup::acceptCertificate(GTlsCertificate* certificate, GTlsCe +@@ -589,6 +591,8 @@ bool NetworkDataTaskSoup::acceptCertificate(GTlsCertificate* certificate, GTlsCe { ASSERT(m_soupMessage); URL url = soupURIToURL(soup_message_get_uri(m_soupMessage.get())); @@ -9428,7 +9371,7 @@ index ab45835e203ebb3b17a88ab86231d23e45e4fa84..5d384660fb85c6f53b16d0070b607b17 } 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 1ad4194add639c451a676a2c7bc7838d976ef73c..3399f5f01776e9d28c322754c1c5dfc4ae7b953a 100644 +index 23b9d6e4f19f434cd198ff083d0d2f05999489e8..b010c8863e2ea5b861a68116bdde2d31735de5e1 100644 --- a/Source/WebKit/Platform/IPC/ArgumentCoders.h +++ b/Source/WebKit/Platform/IPC/ArgumentCoders.h @@ -145,8 +145,11 @@ struct ArgumentCoder> { @@ -9445,10 +9388,10 @@ index 1ad4194add639c451a676a2c7bc7838d976ef73c..3399f5f01776e9d28c322754c1c5dfc4 auto dataSize = CheckedSize { size } * sizeof(ElementType); if (UNLIKELY(dataSize.hasOverflowed())) diff --git a/Source/WebKit/PlatformGTK.cmake b/Source/WebKit/PlatformGTK.cmake -index cc60a858ad128f93b099c51a7e8f0883443ace31..587f38a8862c87bb9da970871b1b63d0e65ea2e5 100644 +index 25dbba58c271556a588746769d714070e5c3037d..5722e2bd50b8895718f467f65fe02ef4ba10ed13 100644 --- a/Source/WebKit/PlatformGTK.cmake +++ b/Source/WebKit/PlatformGTK.cmake -@@ -491,6 +491,9 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES +@@ -274,6 +274,9 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES ${GSTREAMER_PBUTILS_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${LIBSOUP_INCLUDE_DIRS} @@ -9458,7 +9401,7 @@ index cc60a858ad128f93b099c51a7e8f0883443ace31..587f38a8862c87bb9da970871b1b63d0 ) if (USE_WPE_RENDERER) -@@ -532,6 +535,9 @@ if (USE_LIBWEBRTC) +@@ -315,6 +318,9 @@ if (USE_LIBWEBRTC) list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES "${THIRDPARTY_DIR}/libwebrtc/Source/" "${THIRDPARTY_DIR}/libwebrtc/Source/webrtc" @@ -9468,7 +9411,18 @@ index cc60a858ad128f93b099c51a7e8f0883443ace31..587f38a8862c87bb9da970871b1b63d0 ) endif () -@@ -570,6 +576,12 @@ else () +@@ -347,12 +353,23 @@ GENERATE_API_HEADERS(WebKitWebExtension_HEADER_TEMPLATES + "-DENABLE_2022_GLIB_API=$" + ) + ++if (NOT USE_GTK4) ++ list(REMOVE_ITEM WebKitGTK_INSTALLED_HEADERS ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/webkit.h) ++ list(REMOVE_ITEM WebKitWebExtension_INSTALLED_HEADERS ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/webkit-web-extension.h) ++endif () ++ + if (USE_GTK4) + set(WebKitGTK_ENUM_HEADER_TEMPLATE ${WEBKIT_DIR}/UIProcess/API/gtk/WebKitEnumTypesGtk4.h.in) + else () set(WebKitGTK_ENUM_HEADER_TEMPLATE ${WEBKIT_DIR}/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in) endif () @@ -9481,19 +9435,105 @@ index cc60a858ad128f93b099c51a7e8f0883443ace31..587f38a8862c87bb9da970871b1b63d0 # To generate WebKitEnumTypes.h we want to use all installed headers, except WebKitEnumTypes.h itself. set(WebKitGTK_ENUM_GENERATION_HEADERS ${WebKitGTK_INSTALLED_HEADERS}) list(REMOVE_ITEM WebKitGTK_ENUM_GENERATION_HEADERS ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/WebKitEnumTypes.h) +@@ -459,35 +476,6 @@ if (COMPILER_IS_GCC_OR_CLANG) + WEBKIT_ADD_TARGET_CXX_FLAGS(webkit${WEBKITGTK_API_INFIX}gtkinjectedbundle -Wno-unused-parameter) + endif () + +-# For GTK 3 builds, we have to maintain webkit2/webkit2.h and webkit2/webkit-web-extension.h for API +-# compatibility. These are the only headers still installed under webkit2/. Install them manually. +-if (NOT USE_GTK4) +- file(MAKE_DIRECTORY ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2) +- add_custom_command( +- OUTPUT ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/webkit2.h +- DEPENDS ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/webkit.h +- COMMAND ${CMAKE_COMMAND} -E copy ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/webkit.h ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/ +- VERBATIM +- ) +- +- add_custom_command( +- OUTPUT ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/webkit-web-extension.h +- DEPENDS ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/webkit-web-extension.h +- COMMAND ${CMAKE_COMMAND} -E copy ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/webkit-web-extension.h ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/ +- VERBATIM +- ) +- +- list(APPEND WebKit_SOURCES ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/webkit2.h ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/webkit-web-extension.h) +- +- list(REMOVE_ITEM WebKitGTK_INSTALLED_HEADERS ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/webkit.h) +- list(REMOVE_ITEM WebKitWebExtension_INSTALLED_HEADERS ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/webkit-web-extension.h) +- +- install(FILES ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/webkit2.h +- ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/webkit-web-extension.h +- DESTINATION "${WEBKITGTK_HEADER_INSTALL_DIR}/webkit2" +- ) +-endif () +- + install(TARGETS webkit${WEBKITGTK_API_INFIX}gtkinjectedbundle + DESTINATION "${LIB_INSTALL_DIR}/webkit${WEBKITGTK_API_INFIX}gtk-${WEBKITGTK_API_VERSION}/injected-bundle" + ) +diff --git a/Source/WebKit/PlatformGTKDeprecated.cmake b/Source/WebKit/PlatformGTKDeprecated.cmake +index c536c67136999232f64bbe95af88581eb952a045..e8cdbd6f05c4fcd3cbeeebd5bd73b1b880cbb146 100644 +--- a/Source/WebKit/PlatformGTKDeprecated.cmake ++++ b/Source/WebKit/PlatformGTKDeprecated.cmake +@@ -4,6 +4,8 @@ list(APPEND WebKit_UNIFIED_SOURCE_LIST_FILES + + add_definitions(-DWEBKIT_DOM_USE_UNSTABLE_API) + ++file(MAKE_DIRECTORY ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2) ++ + list(APPEND WebKitGTK_HEADER_TEMPLATES + ${WEBKIT_DIR}/UIProcess/API/glib/WebKitMimeInfo.h.in + ${WEBKIT_DIR}/UIProcess/API/glib/WebKitPlugin.h.in +@@ -135,6 +137,8 @@ set(WebKitDOM_SOURCES_FOR_INTROSPECTION + ) + + list(APPEND WebKitGTK_FAKE_API_HEADERS ++ ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/webkit2.h ++ ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/webkit-web-extension.h + ${WebKitGTK_FRAMEWORK_HEADERS_DIR}/webkitgtk-webextension/webkitdom + ) + +@@ -147,6 +151,27 @@ install(FILES ${WebKitDOM_INSTALLED_HEADERS} + DESTINATION "${WEBKITGTK_HEADER_INSTALL_DIR}/webkitdom" + ) + ++# For GTK 3 builds, we have to maintain webkit2/webkit2.h and webkit2/webkit-web-extension.h for API ++# compatibility. These are the only headers still installed under webkit2/. Install them manually. ++install(FILES ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/webkit2.h ++ ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/webkit-web-extension.h ++ DESTINATION "${WEBKITGTK_HEADER_INSTALL_DIR}/webkit2" ++) ++ ++add_custom_command( ++ OUTPUT ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/webkit2.h ++ DEPENDS ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/webkit.h ++ COMMAND ${CMAKE_COMMAND} -E copy ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/webkit.h ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/webkit2.h ++ VERBATIM ++) ++ ++add_custom_command( ++ OUTPUT ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/webkit-web-extension.h ++ DEPENDS ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/webkit-web-extension.h ++ COMMAND ${CMAKE_COMMAND} -E copy ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit/webkit-web-extension.h ${WebKitGTK_DERIVED_SOURCES_DIR}/webkit2/ ++ VERBATIM ++) ++ + add_custom_command( + OUTPUT ${WebKitGTK_FRAMEWORK_HEADERS_DIR}/webkitgtk-webextension/webkitdom + DEPENDS ${WEBKIT_DIR}/WebProcess/InjectedBundle/API/gtk/DOM diff --git a/Source/WebKit/PlatformWPE.cmake b/Source/WebKit/PlatformWPE.cmake -index 2d488b3a9fea1f487b26ca8cb22894b2f04ad1cb..721a9e36eda0165cb0c472e235e408c37d962876 100644 +index 0e63cf33c439b38f2938124d3588bfae284a9aaa..9de18a08be7925522bc49fedae55515b8a8efbf6 100644 --- a/Source/WebKit/PlatformWPE.cmake +++ b/Source/WebKit/PlatformWPE.cmake -@@ -218,6 +218,7 @@ set(WPE_API_INSTALLED_HEADERS +@@ -198,6 +198,7 @@ set(WPE_API_INSTALLED_HEADERS ${DERIVED_SOURCES_WPE_API_DIR}/WebKitEnumTypes.h ${DERIVED_SOURCES_WPE_API_DIR}/WebKitVersion.h ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitColor.h + ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitPointerLockPermissionRequest.h ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitRectangle.h ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitWebViewBackend.h - ${WEBKIT_DIR}/UIProcess/API/wpe/webkit.h -@@ -345,6 +346,7 @@ list(APPEND WebKit_INCLUDE_DIRECTORIES + ) +@@ -336,6 +337,7 @@ list(APPEND WebKit_INCLUDE_DIRECTORIES "${WEBKIT_DIR}/UIProcess/Launcher/libwpe" "${WEBKIT_DIR}/UIProcess/Notifications/glib/" "${WEBKIT_DIR}/UIProcess/geoclue" @@ -9501,7 +9541,7 @@ index 2d488b3a9fea1f487b26ca8cb22894b2f04ad1cb..721a9e36eda0165cb0c472e235e408c3 "${WEBKIT_DIR}/UIProcess/gstreamer" "${WEBKIT_DIR}/UIProcess/linux" "${WEBKIT_DIR}/UIProcess/soup" -@@ -366,8 +368,17 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES +@@ -355,8 +357,17 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES ${GIO_UNIX_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS} ${LIBSOUP_INCLUDE_DIRS} @@ -9741,11 +9781,11 @@ index 8b8223a49829fd2c0a325519881d6878f8c3f2b5..7e1cc65fecf18e0f71166c99f2242941 ALLOW_COMMA_BEGIN diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.cpp b/Source/WebKit/Shared/WebCoreArgumentCoders.cpp -index 7be65fc0efdfdd7b76fe43375b849a0316eda251..388311a330ad93636d6cae60eba0a8ff4935f5f1 100644 +index 3b20404ed05f3dd7dac6902bc40e7e132eb56a1a..3c6c301cd32ee71f641e2592ee7ce10bdaa6fd06 100644 --- a/Source/WebKit/Shared/WebCoreArgumentCoders.cpp +++ b/Source/WebKit/Shared/WebCoreArgumentCoders.cpp -@@ -131,6 +131,10 @@ - #include +@@ -149,6 +149,10 @@ + #include #endif +#if PLATFORM(WPE) @@ -9755,56 +9795,11 @@ index 7be65fc0efdfdd7b76fe43375b849a0316eda251..388311a330ad93636d6cae60eba0a8ff // FIXME: Seems like we could use std::tuple to cut down the code below a lot! namespace IPC { -@@ -786,6 +790,11 @@ void ArgumentCoder::encode(Encoder& encoder, const DragData& dragData) - #if PLATFORM(COCOA) - encoder << dragData.pasteboardName(); - encoder << dragData.fileNames(); -+#endif -+#if PLATFORM(WIN) -+ DragData dragDataCopy = dragData; -+ HashMap> hash = dragDataCopy.dragDataMap(); -+ encoder << hash; - #endif - encoder << dragData.dragDestinationActionMask(); - encoder << dragData.pageID(); -@@ -809,9 +818,16 @@ bool ArgumentCoder::decode(Decoder& decoder, DragData& dragData) - if (!decoder.decode(applicationFlags)) - return false; - -+#if PLATFORM(WIN) -+ DragDataMap dragDataMap; -+ if (!decoder.decode(dragDataMap)) -+ return false; -+#else - String pasteboardName; -- Vector fileNames; -+#endif -+ - #if PLATFORM(COCOA) -+ Vector fileNames; - if (!decoder.decode(pasteboardName)) - return false; - -@@ -827,8 +843,14 @@ bool ArgumentCoder::decode(Decoder& decoder, DragData& dragData) - if (!decoder.decode(pageID)) - return false; - -+#if PLATFORM(WIN) -+ dragData = DragData(dragDataMap, clientPosition, globalPosition, draggingSourceOperationMask, applicationFlags, pageID); -+#else - dragData = DragData(pasteboardName, clientPosition, globalPosition, draggingSourceOperationMask, applicationFlags, dragDestinationActionMask, pageID); -+#endif -+#if PLATFORM(COCOA) - dragData.setFileNames(fileNames); -+#endif - - return true; - } diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -index 6a5e48c14c79053ccc9d23367be67c38f6d5ac21..b1a0be6a9b8162038fb5c9920083b6a42d81663d 100644 +index 3a99800292e0cfabd33d3370a43feb1655aa5a02..adaf91b718f4596cfefd5fcaf8faefae41ca06ae 100644 --- a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in +++ b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -@@ -1271,6 +1271,10 @@ struct WebCore::WindowFeatures { +@@ -1305,6 +1305,10 @@ struct WebCore::WindowFeatures { bool fullscreen; bool dialog; @@ -9999,7 +9994,7 @@ index 4196b689dbb047cd8961be391b53f4d311ed1f7d..15056ca3f871494997539ff2c0e5c8d3 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 47205d2cc395074c1bc5c4238da8acc40548f1a3..4f9c17ed72588e718cf979010d1e2324e5ba72a0 100644 +index 02469013666646c9f03dc6e4e2a6746409d6972a..65e8b875808ca50e390a97628bfebcc0f61b7df8 100644 --- a/Source/WebKit/Shared/WebPageCreationParameters.cpp +++ b/Source/WebKit/Shared/WebPageCreationParameters.cpp @@ -159,6 +159,8 @@ void WebPageCreationParameters::encode(IPC::Encoder& encoder) const @@ -10011,7 +10006,7 @@ index 47205d2cc395074c1bc5c4238da8acc40548f1a3..4f9c17ed72588e718cf979010d1e2324 encoder << shouldCaptureAudioInUIProcess; encoder << shouldCaptureAudioInGPUProcess; encoder << shouldCaptureVideoInUIProcess; -@@ -551,7 +553,10 @@ std::optional WebPageCreationParameters::decode(IPC:: +@@ -556,7 +558,10 @@ std::optional WebPageCreationParameters::decode(IPC:: if (!processDisplayName) return std::nullopt; parameters.processDisplayName = WTFMove(*processDisplayName); @@ -10024,10 +10019,10 @@ index 47205d2cc395074c1bc5c4238da8acc40548f1a3..4f9c17ed72588e718cf979010d1e2324 return std::nullopt; diff --git a/Source/WebKit/Shared/WebPageCreationParameters.h b/Source/WebKit/Shared/WebPageCreationParameters.h -index 2cab6ebc4595abaf8f8665a0174cf68da979d26b..5ecb0c9c2ed6bc5a4898ac54fbf7a23052b461d9 100644 +index b92f2972a936b9ae10b5bd22d51fdfb388cf4af2..2780f81a5cb4f73f9b4fc0ab925c5f3d70956809 100644 --- a/Source/WebKit/Shared/WebPageCreationParameters.h +++ b/Source/WebKit/Shared/WebPageCreationParameters.h -@@ -263,6 +263,8 @@ struct WebPageCreationParameters { +@@ -264,6 +264,8 @@ struct WebPageCreationParameters { bool httpsUpgradeEnabled { true }; @@ -10355,10 +10350,10 @@ index c76a3daa5c453e9bf4272fc2ee539608e1191dd4..2115e51d10ac8b9728eecec3881319b7 return WebTouchEvent(); } diff --git a/Source/WebKit/Sources.txt b/Source/WebKit/Sources.txt -index 9bae25adde66b5c3a2342284e4212dee14dcdae2..7d27f423fe52cae94c9f70ae51ba2d8f2c821588 100644 +index b3695e32c1df32fc22d02c60a7742a25fd52510b..15c05d6d856c9a8fe1169eec689bc7af443f0966 100644 --- a/Source/WebKit/Sources.txt +++ b/Source/WebKit/Sources.txt -@@ -378,11 +378,14 @@ Shared/XR/XRDeviceProxy.cpp +@@ -382,11 +382,14 @@ Shared/XR/XRDeviceProxy.cpp UIProcess/AuxiliaryProcessProxy.cpp UIProcess/BackgroundProcessResponsivenessTimer.cpp @@ -10373,15 +10368,15 @@ index 9bae25adde66b5c3a2342284e4212dee14dcdae2..7d27f423fe52cae94c9f70ae51ba2d8f UIProcess/LegacyGlobalSettings.cpp UIProcess/MediaKeySystemPermissionRequestManagerProxy.cpp UIProcess/MediaKeySystemPermissionRequestProxy.cpp -@@ -392,6 +395,7 @@ UIProcess/PageLoadState.cpp - UIProcess/ProcessAssertion.cpp +@@ -397,6 +400,7 @@ UIProcess/ProcessAssertion.cpp UIProcess/ProcessThrottler.cpp + UIProcess/ProvisionalFrameProxy.cpp UIProcess/ProvisionalPageProxy.cpp +UIProcess/RemoteInspectorPipe.cpp UIProcess/ResponsivenessTimer.cpp UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp -@@ -433,6 +437,8 @@ UIProcess/WebOpenPanelResultListenerProxy.cpp +@@ -439,6 +443,8 @@ UIProcess/WebOpenPanelResultListenerProxy.cpp UIProcess/WebPageDiagnosticLoggingClient.cpp UIProcess/WebPageGroup.cpp UIProcess/WebPageInjectedBundleClient.cpp @@ -10390,7 +10385,7 @@ index 9bae25adde66b5c3a2342284e4212dee14dcdae2..7d27f423fe52cae94c9f70ae51ba2d8f UIProcess/WebPageProxy.cpp UIProcess/WebPasteboardProxy.cpp UIProcess/WebPermissionControllerProxy.cpp -@@ -563,7 +569,11 @@ UIProcess/Inspector/WebInspectorUtilities.cpp +@@ -570,7 +576,11 @@ UIProcess/Inspector/WebInspectorUtilities.cpp UIProcess/Inspector/WebPageDebuggable.cpp UIProcess/Inspector/WebPageInspectorController.cpp @@ -10403,10 +10398,10 @@ index 9bae25adde66b5c3a2342284e4212dee14dcdae2..7d27f423fe52cae94c9f70ae51ba2d8f UIProcess/Media/AudioSessionRoutingArbitratorProxy.cpp UIProcess/Media/MediaUsageManager.cpp diff --git a/Source/WebKit/SourcesCocoa.txt b/Source/WebKit/SourcesCocoa.txt -index a127ac6842b53b38ed4e3609fe2771dbec400246..15621ea1146d7857d8285e236602d367c24e072f 100644 +index dc490e625143251dd35ed85a96e2b1d214e2d7ce..fe00e00a174980dd3ecbf9676efd4593819a5f63 100644 --- a/Source/WebKit/SourcesCocoa.txt +++ b/Source/WebKit/SourcesCocoa.txt -@@ -260,6 +260,7 @@ UIProcess/API/Cocoa/_WKApplicationManifest.mm +@@ -259,6 +259,7 @@ UIProcess/API/Cocoa/_WKApplicationManifest.mm UIProcess/API/Cocoa/_WKAttachment.mm UIProcess/API/Cocoa/_WKAutomationSession.mm UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.mm @@ -10414,7 +10409,7 @@ index a127ac6842b53b38ed4e3609fe2771dbec400246..15621ea1146d7857d8285e236602d367 UIProcess/API/Cocoa/_WKContentRuleListAction.mm UIProcess/API/Cocoa/_WKContextMenuElementInfo.mm UIProcess/API/Cocoa/_WKCustomHeaderFields.mm @no-unify -@@ -437,6 +438,7 @@ UIProcess/Inspector/ios/WKInspectorHighlightView.mm +@@ -435,6 +436,7 @@ UIProcess/Inspector/ios/WKInspectorHighlightView.mm UIProcess/Inspector/ios/WKInspectorNodeSearchGestureRecognizer.mm UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm @@ -10423,7 +10418,7 @@ index a127ac6842b53b38ed4e3609fe2771dbec400246..15621ea1146d7857d8285e236602d367 UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm UIProcess/Inspector/mac/WKInspectorViewController.mm diff --git a/Source/WebKit/SourcesGTK.txt b/Source/WebKit/SourcesGTK.txt -index 125067f7cc9d1fa3c4aaa1b45f6600a9aacf8457..e5bd96d9c9c22d4f860119577c3f6e1c7754bfd0 100644 +index 5875bd4bd78a83d6722d4058939e875d32e5e3dc..d002aa538ad32c2ba213ee85b7c51a5494c56225 100644 --- a/Source/WebKit/SourcesGTK.txt +++ b/Source/WebKit/SourcesGTK.txt @@ -130,6 +130,7 @@ UIProcess/API/glib/WebKitAuthenticationRequest.cpp @no-unify @@ -10434,7 +10429,7 @@ index 125067f7cc9d1fa3c4aaa1b45f6600a9aacf8457..e5bd96d9c9c22d4f860119577c3f6e1c 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/unix/WebsiteDataStoreUnix.cpp +@@ -253,6 +254,7 @@ UIProcess/WebsiteData/unix/WebsiteDataStoreUnix.cpp UIProcess/cairo/BackingStoreCairo.cpp @no-unify @@ -10442,7 +10437,7 @@ index 125067f7cc9d1fa3c4aaa1b45f6600a9aacf8457..e5bd96d9c9c22d4f860119577c3f6e1c UIProcess/glib/WebPageProxyGLib.cpp UIProcess/glib/WebProcessPoolGLib.cpp UIProcess/glib/WebProcessProxyGLib.cpp -@@ -271,6 +273,7 @@ UIProcess/gtk/ClipboardGtk4.cpp @no-unify +@@ -270,6 +272,7 @@ UIProcess/gtk/ClipboardGtk4.cpp @no-unify UIProcess/gtk/WebDateTimePickerGtk.cpp UIProcess/gtk/GtkSettingsManager.cpp UIProcess/gtk/HardwareAccelerationManager.cpp @@ -10450,7 +10445,7 @@ index 125067f7cc9d1fa3c4aaa1b45f6600a9aacf8457..e5bd96d9c9c22d4f860119577c3f6e1c UIProcess/gtk/KeyBindingTranslator.cpp UIProcess/gtk/PointerLockManager.cpp @no-unify UIProcess/gtk/PointerLockManagerWayland.cpp @no-unify -@@ -282,6 +285,8 @@ UIProcess/gtk/ViewGestureControllerGtk.cpp +@@ -281,6 +284,8 @@ UIProcess/gtk/ViewGestureControllerGtk.cpp UIProcess/gtk/WebColorPickerGtk.cpp UIProcess/gtk/WebContextMenuProxyGtk.cpp UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp @@ -10460,7 +10455,7 @@ index 125067f7cc9d1fa3c4aaa1b45f6600a9aacf8457..e5bd96d9c9c22d4f860119577c3f6e1c UIProcess/gtk/WebPasteboardProxyGtk.cpp UIProcess/gtk/WebPopupMenuProxyGtk.cpp diff --git a/Source/WebKit/SourcesWPE.txt b/Source/WebKit/SourcesWPE.txt -index 6661a23fd3ad3eb8aee1fc5be03fc7a30ac59e9e..fef7c90e2b8ca253bd9eb80a933fc0110163e94d 100644 +index 90f517a3b2c7bfe33d88c9ec8a29dcf96275df41..f180343cbf85700e62db6b3836d81f9952f6882f 100644 --- a/Source/WebKit/SourcesWPE.txt +++ b/Source/WebKit/SourcesWPE.txt @@ -88,6 +88,7 @@ Shared/glib/ProcessExecutablePathGLib.cpp @@ -10479,15 +10474,15 @@ index 6661a23fd3ad3eb8aee1fc5be03fc7a30ac59e9e..fef7c90e2b8ca253bd9eb80a933fc011 UIProcess/API/glib/WebKitContextMenuClient.cpp @no-unify UIProcess/API/glib/WebKitCookieManager.cpp @no-unify UIProcess/API/glib/WebKitCredential.cpp @no-unify -@@ -157,6 +159,7 @@ UIProcess/API/glib/WebKitOptionMenu.cpp @no-unify +@@ -156,6 +158,7 @@ UIProcess/API/glib/WebKitOptionMenu.cpp @no-unify UIProcess/API/glib/WebKitOptionMenuItem.cpp @no-unify UIProcess/API/glib/WebKitPermissionRequest.cpp @no-unify - UIProcess/API/glib/WebKitPlugin.cpp @no-unify + UIProcess/API/glib/WebKitPermissionStateQuery.cpp @no-unify +UIProcess/API/glib/WebKitPointerLockPermissionRequest.cpp @no-unify UIProcess/API/glib/WebKitPolicyDecision.cpp @no-unify UIProcess/API/glib/WebKitPrivate.cpp @no-unify UIProcess/API/glib/WebKitProtocolHandler.cpp @no-unify -@@ -192,6 +195,7 @@ UIProcess/API/wpe/InputMethodFilterWPE.cpp @no-unify +@@ -191,6 +194,7 @@ UIProcess/API/wpe/InputMethodFilterWPE.cpp @no-unify UIProcess/API/wpe/PageClientImpl.cpp @no-unify UIProcess/API/wpe/TouchGestureController.cpp @no-unify UIProcess/API/wpe/WebKitColor.cpp @no-unify @@ -10495,7 +10490,7 @@ index 6661a23fd3ad3eb8aee1fc5be03fc7a30ac59e9e..fef7c90e2b8ca253bd9eb80a933fc011 UIProcess/API/wpe/WebKitInputMethodContextWPE.cpp @no-unify UIProcess/API/wpe/WebKitPopupMenu.cpp @no-unify UIProcess/API/wpe/WebKitRectangle.cpp @no-unify -@@ -212,6 +216,7 @@ UIProcess/Gamepad/libwpe/UIGamepadProviderLibWPE.cpp +@@ -211,6 +215,7 @@ UIProcess/Gamepad/libwpe/UIGamepadProviderLibWPE.cpp UIProcess/geoclue/GeoclueGeolocationProvider.cpp @@ -10503,7 +10498,7 @@ index 6661a23fd3ad3eb8aee1fc5be03fc7a30ac59e9e..fef7c90e2b8ca253bd9eb80a933fc011 UIProcess/glib/WebPageProxyGLib.cpp UIProcess/glib/WebProcessPoolGLib.cpp UIProcess/glib/WebProcessProxyGLib.cpp -@@ -242,6 +247,11 @@ UIProcess/linux/MemoryPressureMonitor.cpp +@@ -241,6 +246,11 @@ UIProcess/linux/MemoryPressureMonitor.cpp UIProcess/soup/WebProcessPoolSoup.cpp @@ -10515,7 +10510,7 @@ index 6661a23fd3ad3eb8aee1fc5be03fc7a30ac59e9e..fef7c90e2b8ca253bd9eb80a933fc011 UIProcess/wpe/WebPageProxyWPE.cpp WebProcess/GPU/graphics/gbm/RemoteGraphicsContextGLProxyGBM.cpp -@@ -272,6 +282,8 @@ WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp +@@ -264,6 +274,8 @@ WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp @@ -10572,7 +10567,7 @@ index 57fec1703102930b8d29271d0deccff2b980b086..db0769075e7c07863b051885f445b292 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 ab4ddd6cc3299d499c7b790e5f9e0d023ade977b..49ff1364d1c2ed1379a796e7e682fe0a0f478439 100644 +index 77cfe75fc7c5dd16a70d143564e4a4e46d5faa7c..eb209d70294b589bb7ddb7bb3dedcca51ef034dd 100644 --- a/Source/WebKit/UIProcess/API/APIUIClient.h +++ b/Source/WebKit/UIProcess/API/APIUIClient.h @@ -107,6 +107,7 @@ public: @@ -10627,10 +10622,10 @@ index 026121d114c5fcad84c1396be8d692625beaa3bd..edd6e5cae033124c589959a42522fde0 } #endif diff --git a/Source/WebKit/UIProcess/API/C/WKPage.cpp b/Source/WebKit/UIProcess/API/C/WKPage.cpp -index af38ea0e44a62de34f6b48a1938d9814ca606ee8..2243f82f464dc8dcf97f651d31b8a5d3ea3e265a 100644 +index c741ec9e861487f82c2df5c07be1ffb8a811d248..e4ff1a6d98fc47e1483f17d579321aa5ede7211e 100644 --- a/Source/WebKit/UIProcess/API/C/WKPage.cpp +++ b/Source/WebKit/UIProcess/API/C/WKPage.cpp -@@ -1758,6 +1758,13 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient +@@ -1763,6 +1763,13 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient completionHandler(String()); } @@ -10644,7 +10639,7 @@ index af38ea0e44a62de34f6b48a1938d9814ca606ee8..2243f82f464dc8dcf97f651d31b8a5d3 void setStatusText(WebPageProxy* page, const String& text) final { if (!m_client.setStatusText) -@@ -1787,6 +1794,8 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient +@@ -1792,6 +1799,8 @@ void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient { if (!m_client.didNotHandleKeyEvent) return; @@ -10752,10 +10747,10 @@ index afa925f36c29db9c23921298dead9cce737500d6..42d396342acdb6d39830f611df0ee40e NS_ASSUME_NONNULL_END diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm -index 1536c9eb6a4c4f46051bd890ad6fd8cdc2b87b87..c14d9049dc03153fcdb4faa3a7c1f4dc47b0a7c0 100644 +index f3291da194b52d5f8eabdd81eb8096820bdac133..edc886b52d798ef57b6cd32d9d4171b4b99b7d40 100644 --- a/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm +++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm -@@ -47,6 +47,7 @@ +@@ -48,6 +48,7 @@ #import "_WKResourceLoadStatisticsThirdPartyInternal.h" #import "_WKWebsiteDataStoreConfigurationInternal.h" #import "_WKWebsiteDataStoreDelegate.h" @@ -10763,7 +10758,7 @@ index 1536c9eb6a4c4f46051bd890ad6fd8cdc2b87b87..c14d9049dc03153fcdb4faa3a7c1f4dc #import #import #import -@@ -234,6 +235,11 @@ - (void)removeDataOfTypes:(NSSet *)dataTypes modifiedSince:(NSDate *)date comple +@@ -280,6 +281,11 @@ - (void)removeDataOfTypes:(NSSet *)dataTypes modifiedSince:(NSDate *)date comple }); } @@ -11198,10 +11193,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 d9389e65c4e0e71c35704876d652a38ab42b7931..7a89a4b2e4d1296651f0e7ecdb2dc86d330bde8a 100644 +index cae90b5bb5200e0163e18a0e8a78438ddd109d40..6c5c414b0e6aa916769fd6f965eb7accb5b8411f 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp -@@ -98,6 +98,10 @@ private: +@@ -99,6 +99,10 @@ private: page.makeViewBlankIfUnpaintedSinceLastLoadCommit(); webkitWebViewRunJavaScriptPrompt(m_webView, message.utf8(), defaultValue.utf8(), WTFMove(completionHandler)); } @@ -11213,7 +11208,7 @@ index d9389e65c4e0e71c35704876d652a38ab42b7931..7a89a4b2e4d1296651f0e7ecdb2dc86d 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 147ad70a69cf0d774cb58eb1c52439cbb8d35205..719544afeef9957d48f2c37f48d7a37bad6ad142 100644 +index 7f74f05a63e36c327b83fca0e5057505ee1fc0a5..6a41546c748210311e7c579c003cd817ac16338d 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp @@ -397,10 +397,19 @@ static void webkitWebContextSetProperty(GObject* object, guint propID, const GVa @@ -11255,7 +11250,7 @@ index 78d1578f94793e9e59a3d4d2b33e79ea8530fa04..493cdadac3873508b3efa3048638e73a #endif +int webkitWebContextExistingCount(); diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp -index 56d974bd026edee94f007ef5a86d8a0f5fc35522..675dc1122e6c57926d484c95a981b86e5210e830 100644 +index cab85238ae6c63a19341471f7067de27799818c4..d30ecb6907d6f395fe660eec7d6891d38ed1d035 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp @@ -32,6 +32,7 @@ @@ -11266,15 +11261,15 @@ index 56d974bd026edee94f007ef5a86d8a0f5fc35522..675dc1122e6c57926d484c95a981b86e #include "WebKitAuthenticationRequestPrivate.h" #include "WebKitBackForwardListPrivate.h" #include "WebKitContextMenuClient.h" -@@ -51,6 +52,7 @@ - #include "WebKitJavascriptResultPrivate.h" +@@ -52,6 +53,7 @@ #include "WebKitNavigationClient.h" #include "WebKitNotificationPrivate.h" + #include "WebKitPermissionStateQueryPrivate.h" +#include "WebKitPointerLockPermissionRequest.h" #include "WebKitPrivate.h" #include "WebKitResponsePolicyDecision.h" #include "WebKitScriptDialogPrivate.h" -@@ -86,7 +88,6 @@ +@@ -88,7 +90,6 @@ #if PLATFORM(GTK) #include "WebKitInputMethodContextImplGtk.h" @@ -11282,7 +11277,7 @@ index 56d974bd026edee94f007ef5a86d8a0f5fc35522..675dc1122e6c57926d484c95a981b86e #include "WebKitPrintOperationPrivate.h" #include "WebKitWebInspectorPrivate.h" #include "WebKitWebViewBasePrivate.h" -@@ -130,6 +131,7 @@ enum { +@@ -132,6 +133,7 @@ enum { CLOSE, SCRIPT_DIALOG, @@ -11290,7 +11285,7 @@ index 56d974bd026edee94f007ef5a86d8a0f5fc35522..675dc1122e6c57926d484c95a981b86e DECIDE_POLICY, PERMISSION_REQUEST, -@@ -463,6 +465,9 @@ void WebKitWebViewClient::handleDownloadRequest(WKWPE::View&, DownloadProxy& dow +@@ -467,6 +469,9 @@ void WebKitWebViewClient::handleDownloadRequest(WKWPE::View&, DownloadProxy& dow void WebKitWebViewClient::frameDisplayed(WKWPE::View&) { @@ -11300,7 +11295,7 @@ index 56d974bd026edee94f007ef5a86d8a0f5fc35522..675dc1122e6c57926d484c95a981b86e { SetForScope inFrameDisplayedGuard(m_webView->priv->inFrameDisplayed, true); for (const auto& callback : m_webView->priv->frameDisplayedCallbacks) { -@@ -549,7 +554,7 @@ static gboolean webkitWebViewDecidePolicy(WebKitWebView*, WebKitPolicyDecision* +@@ -555,7 +560,7 @@ static gboolean webkitWebViewDecidePolicy(WebKitWebView*, WebKitPolicyDecision* static gboolean webkitWebViewPermissionRequest(WebKitWebView*, WebKitPermissionRequest* request) { @@ -11309,7 +11304,7 @@ index 56d974bd026edee94f007ef5a86d8a0f5fc35522..675dc1122e6c57926d484c95a981b86e if (WEBKIT_IS_POINTER_LOCK_PERMISSION_REQUEST(request)) { webkit_permission_request_allow(request); return TRUE; -@@ -1728,6 +1733,15 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) +@@ -1734,6 +1739,15 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) G_TYPE_BOOLEAN, 1, WEBKIT_TYPE_SCRIPT_DIALOG); @@ -11325,7 +11320,7 @@ index 56d974bd026edee94f007ef5a86d8a0f5fc35522..675dc1122e6c57926d484c95a981b86e /** * WebKitWebView::decide-policy: * @web_view: the #WebKitWebView on which the signal is emitted -@@ -2485,6 +2499,23 @@ void webkitWebViewRunJavaScriptBeforeUnloadConfirm(WebKitWebView* webView, const +@@ -2518,6 +2532,23 @@ void webkitWebViewRunJavaScriptBeforeUnloadConfirm(WebKitWebView* webView, const webkit_script_dialog_unref(webView->priv->currentScriptDialog); } @@ -11350,7 +11345,7 @@ index 56d974bd026edee94f007ef5a86d8a0f5fc35522..675dc1122e6c57926d484c95a981b86e { if (!webView->priv->currentScriptDialog) diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h b/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h -index dfb1a25102714f7ea5541ae17a1f55a13669e294..d1fc7dffc4eed2aee1c1703ad6a8995d71fc02ff 100644 +index 779db233a166830a8125bc86c29a106191e30ae0..aaa57b056052c646064770d7df3ebbf18810ab38 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h @@ -65,6 +65,7 @@ void webkitWebViewRunJavaScriptAlert(WebKitWebView*, const CString& message, Fun @@ -11361,6 +11356,18 @@ index dfb1a25102714f7ea5541ae17a1f55a13669e294..d1fc7dffc4eed2aee1c1703ad6a8995d bool webkitWebViewIsShowingScriptDialog(WebKitWebView*); 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 47b65bc7f0d113db6498bb1fa2d08760b8d3ad5d..4f5b7b1c3ef4708b13647f852e07a10b629de480 100644 +--- a/Source/WebKit/UIProcess/API/glib/webkit.h.in ++++ b/Source/WebKit/UIProcess/API/glib/webkit.h.in +@@ -41,6 +41,7 @@ + #include <@API_INCLUDE_PREFIX@/WebKitAutomationSession.h> + #include <@API_INCLUDE_PREFIX@/WebKitBackForwardList.h> + #include <@API_INCLUDE_PREFIX@/WebKitBackForwardListItem.h> ++#include <@API_INCLUDE_PREFIX@/WebKitBrowserInspector.h> + #if PLATFORM(GTK) + #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 87fe51400dc9fbcc37e7951def32a54d884505ff..7dba0d103ce5ae5dfd9006a1397f6e638bc50e6f 100644 --- a/Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp @@ -11462,7 +11469,7 @@ index 0000000000000000000000000000000000000000..45221096280941d747ef3f46749b1466 + +#endif diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -index 55279031a940d6cc4f82774c220f10717267194f..62b65a78ff22585c7570e8616c34543423f0569b 100644 +index 54e903da1471856ac2ab9fd322a27b08b28beb40..025948e30ef15234ebe2331a883d03d81948db7a 100644 --- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp +++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp @@ -2611,6 +2611,11 @@ void webkitWebViewBaseResetClickCounter(WebKitWebViewBase* webkitWebViewBase) @@ -11496,17 +11503,117 @@ index af927f35b3a28089788ec28531e7cd75db348af6..d2db5e32b70099f0fd991460ada54a52 + +WebKit::AcceleratedBackingStore* webkitWebViewBaseGetAcceleratedBackingStore(WebKitWebViewBase*); diff --git a/Source/WebKit/UIProcess/API/gtk/webkit2.h b/Source/WebKit/UIProcess/API/gtk/webkit2.h -index fc6b402d92bb0e1f02568a51d9e2e9bbecdc4c1e..46e1a90fa48cd6e57a1b50d34fa9d6d9e03dc0ef 100644 ---- a/Source/WebKit/UIProcess/API/gtk/webkit2.h +new file mode 100644 +index 0000000000000000000000000000000000000000..3e2da08331ac7cf493ef7885f6f5209b2dbc097b +--- /dev/null +++ b/Source/WebKit/UIProcess/API/gtk/webkit2.h -@@ -32,6 +32,7 @@ - #include - #include - #include +@@ -0,0 +1,106 @@ ++/* ++ * Copyright (C) 2011 Igalia S.L. ++ * Portions Copyright (c) 2011 Motorola Mobility, Inc. All rights reserved. ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Library General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public License ++ * along with this library; see the file COPYING.LIB. If not, write to ++ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ * Boston, MA 02110-1301, USA. ++ */ ++ ++#ifdef __WEBKIT_WEB_EXTENSION_H__ ++#error "Headers and cannot be included together." ++#endif ++ ++#ifndef __WEBKIT_2_H__ ++#define __WEBKIT_2_H__ ++ ++#define __WEBKIT2_H_INSIDE__ ++ ++#include ++#include ++#include ++#include ++#include +#include - #include - #include - #include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#undef __WEBKIT2_H_INSIDE__ ++ ++#endif /* __WEBKIT2_H__ */ diff --git a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp index 9fba86a2feee0a7f056ec65b9ffeeb48c0694def..4c1e54e79d868721a0af651984a5ddd28d153bfe 100644 --- a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp @@ -11579,7 +11686,7 @@ index 8f246bc2e73b5720863e250ee1217ddcb64117fe..0801d5f5b3dc85765c42c48474c63e88 }; diff --git a/Source/WebKit/UIProcess/API/wpe/WPEView.cpp b/Source/WebKit/UIProcess/API/wpe/WPEView.cpp -index bb56a8d06ab00b6bf86aa0433c328f6e7c6d67cc..fc74b842fa4926ce5fd1aef84dbfef38296373a5 100644 +index 85a6030f5756ba77d23b2dc68a62f6c6318fc740..1e239323f9e86772b079de4e2a7f91d500244f68 100644 --- a/Source/WebKit/UIProcess/API/wpe/WPEView.cpp +++ b/Source/WebKit/UIProcess/API/wpe/WPEView.cpp @@ -74,7 +74,9 @@ View::View(struct wpe_view_backend* backend, const API::PageConfiguration& baseC @@ -11943,17 +12050,111 @@ index e4b92ace1531090ae38a7aec3d3d4febf19aee84..43690f9ef4969a39084501613bfc00a7 + +cairo_surface_t* webkitWebViewBackendTakeScreenshot(WebKitWebViewBackend*); diff --git a/Source/WebKit/UIProcess/API/wpe/webkit.h b/Source/WebKit/UIProcess/API/wpe/webkit.h -index c2221efc00618c2ec4d20a88c59840767bd52ff5..71f1cd7e07c705a7c830ff5c4f7d7f981bb363f2 100644 ---- a/Source/WebKit/UIProcess/API/wpe/webkit.h +new file mode 100644 +index 0000000000000000000000000000000000000000..efd4bdbfdb02f289971cbad22834383c5fbd4227 +--- /dev/null +++ b/Source/WebKit/UIProcess/API/wpe/webkit.h -@@ -32,6 +32,7 @@ - #include - #include - #include +@@ -0,0 +1,100 @@ ++/* ++ * Copyright (C) 2011 Igalia S.L. ++ * Portions Copyright (c) 2011 Motorola Mobility, Inc. All rights reserved. ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Library General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public License ++ * along with this library; see the file COPYING.LIB. If not, write to ++ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ * Boston, MA 02110-1301, USA. ++ */ ++ ++#ifdef __WEBKIT_WEB_EXTENSION_H__ ++#error "Headers and cannot be included together." ++#endif ++ ++#ifndef __WEBKIT_H__ ++#define __WEBKIT_H__ ++ ++#define __WEBKIT_H_INSIDE__ ++ ++#include ++#include ++#include ++#include ++#include +#include - #include - #include - #include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#undef __WEBKIT_H_INSIDE__ ++ ++#endif /* __WEBKIT_H__ */ diff --git a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp index 08b47fcb75fb56c0645bd982406209733159955a..6e4d493529fb3c018496d5cdcef9c576126459f5 100644 --- a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp @@ -11971,10 +12172,10 @@ index 08b47fcb75fb56c0645bd982406209733159955a..6e4d493529fb3c018496d5cdcef9c576 platformGetLaunchOptions(launchOptions); } diff --git a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h -index 31071d6a700dab7eedac1b5d2f4bd5fca3cb1937..541187249d345a0f53a5f7907a0e15e8158e2436 100644 +index 2d11f78d4dbe5dc4d4098304f9f0c2e45e3ae7f5..6a8bb1e78626a669aa1db00ff07611309a1ae5f6 100644 --- a/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h +++ b/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h -@@ -192,12 +192,15 @@ protected: +@@ -193,12 +193,15 @@ protected: static RefPtr fetchAudioComponentServerRegistrations(); #endif @@ -12164,7 +12365,7 @@ index 957f7f088087169668a9b4f1ba65d9f206a2a836..15e44c8d5b6a3eafb7f1148707366b0c class PopUpSOAuthorizationSession final : public SOAuthorizationSession { public: diff --git a/Source/WebKit/UIProcess/Cocoa/UIDelegate.h b/Source/WebKit/UIProcess/Cocoa/UIDelegate.h -index f6de6bb7dd8472c12d2d8381e95b3dd322bdf48a..8950670adf48f13cadfbc382d6be34f83707c27e 100644 +index bb0c358d3e3fc7f889fbb1e21a77d2f9f28d23ca..f061eec78d3f24e195115dd951ef39016531e9d9 100644 --- a/Source/WebKit/UIProcess/Cocoa/UIDelegate.h +++ b/Source/WebKit/UIProcess/Cocoa/UIDelegate.h @@ -95,6 +95,7 @@ private: @@ -12175,7 +12376,7 @@ index f6de6bb7dd8472c12d2d8381e95b3dd322bdf48a..8950670adf48f13cadfbc382d6be34f8 void presentStorageAccessConfirmDialog(const WTF::String& requestingDomain, const WTF::String& currentDomain, CompletionHandler&&); void requestStorageAccessConfirm(WebPageProxy&, WebFrameProxy*, const WebCore::RegistrableDomain& requestingDomain, const WebCore::RegistrableDomain& currentDomain, CompletionHandler&&) final; void decidePolicyForGeolocationPermissionRequest(WebPageProxy&, WebFrameProxy&, const FrameInfoData&, Function&) final; -@@ -201,6 +202,7 @@ private: +@@ -204,6 +205,7 @@ private: bool webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler : 1; bool webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler : 1; bool webViewRunJavaScriptTextInputPanelWithPromptDefaultTextInitiatedByFrameCompletionHandler : 1; @@ -12184,7 +12385,7 @@ index f6de6bb7dd8472c12d2d8381e95b3dd322bdf48a..8950670adf48f13cadfbc382d6be34f8 bool webViewRunBeforeUnloadConfirmPanelWithMessageInitiatedByFrameCompletionHandler : 1; bool webViewRequestGeolocationPermissionForFrameDecisionHandler : 1; diff --git a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm -index 69b98a2110020348ad7e7204c2422a9b46747820..1f5e1cbb66cbad66578a69bc6e5f8a295e2f23ab 100644 +index eb20c8b93cee65f29350bf3739107ca7356d5675..0290ee35bd8e10aca0becd0f561fc8ad1e2c331c 100644 --- a/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm +++ b/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm @@ -111,6 +111,7 @@ void UIDelegate::setDelegate(id delegate) @@ -12195,7 +12396,7 @@ index 69b98a2110020348ad7e7204c2422a9b46747820..1f5e1cbb66cbad66578a69bc6e5f8a29 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:)]; -@@ -416,6 +417,15 @@ void UIDelegate::UIClient::runJavaScriptPrompt(WebPageProxy& page, const WTF::St +@@ -419,6 +420,15 @@ void UIDelegate::UIClient::runJavaScriptPrompt(WebPageProxy& page, const WTF::St }).get()]; } @@ -12212,7 +12413,7 @@ index 69b98a2110020348ad7e7204c2422a9b46747820..1f5e1cbb66cbad66578a69bc6e5f8a29 { if (!m_uiDelegate) diff --git a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm -index 292a7ff0e1e9348a5407eb12c5465688e9d89fcb..d448359c85277881de4ca83aa4e1650ceb1c2b92 100644 +index ba6f6193b28cab536901605ed870eef09469e6c1..5914147fdf5c7cc2f1a201ce2206f2f41c040c61 100644 --- a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm +++ b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm @@ -37,6 +37,7 @@ @@ -12223,7 +12424,7 @@ index 292a7ff0e1e9348a5407eb12c5465688e9d89fcb..d448359c85277881de4ca83aa4e1650c #import "PlaybackSessionManagerProxy.h" #import "QuickLookThumbnailLoader.h" #import "SafeBrowsingSPI.h" -@@ -254,9 +255,66 @@ bool WebPageProxy::scrollingUpdatesDisabledForTesting() +@@ -255,9 +256,66 @@ bool WebPageProxy::scrollingUpdatesDisabledForTesting() void WebPageProxy::startDrag(const DragItem& dragItem, const ShareableBitmapHandle& dragImageHandle) { @@ -12291,7 +12492,7 @@ index 292a7ff0e1e9348a5407eb12c5465688e9d89fcb..d448359c85277881de4ca83aa4e1650c #if PLATFORM(IOS_FAMILY) diff --git a/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm b/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm -index 6eb3b3bb85d68b35ac8012974dd65b40e50fc672..b01856886e6660af7dce809f949d9e92c8281ee6 100644 +index 4b3765de1e256b427f2bf94540482e7ce745f07e..ad0ae2a974feec0a9f911e94a1503c33e47c7859 100644 --- a/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm +++ b/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm @@ -472,7 +472,7 @@ void WebProcessPool::platformInitializeWebProcess(const WebProcessProxy& process @@ -12419,7 +12620,7 @@ index c69c58dd6a4168174750c13629c5a68b4f94d2c4..69d9fcf2586243a519e28b1f447cef59 void DrawingAreaProxyCoordinatedGraphics::incorporateUpdate(const UpdateInfo& updateInfo) { diff --git a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h -index f3dfe6614bad532c49995cf7afc5f6818a469ca6..78971e7296e5395079590fdf491b1ba1781b216f 100644 +index 5c716fb054b4b082c4a87f42a866bf8087b3ca89..e03bd58188562826e33089f5e02ed842a1d00b3b 100644 --- a/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h +++ b/Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h @@ -30,6 +30,7 @@ @@ -12449,9 +12650,9 @@ index f3dfe6614bad532c49995cf7afc5f6818a469ca6..78971e7296e5395079590fdf491b1ba1 + void didChangeAcceleratedCompositingMode(bool enabled) override; +#endif - #if !PLATFORM(WPE) - void incorporateUpdate(const UpdateInfo&); -@@ -132,12 +140,18 @@ private: + bool shouldSendWheelEventsToEventDispatcher() const override { return true; } + +@@ -134,12 +142,18 @@ private: // For a new Drawing Area don't draw anything until the WebProcess has sent over the first content. bool m_hasReceivedFirstUpdate { false }; @@ -12460,7 +12661,7 @@ index f3dfe6614bad532c49995cf7afc5f6818a469ca6..78971e7296e5395079590fdf491b1ba1 #if !PLATFORM(WPE) bool m_isBackingStoreDiscardable { true }; std::unique_ptr m_backingStore; - RunLoop::Timer m_discardBackingStoreTimer; + RunLoop::Timer m_discardBackingStoreTimer; #endif std::unique_ptr m_drawingMonitor; + @@ -12563,7 +12764,7 @@ index 42e9c901f866a2892396c83441ecbc5638270b52..42d2f292df2f337e302a8ec281333c70 } // namespace WebKit diff --git a/Source/WebKit/UIProcess/DrawingAreaProxy.h b/Source/WebKit/UIProcess/DrawingAreaProxy.h -index c359b84c9b7084ba15af6d2e52396b54c3fc2511..58e0d811dc2527d6bbebf94eb126d2110ae6dea9 100644 +index c69531c47f58aa85557be084c7fd65a7870d2c06..009613e9b4237b8a8b0a64897d66def28c0b25d0 100644 --- a/Source/WebKit/UIProcess/DrawingAreaProxy.h +++ b/Source/WebKit/UIProcess/DrawingAreaProxy.h @@ -85,6 +85,7 @@ public: @@ -12574,7 +12775,7 @@ index c359b84c9b7084ba15af6d2e52396b54c3fc2511..58e0d811dc2527d6bbebf94eb126d211 #if USE(COORDINATED_GRAPHICS) || USE(TEXTURE_MAPPER) // The timeout we use when waiting for a DidUpdateGeometry message. -@@ -174,6 +175,9 @@ private: +@@ -175,6 +176,9 @@ private: virtual void update(uint64_t /* backingStoreStateID */, const UpdateInfo&) { } virtual void didUpdateBackingStoreState(uint64_t /* backingStoreStateID */, const UpdateInfo&, const LayerTreeContext&) { } virtual void exitAcceleratedCompositingMode(uint64_t /* backingStoreStateID */, const UpdateInfo&) { } @@ -14728,7 +14929,7 @@ 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..84a473633483bcfe9d49514ea0d9be02a69a1cde +index 0000000000000000000000000000000000000000..58ca8becccbd55b1d2077036086aa9c1579af373 --- /dev/null +++ b/Source/WebKit/UIProcess/InspectorPlaywrightAgent.cpp @@ -0,0 +1,959 @@ @@ -15219,8 +15420,8 @@ index 0000000000000000000000000000000000000000..84a473633483bcfe9d49514ea0d9be02 + }); + for (auto& pool : WebProcessPool::allProcessPools()) { + for (auto& process : pool->processes()) { -+ for (auto* page : process->pages()) -+ didCreateInspectorController(*page); ++ for (auto& page : process->pages()) ++ didCreateInspectorController(*page.get()); + } + } + return { }; @@ -15268,9 +15469,9 @@ index 0000000000000000000000000000000000000000..84a473633483bcfe9d49514ea0d9be02 + // the page reloads. So we cannot discover such processes and the pages + // by traversing all process pools and their processes. Instead we look at + // all existing Web Processes wether in a pool or not. -+ for (auto* process : WebProcessProxy::allProcessesForInspector()) { -+ for (auto* page : process->pages()) -+ pages.append(page); ++ for (auto& process : WebProcessProxy::allProcessesForInspector()) { ++ for (auto& page : process->pages()) ++ pages.append(page.get()); + } + for (auto* page : pages) + page->closePage(); @@ -15366,7 +15567,7 @@ index 0000000000000000000000000000000000000000..84a473633483bcfe9d49514ea0d9be02 + String processIDString = frameID.left(dotPos); + uint64_t pid = strtoull(processIDString.ascii().data(), 0, 10); + auto processID = makeObjectIdentifier(pid); -+ WebProcessProxy* process = WebProcessProxy::processForIdentifier(processID); ++ auto process = WebProcessProxy::processForIdentifier(processID); + if (!process) { + error = "Cannot find web process for the frame id"_s; + return nullptr; @@ -15917,7 +16118,7 @@ index 1f17cf73705c763a75f1f007e5e783e0a07d13fd..68d4462d1749158831451ca98a456a42 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 53402c4b138aef755c73f67c01720015628ecaad..66cee299c768f8e0807dd84b5b0b21d0f96c4b44 100644 +index acc7509d3a5d7fd5449f4d18d3cf30e5cff18af9..d137208ecc32e8a5dfbc8a192726d27934aea4dc 100644 --- a/Source/WebKit/UIProcess/PageClient.h +++ b/Source/WebKit/UIProcess/PageClient.h @@ -328,6 +328,11 @@ public: @@ -16233,6 +16434,18 @@ index 0000000000000000000000000000000000000000..6d04f9290135069359ce6bf872654648 +} // namespace WebKit + +#endif // ENABLE(REMOTE_INSPECTOR) +diff --git a/Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp b/Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp +index e882c10e903e431412203cb93244744d3c7d97fb..bc29c0bb3b1e6671bda06a99c6cc2bb53ad2a873 100644 +--- a/Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp ++++ b/Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp +@@ -32,6 +32,7 @@ + #include "RemoteScrollingCoordinatorProxy.h" + #include + #include ++#include + #include + #include + #include 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 @@ -16258,21 +16471,25 @@ index be46daa094f16baf6bd52f9cf651c119b1e1b858..bee096090050e87158764f45e1ba1280 WebPageProxy* page() const { return m_page.get(); } diff --git a/Source/WebKit/UIProcess/WebFrameProxy.cpp b/Source/WebKit/UIProcess/WebFrameProxy.cpp -index 15aa50662746fbebc5b2574076b433452b03176e..a273256fe5e84819efc98e0723c7d26cc84fc9b5 100644 +index 8086ac177c51a01a5bb2dc80ba66a6e3e454ba00..20f0704d538b78995ae081eea09b80693620954b 100644 --- a/Source/WebKit/UIProcess/WebFrameProxy.cpp +++ b/Source/WebKit/UIProcess/WebFrameProxy.cpp -@@ -28,9 +28,11 @@ +@@ -28,6 +28,7 @@ #include "APINavigation.h" #include "Connection.h" +#include "FormDataReference.h" + #include "FrameTreeNodeData.h" + #include "ProvisionalFrameProxy.h" #include "ProvisionalPageProxy.h" +@@ -35,6 +36,7 @@ + #include "WebFrameMessages.h" #include "WebFramePolicyListenerProxy.h" #include "WebFrameProxyMessages.h" +#include "WebPageInspectorController.h" #include "WebPageMessages.h" + #include "WebPageProxyMessages.h" #include "WebPasteboardProxy.h" - #include "WebProcessPool.h" diff --git a/Source/WebKit/UIProcess/WebPageInspectorEmulationAgent.cpp b/Source/WebKit/UIProcess/WebPageInspectorEmulationAgent.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ae45b4212bdb3f6a004cc80a1d91146b540f86f5 @@ -16938,10 +17155,10 @@ index 0000000000000000000000000000000000000000..f1e6579eeaf6478a593e2558b8652222 + +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp -index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be53fec783 100644 +index 4b9bff0b93d571834c2b2fdb06fcd3253efba9b6..03bfbe2490597a73b35d55f1cfcb8251533f8895 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.cpp +++ b/Source/WebKit/UIProcess/WebPageProxy.cpp -@@ -249,6 +249,9 @@ +@@ -250,6 +250,9 @@ #if PLATFORM(GTK) #include "GtkSettingsManager.h" @@ -16951,7 +17168,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be #include #endif -@@ -647,6 +650,10 @@ WebPageProxy::~WebPageProxy() +@@ -648,6 +651,10 @@ WebPageProxy::~WebPageProxy() if (m_preferences->mediaSessionCoordinatorEnabled()) GroupActivitiesSessionNotifier::sharedNotifier().removeWebPage(*this); #endif @@ -16962,7 +17179,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be } void WebPageProxy::addAllMessageReceivers() -@@ -1072,6 +1079,7 @@ void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason) +@@ -1073,6 +1080,7 @@ void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason) m_pageLoadState.didSwapWebProcesses(); if (reason != ProcessLaunchReason::InitialProcess) m_drawingArea->waitForBackingStoreUpdateOnNextPaint(); @@ -16970,7 +17187,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be } void WebPageProxy::didAttachToRunningProcess() -@@ -1434,6 +1442,21 @@ WebProcessProxy& WebPageProxy::ensureRunningProcess() +@@ -1439,6 +1447,21 @@ WebProcessProxy& WebPageProxy::ensureRunningProcess() return m_process; } @@ -16992,7 +17209,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be RefPtr WebPageProxy::loadRequest(ResourceRequest&& request, ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy, API::Object* userData) { if (m_isClosed) -@@ -2005,6 +2028,31 @@ void WebPageProxy::setControlledByAutomation(bool controlled) +@@ -2010,6 +2033,31 @@ void WebPageProxy::setControlledByAutomation(bool controlled) websiteDataStore().networkProcess().send(Messages::NetworkProcess::SetSessionIsControlledByAutomation(m_websiteDataStore->sessionID(), m_controlledByAutomation), 0); } @@ -17024,7 +17241,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be void WebPageProxy::createInspectorTarget(const String& targetId, Inspector::InspectorTargetType type) { MESSAGE_CHECK(m_process, !targetId.isEmpty()); -@@ -2199,6 +2247,25 @@ void WebPageProxy::updateActivityState(OptionSet flagsToUpd +@@ -2204,6 +2252,25 @@ void WebPageProxy::updateActivityState(OptionSet flagsToUpd { bool wasVisible = isViewVisible(); m_activityState.remove(flagsToUpdate); @@ -17050,7 +17267,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be if (flagsToUpdate & ActivityState::IsFocused && pageClient().isViewFocused()) m_activityState.add(ActivityState::IsFocused); if (flagsToUpdate & ActivityState::WindowIsActive && pageClient().isViewWindowActive()) -@@ -2837,6 +2904,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag +@@ -2842,6 +2909,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag { if (!hasRunningProcess()) return; @@ -17059,7 +17276,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be #if PLATFORM(GTK) UNUSED_PARAM(dragStorageName); UNUSED_PARAM(sandboxExtensionHandle); -@@ -2847,6 +2916,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag +@@ -2852,6 +2921,8 @@ void WebPageProxy::performDragControllerAction(DragControllerAction action, Drag m_process->assumeReadAccessToBaseURL(*this, url); ASSERT(dragData.platformData()); @@ -17068,7 +17285,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be send(Messages::WebPage::PerformDragControllerAction(action, dragData.clientPosition(), dragData.globalPosition(), dragData.draggingSourceOperationMask(), *dragData.platformData(), dragData.flags())); #else send(Messages::WebPage::PerformDragControllerAction(action, dragData, sandboxExtensionHandle, sandboxExtensionsForUpload)); -@@ -2862,18 +2933,41 @@ void WebPageProxy::didPerformDragControllerAction(std::optional dragOperationMask) { if (!hasRunningProcess()) -@@ -2882,6 +2976,24 @@ void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& glo +@@ -2887,6 +2981,24 @@ void WebPageProxy::dragEnded(const IntPoint& clientPosition, const IntPoint& glo setDragCaretRect({ }); } @@ -17138,7 +17355,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be void WebPageProxy::didPerformDragOperation(bool handled) { pageClient().didPerformDragOperation(handled); -@@ -2894,8 +3006,18 @@ void WebPageProxy::didStartDrag() +@@ -2899,8 +3011,18 @@ void WebPageProxy::didStartDrag() discardQueuedMouseEvents(); send(Messages::WebPage::DidStartDrag()); @@ -17158,7 +17375,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be void WebPageProxy::dragCancelled() { if (hasRunningProcess()) -@@ -3007,16 +3129,38 @@ void WebPageProxy::processNextQueuedMouseEvent() +@@ -3012,16 +3134,38 @@ void WebPageProxy::processNextQueuedMouseEvent() m_process->startResponsivenessTimer(); } @@ -17203,7 +17420,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be } void WebPageProxy::doAfterProcessingAllPendingMouseEvents(WTF::Function&& action) -@@ -3180,7 +3324,7 @@ static TrackingType mergeTrackingTypes(TrackingType a, TrackingType b) +@@ -3201,7 +3345,7 @@ static TrackingType mergeTrackingTypes(TrackingType a, TrackingType b) void WebPageProxy::updateTouchEventTracking(const WebTouchEvent& touchStartEvent) { @@ -17212,7 +17429,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be for (auto& touchPoint : touchStartEvent.touchPoints()) { IntPoint location = touchPoint.location(); auto updateTrackingType = [this, location](TrackingType& trackingType, EventTrackingRegions::EventType eventType) { -@@ -3212,7 +3356,7 @@ void WebPageProxy::updateTouchEventTracking(const WebTouchEvent& touchStartEvent +@@ -3233,7 +3377,7 @@ void WebPageProxy::updateTouchEventTracking(const WebTouchEvent& touchStartEvent m_touchAndPointerEventTracking.touchStartTracking = TrackingType::Synchronous; m_touchAndPointerEventTracking.touchMoveTracking = TrackingType::Synchronous; m_touchAndPointerEventTracking.touchEndTracking = TrackingType::Synchronous; @@ -17221,7 +17438,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be } TrackingType WebPageProxy::touchEventTrackingType(const WebTouchEvent& touchStartEvent) const -@@ -3602,6 +3746,8 @@ void WebPageProxy::receivedNavigationPolicyDecision(PolicyAction policyAction, A +@@ -3623,6 +3767,8 @@ void WebPageProxy::receivedNavigationPolicyDecision(PolicyAction policyAction, A if (policyAction != PolicyAction::Use || (!preferences().siteIsolationEnabled() && !frame.isMainFrame()) || !navigation) { @@ -17230,7 +17447,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be receivedPolicyDecision(policyAction, navigation, navigation->websitePolicies(), WTFMove(navigationAction), WTFMove(sender)); return; } -@@ -3672,6 +3818,7 @@ void WebPageProxy::receivedNavigationPolicyDecision(PolicyAction policyAction, A +@@ -3693,6 +3839,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) { @@ -17238,7 +17455,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be if (!hasRunningProcess()) { sender->send(PolicyDecision { sender->identifier(), isNavigatingToAppBoundDomain(), PolicyAction::Ignore, 0, std::nullopt, std::nullopt }); return; -@@ -4457,6 +4604,11 @@ void WebPageProxy::pageScaleFactorDidChange(double scaleFactor) +@@ -4466,6 +4613,11 @@ void WebPageProxy::pageScaleFactorDidChange(double scaleFactor) m_pageScaleFactor = scaleFactor; } @@ -17250,7 +17467,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be void WebPageProxy::pluginScaleFactorDidChange(double pluginScaleFactor) { m_pluginScaleFactor = pluginScaleFactor; -@@ -4862,6 +5014,7 @@ void WebPageProxy::didDestroyNavigation(uint64_t navigationID) +@@ -4873,6 +5025,7 @@ void WebPageProxy::didDestroyNavigation(uint64_t navigationID) return; m_navigationState->didDestroyNavigation(navigationID); @@ -17258,7 +17475,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be } void WebPageProxy::didStartProvisionalLoadForFrame(FrameIdentifier frameID, FrameInfoData&& frameInfo, ResourceRequest&& request, uint64_t navigationID, URL&& url, URL&& unreachableURL, const UserData& userData) -@@ -5087,6 +5240,8 @@ void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref&& p +@@ -5099,6 +5252,8 @@ void WebPageProxy::didFailProvisionalLoadForFrameShared(Ref&& p m_failingProvisionalLoadURL = { }; @@ -17267,7 +17484,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be // 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; -@@ -5612,7 +5767,14 @@ void WebPageProxy::decidePolicyForNavigationActionAsync(FrameIdentifier frameID, +@@ -5627,7 +5782,14 @@ void WebPageProxy::decidePolicyForNavigationActionAsync(FrameIdentifier frameID, NavigationActionData&& navigationActionData, FrameInfoData&& originatingFrameInfo, std::optional originatingPageID, const WebCore::ResourceRequest& originalRequest, WebCore::ResourceRequest&& request, IPC::FormDataReference&& requestBody, WebCore::ResourceResponse&& redirectResponse, uint64_t listenerID) { @@ -17283,15 +17500,15 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be } void WebPageProxy::decidePolicyForNavigationActionAsyncShared(Ref&& process, PageIdentifier webPageID, FrameIdentifier frameID, FrameInfoData&& frameInfo, -@@ -6193,6 +6355,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa - if (originatingPage) - openerAppInitiatedState = originatingPage->lastNavigationWasAppInitiated(); +@@ -6211,6 +6373,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa + if (auto* page = originatingFrameInfo->page()) + openerAppInitiatedState = page->lastNavigationWasAppInitiated(); + m_inspectorController->willCreateNewPage(windowFeatures, request.url()); auto completionHandler = [this, protectedThis = Ref { *this }, mainFrameURL, request, reply = WTFMove(reply), privateClickMeasurement = navigationActionData.privateClickMeasurement, openerAppInitiatedState = WTFMove(openerAppInitiatedState)] (RefPtr newPage) mutable { if (!newPage) { reply(std::nullopt, std::nullopt); -@@ -6239,6 +6402,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa +@@ -6260,6 +6423,7 @@ void WebPageProxy::createNewPage(FrameInfoData&& originatingFrameInfoData, WebPa void WebPageProxy::showPage() { m_uiClient->showPage(this); @@ -17299,7 +17516,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be } void WebPageProxy::exitFullscreenImmediately() -@@ -6308,6 +6472,10 @@ void WebPageProxy::closePage() +@@ -6329,6 +6493,10 @@ void WebPageProxy::closePage() if (isClosed()) return; @@ -17310,7 +17527,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be WEBPAGEPROXY_RELEASE_LOG(Process, "closePage:"); pageClient().clearAllEditCommands(); m_uiClient->close(this); -@@ -6344,6 +6512,8 @@ void WebPageProxy::runJavaScriptAlert(FrameIdentifier frameID, FrameInfoData&& f +@@ -6365,6 +6533,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 { @@ -17319,7 +17536,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be page.m_uiClient->runJavaScriptAlert(page, message, frame, WTFMove(frameInfo), [reply = WTFMove(reply), completion = WTFMove(completion)]() mutable { reply(); completion(); -@@ -6365,6 +6535,8 @@ void WebPageProxy::runJavaScriptConfirm(FrameIdentifier frameID, FrameInfoData&& +@@ -6386,6 +6556,8 @@ void WebPageProxy::runJavaScriptConfirm(FrameIdentifier frameID, FrameInfoData&& if (auto* automationSession = process().processPool().automationSession()) automationSession->willShowJavaScriptDialog(*this); } @@ -17328,7 +17545,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be 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 { -@@ -6388,6 +6560,8 @@ void WebPageProxy::runJavaScriptPrompt(FrameIdentifier frameID, FrameInfoData&& +@@ -6409,6 +6581,8 @@ void WebPageProxy::runJavaScriptPrompt(FrameIdentifier frameID, FrameInfoData&& if (auto* automationSession = process().processPool().automationSession()) automationSession->willShowJavaScriptDialog(*this); } @@ -17337,7 +17554,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be 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 { -@@ -6503,6 +6677,8 @@ void WebPageProxy::runBeforeUnloadConfirmPanel(FrameIdentifier frameID, FrameInf +@@ -6524,6 +6698,8 @@ void WebPageProxy::runBeforeUnloadConfirmPanel(FrameIdentifier frameID, FrameInf return; } } @@ -17346,7 +17563,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be // Since runBeforeUnloadConfirmPanel() can spin a nested run loop we need to turn off the responsiveness timer and the tryClose timer. m_process->stopResponsivenessTimer(); -@@ -7844,6 +8020,8 @@ void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled) +@@ -7865,6 +8041,8 @@ void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled) if (auto* automationSession = process().processPool().automationSession()) automationSession->mouseEventsFlushedForPage(*this); didFinishProcessingAllPendingMouseEvents(); @@ -17355,13 +17572,13 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be } break; } -@@ -7858,10 +8036,13 @@ void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled) +@@ -7879,10 +8057,13 @@ void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled) pageClient().wheelEventWasNotHandledByWebCore(oldestProcessedEvent); } - if (auto eventToSend = wheelEventCoalescer().nextEventToDispatch()) + if (auto eventToSend = wheelEventCoalescer().nextEventToDispatch()) { - sendWheelEvent(*eventToSend); + sendWheelEvent(eventToSend->event, eventToSend->processingSteps); - else if (auto* automationSession = process().processPool().automationSession()) - automationSession->wheelEventsFlushedForPage(*this); + } else { @@ -17372,7 +17589,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be break; } -@@ -7870,7 +8051,6 @@ void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled) +@@ -7891,7 +8072,6 @@ void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled) case WebEvent::RawKeyDown: case WebEvent::Char: { LOG(KeyHandling, "WebPageProxy::didReceiveEvent: %s (queue empty %d)", webKeyboardEventTypeString(type), m_keyEventQueue.isEmpty()); @@ -17380,7 +17597,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be MESSAGE_CHECK(m_process, !m_keyEventQueue.isEmpty()); auto event = m_keyEventQueue.takeFirst(); MESSAGE_CHECK(m_process, type == event.type()); -@@ -7889,7 +8069,6 @@ void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled) +@@ -7910,7 +8090,6 @@ void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled) // The call to doneWithKeyEvent may close this WebPage. // Protect against this being destroyed. Ref protect(*this); @@ -17388,7 +17605,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be pageClient().doneWithKeyEvent(event, handled); if (!handled) m_uiClient->didNotHandleKeyEvent(this, event); -@@ -7898,6 +8077,7 @@ void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled) +@@ -7919,6 +8098,7 @@ void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled) if (!canProcessMoreKeyEvents) { if (auto* automationSession = process().processPool().automationSession()) automationSession->keyboardEventsFlushedForPage(*this); @@ -17396,7 +17613,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be } break; } -@@ -8251,7 +8431,10 @@ void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason) +@@ -8272,7 +8452,10 @@ void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason) { WEBPAGEPROXY_RELEASE_LOG_ERROR(Loading, "dispatchProcessDidTerminate: reason=%" PUBLIC_LOG_STRING, processTerminationReasonToString(reason)); @@ -17408,7 +17625,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be if (m_loaderClient) handledByClient = reason != ProcessTerminationReason::RequestedByClient && m_loaderClient->processDidCrash(*this); else -@@ -8590,6 +8773,7 @@ static Span gpuMachServices() +@@ -8611,6 +8794,7 @@ static Span gpuMachServices() WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& process, DrawingAreaProxy& drawingArea, RefPtr&& websitePolicies) { @@ -17416,7 +17633,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be WebPageCreationParameters parameters; parameters.processDisplayName = configuration().processDisplayName(); -@@ -8790,6 +8974,8 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc +@@ -8814,6 +8998,8 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc parameters.httpsUpgradeEnabled = preferences().upgradeKnownHostsToHTTPSEnabled() ? m_configuration->httpsUpgradeEnabled() : false; @@ -17425,7 +17642,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be #if PLATFORM(IOS) // FIXME: This is also being passed over the to WebProcess via the PreferencesStore. parameters.allowsDeprecatedSynchronousXMLHttpRequestDuringUnload = allowsDeprecatedSynchronousXMLHttpRequestDuringUnload(); -@@ -8862,6 +9048,14 @@ void WebPageProxy::gamepadActivity(const Vector& gamepadDatas, Even +@@ -8890,6 +9076,14 @@ void WebPageProxy::gamepadActivity(const Vector& gamepadDatas, Even void WebPageProxy::didReceiveAuthenticationChallengeProxy(Ref&& authenticationChallenge, NegotiatedLegacyTLS negotiatedLegacyTLS) { @@ -17440,7 +17657,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be if (negotiatedLegacyTLS == NegotiatedLegacyTLS::Yes) { m_navigationClient->shouldAllowLegacyTLS(*this, authenticationChallenge.get(), [this, protectedThis = Ref { *this }, authenticationChallenge] (bool shouldAllowLegacyTLS) { if (shouldAllowLegacyTLS) -@@ -8955,6 +9149,15 @@ void WebPageProxy::requestGeolocationPermissionForFrame(GeolocationIdentifier ge +@@ -8988,6 +9182,15 @@ void WebPageProxy::requestGeolocationPermissionForFrame(GeolocationIdentifier ge request->deny(); }; @@ -17457,7 +17674,7 @@ index 6e935c35cf7c7bfdb71fdb88af47a941f6e1f8eb..b2749ecdc7fdbc4011a66257ee2743be // 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 f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c2bdf302f 100644 +index ba5285d23dd2974ba6674db6827cf1df870fade5..fbcb3d53d988f0d2a932a59f45509f6448664b9d 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.h +++ b/Source/WebKit/UIProcess/WebPageProxy.h @@ -39,6 +39,7 @@ @@ -17468,7 +17685,7 @@ index f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c #include "LayerTreeContext.h" #include "MediaKeySystemPermissionRequestManagerProxy.h" #include "MediaPlaybackState.h" -@@ -148,8 +149,11 @@ +@@ -149,8 +150,11 @@ #include "EndowmentStateTracker.h" #endif @@ -17480,7 +17697,7 @@ index f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c #endif #if ENABLE(TOUCH_EVENTS) -@@ -171,6 +175,14 @@ +@@ -172,6 +176,14 @@ #include "ArgumentCodersGtk.h" #endif @@ -17495,15 +17712,15 @@ index f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c #if ENABLE(WIRELESS_PLAYBACK_TARGET) && !PLATFORM(IOS_FAMILY) #include #include -@@ -253,6 +265,7 @@ class AuthenticationChallenge; - class CertificateInfo; +@@ -255,6 +267,7 @@ class CertificateInfo; class Cursor; + class DataSegment; class DragData; +typedef HashMap> DragDataMap; class FloatRect; class FontAttributeChanges; class FontChanges; -@@ -260,7 +273,6 @@ class GraphicsLayer; +@@ -262,7 +275,6 @@ class GraphicsLayer; class IntSize; class ProtectionSpace; class RunLoopObserver; @@ -17511,7 +17728,7 @@ index f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c class SharedBuffer; class SpeechRecognitionRequest; class TextIndicator; -@@ -549,6 +561,8 @@ public: +@@ -552,6 +564,8 @@ public: void setControlledByAutomation(bool); WebPageInspectorController& inspectorController() { return *m_inspectorController; } @@ -17520,7 +17737,7 @@ index f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c #if PLATFORM(IOS_FAMILY) void showInspectorIndication(); -@@ -659,6 +673,11 @@ public: +@@ -664,6 +678,11 @@ public: void setPageLoadStateObserver(std::unique_ptr&&); @@ -17532,7 +17749,7 @@ index f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c void initializeWebPage(); void setDrawingArea(std::unique_ptr&&); -@@ -683,6 +702,7 @@ public: +@@ -688,6 +707,7 @@ public: void closePage(); void addPlatformLoadParameters(WebProcessProxy&, LoadParameters&); @@ -17540,7 +17757,7 @@ index f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c 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); -@@ -1228,6 +1248,7 @@ public: +@@ -1237,6 +1257,7 @@ public: #endif void pageScaleFactorDidChange(double); @@ -17548,7 +17765,7 @@ index f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c void pluginScaleFactorDidChange(double); void pluginZoomFactorDidChange(double); -@@ -1318,14 +1339,20 @@ public: +@@ -1327,14 +1348,20 @@ public: void didStartDrag(); void dragCancelled(); void setDragCaretRect(const WebCore::IntRect&); @@ -17570,7 +17787,7 @@ index f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c #endif void processDidBecomeUnresponsive(); -@@ -1580,6 +1607,8 @@ public: +@@ -1591,6 +1618,8 @@ public: #if PLATFORM(COCOA) || PLATFORM(GTK) RefPtr takeViewSnapshot(std::optional&&); @@ -17579,7 +17796,7 @@ index f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c #endif #if ENABLE(WEB_CRYPTO) -@@ -2796,6 +2825,7 @@ private: +@@ -2819,6 +2848,7 @@ private: String m_overrideContentSecurityPolicy; RefPtr m_inspector; @@ -17587,7 +17804,7 @@ index f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c #if PLATFORM(COCOA) WeakObjCPtr m_cocoaView; -@@ -3075,6 +3105,20 @@ private: +@@ -3097,6 +3127,20 @@ private: unsigned m_currentDragNumberOfFilesToBeAccepted { 0 }; WebCore::IntRect m_currentDragCaretRect; WebCore::IntRect m_currentDragCaretEditableElementRect; @@ -17608,7 +17825,7 @@ index f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c #endif PageLoadState m_pageLoadState; -@@ -3287,6 +3331,9 @@ private: +@@ -3309,6 +3353,9 @@ private: RefPtr messageBody; }; Vector m_pendingInjectedBundleMessages; @@ -17619,7 +17836,7 @@ index f29b9095ff0e3dc64778e27f10c8815528f2e5c9..28eafbea324df544fbdf20f98e53f29c #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 0a3536fd3f8df52f2bf87dd6d0935afbfbd67ea3..b037e9d955c4112d9456352bcb90b535fb3768a2 100644 +index 12e495cd008d2c8ce766d326090e6062d7f2a4e1..69a4cc0ae761558b171e097637ccc955f9b80067 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.messages.in +++ b/Source/WebKit/UIProcess/WebPageProxy.messages.in @@ -29,6 +29,7 @@ messages -> WebPageProxy { @@ -17669,7 +17886,7 @@ index e68471d45366b6f7a609e6a57bcfea2820511e29..d2344e7b428ae19399ded4e37bfbf81c } diff --git a/Source/WebKit/UIProcess/WebProcessPool.cpp b/Source/WebKit/UIProcess/WebProcessPool.cpp -index 92c0965f31cf4e6d1cd65830eb52ab6eaa9031ce..4b500d1e599334d47a8811645eead699ca057148 100644 +index ae3b1e2ce0a4a488b507b8f31c17ee12b021675d..373803d9ec0fce1935bab6dd13d37d50b81710bc 100644 --- a/Source/WebKit/UIProcess/WebProcessPool.cpp +++ b/Source/WebKit/UIProcess/WebProcessPool.cpp @@ -363,17 +363,19 @@ void WebProcessPool::setCustomWebContentServiceBundleIdentifier(const String& cu @@ -17710,7 +17927,7 @@ index 92c0965f31cf4e6d1cd65830eb52ab6eaa9031ce..4b500d1e599334d47a8811645eead699 ASSERT(processPool); WebProcessProxy* remoteWorkerProcessProxy { nullptr }; -@@ -804,7 +814,7 @@ void WebProcessPool::initializeNewWebProcess(WebProcessProxy& process, WebsiteDa +@@ -817,7 +827,7 @@ void WebProcessPool::initializeNewWebProcess(WebProcessProxy& process, WebsiteDa #endif parameters.cacheModel = LegacyGlobalSettings::singleton().cacheModel(); @@ -17720,22 +17937,22 @@ index 92c0965f31cf4e6d1cd65830eb52ab6eaa9031ce..4b500d1e599334d47a8811645eead699 parameters.urlSchemesRegisteredAsEmptyDocument = copyToVector(m_schemesToRegisterAsEmptyDocument); diff --git a/Source/WebKit/UIProcess/WebProcessProxy.cpp b/Source/WebKit/UIProcess/WebProcessProxy.cpp -index 86a768663dbd5eabb936c826a29b63988416b562..b331511bae7bed7f926e6c777474830461d768b1 100644 +index b3850258eeed24447a735390d548e11b2348ec0d..063e7612af649b87f002578b1f3910f95fcad8be 100644 --- a/Source/WebKit/UIProcess/WebProcessProxy.cpp +++ b/Source/WebKit/UIProcess/WebProcessProxy.cpp -@@ -152,6 +152,11 @@ HashMap& WebProcessProxy::allProcesses() - return map; +@@ -162,6 +162,11 @@ Vector> WebProcessProxy::allProcesses() + }); } -+Vector WebProcessProxy::allProcessesForInspector() ++Vector> WebProcessProxy::allProcessesForInspector() +{ -+ return copyToVector(allProcesses().values()); ++ return copyToVector(allProcesses()); +} + - WebProcessProxy* WebProcessProxy::processForIdentifier(ProcessIdentifier identifier) + RefPtr WebProcessProxy::processForIdentifier(ProcessIdentifier identifier) { - return allProcesses().get(identifier); -@@ -431,6 +436,26 @@ void WebProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOpt + return allProcessMap().get(identifier).get(); +@@ -491,6 +496,26 @@ void WebProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOpt if (WebKit::isInspectorProcessPool(processPool())) launchOptions.extraInitializationData.add("inspector-process"_s, "1"_s); @@ -17763,22 +17980,22 @@ index 86a768663dbd5eabb936c826a29b63988416b562..b331511bae7bed7f926e6c7774748304 if (isPrewarmed()) diff --git a/Source/WebKit/UIProcess/WebProcessProxy.h b/Source/WebKit/UIProcess/WebProcessProxy.h -index 39d47536f3e4b5b63bea159dcc9c244b80b2aeb4..bd5b2cce8cc53be2d8d3cd66863b872356649943 100644 +index 0825bdfdbc32995bd037773233c4d3e6dd66ef14..1d77d06b2e535b32c9af0ecaf114c9752d73fc27 100644 --- a/Source/WebKit/UIProcess/WebProcessProxy.h +++ b/Source/WebKit/UIProcess/WebProcessProxy.h -@@ -159,6 +159,7 @@ public: +@@ -160,6 +160,7 @@ public: static void forWebPagesWithOrigin(PAL::SessionID, const WebCore::SecurityOriginData&, const Function&); static Vector> allowedFirstPartiesForCookies(); -+ static Vector allProcessesForInspector(); ++ static Vector> allProcessesForInspector(); WebConnection* webConnection() const { return m_webConnection.get(); } diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp -index a070cd97a28ad6094a7b5e7db6422af43861da39..c28d71d9d83276bb7441c580113fc3596cfc259f 100644 +index d4e89b39af8ec393016f452e133ebc9708043341..e1ab0cffebb8691b06031a78db43cc5a17e113ba 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp -@@ -2012,6 +2012,12 @@ void WebsiteDataStore::originDirectoryForTesting(URL&& origin, URL&& topOrigin, +@@ -2014,6 +2014,12 @@ void WebsiteDataStore::originDirectoryForTesting(URL&& origin, URL&& topOrigin, networkProcess().websiteDataOriginDirectoryForTesting(m_sessionID, WTFMove(origin), WTFMove(topOrigin), type, WTFMove(completionHandler)); } @@ -17792,10 +18009,10 @@ index a070cd97a28ad6094a7b5e7db6422af43861da39..c28d71d9d83276bb7441c580113fc359 void WebsiteDataStore::hasAppBoundSession(CompletionHandler&& completionHandler) const { diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h -index 5f9e5d5a6e81f20d2ea88470e4d29fa41aae6653..f349a5b84950e44a4abd3b18fd8a2b290db21210 100644 +index 516c27eb24f35b037c3114e10ee9baa6c12c05a6..eb6b38052fa3cd08a4058fb847b6674f99ec523c 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h -@@ -89,6 +89,7 @@ class SecKeyProxyStore; +@@ -90,6 +90,7 @@ class SecKeyProxyStore; class DeviceIdHashSaltStorage; class NetworkProcessProxy; class SOAuthorizationCoordinator; @@ -17803,7 +18020,7 @@ index 5f9e5d5a6e81f20d2ea88470e4d29fa41aae6653..f349a5b84950e44a4abd3b18fd8a2b29 class VirtualAuthenticatorManager; class WebPageProxy; class WebProcessPool; -@@ -98,6 +99,7 @@ enum class CacheModel : uint8_t; +@@ -99,6 +100,7 @@ enum class CacheModel : uint8_t; enum class WebsiteDataFetchOption : uint8_t; enum class WebsiteDataType : uint32_t; @@ -17811,7 +18028,7 @@ index 5f9e5d5a6e81f20d2ea88470e4d29fa41aae6653..f349a5b84950e44a4abd3b18fd8a2b29 struct NetworkProcessConnectionInfo; struct WebsiteDataRecord; struct WebsiteDataStoreParameters; -@@ -108,6 +110,14 @@ enum class StorageAccessStatus : uint8_t; +@@ -109,6 +111,14 @@ enum class StorageAccessStatus : uint8_t; enum class StorageAccessPromptStatus; #endif @@ -17826,7 +18043,7 @@ index 5f9e5d5a6e81f20d2ea88470e4d29fa41aae6653..f349a5b84950e44a4abd3b18fd8a2b29 class WebsiteDataStore : public API::ObjectImpl, public Identified, public CanMakeWeakPtr { public: static Ref defaultDataStore(); -@@ -299,11 +309,13 @@ public: +@@ -300,11 +310,13 @@ public: const WebCore::CurlProxySettings& networkProxySettings() const { return m_proxySettings; } #endif @@ -17841,7 +18058,7 @@ index 5f9e5d5a6e81f20d2ea88470e4d29fa41aae6653..f349a5b84950e44a4abd3b18fd8a2b29 void setNetworkProxySettings(WebCore::SoupNetworkProxySettings&&); const WebCore::SoupNetworkProxySettings& networkProxySettings() const { return m_networkProxySettings; } void setCookiePersistentStorage(const String&, SoupCookiePersistentStorageType); -@@ -373,6 +385,12 @@ public: +@@ -374,6 +386,12 @@ public: static constexpr uint64_t defaultPerOriginQuota() { return 1000 * MB; } static bool defaultShouldUseCustomStoragePaths(); @@ -17854,7 +18071,7 @@ index 5f9e5d5a6e81f20d2ea88470e4d29fa41aae6653..f349a5b84950e44a4abd3b18fd8a2b29 void resetQuota(CompletionHandler&&); void clearStorage(CompletionHandler&&); #if PLATFORM(IOS_FAMILY) -@@ -500,9 +518,11 @@ private: +@@ -503,9 +521,11 @@ private: WebCore::CurlProxySettings m_proxySettings; #endif @@ -17867,7 +18084,7 @@ index 5f9e5d5a6e81f20d2ea88470e4d29fa41aae6653..f349a5b84950e44a4abd3b18fd8a2b29 WebCore::SoupNetworkProxySettings m_networkProxySettings; String m_cookiePersistentStoragePath; SoupCookiePersistentStorageType m_cookiePersistentStorageType { SoupCookiePersistentStorageType::SQLite }; -@@ -530,6 +550,10 @@ private: +@@ -533,6 +553,10 @@ private: RefPtr m_cookieStore; RefPtr m_networkProcess; @@ -17944,7 +18161,7 @@ index 692a45a48fa027f9221338d74f5351bef4baf00f..db8c761c71cc7009be66255c2668de4e "org.freedesktop.GeoClue2", clientPath, "org.freedesktop.GeoClue2.Client", m_cancellable.get(), [](GObject*, GAsyncResult* result, gpointer userData) { diff --git a/Source/WebKit/UIProcess/geoclue/GeoclueGeolocationProvider.h b/Source/WebKit/UIProcess/geoclue/GeoclueGeolocationProvider.h -index b5e48e6c61a8a3f4b40b84112c4010101c4d5f41..46747b1d78bfe0270178609867c0d710807fa668 100644 +index db15435ed4581388a631547cdc92c092362ff84a..de45cfe0b737a0450455bafbda91887d0a944445 100644 --- a/Source/WebKit/UIProcess/geoclue/GeoclueGeolocationProvider.h +++ b/Source/WebKit/UIProcess/geoclue/GeoclueGeolocationProvider.h @@ -71,6 +71,9 @@ private: @@ -17955,7 +18172,7 @@ index b5e48e6c61a8a3f4b40b84112c4010101c4d5f41..46747b1d78bfe0270178609867c0d710 + GRefPtr m_cancellable_setup; + GRefPtr m_cancellable_create; UpdateNotifyFunction m_updateNotifyFunction; - RunLoop::Timer m_destroyManagerLaterTimer; + RunLoop::Timer m_destroyManagerLaterTimer; }; diff --git a/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.cpp b/Source/WebKit/UIProcess/glib/InspectorPlaywrightAgentClientGLib.cpp new file mode 100644 @@ -18705,7 +18922,7 @@ index 0000000000000000000000000000000000000000..721826c8c98fc85b68a4f45deaee69c1 + +#endif diff --git a/Source/WebKit/UIProcess/mac/PageClientImplMac.h b/Source/WebKit/UIProcess/mac/PageClientImplMac.h -index a274468620adefb1d4a3ba2af1275b38da2fe74c..1c764fb95f283d1d4bf6e05836ab6ef10948c5ae 100644 +index 1f074d98b5b1590295ac77f878e9cc057f09cf00..961681e328394476ddd0214f96768354a02e9ee6 100644 --- a/Source/WebKit/UIProcess/mac/PageClientImplMac.h +++ b/Source/WebKit/UIProcess/mac/PageClientImplMac.h @@ -53,6 +53,8 @@ class PageClientImpl final : public PageClientImplCocoa @@ -18727,7 +18944,7 @@ index a274468620adefb1d4a3ba2af1275b38da2fe74c..1c764fb95f283d1d4bf6e05836ab6ef1 RefPtr takeViewSnapshot(std::optional&&) override; void wheelEventWasNotHandledByWebCore(const NativeWebWheelEvent&) override; #if ENABLE(MAC_GESTURE_EVENTS) -@@ -221,6 +226,10 @@ private: +@@ -223,6 +228,10 @@ private: void beganExitFullScreen(const WebCore::IntRect& initialFrame, const WebCore::IntRect& finalFrame) override; #endif @@ -18739,7 +18956,7 @@ index a274468620adefb1d4a3ba2af1275b38da2fe74c..1c764fb95f283d1d4bf6e05836ab6ef1 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 129d4733338056af9f9e6e17fdd03974384629c2..962e14d90b71c8568324b8d45af244345c3a0d01 100644 +index 7270593ccc7a99f364d866279d7c2371f86aacae..b38012396da0b8248ccbf0b090c04e6549244e71 100644 --- a/Source/WebKit/UIProcess/mac/PageClientImplMac.mm +++ b/Source/WebKit/UIProcess/mac/PageClientImplMac.mm @@ -81,6 +81,7 @@ @@ -18835,7 +19052,7 @@ index 129d4733338056af9f9e6e17fdd03974384629c2..962e14d90b71c8568324b8d45af24434 RefPtr PageClientImpl::takeViewSnapshot(std::optional&&) { return m_impl->takeViewSnapshot(); -@@ -801,6 +829,13 @@ void PageClientImpl::beganExitFullScreen(const IntRect& initialFrame, const IntR +@@ -806,6 +834,13 @@ void PageClientImpl::beganExitFullScreen(const IntRect& initialFrame, const IntR #endif // ENABLE(FULLSCREEN_API) @@ -18849,7 +19066,7 @@ index 129d4733338056af9f9e6e17fdd03974384629c2..962e14d90b71c8568324b8d45af24434 void PageClientImpl::navigationGestureDidBegin() { m_impl->dismissContentRelativeChildWindowsWithAnimation(true); -@@ -978,6 +1013,9 @@ void PageClientImpl::requestScrollToRect(const WebCore::FloatRect& targetRect, c +@@ -983,6 +1018,9 @@ void PageClientImpl::requestScrollToRect(const WebCore::FloatRect& targetRect, c bool PageClientImpl::windowIsFrontWindowUnderMouse(const NativeWebMouseEvent& event) { @@ -19075,10 +19292,10 @@ index 0000000000000000000000000000000000000000..d72149eda8354890af21dcb5759db2cc + +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/mac/WebViewImpl.h b/Source/WebKit/UIProcess/mac/WebViewImpl.h -index 7479a879eaa3609957a12963bf631915527d50b2..81979b63f1d7deebf789a86f976f24f2a9c6cb79 100644 +index 27559055327ca0fcfffe454ec7db7315d85d8419..cb330894463b251236b4b0398e741c1f29258c5f 100644 --- a/Source/WebKit/UIProcess/mac/WebViewImpl.h +++ b/Source/WebKit/UIProcess/mac/WebViewImpl.h -@@ -509,6 +509,9 @@ public: +@@ -511,6 +511,9 @@ public: void provideDataForPasteboard(NSPasteboard *, NSString *type); NSArray *namesOfPromisedFilesDroppedAtDestination(NSURL *dropDestination); @@ -19089,10 +19306,10 @@ index 7479a879eaa3609957a12963bf631915527d50b2..81979b63f1d7deebf789a86f976f24f2 void saveBackForwardSnapshotForCurrentItem(); void saveBackForwardSnapshotForItem(WebBackForwardListItem&); diff --git a/Source/WebKit/UIProcess/mac/WebViewImpl.mm b/Source/WebKit/UIProcess/mac/WebViewImpl.mm -index 55f22067ece7f71c916553ac33b0687c69aa5095..248b79660ff75e8fb77690b55b42e964bb4d43cf 100644 +index 0ab54d753752ee2b6499851043fb520f40c3cf58..4902e816e5785b4addc04d6b156db744b32232a3 100644 --- a/Source/WebKit/UIProcess/mac/WebViewImpl.mm +++ b/Source/WebKit/UIProcess/mac/WebViewImpl.mm -@@ -2316,6 +2316,11 @@ WebCore::DestinationColorSpace WebViewImpl::colorSpace() +@@ -2323,6 +2323,11 @@ WebCore::DestinationColorSpace WebViewImpl::colorSpace() if (!m_colorSpace) m_colorSpace = [NSColorSpace sRGBColorSpace]; } @@ -19104,7 +19321,7 @@ index 55f22067ece7f71c916553ac33b0687c69aa5095..248b79660ff75e8fb77690b55b42e964 ASSERT(m_colorSpace); return WebCore::DestinationColorSpace { [m_colorSpace CGColorSpace] }; -@@ -4328,6 +4333,18 @@ static RetainPtr takeWindowSnapshot(CGSWindowID windowID, bool captu +@@ -4335,6 +4340,18 @@ static RetainPtr takeWindowSnapshot(CGSWindowID windowID, bool captu return adoptCF(CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, windowID, imageOptions)); } @@ -19883,10 +20100,10 @@ index 0000000000000000000000000000000000000000..31a4649df8e1df36dc1116ada35c3a33 + +} // namespace WebKit diff --git a/Source/WebKit/WebKit.xcodeproj/project.pbxproj b/Source/WebKit/WebKit.xcodeproj/project.pbxproj -index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1df6ecd9b 100644 +index 3994fd549d923065cb2be29998f75d3989105161..7d4427a3aa361d5e45bfe31abf61c16e8404bdf8 100644 --- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj +++ b/Source/WebKit/WebKit.xcodeproj/project.pbxproj -@@ -1329,6 +1329,7 @@ +@@ -1335,6 +1335,7 @@ 5CABDC8722C40FED001EDE8E /* APIMessageListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CABDC8322C40FA7001EDE8E /* APIMessageListener.h */; }; 5CADDE05215046BD0067D309 /* WKWebProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C74300E21500492004BFA17 /* WKWebProcess.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5CAECB6627465AE400AB78D0 /* UnifiedSource115.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CAECB5E27465AE300AB78D0 /* UnifiedSource115.cpp */; }; @@ -19894,7 +20111,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 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 */; }; -@@ -2328,6 +2329,18 @@ +@@ -2343,6 +2344,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 */; }; @@ -19913,7 +20130,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 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, ); }; }; -@@ -2390,6 +2403,8 @@ +@@ -2404,6 +2417,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 */; }; @@ -19922,7 +20139,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 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 */; }; -@@ -2406,6 +2421,9 @@ +@@ -2420,6 +2435,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, ); }; }; @@ -19932,15 +20149,15 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 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 */; }; -@@ -5628,6 +5646,7 @@ +@@ -5620,6 +5638,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 = ""; }; - 5CAECB5E27465AE300AB78D0 /* UnifiedSource115.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource115.cpp; path = "DerivedSources/WebKit/unified-sources/UnifiedSource115.cpp"; sourceTree = BUILT_PRODUCTS_DIR; }; -+ 1D7178FBC4EDB168CDB0B04D /* UnifiedSource116.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource116.cpp; path = "DerivedSources/WebKit/unified-sources/UnifiedSource116.cpp"; sourceTree = BUILT_PRODUCTS_DIR; }; ++ 1D7178FBC4EDB168CDB0B04D /* UnifiedSource116.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource116.cpp; sourceTree = ""; }; + 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 = ""; }; - 5CAF7AA626F93AA50003F19E /* adattributiond.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = adattributiond.xcconfig; sourceTree = ""; }; -@@ -7427,6 +7446,19 @@ +@@ -7425,6 +7444,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 = ""; }; @@ -19960,16 +20177,16 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 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 = ""; }; -@@ -7556,6 +7588,8 @@ - E5CB07DA20E1678F0022C183 /* WKFormColorControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WKFormColorControl.h; path = ios/forms/WKFormColorControl.h; sourceTree = ""; }; - E5CB07DB20E1678F0022C183 /* WKFormColorControl.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = WKFormColorControl.mm; path = ios/forms/WKFormColorControl.mm; sourceTree = ""; }; - E5CBA75F27A3187800DF7858 /* UnifiedSource120.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource120.cpp; path = "DerivedSources/WebKit/unified-sources/UnifiedSource120.cpp"; sourceTree = BUILT_PRODUCTS_DIR; }; -+ E5CBA76F27A3187800DF7858 /* UnifiedSource121.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource121.cpp; path = "DerivedSources/WebKit/unified-sources/UnifiedSource121.cpp"; sourceTree = BUILT_PRODUCTS_DIR; }; -+ E5CBA77F27A3187800DF7858 /* UnifiedSource122.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource122.cpp; path = "DerivedSources/WebKit/unified-sources/UnifiedSource122.cpp"; sourceTree = BUILT_PRODUCTS_DIR; }; - E5CBA76027A3187900DF7858 /* UnifiedSource119.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource119.cpp; path = "DerivedSources/WebKit/unified-sources/UnifiedSource119.cpp"; sourceTree = BUILT_PRODUCTS_DIR; }; - E5CBA76127A3187900DF7858 /* UnifiedSource118.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource118.cpp; path = "DerivedSources/WebKit/unified-sources/UnifiedSource118.cpp"; sourceTree = BUILT_PRODUCTS_DIR; }; - E5CBA76227A3187900DF7858 /* UnifiedSource117.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource117.cpp; path = "DerivedSources/WebKit/unified-sources/UnifiedSource117.cpp"; sourceTree = BUILT_PRODUCTS_DIR; }; -@@ -7578,6 +7612,14 @@ +@@ -7561,6 +7593,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 = ""; }; ++ E5CBA76F27A3187800DF7858 /* UnifiedSource121.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource121.cpp; sourceTree = ""; }; ++ E5CBA77F27A3187800DF7858 /* UnifiedSource122.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = UnifiedSource122.cpp; sourceTree = ""; }; + 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 = ""; }; +@@ -7580,6 +7614,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 = ""; }; @@ -19984,7 +20201,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 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 = ""; }; -@@ -7733,6 +7775,7 @@ +@@ -7738,6 +7780,7 @@ 3766F9EE189A1241003CF19B /* JavaScriptCore.framework in Frameworks */, 3766F9F1189A1254003CF19B /* libicucore.dylib in Frameworks */, 7B9FC5BB28A5233B007570E7 /* libWebKitPlatform.a in Frameworks */, @@ -19992,7 +20209,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 3766F9EF189A1244003CF19B /* QuartzCore.framework in Frameworks */, 37694525184FC6B600CDE21F /* Security.framework in Frameworks */, 37BEC4DD1948FC6A008B4286 /* WebCore.framework in Frameworks */, -@@ -10138,6 +10181,7 @@ +@@ -10168,6 +10211,7 @@ 99788ACA1F421DCA00C08000 /* _WKAutomationSessionConfiguration.mm */, 990D28A81C6404B000986977 /* _WKAutomationSessionDelegate.h */, 990D28AF1C65203900986977 /* _WKAutomationSessionInternal.h */, @@ -20000,7 +20217,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 5C4609E222430E4C009943C2 /* _WKContentRuleListAction.h */, 5C4609E322430E4D009943C2 /* _WKContentRuleListAction.mm */, 5C4609E422430E4D009943C2 /* _WKContentRuleListActionInternal.h */, -@@ -11253,6 +11297,7 @@ +@@ -11291,6 +11335,7 @@ E34B110C27C46BC6006D2F2E /* libWebCoreTestShim.dylib */, E34B110F27C46D09006D2F2E /* libWebCoreTestSupport.dylib */, DDE992F4278D06D900F60D26 /* libWebKitAdditions.a */, @@ -20008,7 +20225,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 57A9FF15252C6AEF006A2040 /* libWTF.a */, 5750F32A2032D4E500389347 /* LocalAuthentication.framework */, 570DAAB0230273D200E8FC04 /* NearField.framework */, -@@ -11792,6 +11837,12 @@ +@@ -11832,6 +11877,12 @@ children = ( 9197940423DBC4BB00257892 /* InspectorBrowserAgent.cpp */, 9197940323DBC4BB00257892 /* InspectorBrowserAgent.h */, @@ -20021,7 +20238,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 ); path = Agents; sourceTree = ""; -@@ -11800,6 +11851,7 @@ +@@ -11840,6 +11891,7 @@ isa = PBXGroup; children = ( A5D3504D1D78F0D2005124A9 /* RemoteWebInspectorUIProxyMac.mm */, @@ -20029,7 +20246,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 1CA8B935127C774E00576C2B /* WebInspectorUIProxyMac.mm */, 99A7ACE326012919006D57FD /* WKInspectorResourceURLSchemeHandler.h */, 99A7ACE42601291A006D57FD /* WKInspectorResourceURLSchemeHandler.mm */, -@@ -12350,6 +12402,7 @@ +@@ -12420,6 +12472,7 @@ E1513C65166EABB200149FCB /* AuxiliaryProcessProxy.h */, 46A2B6061E5675A200C3DEDA /* BackgroundProcessResponsivenessTimer.cpp */, 46A2B6071E5675A200C3DEDA /* BackgroundProcessResponsivenessTimer.h */, @@ -20037,7 +20254,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 07297F9C1C1711EA003F0735 /* DeviceIdHashSaltStorage.cpp */, 07297F9D1C17BBEA223F0735 /* DeviceIdHashSaltStorage.h */, BC2652121182608100243E12 /* DrawingAreaProxy.cpp */, -@@ -12366,6 +12419,8 @@ +@@ -12436,6 +12489,8 @@ 2DD5A72A1EBF09A7009BA597 /* HiddenPageThrottlingAutoIncreasesCounter.h */, 839A2F2F1E2067390039057E /* HighPerformanceGraphicsUsageSampler.cpp */, 839A2F301E2067390039057E /* HighPerformanceGraphicsUsageSampler.h */, @@ -20046,7 +20263,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 5CEABA2B2333251400797797 /* LegacyGlobalSettings.cpp */, 5CEABA2A2333247700797797 /* LegacyGlobalSettings.h */, 31607F3819627002009B87DA /* LegacySessionStateCoding.h */, -@@ -12398,6 +12453,7 @@ +@@ -12470,6 +12525,7 @@ 1A0C227D2451130A00ED614D /* QuickLookThumbnailingSoftLink.mm */, 1AEE57232409F142002005D6 /* QuickLookThumbnailLoader.h */, 1AEE57242409F142002005D6 /* QuickLookThumbnailLoader.mm */, @@ -20054,7 +20271,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 BC111B08112F5E3C00337BAB /* ResponsivenessTimer.cpp */, 1A30066C1110F4F70031937C /* ResponsivenessTimer.h */, 5CA98549210BEB5A0057EB6B /* SafeBrowsingWarning.h */, -@@ -12499,6 +12555,8 @@ +@@ -12573,6 +12629,8 @@ BC7B6204129A0A6700D174A4 /* WebPageGroup.h */, 2D9EA3101A96D9EB002D2807 /* WebPageInjectedBundleClient.cpp */, 2D9EA30E1A96CBFF002D2807 /* WebPageInjectedBundleClient.h */, @@ -20063,7 +20280,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 BC111B0B112F5E4F00337BAB /* WebPageProxy.cpp */, BC032DCB10F4389F0058C15A /* WebPageProxy.h */, BCBD38FA125BAB9A00D2C29F /* WebPageProxy.messages.in */, -@@ -12657,6 +12715,7 @@ +@@ -12732,6 +12790,7 @@ BC646C1911DD399F006455B0 /* WKBackForwardListItemRef.h */, BC646C1611DD399F006455B0 /* WKBackForwardListRef.cpp */, BC646C1711DD399F006455B0 /* WKBackForwardListRef.h */, @@ -20071,7 +20288,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 BCB9E24A1120E15C00A137E0 /* WKContext.cpp */, BCB9E2491120E15C00A137E0 /* WKContext.h */, 1AE52F9319201F6B00A1FA37 /* WKContextConfigurationRef.cpp */, -@@ -13245,6 +13304,9 @@ +@@ -13316,6 +13375,9 @@ 0F49294628FF0F4B00AF8509 /* DisplayLinkProcessProxyClient.h */, 31ABA79C215AF9E000C90E31 /* HighPerformanceGPUManager.h */, 31ABA79D215AF9E000C90E31 /* HighPerformanceGPUManager.mm */, @@ -20081,7 +20298,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 1AFDE65B1954E8D500C48FFA /* LegacySessionStateCoding.cpp */, 0FCB4E5818BBE3D9000FCFC9 /* PageClientImplMac.h */, 0FCB4E5918BBE3D9000FCFC9 /* PageClientImplMac.mm */, -@@ -13271,6 +13333,8 @@ +@@ -13339,6 +13401,8 @@ E568B92120A3AC6A00E3C856 /* WebDataListSuggestionsDropdownMac.mm */, E55CD20124D09F1F0042DB9C /* WebDateTimePickerMac.h */, E55CD20224D09F1F0042DB9C /* WebDateTimePickerMac.mm */, @@ -20090,7 +20307,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 BC857E8512B71EBB00EDEB2E /* WebPageProxyMac.mm */, BC5750951268F3C6006F0F12 /* WebPopupMenuProxyMac.h */, BC5750961268F3C6006F0F12 /* WebPopupMenuProxyMac.mm */, -@@ -14510,6 +14574,7 @@ +@@ -14520,6 +14584,7 @@ 99788ACB1F421DDA00C08000 /* _WKAutomationSessionConfiguration.h in Headers */, 990D28AC1C6420CF00986977 /* _WKAutomationSessionDelegate.h in Headers */, 990D28B11C65208D00986977 /* _WKAutomationSessionInternal.h in Headers */, @@ -20098,15 +20315,15 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 5C4609E7224317B4009943C2 /* _WKContentRuleListAction.h in Headers */, 5C4609E8224317BB009943C2 /* _WKContentRuleListActionInternal.h in Headers */, 1A5704F81BE01FF400874AF1 /* _WKContextMenuElementInfo.h in Headers */, -@@ -14773,6 +14838,7 @@ +@@ -14790,6 +14855,7 @@ E170876C16D6CA6900F99226 /* BlobRegistryProxy.h in Headers */, 4F601432155C5AA2001FBDE0 /* BlockingResponseMap.h in Headers */, 1A5705111BE410E600874AF1 /* BlockSPI.h in Headers */, + D71A944C237239FB002C4D9E /* BrowserInspectorPipe.h in Headers */, BC3065FA1259344E00E71278 /* CacheModel.h in Headers */, - 41897ED81F415D8A0016FA42 /* CacheStorageEngine.h in Headers */, - 41FABD2A1F4DE001006A6C97 /* CacheStorageEngineCache.h in Headers */, -@@ -15042,7 +15108,11 @@ + 935BF7FC2936BF1A00B41326 /* CacheStorageCache.h in Headers */, + 934CF817294B884C00304F7D /* CacheStorageDiskStore.h in Headers */, +@@ -15066,7 +15132,11 @@ 2DD45ADE1E5F8972006C355F /* InputViewUpdateDeferrer.h in Headers */, CE550E152283752200D28791 /* InsertTextOptions.h in Headers */, 9197940523DBC4BB00257892 /* InspectorBrowserAgent.h in Headers */, @@ -20118,7 +20335,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 A5E391FD2183C1F800C8FB31 /* InspectorTargetProxy.h in Headers */, 51E9049C27BCB9D400929E7E /* InstallCoordinationSPI.h in Headers */, C5BCE5DF1C50766A00CDE3FA /* InteractionInformationAtPosition.h in Headers */, -@@ -15265,6 +15335,7 @@ +@@ -15287,6 +15357,7 @@ CDAC20CA23FC2F750021DEE3 /* RemoteCDMInstanceSession.h in Headers */, CDAC20C923FC2F750021DEE3 /* RemoteCDMInstanceSessionIdentifier.h in Headers */, F451C0FE2703B263002BA03B /* RemoteDisplayListRecorderProxy.h in Headers */, @@ -20126,7 +20343,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 2D47B56D1810714E003A3AEE /* RemoteLayerBackingStore.h in Headers */, 2DDF731518E95060004F5A66 /* RemoteLayerBackingStoreCollection.h in Headers */, 1AB16AEA164B3A8800290D62 /* RemoteLayerTreeContext.h in Headers */, -@@ -15322,6 +15393,7 @@ +@@ -15339,6 +15410,7 @@ E1E552C516AE065F004ED653 /* SandboxInitializationParameters.h in Headers */, E36FF00327F36FBD004BE21A /* SandboxStateVariables.h in Headers */, 7BAB111025DD02B3008FC479 /* ScopedActiveMessageReceiveQueue.h in Headers */, @@ -20134,7 +20351,7 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 E4D54D0421F1D72D007E3C36 /* ScrollingTreeFrameScrollingNodeRemoteIOS.h in Headers */, 0F931C1C18C5711900DBA7C3 /* ScrollingTreeOverflowScrollingNodeIOS.h in Headers */, 0F931C1C18C5711900DBB8D4 /* ScrollingTreeScrollingNodeDelegateIOS.h in Headers */, -@@ -15689,6 +15761,8 @@ +@@ -15705,6 +15777,8 @@ 2D9EA30F1A96CBFF002D2807 /* WebPageInjectedBundleClient.h in Headers */, 9197940823DBC4CB00257892 /* WebPageInspectorAgentBase.h in Headers */, A513F5402154A5D700662841 /* WebPageInspectorController.h in Headers */, @@ -20143,16 +20360,16 @@ index a0bbf5a4cb8fc2228760b63c4b541964f2a6888c..3d5c0ffaa08908c14d02d76bb5ffc9a1 A543E30C215C8A8D00279CD9 /* WebPageInspectorTarget.h in Headers */, A543E30D215C8A9000279CD9 /* WebPageInspectorTargetController.h in Headers */, A543E307215AD13700279CD9 /* WebPageInspectorTargetFrontendChannel.h in Headers */, -@@ -17920,6 +17994,8 @@ +@@ -17937,6 +18011,8 @@ 51E9049727BCB3D900929E7E /* ICAppBundle.mm in Sources */, 2749F6442146561B008380BF /* InjectedBundleNodeHandle.cpp in Sources */, 2749F6452146561E008380BF /* InjectedBundleRangeHandle.cpp in Sources */, + D7EB04E72372A73B00F744CE /* InspectorPlaywrightAgentClientMac.mm in Sources */, + D79902B2236E9404005D6F7E /* InspectorTargetProxyMac.mm in Sources */, + B6114A7F29394A1600380B1B /* JSWebExtensionAPIEvent.mm in Sources */, 1C5DC471290B33A20061EC62 /* JSWebExtensionAPIExtension.mm in Sources */, 1C5DC4552908AC900061EC62 /* JSWebExtensionAPINamespace.mm in Sources */, - 1C5DC472290B33A60061EC62 /* JSWebExtensionAPIRuntime.mm in Sources */, -@@ -18278,6 +18354,8 @@ +@@ -18304,6 +18380,8 @@ E3816B3D27E2463A005EAFC0 /* WebMockContentFilterManager.cpp in Sources */, 31BA924D148831260062EDB5 /* WebNotificationManagerMessageReceiver.cpp in Sources */, 2DF6FE52212E110900469030 /* WebPage.cpp in Sources */, @@ -20284,7 +20501,7 @@ index 571054e3fe382944f6996d7f8e3da5550bf8c993..19b3612cdccd2544bccb537b952f38a0 { 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 cfa563b7d34056c9375d4382ff42d55dab3daa14..baf0bdc4f441721d085ff86bd152a7ccb638d21c 100644 +index af139eb8713f22c8e3cc493d7f1892fcb0e4a8cd..71ef3007f1308ca186761ea28a7cee7916437d7f 100644 --- a/Source/WebKit/WebProcess/Network/WebLoaderStrategy.h +++ b/Source/WebKit/WebProcess/Network/WebLoaderStrategy.h @@ -41,6 +41,7 @@ struct FetchOptions; @@ -20350,10 +20567,10 @@ index f6cbdb00920e43b98b43f153797d60a622f113dc..6d1a6fb19056a6c87d8900c8022efc42 auto permissionHandlers = m_requestsPerOrigin.take(securityOrigin); diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp -index ba593851fd30144765ddb6b77f459f72500417f4..908095aed29359752f33e90e2381083a14a98e5f 100644 +index 4d6de0ce520acfe3bfad5ced87fed99e170450c2..e6e29252abec5af5a65c0a16fa12167ffb3b569a 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp +++ b/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp -@@ -423,6 +423,8 @@ void WebChromeClient::setResizable(bool resizable) +@@ -425,6 +425,8 @@ void WebChromeClient::setResizable(bool resizable) void WebChromeClient::addMessageToConsole(MessageSource source, MessageLevel level, const String& message, unsigned lineNumber, unsigned columnNumber, const String& sourceID) { @@ -20390,10 +20607,10 @@ index 2eb0886f13ed035a53b8eaa60605de4dfe53fbe3..c46393209cb4f80704bbc9268fad4371 { } diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp -index a8cedd88ff0caf7a582be0c00805fef791ae57bc..ac14a1487a3d2445c25c48bf8720108847a2607d 100644 +index fc875a316cb999d070e6b005cfe1eb4ea6e0f2e6..7f0111a31802c82a19d07c20187a1c46ed489e80 100644 --- a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp +++ b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp -@@ -1588,13 +1588,6 @@ void WebFrameLoaderClient::transitionToCommittedForNewPage() +@@ -1604,13 +1604,6 @@ void WebFrameLoaderClient::transitionToCommittedForNewPage() if (webPage->scrollPinningBehavior() != DoNotPin) view->setScrollPinningBehavior(webPage->scrollPinningBehavior()); @@ -20642,10 +20859,10 @@ index 6a21081b514678d2f36fd190266d3e60754d326c..721c40ba39b09821aa35b9fd7e4682cc if (m_lastPageScaleFactor != pageScale) { diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h -index 9af76856fa1d0b5e390ce45e1e916a4699f098ff..3513b8c356953a683c3c1070e8401f58cbf643d5 100644 +index 45e4bbd8225e738453a4fa2d8238874ceb03d9de..fa1ecdd2ea661014f6f8eded307db1a785274c95 100644 --- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h +++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h -@@ -102,6 +102,13 @@ public: +@@ -103,6 +103,13 @@ public: void adjustTransientZoom(double, WebCore::FloatPoint); void commitTransientZoom(double, WebCore::FloatPoint); #endif @@ -20660,7 +20877,7 @@ index 9af76856fa1d0b5e390ce45e1e916a4699f098ff..3513b8c356953a683c3c1070e8401f58 #if USE(COORDINATED_GRAPHICS) void layerFlushTimerFired(); diff --git a/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp b/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp -index 6cb8f0800f7c09ac3f46aaff431643b78464e349..c90eeed163f331ffaa9fff324457f335b529f3fc 100644 +index bae8ecf95094d558075e990a23efc42d2919bd4c..928e32f9e10ca660297a93330a86b2564d735a68 100644 --- a/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp +++ b/Source/WebKit/WebProcess/WebPage/DrawingArea.cpp @@ -27,6 +27,7 @@ @@ -20686,10 +20903,10 @@ index 6cb8f0800f7c09ac3f46aaff431643b78464e349..c90eeed163f331ffaa9fff324457f335 { if (m_hasRemovedMessageReceiver) diff --git a/Source/WebKit/WebProcess/WebPage/DrawingArea.h b/Source/WebKit/WebProcess/WebPage/DrawingArea.h -index c9c154f044a76be8d9ecff080417af8fdb013164..80ddeb7327f04277553c6e9cb778f76f67949030 100644 +index 43a414296c3a3d47816642c49b833ac7e83ab08b..7bc035ee52b40b5b1adde8509b6b7d51baaf07b2 100644 --- a/Source/WebKit/WebProcess/WebPage/DrawingArea.h +++ b/Source/WebKit/WebProcess/WebPage/DrawingArea.h -@@ -154,6 +154,9 @@ public: +@@ -158,6 +158,9 @@ public: virtual void didChangeViewportAttributes(WebCore::ViewportAttributes&&) = 0; virtual void deviceOrPageScaleFactorChanged() = 0; #endif @@ -20700,7 +20917,7 @@ index c9c154f044a76be8d9ecff080417af8fdb013164..80ddeb7327f04277553c6e9cb778f76f 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 04d4e6dc3778a79f15b29c6479a4b57587d5a4d2..eaddad1a56101624f9f46cb8cbb3eea9a3bcbfe0 100644 +index 90de993273cbf2dbcec26c6437eca7bb4b45d2ca..603ba4af6b0d88bb27269b4d24aae530f02e63fe 100644 --- a/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp @@ -38,6 +38,7 @@ @@ -20770,10 +20987,10 @@ index f127d64d005ab7b93875591b94a5899205e91579..df0de26e4dc449a0fbf93e7037444df4 uint64_t m_navigationID; }; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -index da9c92f4672cbd79fe1e3b5f27c1a66f69685e3e..be36d57d915b72250857124fb5e4639133affcb9 100644 +index 55b6e29d891a86b58b75fdc4423f254bcdca3382..269e82feccabebfcce7b6dac1c846a7db31cee78 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp +++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -@@ -222,6 +222,7 @@ +@@ -224,6 +224,7 @@ #include #include #include @@ -20781,17 +20998,17 @@ index da9c92f4672cbd79fe1e3b5f27c1a66f69685e3e..be36d57d915b72250857124fb5e46391 #include #include #include -@@ -969,6 +970,9 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) - #endif // USE(APPLE_INTERNAL_SDK) +@@ -979,6 +980,9 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) + sandbox_enable_state_flag("LockdownModeEnabled", *auditToken); #endif // HAVE(SANDBOX_STATE_FLAGS) + if (parameters.shouldPauseInInspectorWhenShown) + m_page->inspectorController().pauseWhenShown(); + updateThrottleState(); + #if ENABLE(ACCESSIBILITY_ANIMATION_CONTROL) updateImageAnimationEnabled(); - } -@@ -1730,6 +1734,22 @@ void WebPage::platformDidReceiveLoadParameters(const LoadParameters& loadParamet +@@ -1745,6 +1749,22 @@ void WebPage::platformDidReceiveLoadParameters(const LoadParameters& loadParamet } #endif @@ -20814,7 +21031,7 @@ index da9c92f4672cbd79fe1e3b5f27c1a66f69685e3e..be36d57d915b72250857124fb5e46391 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()); -@@ -2001,17 +2021,13 @@ void WebPage::setSize(const WebCore::IntSize& viewSize) +@@ -1991,17 +2011,13 @@ void WebPage::setSize(const WebCore::IntSize& viewSize) view->resize(viewSize); m_drawingArea->setNeedsDisplay(); @@ -20833,7 +21050,7 @@ index da9c92f4672cbd79fe1e3b5f27c1a66f69685e3e..be36d57d915b72250857124fb5e46391 // Viewport properties have no impact on zero sized fixed viewports. if (m_viewSize.isEmpty()) -@@ -2028,20 +2044,18 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg +@@ -2018,20 +2034,18 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg ViewportAttributes attr = computeViewportAttributes(viewportArguments, minimumLayoutFallbackWidth, deviceWidth, deviceHeight, 1, m_viewSize); @@ -20861,7 +21078,7 @@ index da9c92f4672cbd79fe1e3b5f27c1a66f69685e3e..be36d57d915b72250857124fb5e46391 #if USE(COORDINATED_GRAPHICS) m_drawingArea->didChangeViewportAttributes(WTFMove(attr)); -@@ -2049,7 +2063,6 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg +@@ -2039,7 +2053,6 @@ void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArg send(Messages::WebPageProxy::DidChangeViewportProperties(attr)); #endif } @@ -20869,7 +21086,7 @@ index da9c92f4672cbd79fe1e3b5f27c1a66f69685e3e..be36d57d915b72250857124fb5e46391 void WebPage::scrollMainFrameIfNotAtMaxScrollPosition(const IntSize& scrollOffset) { -@@ -2334,6 +2347,7 @@ void WebPage::scaleView(double scale) +@@ -2324,6 +2337,7 @@ void WebPage::scaleView(double scale) } m_page->setViewScaleFactor(scale); @@ -20877,7 +21094,7 @@ index da9c92f4672cbd79fe1e3b5f27c1a66f69685e3e..be36d57d915b72250857124fb5e46391 scalePage(pageScale, scrollPositionAtNewScale); } -@@ -2513,17 +2527,13 @@ void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArgum +@@ -2503,17 +2517,13 @@ void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArgum viewportConfigurationChanged(); #endif @@ -20896,7 +21113,7 @@ index da9c92f4672cbd79fe1e3b5f27c1a66f69685e3e..be36d57d915b72250857124fb5e46391 } void WebPage::listenForLayoutMilestones(OptionSet milestones) -@@ -3438,6 +3448,92 @@ void WebPage::touchEvent(const WebTouchEvent& touchEvent) +@@ -3426,6 +3436,92 @@ void WebPage::touchEvent(const WebTouchEvent& touchEvent) send(Messages::WebPageProxy::DidReceiveEvent(static_cast(touchEvent.type()), handled)); } @@ -20989,7 +21206,7 @@ index da9c92f4672cbd79fe1e3b5f27c1a66f69685e3e..be36d57d915b72250857124fb5e46391 #endif void WebPage::cancelPointer(WebCore::PointerID pointerId, const WebCore::IntPoint& documentPoint) -@@ -3514,6 +3610,11 @@ void WebPage::sendMessageToTargetBackend(const String& targetId, const String& m +@@ -3502,6 +3598,11 @@ void WebPage::sendMessageToTargetBackend(const String& targetId, const String& m m_inspectorTargetController->sendMessageToTargetBackend(targetId, message); } @@ -21001,7 +21218,7 @@ index da9c92f4672cbd79fe1e3b5f27c1a66f69685e3e..be36d57d915b72250857124fb5e46391 void WebPage::insertNewlineInQuotedContent() { Ref frame = CheckedRef(m_page->focusController())->focusedOrMainFrame(); -@@ -3746,6 +3847,7 @@ void WebPage::didCompletePageTransition() +@@ -3734,6 +3835,7 @@ void WebPage::didCompletePageTransition() void WebPage::show() { send(Messages::WebPageProxy::ShowPage()); @@ -21009,7 +21226,7 @@ index da9c92f4672cbd79fe1e3b5f27c1a66f69685e3e..be36d57d915b72250857124fb5e46391 } void WebPage::setIsTakingSnapshotsForApplicationSuspension(bool isTakingSnapshotsForApplicationSuspension) -@@ -4679,7 +4781,7 @@ NotificationPermissionRequestManager* WebPage::notificationPermissionRequestMana +@@ -4690,7 +4792,7 @@ NotificationPermissionRequestManager* WebPage::notificationPermissionRequestMana #if ENABLE(DRAG_SUPPORT) @@ -21018,7 +21235,7 @@ index da9c92f4672cbd79fe1e3b5f27c1a66f69685e3e..be36d57d915b72250857124fb5e46391 void WebPage::performDragControllerAction(DragControllerAction action, const IntPoint& clientPosition, const IntPoint& globalPosition, OptionSet draggingSourceOperationMask, SelectionData&& selectionData, OptionSet flags) { if (!m_page) { -@@ -7134,6 +7236,9 @@ Ref WebPage::createDocumentLoader(Frame& frame, const ResourceRe +@@ -7146,6 +7248,9 @@ Ref WebPage::createDocumentLoader(Frame& frame, const ResourceRe WebsitePoliciesData::applyToDocumentLoader(WTFMove(*m_pendingWebsitePolicies), documentLoader); m_pendingWebsitePolicies = std::nullopt; } @@ -21029,10 +21246,10 @@ index da9c92f4672cbd79fe1e3b5f27c1a66f69685e3e..be36d57d915b72250857124fb5e46391 return documentLoader; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.h b/Source/WebKit/WebProcess/WebPage/WebPage.h -index 8aedc5d2c3b678cf3147302e57eb9f4faced9bf5..f5634d181b78b1563ef8f009bb74bbfc115a4f03 100644 +index 0330cc32c8a0d8fa9ddcfb87b4c06d30e88af0a9..772cf50483eac52dbda824985f20340ce2c3d35c 100644 --- a/Source/WebKit/WebProcess/WebPage/WebPage.h +++ b/Source/WebKit/WebProcess/WebPage/WebPage.h -@@ -120,6 +120,10 @@ +@@ -121,6 +121,10 @@ #include "WebPrintOperationGtk.h" #endif @@ -21043,7 +21260,7 @@ index 8aedc5d2c3b678cf3147302e57eb9f4faced9bf5..f5634d181b78b1563ef8f009bb74bbfc #if PLATFORM(GTK) || PLATFORM(WPE) #include "InputMethodState.h" #endif -@@ -1031,11 +1035,11 @@ public: +@@ -1039,11 +1043,11 @@ public: void clearSelection(); void restoreSelectionInFocusedEditableElement(); @@ -21057,7 +21274,7 @@ index 8aedc5d2c3b678cf3147302e57eb9f4faced9bf5..f5634d181b78b1563ef8f009bb74bbfc void performDragControllerAction(DragControllerAction, WebCore::DragData&&, SandboxExtension::Handle&&, Vector&&); #endif -@@ -1049,6 +1053,9 @@ public: +@@ -1057,6 +1061,9 @@ public: void didStartDrag(); void dragCancelled(); OptionSet allowedDragSourceActions() const { return m_allowedDragSourceActions; } @@ -21067,7 +21284,7 @@ index 8aedc5d2c3b678cf3147302e57eb9f4faced9bf5..f5634d181b78b1563ef8f009bb74bbfc #endif void beginPrinting(WebCore::FrameIdentifier, const PrintInfo&); -@@ -1289,6 +1296,7 @@ public: +@@ -1298,6 +1305,7 @@ public: void connectInspector(const String& targetId, Inspector::FrontendChannel::ConnectionType); void disconnectInspector(const String& targetId); void sendMessageToTargetBackend(const String& targetId, const String& message); @@ -21075,15 +21292,15 @@ index 8aedc5d2c3b678cf3147302e57eb9f4faced9bf5..f5634d181b78b1563ef8f009bb74bbfc void insertNewlineInQuotedContent(); -@@ -1697,6 +1705,7 @@ private: +@@ -1712,6 +1720,7 @@ private: // Actions void tryClose(CompletionHandler&&); void platformDidReceiveLoadParameters(const LoadParameters&); + void loadRequestInFrameForInspector(LoadParameters&&, WebCore::FrameIdentifier); void loadRequest(LoadParameters&&); - NO_RETURN void loadRequestWaitingForProcessLaunch(LoadParameters&&, URL&&, WebPageProxyIdentifier, bool); + [[noreturn]] void loadRequestWaitingForProcessLaunch(LoadParameters&&, URL&&, WebPageProxyIdentifier, bool); void loadData(LoadParameters&&); -@@ -1734,6 +1743,7 @@ private: +@@ -1749,6 +1758,7 @@ private: void updatePotentialTapSecurityOrigin(const WebTouchEvent&, bool wasHandled); #elif ENABLE(TOUCH_EVENTS) void touchEvent(const WebTouchEvent&); @@ -21091,7 +21308,7 @@ index 8aedc5d2c3b678cf3147302e57eb9f4faced9bf5..f5634d181b78b1563ef8f009bb74bbfc #endif void cancelPointer(WebCore::PointerID, const WebCore::IntPoint&); -@@ -1879,9 +1889,7 @@ private: +@@ -1894,9 +1904,7 @@ private: void addLayerForFindOverlay(CompletionHandler&&); void removeLayerForFindOverlay(CompletionHandler&&); @@ -21101,7 +21318,7 @@ index 8aedc5d2c3b678cf3147302e57eb9f4faced9bf5..f5634d181b78b1563ef8f009bb74bbfc void didChangeSelectedIndexForActivePopupMenu(int32_t newIndex); void setTextForActivePopupMenu(int32_t index); -@@ -2428,6 +2436,7 @@ private: +@@ -2443,6 +2451,7 @@ private: UserActivity m_userActivity; uint64_t m_pendingNavigationID { 0 }; @@ -21110,7 +21327,7 @@ index 8aedc5d2c3b678cf3147302e57eb9f4faced9bf5..f5634d181b78b1563ef8f009bb74bbfc bool m_mainFrameProgressCompleted { false }; diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.messages.in b/Source/WebKit/WebProcess/WebPage/WebPage.messages.in -index 9355c3f0f2c8888445bfb48d8e5cf6b5944d23dd..c4b56070a1f207bfa52629bdad80aaaff8403a57 100644 +index 39f3677a8ae64394523d9f75c5bb3a0d3fa2f27e..2d0bc40d83a1fb532decb8ab560dc5e4cc40174d 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 @@ -21137,7 +21354,7 @@ index 9355c3f0f2c8888445bfb48d8e5cf6b5944d23dd..c4b56070a1f207bfa52629bdad80aaaf LoadRequestWaitingForProcessLaunch(struct WebKit::LoadParameters loadParameters, URL resourceDirectoryURL, WebKit::WebPageProxyIdentifier pageID, bool checkAssumedReadAccessToResourceURL) LoadData(struct WebKit::LoadParameters loadParameters) LoadSimulatedRequestAndResponse(struct WebKit::LoadParameters loadParameters, WebCore::ResourceResponse simulatedResponse) -@@ -348,10 +351,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -346,10 +349,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType AddMIMETypeWithCustomContentProvider(String mimeType) # Drag and drop. @@ -21150,7 +21367,7 @@ index 9355c3f0f2c8888445bfb48d8e5cf6b5944d23dd..c4b56070a1f207bfa52629bdad80aaaf PerformDragControllerAction(enum:uint8_t WebKit::DragControllerAction action, WebCore::DragData dragData, WebKit::SandboxExtension::Handle sandboxExtensionHandle, Vector sandboxExtensionsForUpload) #endif #if ENABLE(DRAG_SUPPORT) -@@ -360,6 +363,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType +@@ -358,6 +361,10 @@ GenerateSyntheticEditingCommand(enum:uint8_t WebKit::SyntheticEditingCommandType DragCancelled() #endif @@ -21162,10 +21379,10 @@ index 9355c3f0f2c8888445bfb48d8e5cf6b5944d23dd..c4b56070a1f207bfa52629bdad80aaaf 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 366f3ce3d84c09a87fe26281f2519333ab946c62..9cdbe9fbf4c22e78cd8eae2875e3e7953e84034e 100644 +index 2c54db78b995c1ef1e5d678f4f6f609a11de1108..a604179c3db130eb4371b756627cc00ffce8e553 100644 --- a/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm +++ b/Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm -@@ -779,21 +779,37 @@ String WebPage::platformUserAgent(const URL&) const +@@ -791,21 +791,37 @@ String WebPage::platformUserAgent(const URL&) const bool WebPage::hoverSupportedByPrimaryPointingDevice() const { @@ -21254,10 +21471,10 @@ index 2f83b4b4cc246eec07b7200c0bde3fd0e4b28ac1..29f7e89143449039efe558b1e0a3f071 } diff --git a/Source/WebKit/WebProcess/WebProcess.cpp b/Source/WebKit/WebProcess/WebProcess.cpp -index 769e54a6fc02229d6635419a09b8c5e655d5757b..cae3a4f41b9c08abaf7c3de312c5e39c29cbfdc3 100644 +index abd97ee3dd7e13179804820ef91d3592b2e54134..fe8f3324d324688b6c38f94611f0905a15630f01 100644 --- a/Source/WebKit/WebProcess/WebProcess.cpp +++ b/Source/WebKit/WebProcess/WebProcess.cpp -@@ -93,6 +93,7 @@ +@@ -94,6 +94,7 @@ #include "WebsiteData.h" #include "WebsiteDataStoreParameters.h" #include "WebsiteDataType.h" @@ -21265,7 +21482,7 @@ index 769e54a6fc02229d6635419a09b8c5e655d5757b..cae3a4f41b9c08abaf7c3de312c5e39c #include #include #include -@@ -365,6 +366,8 @@ void WebProcess::initializeProcess(const AuxiliaryProcessInitializationParameter +@@ -367,6 +368,8 @@ void WebProcess::initializeProcess(const AuxiliaryProcessInitializationParameter platformInitializeProcess(parameters); updateCPULimit(); @@ -21303,10 +21520,10 @@ index ec7085326a8e30c8a1a20f1ca33a3d875aaccc7b..52c855345447f5268fc4a1d65833f21b - (void)touch:(WebEvent *)event { diff --git a/Source/WebKitLegacy/mac/WebView/WebView.mm b/Source/WebKitLegacy/mac/WebView/WebView.mm -index a930db9f613b0c5f4ec42f3f2a4de916809d8844..b67478082dfb7fa0c509b5eb2dab2f65862bb576 100644 +index 75ac4aacf4e763f2910d397ef9626211a360de4d..854713f52cddc83ca79f60657ebf73e2fdb50a65 100644 --- a/Source/WebKitLegacy/mac/WebView/WebView.mm +++ b/Source/WebKitLegacy/mac/WebView/WebView.mm -@@ -4036,7 +4036,7 @@ + (void)_doNotStartObservingNetworkReachability +@@ -4027,7 +4027,7 @@ + (void)_doNotStartObservingNetworkReachability } #endif // PLATFORM(IOS_FAMILY) @@ -21315,7 +21532,7 @@ index a930db9f613b0c5f4ec42f3f2a4de916809d8844..b67478082dfb7fa0c509b5eb2dab2f65 - (NSArray *)_touchEventRegions { -@@ -4078,7 +4078,7 @@ - (NSArray *)_touchEventRegions +@@ -4069,7 +4069,7 @@ - (NSArray *)_touchEventRegions }).autorelease(); } @@ -21356,7 +21573,7 @@ index 0000000000000000000000000000000000000000..dd6a53e2d57318489b7e49dd7373706d + LIBVPX_LIBRARIES +) diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake -index 885a2befa0414996d6302b4658d40f4b67cbafcc..9f4ab5ca7befec61a76664981aa304e1df2c50c4 100644 +index 9ea0aa1b2fba32f68a04ccb77e14ebfba5fd594c..51253214e663c1dc2b03e23a87714893de40acdf 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 @@ -21404,7 +21621,7 @@ index 885a2befa0414996d6302b4658d40f4b67cbafcc..9f4ab5ca7befec61a76664981aa304e1 WEBKIT_OPTION_DEFINE(USE_WOFF2 "Whether to enable support for WOFF2 Web Fonts." PUBLIC ON) # Private options specific to the GTK port. Changing these options is -@@ -121,9 +130,9 @@ endif () +@@ -123,9 +132,9 @@ endif () # without approval from a GTK reviewer. There must be strong reason to support # changing the value of the option. WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PUBLIC ON) @@ -21416,7 +21633,7 @@ index 885a2befa0414996d6302b4658d40f4b67cbafcc..9f4ab5ca7befec61a76664981aa304e1 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPELLCHECK PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_CRYPTO PUBLIC ON) -@@ -153,7 +162,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_TIME PRIVATE ON) +@@ -155,7 +164,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_TIME PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_WEEK PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TRACKING_PREVENTION PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LAYER_BASED_SVG_ENGINE PRIVATE ON) @@ -21425,7 +21642,7 @@ index 885a2befa0414996d6302b4658d40f4b67cbafcc..9f4ab5ca7befec61a76664981aa304e1 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SESSION PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SESSION_PLAYLIST PRIVATE OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STREAM PRIVATE ON) -@@ -166,7 +175,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_CACHE_SPECULATIVE_REVALIDATION P +@@ -168,7 +177,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_CACHE_SPECULATIVE_REVALIDATION P WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_CACHE_STALE_WHILE_REVALIDATE PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_OFFSCREEN_CANVAS PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_OFFSCREEN_CANVAS_IN_WORKERS PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) @@ -21434,9 +21651,9 @@ index 885a2befa0414996d6302b4658d40f4b67cbafcc..9f4ab5ca7befec61a76664981aa304e1 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PERIODIC_MEMORY_MONITOR PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_POINTER_LOCK PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SERVICE_WORKER PRIVATE ON) -@@ -175,6 +184,15 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_API_STATISTICS PRIVATE ON) +@@ -177,6 +186,15 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_API_STATISTICS PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_RTC PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) - WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL2 PRIVATE ON) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL2 PRIVATE USE_OPENGL_OR_ES) +# Playwright +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_APPLICATION_MANIFEST PRIVATE ON) @@ -21450,7 +21667,7 @@ index 885a2befa0414996d6302b4658d40f4b67cbafcc..9f4ab5ca7befec61a76664981aa304e1 include(GStreamerDependencies) # Finalize the value for all options. Do not attempt to use an option before -@@ -283,6 +301,7 @@ if (NOT EXISTS "${TOOLS_DIR}/glib/apply-build-revision-to-files.py") +@@ -285,6 +303,7 @@ if (NOT EXISTS "${TOOLS_DIR}/glib/apply-build-revision-to-files.py") endif () SET_AND_EXPOSE_TO_BUILD(USE_ATSPI ${ENABLE_ACCESSIBILITY}) @@ -21459,7 +21676,7 @@ index 885a2befa0414996d6302b4658d40f4b67cbafcc..9f4ab5ca7befec61a76664981aa304e1 SET_AND_EXPOSE_TO_BUILD(HAVE_OS_DARK_MODE_SUPPORT 1) diff --git a/Source/cmake/OptionsWPE.cmake b/Source/cmake/OptionsWPE.cmake -index 6293aebadb81ee40a5dd19cdf6dbce9fd983c723..049dc02e30fc542f00a9dbd0b1bc7cb6ebda27aa 100644 +index 12bed350a4657abcf5c390e7630e20a2a336419f..72d838e3ef769bac22d5fad12d0e2e833b0a8e50 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 @@ -21545,7 +21762,7 @@ index 6293aebadb81ee40a5dd19cdf6dbce9fd983c723..049dc02e30fc542f00a9dbd0b1bc7cb6 # Private options specific to the WPE port. diff --git a/Source/cmake/OptionsWin.cmake b/Source/cmake/OptionsWin.cmake -index 9d6e8b0600ef87c63f6816b44d2fcb8fa2181f83..3ab82e5450581768875b6c8cbf27a7aaa560589f 100644 +index 79e4e9c1f7ab709fd3369435f52f9b427c761121..05b665cd27354499a422c052c460310bc7222aff 100644 --- a/Source/cmake/OptionsWin.cmake +++ b/Source/cmake/OptionsWin.cmake @@ -7,8 +7,9 @@ add_definitions(-D_WINDOWS -DWINVER=0x601 -D_WIN32_WINNT=0x601) @@ -21571,15 +21788,15 @@ index 9d6e8b0600ef87c63f6816b44d2fcb8fa2181f83..3ab82e5450581768875b6c8cbf27a7aa WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR PUBLIC OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATE PUBLIC OFF) -@@ -45,7 +44,6 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_SCRIPT PUBLIC ON) - WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SOURCE PUBLIC OFF) +@@ -47,7 +46,6 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SOURCE PUBLIC OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STATISTICS PUBLIC ON) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MINIBROWSER PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MOUSE_CURSOR_SCALE PUBLIC ON) -WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NOTIFICATIONS PUBLIC OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBASSEMBLY PRIVATE OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_AUDIO PUBLIC OFF) -@@ -88,6 +86,16 @@ if (${WTF_PLATFORM_WIN_CAIRO}) +@@ -90,6 +88,16 @@ if (${WTF_PLATFORM_WIN_CAIRO}) # No support planned WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTPDIR PRIVATE OFF) @@ -21597,7 +21814,7 @@ index 9d6e8b0600ef87c63f6816b44d2fcb8fa2181f83..3ab82e5450581768875b6c8cbf27a7aa WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API PRIVATE OFF) else () diff --git a/Source/cmake/OptionsWinCairo.cmake b/Source/cmake/OptionsWinCairo.cmake -index d4891defd8f682d86f258d7b62467f4a2fc1041f..ebded546c2dd38453699e932fee292b6f6d39bcf 100644 +index 8ee72e595446961e3ee47105eaebe99d7d47d0ca..be6fb810c4b811a0261646caabb93b23a9e77d54 100644 --- a/Source/cmake/OptionsWinCairo.cmake +++ b/Source/cmake/OptionsWinCairo.cmake @@ -40,19 +40,41 @@ if (OpenJPEG_FOUND) @@ -21652,14 +21869,14 @@ index d4891defd8f682d86f258d7b62467f4a2fc1041f..ebded546c2dd38453699e932fee292b6 -# CoreFoundation is required when building WebKitLegacy -if (ENABLE_WEBKIT_LEGACY) - SET_AND_EXPOSE_TO_BUILD(USE_CF ON) -- set(COREFOUNDATION_LIBRARY CFlite) +- find_package(Apple REQUIRED COMPONENTS CoreFoundation) -endif () +set(COREFOUNDATION_LIBRARY CFlite) add_definitions(-DWTF_PLATFORM_WIN_CAIRO=1) add_definitions(-DNOCRYPT) diff --git a/Source/cmake/WebKitCompilerFlags.cmake b/Source/cmake/WebKitCompilerFlags.cmake -index cadc61dc830ff88801fe1653ee594d6f7e67e870..32844513e7887b207cf3df7a785c8c1df992ba8c 100644 +index 074fdf58bcbdcf1b11b89de925bd69bdac90ed62..2bf423fa13ab2b48fbc06b2dc2a13d94924da58b 100644 --- a/Source/cmake/WebKitCompilerFlags.cmake +++ b/Source/cmake/WebKitCompilerFlags.cmake @@ -87,7 +87,7 @@ macro(WEBKIT_ADD_TARGET_CXX_FLAGS _target) @@ -21792,7 +22009,7 @@ index 72831873d5fd321a27494254876c6dee378be4c0..ffc6f5e153312e929a188552d97b661c typedef struct _BrowserWindow BrowserWindow; diff --git a/Tools/MiniBrowser/gtk/main.c b/Tools/MiniBrowser/gtk/main.c -index 2b232c87cbccaf60e30e3ad316f38538e059843b..154da257b55941ce7fd4259f457bdc826bacd8eb 100644 +index 9e597982bda6c0302fbbda9c3941dda6b48512cd..49b7665048fa34763089d609f151568385337c5d 100644 --- a/Tools/MiniBrowser/gtk/main.c +++ b/Tools/MiniBrowser/gtk/main.c @@ -66,7 +66,12 @@ static gboolean enableITP; @@ -21819,7 +22036,7 @@ index 2b232c87cbccaf60e30e3ad316f38538e059843b..154da257b55941ce7fd4259f457bdc82 { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &uriArguments, 0, "[URL…]" }, { 0, 0, 0, 0, 0, 0, 0 } }; -@@ -631,6 +640,57 @@ static void filterSavedCallback(WebKitUserContentFilterStore *store, GAsyncResul +@@ -625,6 +634,57 @@ static void filterSavedCallback(WebKitUserContentFilterStore *store, GAsyncResul g_main_loop_quit(data->mainLoop); } @@ -21877,7 +22094,7 @@ index 2b232c87cbccaf60e30e3ad316f38538e059843b..154da257b55941ce7fd4259f457bdc82 static void startup(GApplication *application) { const char *actionAccels[] = { -@@ -661,10 +721,22 @@ static void startup(GApplication *application) +@@ -655,10 +715,22 @@ static void startup(GApplication *application) static void activate(GApplication *application, WebKitSettings *webkitSettings) { @@ -21902,7 +22119,7 @@ index 2b232c87cbccaf60e30e3ad316f38538e059843b..154da257b55941ce7fd4259f457bdc82 char *dataDirectory = g_build_filename(g_get_user_data_dir(), "webkitgtk-" WEBKITGTK_API_VERSION, "MiniBrowser", NULL); char *cacheDirectory = g_build_filename(g_get_user_cache_dir(), "webkitgtk-" WEBKITGTK_API_VERSION, "MiniBrowser", NULL); manager = webkit_website_data_manager_new("base-data-directory", dataDirectory, "base-cache-directory", cacheDirectory, NULL); -@@ -690,6 +762,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings) +@@ -684,6 +756,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings) #endif "time-zone-override", timeZone, NULL); @@ -21910,7 +22127,7 @@ index 2b232c87cbccaf60e30e3ad316f38538e059843b..154da257b55941ce7fd4259f457bdc82 g_object_unref(manager); if (enableSandbox) -@@ -771,9 +844,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings) +@@ -765,9 +838,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings) if (exitAfterLoad) exitAfterWebViewLoadFinishes(webView, application); } @@ -21921,7 +22138,7 @@ index 2b232c87cbccaf60e30e3ad316f38538e059843b..154da257b55941ce7fd4259f457bdc82 } } else { WebKitWebView *webView = createBrowserTab(mainWindow, webkitSettings, userContentManager, defaultWebsitePolicies); -@@ -820,7 +891,7 @@ int main(int argc, char *argv[]) +@@ -814,7 +885,7 @@ int main(int argc, char *argv[]) g_option_context_add_group(context, gst_init_get_option_group()); #endif @@ -21930,7 +22147,7 @@ index 2b232c87cbccaf60e30e3ad316f38538e059843b..154da257b55941ce7fd4259f457bdc82 webkit_settings_set_enable_developer_extras(webkitSettings, TRUE); webkit_settings_set_enable_webgl(webkitSettings, TRUE); webkit_settings_set_enable_media_stream(webkitSettings, TRUE); -@@ -852,9 +923,11 @@ int main(int argc, char *argv[]) +@@ -846,9 +917,11 @@ int main(int argc, char *argv[]) } GtkApplication *application = gtk_application_new("org.webkitgtk.MiniBrowser", G_APPLICATION_NON_UNIQUE); @@ -22194,15 +22411,17 @@ index 38fd6896339c7ca66e5f31ff6ad93cc0f330f7e5..b857674667e32216204fa4f029f8a024 return 0; diff --git a/Tools/PlatformWin.cmake b/Tools/PlatformWin.cmake -index ef4407cfc114e602d98ed81724da504f453e258f..448dd483715162baba484f756fbcc1d72de4ba0c 100644 +index 1067b31bc989748dfcc5502209d36d001b9b239e..7629263fb8bc93dca6dfc01c75eed8d2921fce1f 100644 --- a/Tools/PlatformWin.cmake +++ b/Tools/PlatformWin.cmake -@@ -12,4 +12,5 @@ endif () - - if (ENABLE_WEBKIT) - add_subdirectory(WebKitTestRunner) -+ add_subdirectory(Playwright/win) +@@ -1,3 +1,7 @@ + if (ENABLE_MINIBROWSER) + add_subdirectory(MiniBrowser/win) endif () ++ ++if (ENABLE_WEBKIT) ++ add_subdirectory(Playwright/win) ++endif () diff --git a/Tools/Scripts/build-webkit b/Tools/Scripts/build-webkit index ed6c15ce06c25ef12b165552bd665c5108d209dc..267612eb7239cfa91f0c675ec18d097599e95de8 100755 --- a/Tools/Scripts/build-webkit @@ -22217,10 +22436,10 @@ index ed6c15ce06c25ef12b165552bd665c5108d209dc..267612eb7239cfa91f0c675ec18d0975 # WebInspectorUI must come after JavaScriptCore and WebCore but before WebKit and WebKit2 my $webKitIndex = first { $projects[$_] eq "Source/WebKitLegacy" } 0..$#projects; diff --git a/Tools/WebKitTestRunner/CMakeLists.txt b/Tools/WebKitTestRunner/CMakeLists.txt -index 9ee1f886d0148827da93466dece71d1eec5307cc..ee7d59af6b1ea62f6d4a61a19bf60a8f8c2444c5 100644 +index 7bc6f271a8c4902b74a3ab12d71a88860cdb64f4..5653a773d54830e5ff3ef048133caf7626d03eb7 100644 --- a/Tools/WebKitTestRunner/CMakeLists.txt +++ b/Tools/WebKitTestRunner/CMakeLists.txt -@@ -100,6 +100,9 @@ set(WebKitTestRunnerInjectedBundle_LIBRARIES +@@ -91,6 +91,9 @@ set(WebKitTestRunnerInjectedBundle_LIBRARIES WebKit::WebCoreTestSupport WebKit::WebKit ) @@ -22231,7 +22450,7 @@ index 9ee1f886d0148827da93466dece71d1eec5307cc..ee7d59af6b1ea62f6d4a61a19bf60a8f set(WebKitTestRunnerInjectedBundle_IDL_FILES "${WebKitTestRunner_DIR}/InjectedBundle/Bindings/AccessibilityController.idl" diff --git a/Tools/WebKitTestRunner/TestController.cpp b/Tools/WebKitTestRunner/TestController.cpp -index 04970776e5e5adf6f7102bd9a275f5712d5a1547..cb2112c711766c4ddd88b3d156fa812ee3b92811 100644 +index 0067f0213b4930fafbcabe777be7250edab9880c..a5adb7724f2b45c14b66bd1b5b278d5aade0b6de 100644 --- a/Tools/WebKitTestRunner/TestController.cpp +++ b/Tools/WebKitTestRunner/TestController.cpp @@ -941,6 +941,7 @@ void TestController::createWebViewWithOptions(const TestOptions& options) @@ -22243,10 +22462,10 @@ index 04970776e5e5adf6f7102bd9a275f5712d5a1547..cb2112c711766c4ddd88b3d156fa812e decidePolicyForMediaKeySystemPermissionRequest, nullptr, // requestWebAuthenticationNoGesture diff --git a/Tools/WebKitTestRunner/mac/EventSenderProxy.mm b/Tools/WebKitTestRunner/mac/EventSenderProxy.mm -index 402c0ec98a26e040765473c660c2a7fed5f4ea46..3b9594d0da435b35fb0e423d10d2852151615d91 100644 +index 74da77470592f0b9144b3d518991e705436462f3..2609be019cc1c4dc0b6b3cddf086b80e48475077 100644 --- a/Tools/WebKitTestRunner/mac/EventSenderProxy.mm +++ b/Tools/WebKitTestRunner/mac/EventSenderProxy.mm -@@ -896,4 +896,51 @@ void EventSenderProxy::scaleGestureEnd(double scale) +@@ -902,4 +902,51 @@ void EventSenderProxy::scaleGestureEnd(double scale) #endif // ENABLE(MAC_GESTURE_EVENTS) diff --git a/browser_patches/winldd/README.md b/browser_patches/winldd/README.md index d953b130d5..69c7ad0e4e 100644 --- a/browser_patches/winldd/README.md +++ b/browser_patches/winldd/README.md @@ -1,7 +1,7 @@ # Tool for printing .exe and .dll dependencies on Windows This is similar to `ldd` on linux in that loads specified files and tries to -resolve all DLLs referenced by it, printing in the format ` => | "no found"` +resolve all DLLs referenced by it, printing in the formar ` => | "no found"` To minimize dependencies we link all C runtime libraries statically, there is still one dynamic dependency on `dbghelp.dll` which is supposed to be preinstalled on all Windows machines. @@ -9,4 +9,4 @@ on all Windows machines. ## Build instructions Open `PrintDeps.sln` solution in Visual Studio 2019 and build `x64/Release` configuration. We -currently commit output binary into `bin/PrintDeps.exe` and bundle it in every npm. +currently commit output binary into `bin/PrintDeps.exe` and bundle it in every npm. \ No newline at end of file