Title: [236030] trunk/Source/WebKit
Revision
236030
Author
[email protected]
Date
2018-09-14 18:20:27 -0700 (Fri, 14 Sep 2018)

Log Message

Unreviewed, rolling out r236020.

This caused an api failure on High Sierra

Reverted changeset:

"Refactoring related to Safe Browsing"
https://bugs.webkit.org/show_bug.cgi?id=189631
https://trac.webkit.org/changeset/236020

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (236029 => 236030)


--- trunk/Source/WebKit/ChangeLog	2018-09-15 00:46:47 UTC (rev 236029)
+++ trunk/Source/WebKit/ChangeLog	2018-09-15 01:20:27 UTC (rev 236030)
@@ -1,3 +1,15 @@
+2018-09-14  Matt Lewis  <[email protected]>
+
+        Unreviewed, rolling out r236020.
+
+        This caused an api failure on High Sierra
+
+        Reverted changeset:
+
+        "Refactoring related to Safe Browsing"
+        https://bugs.webkit.org/show_bug.cgi?id=189631
+        https://trac.webkit.org/changeset/236020
+
 2018-09-14  Basuke Suzuki  <[email protected]>
 
         [Curl] Bug fix on some inaccurate values in NetworkLoadMetrics.

Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm (236029 => 236030)


--- trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm	2018-09-15 00:46:47 UTC (rev 236029)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm	2018-09-15 01:20:27 UTC (rev 236030)
@@ -85,10 +85,10 @@
             }
 
             NSArray<SSBServiceLookupResult *> *results = [result serviceLookupResults];
-            Vector<Ref<SafeBrowsingResult>> resultsVector;
+            Vector<SafeBrowsingResult> resultsVector;
             resultsVector.reserveInitialCapacity([results count]);
             for (SSBServiceLookupResult *result in results)
-                resultsVector.uncheckedAppend(SafeBrowsingResult::create(URL(url), result));
+                resultsVector.uncheckedAppend({ URL(url), result });
             listener->didReceiveSafeBrowsingResults(WTFMove(resultsVector));
         });
     }).get()];

Modified: trunk/Source/WebKit/UIProcess/SafeBrowsingResult.h (236029 => 236030)


--- trunk/Source/WebKit/UIProcess/SafeBrowsingResult.h	2018-09-15 00:46:47 UTC (rev 236029)
+++ trunk/Source/WebKit/UIProcess/SafeBrowsingResult.h	2018-09-15 01:20:27 UTC (rev 236030)
@@ -26,7 +26,6 @@
 #pragma once
 
 #include <WebCore/URL.h>
-#include <wtf/RefCounted.h>
 #include <wtf/text/WTFString.h>
 
 OBJC_CLASS SSBServiceLookupResult;
