Title: [246201] trunk/Source/WebKit
- Revision
- 246201
- Author
- aes...@apple.com
- Date
- 2019-06-07 08:44:04 -0700 (Fri, 07 Jun 2019)
Log Message
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 Chris Dumez.
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:
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (246200 => 246201)
--- trunk/Source/WebKit/ChangeLog 2019-06-07 15:36:29 UTC (rev 246200)
+++ trunk/Source/WebKit/ChangeLog 2019-06-07 15:44:04 UTC (rev 246201)
@@ -1,3 +1,23 @@
+2019-06-07 Andy Estes <aes...@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 Chris Dumez.
+
+ 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-07 Carlos Garcia Campos <cgar...@igalia.com>
Unreviewed. Fix api used to release wpe_fdo_egl_exported_image in GTK
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm (246200 => 246201)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm 2019-06-07 15:36:29 UTC (rev 246200)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm 2019-06-07 15:44:04 UTC (rev 246201)
@@ -103,7 +103,12 @@
#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
Modified: trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp (246200 => 246201)
--- trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp 2019-06-07 15:36:29 UTC (rev 246200)
+++ trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp 2019-06-07 15:44:04 UTC (rev 246201)
@@ -376,6 +376,13 @@
}
#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 @@
}
#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());
}
Modified: trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.h (246200 => 246201)
--- trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.h 2019-06-07 15:36:29 UTC (rev 246200)
+++ trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.h 2019-06-07 15:44:04 UTC (rev 246201)
@@ -118,6 +118,9 @@
#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);
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (246200 => 246201)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.h 2019-06-07 15:36:29 UTC (rev 246200)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h 2019-06-07 15:44:04 UTC (rev 246201)
@@ -1521,6 +1521,9 @@
#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()>&&);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes