Title: [235496] tags/Safari-607.1.4/Source/WebKit
Revision
235496
Author
[email protected]
Date
2018-08-29 22:05:19 -0700 (Wed, 29 Aug 2018)

Log Message

Cherry-pick r235492. rdar://problem/43860224

    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):

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235492 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: tags/Safari-607.1.4/Source/WebKit/ChangeLog (235495 => 235496)


--- tags/Safari-607.1.4/Source/WebKit/ChangeLog	2018-08-30 03:39:59 UTC (rev 235495)
+++ tags/Safari-607.1.4/Source/WebKit/ChangeLog	2018-08-30 05:05:19 UTC (rev 235496)
@@ -1,3 +1,44 @@
+2018-08-29  Babak Shafiei  <[email protected]>
+
+        Cherry-pick r235492. rdar://problem/43860224
+
+    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):
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235492 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    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-28  Don Olmstead  <[email protected]>
 
         [CMake] Use CMake's FindFreetype

Modified: tags/Safari-607.1.4/Source/WebKit/UIProcess/API/APILoaderClient.h (235495 => 235496)


--- tags/Safari-607.1.4/Source/WebKit/UIProcess/API/APILoaderClient.h	2018-08-30 03:39:59 UTC (rev 235495)
+++ tags/Safari-607.1.4/Source/WebKit/UIProcess/API/APILoaderClient.h	2018-08-30 05:05:19 UTC (rev 235496)
@@ -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: tags/Safari-607.1.4/Source/WebKit/UIProcess/API/C/WKPage.cpp (235495 => 235496)


--- tags/Safari-607.1.4/Source/WebKit/UIProcess/API/C/WKPage.cpp	2018-08-30 03:39:59 UTC (rev 235495)
+++ tags/Safari-607.1.4/Source/WebKit/UIProcess/API/C/WKPage.cpp	2018-08-30 05:05:19 UTC (rev 235496)
@@ -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: tags/Safari-607.1.4/Source/WebKit/UIProcess/WebPageProxy.cpp (235495 => 235496)


--- tags/Safari-607.1.4/Source/WebKit/UIProcess/WebPageProxy.cpp	2018-08-30 03:39:59 UTC (rev 235495)
+++ tags/Safari-607.1.4/Source/WebKit/UIProcess/WebPageProxy.cpp	2018-08-30 05:05:19 UTC (rev 235496)
@@ -1269,8 +1269,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();
 
@@ -3671,9 +3671,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();
@@ -5911,6 +5913,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