@@ -33,14 +32,13 @@
 
 namespace WebKit {
 
-class SafeBrowsingResult : public RefCounted<SafeBrowsingResult> {
+class SafeBrowsingResult {
 public:
 #if HAVE(SAFE_BROWSING)
-    static Ref<SafeBrowsingResult> create(WebCore::URL&& url, SSBServiceLookupResult *result)
-    {
-        return adoptRef(*new SafeBrowsingResult(WTFMove(url), result));
-    }
+    SafeBrowsingResult(WebCore::URL&&, SSBServiceLookupResult *);
 #endif
+    SafeBrowsingResult() = default;
+
     const WebCore::URL& url() const { return m_url; }
     const String& provider() const { return m_provider; }
     bool isPhishing() const { return m_isPhishing; }
@@ -49,9 +47,6 @@
     bool isKnownToBeUnsafe() const { return m_isKnownToBeUnsafe; }
 
 private:
-#if HAVE(SAFE_BROWSING)
-    SafeBrowsingResult(WebCore::URL&&, SSBServiceLookupResult *);
-#endif
     WebCore::URL m_url;
     String m_provider;
     bool m_isPhishing { false };

Modified: trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.cpp (236029 => 236030)


--- trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.cpp	2018-09-15 00:46:47 UTC (rev 236029)
+++ trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.cpp	2018-09-15 01:20:27 UTC (rev 236030)
@@ -45,7 +45,7 @@
 
 WebFramePolicyListenerProxy::~WebFramePolicyListenerProxy() = default;
 
-void WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults(Vector<Ref<SafeBrowsingResult>>&& safeBrowsingResults)
+void WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults(Vector<SafeBrowsingResult>&& safeBrowsingResults)
 {
     ASSERT(!m_safeBrowsingResults);
     if (m_policyResult) {

Modified: trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.h (236029 => 236030)


--- trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.h	2018-09-15 00:46:47 UTC (rev 236029)
+++ trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.h	2018-09-15 01:20:27 UTC (rev 236030)
@@ -47,7 +47,7 @@
 class WebFramePolicyListenerProxy : public API::ObjectImpl<API::Object::Type::FramePolicyListener> {
 public:
 
-    using Reply = CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient, Vector<Ref<SafeBrowsingResult>>&&)>;
+    using Reply = CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient, Vector<SafeBrowsingResult>&&)>;
     static Ref<WebFramePolicyListenerProxy> create(Reply&& reply, ShouldExpectSafeBrowsingResult expect)
     {
         return adoptRef(*new WebFramePolicyListenerProxy(WTFMove(reply), expect));
@@ -58,13 +58,13 @@
     void download();
     void ignore();
     
-    void didReceiveSafeBrowsingResults(Vector<Ref<SafeBrowsingResult>>&&);
+    void didReceiveSafeBrowsingResults(Vector<SafeBrowsingResult>&&);
 
 private:
     WebFramePolicyListenerProxy(Reply&&, ShouldExpectSafeBrowsingResult);
 
     std::optional<std::pair<RefPtr<API::WebsitePolicies>, ProcessSwapRequestedByClient>> m_policyResult;
-    std::optional<Vector<Ref<SafeBrowsingResult>>> m_safeBrowsingResults;
+    std::optional<Vector<SafeBrowsingResult>> m_safeBrowsingResults;
     Reply m_reply;
 };
 

Modified: trunk/Source/WebKit/UIProcess/WebFrameProxy.cpp (236029 => 236030)


--- trunk/Source/WebKit/UIProcess/WebFrameProxy.cpp	2018-09-15 00:46:47 UTC (rev 236029)
+++ trunk/Source/WebKit/UIProcess/WebFrameProxy.cpp	2018-09-15 01:20:27 UTC (rev 236030)
@@ -177,11 +177,11 @@
     m_title = title;
 }
 
-WebFramePolicyListenerProxy& WebFrameProxy::setUpPolicyListenerProxy(CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient, Vector<Ref<SafeBrowsingResult>>&&)>&& completionHandler, ShouldExpectSafeBrowsingResult expect)
+WebFramePolicyListenerProxy& WebFrameProxy::setUpPolicyListenerProxy(CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient, Vector<SafeBrowsingResult>&&)>&& completionHandler, ShouldExpectSafeBrowsingResult expect)
 {
     if (m_activeListener)
         m_activeListener->ignore();
-    m_activeListener = WebFramePolicyListenerProxy::create([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)] (WebCore::PolicyAction action, API::WebsitePolicies* policies, ProcessSwapRequestedByClient processSwapRequestedByClient, Vector<Ref<SafeBrowsingResult>>&& safeBrowsingResults) mutable {
+    m_activeListener = WebFramePolicyListenerProxy::create([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)] (WebCore::PolicyAction action, API::WebsitePolicies* policies, ProcessSwapRequestedByClient processSwapRequestedByClient, Vector<SafeBrowsingResult>&& safeBrowsingResults) mutable {
         completionHandler(action, policies, processSwapRequestedByClient, WTFMove(safeBrowsingResults));
         m_activeListener = nullptr;
     }, expect);

Modified: trunk/Source/WebKit/UIProcess/WebFrameProxy.h (236029 => 236030)


--- trunk/Source/WebKit/UIProcess/WebFrameProxy.h	2018-09-15 00:46:47 UTC (rev 236029)
+++ trunk/Source/WebKit/UIProcess/WebFrameProxy.h	2018-09-15 01:20:27 UTC (rev 236030)
@@ -117,7 +117,7 @@
     void didSameDocumentNavigation(const WebCore::URL&); // eg. anchor navigation, session state change.
     void didChangeTitle(const String&);
 
-    WebFramePolicyListenerProxy& setUpPolicyListenerProxy(CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient, Vector<Ref<SafeBrowsingResult>>&&)>&&, ShouldExpectSafeBrowsingResult);
+    WebFramePolicyListenerProxy& setUpPolicyListenerProxy(CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient, Vector<SafeBrowsingResult>&&)>&&, ShouldExpectSafeBrowsingResult);
 
 #if ENABLE(CONTENT_FILTERING)
     void contentFilterDidBlockLoad(WebCore::ContentFilterUnblockHandler contentFilterUnblockHandler) { m_contentFilterUnblockHandler = WTFMove(contentFilterUnblockHandler); }

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (236029 => 236030)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2018-09-15 00:46:47 UTC (rev 236029)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2018-09-15 01:20:27 UTC (rev 236030)
@@ -2431,36 +2431,7 @@
 
     SendFunction m_sendFunction;
 };
