From f7b1f1e5fb4152ce93d432ec5cb09b7d351f8295 Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Fri, 3 Jan 2020 10:07:56 -0800 Subject: [PATCH] browser(webkit): wire target crashed signal (#363) --- browser_patches/webkit/BUILD_NUMBER | 2 +- browser_patches/webkit/patches/bootstrap.diff | 155 ++++++++++++++---- 2 files changed, 121 insertions(+), 36 deletions(-) diff --git a/browser_patches/webkit/BUILD_NUMBER b/browser_patches/webkit/BUILD_NUMBER index 22bcad02e7..bb5b992331 100644 --- a/browser_patches/webkit/BUILD_NUMBER +++ b/browser_patches/webkit/BUILD_NUMBER @@ -1 +1 @@ -1059 +1060 diff --git a/browser_patches/webkit/patches/bootstrap.diff b/browser_patches/webkit/patches/bootstrap.diff index 2fd974ef41..d49db21be1 100644 --- a/browser_patches/webkit/patches/bootstrap.diff +++ b/browser_patches/webkit/patches/bootstrap.diff @@ -194,7 +194,7 @@ index 4b95964db4d902b4b7f4b0b4c40afea51654ff2f..cecc44dd00bab6aa4f302274cc88af41 private: WTF::Function m_resumeCallback; diff --git a/Source/JavaScriptCore/inspector/agents/InspectorTargetAgent.cpp b/Source/JavaScriptCore/inspector/agents/InspectorTargetAgent.cpp -index 8fcb5a1e55750d325a84824d86c49cfe6fb04268..18f07dcedd2477ab35d765445aa41fb8ef7b410c 100644 +index 8fcb5a1e55750d325a84824d86c49cfe6fb04268..b0e22f247818f981e9dbd0981c09d46830cd338e 100644 --- a/Source/JavaScriptCore/inspector/agents/InspectorTargetAgent.cpp +++ b/Source/JavaScriptCore/inspector/agents/InspectorTargetAgent.cpp @@ -30,11 +30,12 @@ @@ -275,7 +275,26 @@ index 8fcb5a1e55750d325a84824d86c49cfe6fb04268..18f07dcedd2477ab35d765445aa41fb8 } void InspectorTargetAgent::targetDestroyed(InspectorTarget& target) -@@ -159,6 +189,18 @@ void InspectorTargetAgent::didCommitProvisionalTarget(const String& oldTargetID, +@@ -144,7 +174,17 @@ void InspectorTargetAgent::targetDestroyed(InspectorTarget& target) + if (!m_isConnected) + return; + +- m_frontendDispatcher->targetDestroyed(target.identifier()); ++ m_frontendDispatcher->targetDestroyed(target.identifier(), false); ++} ++ ++void InspectorTargetAgent::targetCrashed(InspectorTarget& target) ++{ ++ m_targets.remove(target.identifier()); ++ ++ if (!m_isConnected) ++ return; ++ ++ m_frontendDispatcher->targetDestroyed(target.identifier(), true); + } + + void InspectorTargetAgent::didCommitProvisionalTarget(const String& oldTargetID, const String& committedTargetID) +@@ -159,6 +199,18 @@ void InspectorTargetAgent::didCommitProvisionalTarget(const String& oldTargetID, m_frontendDispatcher->didCommitProvisionalTarget(oldTargetID, committedTargetID); } @@ -294,7 +313,7 @@ index 8fcb5a1e55750d325a84824d86c49cfe6fb04268..18f07dcedd2477ab35d765445aa41fb8 FrontendChannel::ConnectionType InspectorTargetAgent::connectionType() const { return m_router.hasLocalFrontend() ? Inspector::FrontendChannel::ConnectionType::Local : Inspector::FrontendChannel::ConnectionType::Remote; -@@ -168,7 +210,7 @@ void InspectorTargetAgent::connectToTargets() +@@ -168,7 +220,7 @@ void InspectorTargetAgent::connectToTargets() { for (InspectorTarget* target : m_targets.values()) { target->connect(connectionType()); @@ -304,7 +323,7 @@ index 8fcb5a1e55750d325a84824d86c49cfe6fb04268..18f07dcedd2477ab35d765445aa41fb8 } diff --git a/Source/JavaScriptCore/inspector/agents/InspectorTargetAgent.h b/Source/JavaScriptCore/inspector/agents/InspectorTargetAgent.h -index 1eb7abb2fa21d7a8ec0833160f53e5c523ec4317..a32d4235005ecd1d68fac132b3879e106d2a7e56 100644 +index 1eb7abb2fa21d7a8ec0833160f53e5c523ec4317..b10dd23de692fd5f447a9b845b5695ac369e8496 100644 --- a/Source/JavaScriptCore/inspector/agents/InspectorTargetAgent.h +++ b/Source/JavaScriptCore/inspector/agents/InspectorTargetAgent.h @@ -41,7 +41,7 @@ class JS_EXPORT_PRIVATE InspectorTargetAgent : public InspectorAgentBase, public @@ -316,7 +335,7 @@ index 1eb7abb2fa21d7a8ec0833160f53e5c523ec4317..a32d4235005ecd1d68fac132b3879e10 ~InspectorTargetAgent() override; // InspectorAgentBase -@@ -52,11 +52,14 @@ public: +@@ -52,15 +52,21 @@ public: void setPauseOnStart(ErrorString&, bool pauseOnStart) override; void resume(ErrorString&, const String& targetId) override; void sendMessageToTarget(ErrorString&, const String& targetId, const String& message) final; @@ -326,12 +345,19 @@ index 1eb7abb2fa21d7a8ec0833160f53e5c523ec4317..a32d4235005ecd1d68fac132b3879e10 // Target lifecycle. void targetCreated(InspectorTarget&); void targetDestroyed(InspectorTarget&); ++ void targetCrashed(InspectorTarget&); void didCommitProvisionalTarget(const String& oldTargetID, const String& committedTargetID); + void ensureConnected(const String& targetID); // Target messages. void sendMessageFromTargetToFrontend(const String& targetId, const String& message); -@@ -70,6 +73,7 @@ private: + ++ bool isConnected() { return m_isConnected; } ++ + private: + // FrontendChannel + FrontendChannel::ConnectionType connectionType() const; +@@ -70,6 +76,7 @@ private: Inspector::FrontendRouter& m_router; std::unique_ptr m_frontendDispatcher; Ref m_backendDispatcher; @@ -876,7 +902,7 @@ index 658f14f8af68073b99a01dd7332628223b67fcd7..a8558f5093cedcec7884c6acc03b8bc3 "name": "webSocketWillSendHandshakeRequest", "description": "Fired when WebSocket is about to initiate handshake.", diff --git a/Source/JavaScriptCore/inspector/protocol/Page.json b/Source/JavaScriptCore/inspector/protocol/Page.json -index a8fc5332ac92424b00a3dec62152fd3c5f28544e..653498e9033b1e55f04ec1a0126500c4530e2412 100644 +index a8fc5332ac92424b00a3dec62152fd3c5f28544e..f68b0722868fbfb449354dead34def546edc3ca7 100644 --- a/Source/JavaScriptCore/inspector/protocol/Page.json +++ b/Source/JavaScriptCore/inspector/protocol/Page.json @@ -110,6 +110,40 @@ @@ -957,7 +983,7 @@ index a8fc5332ac92424b00a3dec62152fd3c5f28544e..653498e9033b1e55f04ec1a0126500c4 { "name": "snapshotNode", "description": "Capture a snapshot of the specified node that does not include unrelated layers.", -@@ -276,19 +327,64 @@ +@@ -276,19 +327,68 @@ "returns": [ { "name": "data", "type": "string", "description": "Base64-encoded web archive." } ] @@ -1004,6 +1030,10 @@ index a8fc5332ac92424b00a3dec62152fd3c5f28544e..653498e9033b1e55f04ec1a0126500c4 + "parameters": [ + { "name": "enabled", "type": "boolean", "description": "Whether to bypass page CSP." } + ] ++ }, ++ { ++ "name": "crash", ++ "description": "Crashes the page process" } ], "events": [ @@ -1024,7 +1054,7 @@ index a8fc5332ac92424b00a3dec62152fd3c5f28544e..653498e9033b1e55f04ec1a0126500c4 ] }, { -@@ -298,6 +394,14 @@ +@@ -298,6 +398,14 @@ { "name": "frame", "$ref": "Frame", "description": "Frame object." } ] }, @@ -1039,7 +1069,7 @@ index a8fc5332ac92424b00a3dec62152fd3c5f28544e..653498e9033b1e55f04ec1a0126500c4 { "name": "frameDetached", "description": "Fired when frame has been detached from its parent.", -@@ -334,12 +438,36 @@ +@@ -334,12 +442,36 @@ { "name": "frameId", "$ref": "Network.FrameId", "description": "Id of the frame that has cleared its scheduled navigation." } ] }, @@ -1077,7 +1107,7 @@ index a8fc5332ac92424b00a3dec62152fd3c5f28544e..653498e9033b1e55f04ec1a0126500c4 ] } diff --git a/Source/JavaScriptCore/inspector/protocol/Target.json b/Source/JavaScriptCore/inspector/protocol/Target.json -index 52920cded24a9c6b0ef6fb4e518664955db4f9fa..5849e4fbea626570389d27037f4fd2d99c3526ce 100644 +index 52920cded24a9c6b0ef6fb4e518664955db4f9fa..a1bf5f930ac3d58a97397a7a6b918919b4d55c60 100644 --- a/Source/JavaScriptCore/inspector/protocol/Target.json +++ b/Source/JavaScriptCore/inspector/protocol/Target.json @@ -10,8 +10,12 @@ @@ -1117,6 +1147,16 @@ index 52920cded24a9c6b0ef6fb4e518664955db4f9fa..5849e4fbea626570389d27037f4fd2d9 } ], "events": [ +@@ -49,7 +68,8 @@ + { + "name": "targetDestroyed", + "parameters": [ +- { "name": "targetId", "type": "string" } ++ { "name": "targetId", "type": "string" }, ++ { "name": "crashed", "type": "boolean" } + ] + }, + { diff --git a/Source/WebCore/Modules/geolocation/Geolocation.cpp b/Source/WebCore/Modules/geolocation/Geolocation.cpp index a256d2f8a42548c42ae3c955d9502cc0ad893d91..7e30dfcec151304b21b39286a841e38e35fa3ecf 100644 --- a/Source/WebCore/Modules/geolocation/Geolocation.cpp @@ -2191,7 +2231,7 @@ index a68f84520736977c8b9216616c5a178fbf5275d6..c36811c04d95c78b7747e6e625bf79ea // FIXME: InspectorNetworkAgent should not be aware of style recalculation. RefPtr m_styleRecalculationInitiator; diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp -index d4e6b5d1f2151a1f4c16081b2695dd66da416ba2..4c1aa6ad59eac80443846af519e72a0e0a0b6ad8 100644 +index d4e6b5d1f2151a1f4c16081b2695dd66da416ba2..8e54267226f5fe66c10f1dc7251be9c320b9b062 100644 --- a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp @@ -32,6 +32,8 @@ @@ -2410,7 +2450,7 @@ index d4e6b5d1f2151a1f4c16081b2695dd66da416ba2..4c1aa6ad59eac80443846af519e72a0e void InspectorPageAgent::archive(ErrorString& errorString, String* data) { #if ENABLE(WEB_ARCHIVE) && USE(CF) -@@ -979,4 +1056,491 @@ void InspectorPageAgent::archive(ErrorString& errorString, String* data) +@@ -979,4 +1056,495 @@ void InspectorPageAgent::archive(ErrorString& errorString, String* data) #endif } @@ -2900,10 +2940,14 @@ index d4e6b5d1f2151a1f4c16081b2695dd66da416ba2..4c1aa6ad59eac80443846af519e72a0e +void InspectorPageAgent::setBypassCSP(ErrorString&, bool enabled) { + m_bypassCSP = enabled; +} ++ ++void InspectorPageAgent::crash(ErrorString&) { ++ CRASH(); ++} + } // namespace WebCore diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.h b/Source/WebCore/inspector/agents/InspectorPageAgent.h -index 3f3bbb8fce82044c1c230b0ae7186612cc5d45cf..8ff517017877ce69fcdc468527831b4ac6ca2e8d 100644 +index 3f3bbb8fce82044c1c230b0ae7186612cc5d45cf..1fcc543029bbc041a3a52e412b0b071e1070d36a 100644 --- a/Source/WebCore/inspector/agents/InspectorPageAgent.h +++ b/Source/WebCore/inspector/agents/InspectorPageAgent.h @@ -40,10 +40,15 @@ @@ -2933,7 +2977,7 @@ index 3f3bbb8fce82044c1c230b0ae7186612cc5d45cf..8ff517017877ce69fcdc468527831b4a void overrideUserAgent(ErrorString&, const String* value) override; void overrideSetting(ErrorString&, const String& setting, const bool* value) override; void getCookies(ErrorString&, RefPtr>& cookies) override; -@@ -110,13 +117,20 @@ public: +@@ -110,13 +117,21 @@ public: void setShowPaintRects(ErrorString&, bool show) override; void setEmulatedMedia(ErrorString&, const String&) override; void setForcedAppearance(ErrorString&, const String&) override; @@ -2948,6 +2992,7 @@ index 3f3bbb8fce82044c1c230b0ae7186612cc5d45cf..8ff517017877ce69fcdc468527831b4a + void setDefaultBackgroundColorOverride(ErrorString&, const JSON::Object*) override; + void createIsolatedWorld(ErrorString&, const String&, const String*) override; + void setBypassCSP(ErrorString&, bool) override; ++ void crash(ErrorString&) override; // InspectorInstrumentation - void domContentEventFired(); @@ -2957,7 +3002,7 @@ index 3f3bbb8fce82044c1c230b0ae7186612cc5d45cf..8ff517017877ce69fcdc468527831b4a void frameNavigated(Frame&); void frameDetached(Frame&); void loaderDetachedFromFrame(DocumentLoader&); -@@ -124,19 +138,24 @@ public: +@@ -124,19 +139,24 @@ public: void frameStoppedLoading(Frame&); void frameScheduledNavigation(Frame&, Seconds delay); void frameClearedScheduledNavigation(Frame&); @@ -2983,7 +3028,7 @@ index 3f3bbb8fce82044c1c230b0ae7186612cc5d45cf..8ff517017877ce69fcdc468527831b4a private: double timestamp(); -@@ -151,6 +170,7 @@ private: +@@ -151,6 +171,7 @@ private: RefPtr m_backendDispatcher; Page& m_inspectedPage; @@ -2991,7 +3036,7 @@ index 3f3bbb8fce82044c1c230b0ae7186612cc5d45cf..8ff517017877ce69fcdc468527831b4a InspectorClient* m_client { nullptr }; InspectorOverlay* m_overlay { nullptr }; -@@ -161,8 +181,11 @@ private: +@@ -161,8 +182,11 @@ private: String m_emulatedMedia; String m_forcedAppearance; String m_bootstrapScript; @@ -6478,7 +6523,7 @@ index 846a5aa27dfab3d274cffa4873861f2587d17fd8..cf0dc99f5601636c48abff09cd47ace4 } diff --git a/Source/WebKit/UIProcess/WebPageInspectorController.cpp b/Source/WebKit/UIProcess/WebPageInspectorController.cpp -index 1ee28bf716374371433215148aa20a51927a8a33..c1c918d6e2adc8d389219cf05e626aefeedd9d7c 100644 +index 1ee28bf716374371433215148aa20a51927a8a33..598e7f52d498eca6544a2bdbb9718b2fe4997f1d 100644 --- a/Source/WebKit/UIProcess/WebPageInspectorController.cpp +++ b/Source/WebKit/UIProcess/WebPageInspectorController.cpp @@ -26,10 +26,13 @@ @@ -6495,7 +6540,7 @@ index 1ee28bf716374371433215148aa20a51927a8a33..c1c918d6e2adc8d389219cf05e626aef #include #include #include -@@ -46,26 +49,56 @@ static String getTargetID(const ProvisionalPageProxy& provisionalPage) +@@ -46,31 +49,75 @@ static String getTargetID(const ProvisionalPageProxy& provisionalPage) return WebPageInspectorTarget::toTargetID(provisionalPage.webPageID()); } @@ -6553,7 +6598,26 @@ index 1ee28bf716374371433215148aa20a51927a8a33..c1c918d6e2adc8d389219cf05e626aef disconnectAllFrontends(); m_agents.discardValues(); -@@ -80,6 +113,9 @@ void WebPageInspectorController::connectFrontend(Inspector::FrontendChannel& fro + } + ++bool WebPageInspectorController::pageCrashed(ProcessTerminationReason reason) ++{ ++ if (reason != ProcessTerminationReason::Crash) ++ return false; ++ String targetId = WebPageInspectorTarget::toTargetID(m_page.webPageID()); ++ auto it = m_targets.find(targetId); ++ if (it == m_targets.end()) ++ return false; ++ m_targetAgent->targetCrashed(*it->value); ++ m_targets.remove(it); ++ ++ return m_targetAgent->isConnected(); ++} ++ + bool WebPageInspectorController::hasLocalFrontend() const + { + return m_frontendRouter->hasLocalFrontend(); +@@ -80,6 +127,9 @@ void WebPageInspectorController::connectFrontend(Inspector::FrontendChannel& fro { bool connectingFirstFrontend = !m_frontendRouter->hasFrontends(); @@ -6563,7 +6627,7 @@ index 1ee28bf716374371433215148aa20a51927a8a33..c1c918d6e2adc8d389219cf05e626aef m_frontendRouter->connectFrontend(frontendChannel); if (connectingFirstFrontend) -@@ -134,6 +170,16 @@ void WebPageInspectorController::dispatchMessageFromFrontend(const String& messa +@@ -134,6 +184,16 @@ void WebPageInspectorController::dispatchMessageFromFrontend(const String& messa m_backendDispatcher->dispatch(message); } @@ -6580,7 +6644,7 @@ index 1ee28bf716374371433215148aa20a51927a8a33..c1c918d6e2adc8d389219cf05e626aef #if ENABLE(REMOTE_INSPECTOR) void WebPageInspectorController::setIndicating(bool indicating) { -@@ -150,7 +196,12 @@ void WebPageInspectorController::setIndicating(bool indicating) +@@ -150,7 +210,12 @@ void WebPageInspectorController::setIndicating(bool indicating) void WebPageInspectorController::createInspectorTarget(const String& targetId, Inspector::InspectorTargetType type) { @@ -6594,7 +6658,7 @@ index 1ee28bf716374371433215148aa20a51927a8a33..c1c918d6e2adc8d389219cf05e626aef } void WebPageInspectorController::destroyInspectorTarget(const String& targetId) -@@ -186,7 +237,7 @@ void WebPageInspectorController::setContinueLoadingCallback(const ProvisionalPag +@@ -186,7 +251,7 @@ void WebPageInspectorController::setContinueLoadingCallback(const ProvisionalPag void WebPageInspectorController::didCreateProvisionalPage(ProvisionalPageProxy& provisionalPage) { @@ -6603,7 +6667,7 @@ index 1ee28bf716374371433215148aa20a51927a8a33..c1c918d6e2adc8d389219cf05e626aef } void WebPageInspectorController::willDestroyProvisionalPage(const ProvisionalPageProxy& provisionalPage) -@@ -214,8 +265,22 @@ void WebPageInspectorController::didCommitProvisionalPage(WebCore::PageIdentifie +@@ -214,8 +279,22 @@ void WebPageInspectorController::didCommitProvisionalPage(WebCore::PageIdentifie void WebPageInspectorController::addTarget(std::unique_ptr&& target) { @@ -6627,10 +6691,18 @@ index 1ee28bf716374371433215148aa20a51927a8a33..c1c918d6e2adc8d389219cf05e626aef + } // namespace WebKit diff --git a/Source/WebKit/UIProcess/WebPageInspectorController.h b/Source/WebKit/UIProcess/WebPageInspectorController.h -index 78caedf0c0ce83675569502d150fcc44e5f9868c..a380d778c36fdd718dc506c28fee23498cabd17a 100644 +index 78caedf0c0ce83675569502d150fcc44e5f9868c..9bc67fcf707bc191ccc3ac1372afef82fbffda83 100644 --- a/Source/WebKit/UIProcess/WebPageInspectorController.h +++ b/Source/WebKit/UIProcess/WebPageInspectorController.h -@@ -37,10 +37,22 @@ namespace Inspector { +@@ -26,6 +26,7 @@ + #pragma once + + #include "InspectorTargetProxy.h" ++#include "ProcessTerminationReason.h" + #include + #include + #include +@@ -37,10 +38,22 @@ namespace Inspector { class BackendDispatcher; class FrontendChannel; class FrontendRouter; @@ -6653,7 +6725,7 @@ index 78caedf0c0ce83675569502d150fcc44e5f9868c..a380d778c36fdd718dc506c28fee2349 class WebPageInspectorController { WTF_MAKE_NONCOPYABLE(WebPageInspectorController); WTF_MAKE_FAST_ALLOCATED; -@@ -48,7 +60,12 @@ public: +@@ -48,7 +61,13 @@ public: WebPageInspectorController(WebPageProxy&); void init(); @@ -6662,11 +6734,12 @@ index 78caedf0c0ce83675569502d150fcc44e5f9868c..a380d778c36fdd718dc506c28fee2349 + static void setObserver(WebPageInspectorControllerObserver*); + void pageClosed(); ++ bool pageCrashed(ProcessTerminationReason); + void didProcessAllPendingKeyboardEvents(); bool hasLocalFrontend() const; -@@ -57,6 +74,8 @@ public: +@@ -57,6 +76,8 @@ public: void disconnectAllFrontends(); void dispatchMessageFromFrontend(const String& message); @@ -6675,7 +6748,7 @@ index 78caedf0c0ce83675569502d150fcc44e5f9868c..a380d778c36fdd718dc506c28fee2349 #if ENABLE(REMOTE_INSPECTOR) void setIndicating(bool); -@@ -75,6 +94,7 @@ public: +@@ -75,6 +96,7 @@ public: private: void addTarget(std::unique_ptr&&); @@ -6683,7 +6756,7 @@ index 78caedf0c0ce83675569502d150fcc44e5f9868c..a380d778c36fdd718dc506c28fee2349 WebPageProxy& m_page; Ref m_frontendRouter; -@@ -82,6 +102,8 @@ private: +@@ -82,6 +104,8 @@ private: Inspector::AgentRegistry m_agents; Inspector::InspectorTargetAgent* m_targetAgent; HashMap> m_targets; @@ -7294,7 +7367,7 @@ index 0000000000000000000000000000000000000000..033f936d9d3caf594b78bb6ad39249d6 + +} // namespace WebKit diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp -index 9b868717128b9f0b592c94c3b325507d99d6797b..aedb135c4f1f26eb34af1571e23ad9a3713fac7b 100644 +index 9b868717128b9f0b592c94c3b325507d99d6797b..3790500d0c6018c994d5fd5ba4e2eec77be5817a 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.cpp +++ b/Source/WebKit/UIProcess/WebPageProxy.cpp @@ -889,6 +889,7 @@ void WebPageProxy::finishAttachingToWebProcess(ProcessLaunchReason reason) @@ -7413,7 +7486,19 @@ index 9b868717128b9f0b592c94c3b325507d99d6797b..aedb135c4f1f26eb34af1571e23ad9a3 } break; } -@@ -7595,6 +7619,10 @@ void WebPageProxy::gamepadActivity(const Vector& gamepadDatas, bool +@@ -7148,8 +7172,10 @@ static bool shouldReloadAfterProcessTermination(ProcessTerminationReason reason) + void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason) + { + RELEASE_LOG_IF_ALLOWED(Loading, "dispatchProcessDidTerminate: reason = %d", reason); ++ bool handledByClient = m_inspectorController->pageCrashed(reason); ++ if (handledByClient) ++ return; + +- bool handledByClient = false; + if (m_loaderClient) + handledByClient = reason != ProcessTerminationReason::RequestedByClient && m_loaderClient->processDidCrash(*this); + else +@@ -7595,6 +7621,10 @@ void WebPageProxy::gamepadActivity(const Vector& gamepadDatas, bool void WebPageProxy::didReceiveAuthenticationChallengeProxy(Ref&& authenticationChallenge) { @@ -7424,7 +7509,7 @@ index 9b868717128b9f0b592c94c3b325507d99d6797b..aedb135c4f1f26eb34af1571e23ad9a3 m_navigationClient->didReceiveAuthenticationChallenge(*this, authenticationChallenge.get()); } -@@ -7656,7 +7684,8 @@ void WebPageProxy::requestGeolocationPermissionForFrame(uint64_t geolocationID, +@@ -7656,7 +7686,8 @@ void WebPageProxy::requestGeolocationPermissionForFrame(uint64_t geolocationID, MESSAGE_CHECK(m_process, frame); // FIXME: Geolocation should probably be using toString() as its string representation instead of databaseIdentifier(). @@ -7434,7 +7519,7 @@ index 9b868717128b9f0b592c94c3b325507d99d6797b..aedb135c4f1f26eb34af1571e23ad9a3 auto request = m_geolocationPermissionRequestManager.createRequest(geolocationID); Function completionHandler = [request = WTFMove(request)](bool allowed) { if (allowed) -@@ -7664,6 +7693,11 @@ void WebPageProxy::requestGeolocationPermissionForFrame(uint64_t geolocationID, +@@ -7664,6 +7695,11 @@ void WebPageProxy::requestGeolocationPermissionForFrame(uint64_t geolocationID, else request->deny(); };