Title: [235492] trunk/Source/WebKit
Revision
235492
Author
[email protected]
Date
2018-08-29 18:22:40 -0700 (Wed, 29 Aug 2018)

Log Message

Revert some of r235398
https://bugs.webkit.org/show_bug.cgi?id=189133

Patch by Alex Christensen <[email protected]> on 2018-08-29
Reviewed by Tim Horton.

* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::processDidCrash):
(API::LoaderClient::didChangeBackForwardList):
(API::LoaderClient::didCommitLoadForFrame):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChangeBackForwardList):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::dispatchProcessDidTerminate):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (235491 => 235492)


--- trunk/Source/WebKit/ChangeLog	2018-08-30 01:20:20 UTC (rev 235491)
+++ trunk/Source/WebKit/ChangeLog	2018-08-30 01:22:40 UTC (rev 235492)
@@ -1,3 +1,21 @@
+2018-08-29  Alex Christensen  <[email protected]>
+
+        Revert some of r235398
+        https://bugs.webkit.org/show_bug.cgi?id=189133
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/API/APILoaderClient.h:
+        (API::LoaderClient::processDidCrash):
+        (API::LoaderClient::didChangeBackForwardList):
+        (API::LoaderClient::didCommitLoadForFrame):
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageSetPageLoaderClient):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::didChangeBackForwardList):
+        (WebKit::WebPageProxy::didCommitLoadForFrame):
+        (WebKit::WebPageProxy::dispatchProcessDidTerminate):
+
 2018-08-29  Olivia Barnett  <[email protected]>
 
         Implement the Web Share API

Modified: trunk/Source/WebKit/UIProcess/API/APILoaderClient.h (235491 => 235492)


--- trunk/Source/WebKit/UIProcess/API/APILoaderClient.h	2018-08-30 01:20:20 UTC (rev 235491)
+++ trunk/Source/WebKit/UIProcess/API/APILoaderClient.h	2018-08-30 01:22:40 UTC (rev 235492)
@@ -63,6 +63,9 @@
     virtual void didFirstVisuallyNonEmptyLayoutForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Object*) { }
     virtual void didReachLayoutMilestone(WebKit::WebPageProxy&, WebCore::LayoutMilestones) { }
     virtual bool shouldKeepCurrentBackForwardListItemInList(WebKit::WebPageProxy&, WebKit::WebBackForwardListItem&) { return true; }
+    virtual bool processDidCrash(WebKit::WebPageProxy&) { return false; }
+    virtual void didChangeBackForwardList(WebKit::WebPageProxy&, WebKit::WebBackForwardListItem*, Vector<Ref<WebKit::WebBackForwardListItem>>&&) { }
+    virtual void didCommitLoadForFrame(WebKit::WebPageProxy&, WebKit::WebFrameProxy&, API::Navigation*, API::Object*) { }
 };
 
 } // namespace API

Modified: trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp (235491 => 235492)


--- trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp	2018-08-30 01:20:20 UTC (rev 235491)
+++ trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp	2018-08-30 01:22:40 UTC (rev 235492)
@@ -1044,7 +1044,6 @@
             initialize(client);
             
             // WKPageSetPageLoaderClient is deprecated. Use WKPageSetPageNavigationClient instead.
-            RELEASE_ASSERT(!m_client.didCommitLoadForFrame);
             RELEASE_ASSERT(!m_client.didFinishDocumentLoadForFrame);
             RELEASE_ASSERT(!m_client.didSameDocumentNavigationForFrame);
             RELEASE_ASSERT(!m_client.didReceiveTitleForFrame);
@@ -1059,8 +1058,6 @@
             RELEASE_ASSERT(!m_client.didFinishProgress);
             RELEASE_ASSERT(!m_client.processDidBecomeUnresponsive);
             RELEASE_ASSERT(!m_client.processDidBecomeResponsive);