-
-void WebPageProxy::receivedNavigationPolicyDecision(PolicyAction policyAction, API::Navigation& navigation, ProcessSwapRequestedByClient processSwapRequestedByClient, WebFrameProxy& frame, API::WebsitePolicies* policies, Ref<PolicyDecisionSender>&& sender)
-{
-    std::optional<WebsitePoliciesData> data;
-    if (policies) {
-        data = ""
-        if (policies->websiteDataStore())
-            changeWebsiteDataStore(policies->websiteDataStore()->websiteDataStore());
-    }
     
-    if (policyAction == PolicyAction::Use && frame.isMainFrame()) {
-        String reason;
-        auto proposedProcess = process().processPool().processForNavigation(*this, navigation, processSwapRequestedByClient, policyAction, reason);
-        ASSERT(!reason.isNull());
-        
-        if (proposedProcess.ptr() != &process()) {
-            RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "%p - WebPageProxy::decidePolicyForNavigationAction, swapping process %i with process %i for navigation, reason: %{public}s", this, processIdentifier(), proposedProcess->processIdentifier(), reason.utf8().data());
-            LOG(ProcessSwapping, "(ProcessSwapping) Switching from process %i to new process (%i) for navigation %" PRIu64 " '%s'", processIdentifier(), proposedProcess->processIdentifier(), navigation.navigationID(), navigation.loggingString());
-            
-            RunLoop::main().dispatch([this, protectedThis = makeRef(*this), navigation = makeRef(navigation), proposedProcess = WTFMove(proposedProcess)]() mutable {
-                continueNavigationInNewProcess(navigation, WTFMove(proposedProcess));
-            });
-        } else
-            RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "%p - WebPageProxy::decidePolicyForNavigationAction, keep using process %i for navigation, reason: %{public}s", this, processIdentifier(), reason.utf8().data());
-    }
-    
-    receivedPolicyDecision(policyAction, &navigation, WTFMove(data), WTFMove(sender));
-
-}
-
 void WebPageProxy::receivedPolicyDecision(PolicyAction action, API::Navigation* navigation, std::optional<WebsitePoliciesData>&& websitePolicies, Ref<PolicyDecisionSender>&& sender)
 {
     if (!isValid()) {
@@ -4062,9 +4033,33 @@
     UNUSED_PARAM(newNavigationID);
 #endif
 
-    auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), frame = makeRef(*frame), sender = WTFMove(sender), navigation = navigation.releaseNonNull()] (WebCore::PolicyAction policyAction, API::WebsitePolicies* policies, ProcessSwapRequestedByClient processSwapRequestedByClient, Vector<Ref<SafeBrowsingResult>>&&) mutable {
+    auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), frame = makeRef(*frame), sender = sender.copyRef(), navigation] (WebCore::PolicyAction policyAction, API::WebsitePolicies* policies, ProcessSwapRequestedByClient processSwapRequestedByClient, Vector<SafeBrowsingResult>&&) mutable {
         // FIXME: do something with the SafeBrowsingResults.
-        receivedNavigationPolicyDecision(policyAction, navigation, processSwapRequestedByClient, frame, policies, WTFMove(sender));
+
+        std::optional<WebsitePoliciesData> data;
+        if (policies) {
+            data = ""
+            if (policies->websiteDataStore())
+                changeWebsiteDataStore(policies->websiteDataStore()->websiteDataStore());
+        }
+
+        if (policyAction == PolicyAction::Use && frame->isMainFrame()) {
+            String reason;
+            auto proposedProcess = process().processPool().processForNavigation(*this, *navigation, processSwapRequestedByClient, policyAction, reason);
+            ASSERT(!reason.isNull());
+            
+            if (proposedProcess.ptr() != &process()) {
+                RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "%p - WebPageProxy::decidePolicyForNavigationAction, swapping process %i with process %i for navigation, reason: %{public}s", this, processIdentifier(), proposedProcess->processIdentifier(), reason.utf8().data());
+                LOG(ProcessSwapping, "(ProcessSwapping) Switching from process %i to new process (%i) for navigation %" PRIu64 " '%s'", processIdentifier(), proposedProcess->processIdentifier(), navigation->navigationID(), navigation->loggingString());
+                
+                RunLoop::main().dispatch([this, protectedThis = WTFMove(protectedThis), navigation = makeRef(*navigation), proposedProcess = WTFMove(proposedProcess)]() mutable {
+                    continueNavigationInNewProcess(navigation.get(), WTFMove(proposedProcess));
+                });
+            } else
+                RELEASE_LOG_IF_ALLOWED(ProcessSwapping, "%p - WebPageProxy::decidePolicyForNavigationAction, keep using process %i for navigation, reason: %{public}s", this, processIdentifier(), reason.utf8().data());
+        }
+
+        receivedPolicyDecision(policyAction, navigation.get(), WTFMove(data), WTFMove(sender));
     }, shouldSkipSafeBrowsingCheck == ShouldSkipSafeBrowsingCheck::Yes ? ShouldExpectSafeBrowsingResult::No : ShouldExpectSafeBrowsingResult::Yes));
     if (shouldSkipSafeBrowsingCheck == ShouldSkipSafeBrowsingCheck::No)
         beginSafeBrowsingCheck(request.url(), listener);
