WebKit Bugzilla
Attachment 371563 Details for
Bug 196930
: process-swap-on-navigation error when loading blocked websites
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Part 2
bug-196930-20190606224635.patch (text/plain), 5.30 KB, created by
Andy Estes
on 2019-06-06 22:46:35 PDT
(
hide
)
Description:
Part 2
Filename:
MIME Type:
Creator:
Andy Estes
Created:
2019-06-06 22:46:35 PDT
Size:
5.30 KB
patch
obsolete
>Subversion Revision: 246154 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index e8032bb9c5f9c02df35d56b865fe1e4d10433309..099ec0fd768cfd32f2d0b6ac25574be69070661f 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,23 @@ >+2019-06-06 Andy Estes <aestes@apple.com> >+ >+ process-swap-on-navigation error when loading blocked website on iOS 12.2 only. >+ https://bugs.webkit.org/show_bug.cgi?id=196930 >+ <rdar://problem/47819301> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ The ContentFilterDidBlockLoadForFrame message needs to be handled by ProvisionalPageProxy in >+ order to look up the blocked frame in the correct WebProcessProxy. >+ >+ * UIProcess/Cocoa/WebPageProxyCocoa.mm: >+ (WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame): >+ (WebKit::WebPageProxy::contentFilterDidBlockLoadForFrameShared): >+ * UIProcess/ProvisionalPageProxy.cpp: >+ (WebKit::ProvisionalPageProxy::contentFilterDidBlockLoadForFrame): >+ (WebKit::ProvisionalPageProxy::didReceiveMessage): >+ * UIProcess/ProvisionalPageProxy.h: >+ * UIProcess/WebPageProxy.h: >+ > 2019-06-06 Michael Catanzaro <mcatanzaro@igalia.com> > > [WPE][GTK] Clean up use of initiatingPageID in implementation of webkit_uri_scheme_request_get_web_view() >diff --git a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm >index f9146811c5555480518f5dab6fde47ebcaa38308..f11b0f2bc8fb6eee8de3321e08f0e3c56452fbd2 100644 >--- a/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm >+++ b/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm >@@ -103,7 +103,12 @@ void WebPageProxy::beginSafeBrowsingCheck(const URL& url, bool forMainFrameNavig > #if ENABLE(CONTENT_FILTERING) > void WebPageProxy::contentFilterDidBlockLoadForFrame(const WebCore::ContentFilterUnblockHandler& unblockHandler, uint64_t frameID) > { >- if (WebFrameProxy* frame = m_process->webFrame(frameID)) >+ contentFilterDidBlockLoadForFrameShared(m_process.copyRef(), unblockHandler, frameID); >+} >+ >+void WebPageProxy::contentFilterDidBlockLoadForFrameShared(Ref<WebProcessProxy>&& process, const WebCore::ContentFilterUnblockHandler& unblockHandler, uint64_t frameID) >+{ >+ if (WebFrameProxy* frame = process->webFrame(frameID)) > frame->contentFilterDidBlockLoad(unblockHandler); > } > #endif >diff --git a/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp b/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp >index 7d548a5321eecbfc64bc14e916881e990c9690d6..ad4bd5b9e31c584a74bb64f950969536de0df58f 100644 >--- a/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp >+++ b/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp >@@ -376,6 +376,13 @@ void ProvisionalPageProxy::registerWebProcessAccessibilityToken(const IPC::DataR > } > #endif > >+#if ENABLE(CONTENT_FILTERING) >+void ProvisionalPageProxy::contentFilterDidBlockLoadForFrame(const WebCore::ContentFilterUnblockHandler& unblockHandler, uint64_t frameID) >+{ >+ m_page.contentFilterDidBlockLoadForFrameShared(m_process.copyRef(), unblockHandler, frameID); >+} >+#endif >+ > void ProvisionalPageProxy::didReceiveMessage(IPC::Connection& connection, IPC::Decoder& decoder) > { > ASSERT(decoder.messageReceiverName() == Messages::WebPageProxy::messageReceiverName()); >@@ -474,6 +481,13 @@ void ProvisionalPageProxy::didReceiveMessage(IPC::Connection& connection, IPC::D > } > #endif > >+#if ENABLE(CONTENT_FILTERING) >+ if (decoder.messageName() == Messages::WebPageProxy::ContentFilterDidBlockLoadForFrame::name()) { >+ IPC::handleMessage<Messages::WebPageProxy::ContentFilterDidBlockLoadForFrame>(decoder, this, &ProvisionalPageProxy::contentFilterDidBlockLoadForFrame); >+ return; >+ } >+#endif >+ > LOG(ProcessSwapping, "Unhandled message %s::%s from provisional process", decoder.messageReceiverName().toString().data(), decoder.messageName().toString().data()); > } > >diff --git a/Source/WebKit/UIProcess/ProvisionalPageProxy.h b/Source/WebKit/UIProcess/ProvisionalPageProxy.h >index 7d2f390231aeab370c77fc1af02ce4ed525a5dcc..65afb86b8102e4dc64f4894f12c931cda36397dd 100644 >--- a/Source/WebKit/UIProcess/ProvisionalPageProxy.h >+++ b/Source/WebKit/UIProcess/ProvisionalPageProxy.h >@@ -118,6 +118,9 @@ private: > #if PLATFORM(COCOA) > void registerWebProcessAccessibilityToken(const IPC::DataReference&); > #endif >+#if ENABLE(CONTENT_FILTERING) >+ void contentFilterDidBlockLoadForFrame(const WebCore::ContentFilterUnblockHandler&, uint64_t frameID); >+#endif > > void initializeWebPage(); > bool validateInput(uint64_t frameID, const Optional<uint64_t>& navigationID = WTF::nullopt); >diff --git a/Source/WebKit/UIProcess/WebPageProxy.h b/Source/WebKit/UIProcess/WebPageProxy.h >index 1cf8b6e892d1648755c59ddec636d082f576511e..f195b604b713366020694a5c46714d6dd24f78ba 100644 >--- a/Source/WebKit/UIProcess/WebPageProxy.h >+++ b/Source/WebKit/UIProcess/WebPageProxy.h >@@ -1521,6 +1521,9 @@ public: > #if USE(QUICK_LOOK) > void didRequestPasswordForQuickLookDocumentInMainFrameShared(Ref<WebProcessProxy>&&, const String& fileName); > #endif >+#if ENABLE(CONTENT_FILTERING) >+ void contentFilterDidBlockLoadForFrameShared(Ref<WebProcessProxy>&&, const WebCore::ContentFilterUnblockHandler&, uint64_t frameID); >+#endif > > void dumpAdClickAttribution(CompletionHandler<void(const String&)>&&); > void clearAdClickAttribution(CompletionHandler<void()>&&);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 196930
:
367477
|
367537
|
367541
|
367542
|
367559
|
367584
|
371531
|
371562
| 371563