-            RELEASE_ASSERT(!m_client.processDidCrash);
-            RELEASE_ASSERT(!m_client.didChangeBackForwardList);
             RELEASE_ASSERT(!m_client.shouldGoToBackForwardListItem);
             RELEASE_ASSERT(!m_client.didFailToInitializePlugin_deprecatedForUseWithV0);
             RELEASE_ASSERT(!m_client.didDetectXSSForFrame);
@@ -1081,6 +1078,15 @@
         }
 
     private:
+        
+        void didCommitLoadForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Navigation*, API::Object* userData) override
+        {
+            if (!m_client.didCommitLoadForFrame)
+                return;
+
+            m_client.didCommitLoadForFrame(toAPI(&page), toAPI(&frame), toAPI(userData), m_client.base.clientInfo);
+        }
+        
         void didStartProvisionalLoadForFrame(WebPageProxy& page, WebFrameProxy& frame, API::Navigation*, API::Object* userData) override
         {
             if (!m_client.didStartProvisionalLoadForFrame)
@@ -1137,6 +1143,33 @@
             m_client.didLayout(toAPI(&page), toWKLayoutMilestones(milestones), nullptr, m_client.base.clientInfo);
         }
 
+        bool processDidCrash(WebPageProxy& page) override
+        {
+            if (!m_client.processDidCrash)
+                return false;
+
+            m_client.processDidCrash(toAPI(&page), m_client.base.clientInfo);
+            return true;
+        }
+
+        void didChangeBackForwardList(WebPageProxy& page, WebBackForwardListItem* addedItem, Vector<Ref<WebBackForwardListItem>>&& removedItems) override
+        {
+            if (!m_client.didChangeBackForwardList)
+                return;
+
+            RefPtr<API::Array> removedItemsArray;
+            if (!removedItems.isEmpty()) {
+                Vector<RefPtr<API::Object>> removedItemsVector;
+                removedItemsVector.reserveInitialCapacity(removedItems.size());
+                for (auto& removedItem : removedItems)
+                removedItemsVector.append(WTFMove(removedItem));
+
+                removedItemsArray = API::Array::create(WTFMove(removedItemsVector));
+            }
+
+            m_client.didChangeBackForwardList(toAPI(&page), toAPI(addedItem), toAPI(removedItemsArray.get()), m_client.base.clientInfo);
+        }
+        
         bool shouldKeepCurrentBackForwardListItemInList(WebKit::WebPageProxy& page, WebKit::WebBackForwardListItem& item) override
         {
             if (!m_client.shouldKeepCurrentBackForwardListItemInList)

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (235491 => 235492)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2018-08-30 01:20:20 UTC (rev 235491)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2018-08-30 01:22:40 UTC (rev 235492)
@@ -1271,8 +1271,8 @@
 {
     PageClientProtector protector(m_pageClient);
 
-    if (m_navigationClient)
-        m_navigationClient->didChangeBackForwardList(*this, added, removed);
+    if (!m_navigationClient || !m_navigationClient->didChangeBackForwardList(*this, added, removed))
+        m_loaderClient->didChangeBackForwardList(*this, added, WTFMove(removed));
 
     auto transaction = m_pageLoadState.transaction();
 
@@ -3673,9 +3673,11 @@
 #endif
 
     m_pageLoadState.commitChanges();
-    if (m_navigationClient && frame->isMainFrame())
-        m_navigationClient->didCommitNavigation(*this, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get());
-
+    if (m_navigationClient) {
+        if (frame->isMainFrame())
+            m_navigationClient->didCommitNavigation(*this, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get());
+    } else
+        m_loaderClient->didCommitLoadForFrame(*this, *frame, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get());
 #if ENABLE(ATTACHMENT_ELEMENT)
     if (frame->isMainFrame())
         invalidateAllAttachments();
@@ -5922,6 +5924,8 @@
     bool handledByClient = false;
     if (m_navigationClient)
         handledByClient = m_navigationClient->processDidTerminate(*this, reason);
+    else if (reason != ProcessTerminationReason::RequestedByClient)
+        handledByClient = m_loaderClient->processDidCrash(*this);
 
     if (!handledByClient && shouldReloadAfterProcessTermination(reason))
         tryReloadAfterProcessTermination();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to