@@ -4113,7 +4108,7 @@
     MESSAGE_CHECK(frame);
     MESSAGE_CHECK_URL(request.url());
 
-    auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), listenerID, frameID] (WebCore::PolicyAction policyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient processSwapRequestedByClient, Vector<Ref<SafeBrowsingResult>>&& safeBrowsingResults) mutable {
+    auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), listenerID, frameID] (WebCore::PolicyAction policyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient processSwapRequestedByClient, Vector<SafeBrowsingResult>&& safeBrowsingResults) mutable {
         // FIXME: Assert the API::WebsitePolicies* is nullptr here once clients of WKFramePolicyListenerUseWithPolicies go away.
         RELEASE_ASSERT(processSwapRequestedByClient == ProcessSwapRequestedByClient::No);
         ASSERT_UNUSED(safeBrowsingResults, safeBrowsingResults.isEmpty());
@@ -4149,7 +4144,7 @@
     MESSAGE_CHECK_URL(response.url());
 
     RefPtr<API::Navigation> navigation = navigationID ? &m_navigationState->navigation(navigationID) : nullptr;
-    auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), frameID, listenerID, navigation = WTFMove(navigation)] (WebCore::PolicyAction policyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient processSwapRequestedByClient, Vector<Ref<SafeBrowsingResult>>&& safeBrowsingResults) mutable {
+    auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), frameID, listenerID, navigation = WTFMove(navigation)] (WebCore::PolicyAction policyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient processSwapRequestedByClient, Vector<SafeBrowsingResult>&& safeBrowsingResults) mutable {
         // FIXME: Assert the API::WebsitePolicies* is nullptr here once clients of WKFramePolicyListenerUseWithPolicies go away.
         RELEASE_ASSERT(processSwapRequestedByClient == ProcessSwapRequestedByClient::No);
         ASSERT_UNUSED(safeBrowsingResults, safeBrowsingResults.isEmpty());

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (236029 => 236030)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.h	2018-09-15 00:46:47 UTC (rev 236029)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h	2018-09-15 01:20:27 UTC (rev 236030)
@@ -913,7 +913,6 @@
 
     class PolicyDecisionSender;
     void receivedPolicyDecision(WebCore::PolicyAction, API::Navigation*, std::optional<WebsitePoliciesData>&&, Ref<PolicyDecisionSender>&&);
-    void receivedNavigationPolicyDecision(WebCore::PolicyAction, API::Navigation&, ProcessSwapRequestedByClient, WebFrameProxy&, API::WebsitePolicies*, Ref<PolicyDecisionSender>&&);
 
     void backForwardRemovedItem(const WebCore::BackForwardItemIdentifier&);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to