WebPage::close needs to remove all message receivers associated with that WebPage, not WebPage::~WebPage
Created attachment 361735 [details] Patch
<rdar://problem/47789393>
Comment on attachment 361735 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=361735&action=review r=me with nits. > Tools/TestWebKitAPI/Tests/WebKitCocoa/BundleRetainPagePlugIn.mm:40 > + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5*NSEC_PER_SEC), dispatch_get_main_queue(), [retainedPage = retainPtr(browserContextController)] { }); I think we usually have spaces around the * > Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:2407 > +void testReuseSuspendedProcessForRegularNavigation(bool retainPageInBundle) We usually use enum classes for such boolean parameters, see other tests in this file. > Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:2456 > + testReuseSuspendedProcessForRegularNavigation(true); Otherwise, call sites are not really readable.
Comment on attachment 361735 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=361735&action=review > Source/WebKit/WebProcess/WebPage/WebPage.cpp:1318 > + m_viewGestureGeometryCollector = nullptr; This needs to be protected like so: #if PLATFORM(COCOA) || PLATFORM(GTK) m_viewGestureGeometryCollector = nullptr; #endif
http://trac.webkit.org/r241306
Created attachment 361819 [details] patch for the safari-607-branch
*** Bug 193701 has been marked as a duplicate of this bug. ***
Although this bug does not make it clear, this was causing WebProcess hangs with PSON enabled because the WebPage would stop responding to IPC.