Changeset 235559 in webkit
- Timestamp:
- Aug 31, 2018 10:41:32 AM (6 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r235556 r235559 1 2018-08-31 Chris Dumez <cdumez@apple.com> 2 3 Rename ShouldProcessSwapIfPossible to ProcessSwapRequestedByClient for clarity 4 https://bugs.webkit.org/show_bug.cgi?id=189195 5 6 Reviewed by Alex Christensen. 7 8 Rename ShouldProcessSwapIfPossible to ProcessSwapRequestedByClient for clarity, since it indicates the client 9 requested a process swap via its navigation policy decision. 10 11 * UIProcess/API/C/WKFramePolicyListener.cpp: 12 (WKFramePolicyListenerUseInNewProcess): 13 (useWithPolicies): 14 (WKFramePolicyListenerUseWithPolicies): 15 (WKFramePolicyListenerUseInNewProcessWithPolicies): 16 * UIProcess/Cocoa/NavigationState.mm: 17 (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): 18 * UIProcess/WebFramePolicyListenerProxy.cpp: 19 (WebKit::WebFramePolicyListenerProxy::use): 20 (WebKit::WebFramePolicyListenerProxy::download): 21 (WebKit::WebFramePolicyListenerProxy::ignore): 22 * UIProcess/WebFramePolicyListenerProxy.h: 23 * UIProcess/WebFrameProxy.cpp: 24 (WebKit::WebFrameProxy::setUpPolicyListenerProxy): 25 * UIProcess/WebFrameProxy.h: 26 * UIProcess/WebPageProxy.cpp: 27 (WebKit::WebPageProxy::decidePolicyForNavigationAction): 28 (WebKit::WebPageProxy::decidePolicyForNewWindowAction): 29 (WebKit::WebPageProxy::decidePolicyForResponse): 30 * UIProcess/WebPageProxy.h: 31 * UIProcess/WebProcessPool.cpp: 32 (WebKit::WebProcessPool::processForNavigation): 33 (WebKit::WebProcessPool::processForNavigationInternal): 34 * UIProcess/WebProcessPool.h: 35 1 36 2018-08-31 Aditya Keerthi <akeerthi@apple.com> 2 37 -
trunk/Source/WebKit/UIProcess/API/C/WKFramePolicyListener.cpp
r234168 r235559 49 49 void WKFramePolicyListenerUseInNewProcess(WKFramePolicyListenerRef policyListenerRef) 50 50 { 51 toImpl(policyListenerRef)->use(nullptr, ShouldProcessSwapIfPossible::Yes);51 toImpl(policyListenerRef)->use(nullptr, ProcessSwapRequestedByClient::Yes); 52 52 } 53 53 54 static void useWithPolicies(WKFramePolicyListenerRef policyListenerRef, WKWebsitePoliciesRef websitePolicies, ShouldProcessSwapIfPossible shouldProcessSwapIfPossible)54 static void useWithPolicies(WKFramePolicyListenerRef policyListenerRef, WKWebsitePoliciesRef websitePolicies, ProcessSwapRequestedByClient processSwapRequestedByClient) 55 55 { 56 56 if (auto* websiteDataStore = toImpl(websitePolicies)->websiteDataStore()) { … … 59 59 } 60 60 61 toImpl(policyListenerRef)->use(toImpl(websitePolicies), shouldProcessSwapIfPossible);61 toImpl(policyListenerRef)->use(toImpl(websitePolicies), processSwapRequestedByClient); 62 62 } 63 63 64 64 void WKFramePolicyListenerUseWithPolicies(WKFramePolicyListenerRef policyListenerRef, WKWebsitePoliciesRef websitePolicies) 65 65 { 66 useWithPolicies(policyListenerRef, websitePolicies, ShouldProcessSwapIfPossible::No);66 useWithPolicies(policyListenerRef, websitePolicies, ProcessSwapRequestedByClient::No); 67 67 } 68 68 69 69 void WKFramePolicyListenerUseInNewProcessWithPolicies(WKFramePolicyListenerRef policyListenerRef, WKWebsitePoliciesRef websitePolicies) 70 70 { 71 useWithPolicies(policyListenerRef, websitePolicies, ShouldProcessSwapIfPossible::Yes);71 useWithPolicies(policyListenerRef, websitePolicies, ProcessSwapRequestedByClient::Yes); 72 72 } 73 73 -
trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm
r235365 r235559 553 553 } 554 554 555 localListener->use(websitePolicies.get(), actionPolicy == _WKNavigationActionPolicyAllowInNewProcess ? ShouldProcessSwapIfPossible::Yes : ShouldProcessSwapIfPossible::No);555 localListener->use(websitePolicies.get(), actionPolicy == _WKNavigationActionPolicyAllowInNewProcess ? ProcessSwapRequestedByClient::Yes : ProcessSwapRequestedByClient::No); 556 556 }); 557 557 -
trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.cpp
r234658 r235559 56 56 } 57 57 58 void WebFramePolicyListenerProxy::use(API::WebsitePolicies* policies, ShouldProcessSwapIfPossible swap)58 void WebFramePolicyListenerProxy::use(API::WebsitePolicies* policies, ProcessSwapRequestedByClient processSwapRequestedByClient) 59 59 { 60 60 if (m_safeBrowsingResults) { 61 61 if (m_reply) 62 m_reply(WebCore::PolicyAction::Use, policies, swap, WTFMove(*m_safeBrowsingResults));62 m_reply(WebCore::PolicyAction::Use, policies, processSwapRequestedByClient, WTFMove(*m_safeBrowsingResults)); 63 63 } else if (!m_policyResult) 64 m_policyResult = {{ policies, swap}};64 m_policyResult = {{ policies, processSwapRequestedByClient }}; 65 65 } 66 66 … … 68 68 { 69 69 if (m_reply) 70 m_reply(WebCore::PolicyAction::Download, nullptr, ShouldProcessSwapIfPossible::No, { });70 m_reply(WebCore::PolicyAction::Download, nullptr, ProcessSwapRequestedByClient::No, { }); 71 71 } 72 72 … … 74 74 { 75 75 if (m_reply) 76 m_reply(WebCore::PolicyAction::Ignore, nullptr, ShouldProcessSwapIfPossible::No, { });76 m_reply(WebCore::PolicyAction::Ignore, nullptr, ProcessSwapRequestedByClient::No, { }); 77 77 } 78 78 -
trunk/Source/WebKit/UIProcess/WebFramePolicyListenerProxy.h
r234640 r235559 42 42 class SafeBrowsingResult; 43 43 44 enum class ShouldProcessSwapIfPossible{ No, Yes };44 enum class ProcessSwapRequestedByClient { No, Yes }; 45 45 enum class ShouldExpectSafeBrowsingResult { No, Yes }; 46 46 … … 48 48 public: 49 49 50 using Reply = CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible, Vector<SafeBrowsingResult>&&)>;50 using Reply = CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient, Vector<SafeBrowsingResult>&&)>; 51 51 static Ref<WebFramePolicyListenerProxy> create(Reply&& reply, ShouldExpectSafeBrowsingResult expect) 52 52 { … … 55 55 ~WebFramePolicyListenerProxy(); 56 56 57 void use(API::WebsitePolicies* = nullptr, ShouldProcessSwapIfPossible = ShouldProcessSwapIfPossible::No);57 void use(API::WebsitePolicies* = nullptr, ProcessSwapRequestedByClient = ProcessSwapRequestedByClient::No); 58 58 void download(); 59 59 void ignore(); … … 64 64 WebFramePolicyListenerProxy(Reply&&, ShouldExpectSafeBrowsingResult); 65 65 66 std::optional<std::pair<RefPtr<API::WebsitePolicies>, ShouldProcessSwapIfPossible>> m_policyResult;66 std::optional<std::pair<RefPtr<API::WebsitePolicies>, ProcessSwapRequestedByClient>> m_policyResult; 67 67 std::optional<Vector<SafeBrowsingResult>> m_safeBrowsingResults; 68 68 Reply m_reply; -
trunk/Source/WebKit/UIProcess/WebFrameProxy.cpp
r235265 r235559 178 178 } 179 179 180 WebFramePolicyListenerProxy& WebFrameProxy::setUpPolicyListenerProxy(CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible, Vector<SafeBrowsingResult>&&)>&& completionHandler, ShouldExpectSafeBrowsingResult expect)180 WebFramePolicyListenerProxy& WebFrameProxy::setUpPolicyListenerProxy(CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient, Vector<SafeBrowsingResult>&&)>&& completionHandler, ShouldExpectSafeBrowsingResult expect) 181 181 { 182 182 if (m_activeListener) 183 183 m_activeListener->ignore(); 184 m_activeListener = WebFramePolicyListenerProxy::create([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)] (WebCore::PolicyAction action, API::WebsitePolicies* policies, ShouldProcessSwapIfPossible swap, Vector<SafeBrowsingResult>&& safeBrowsingResults) mutable {185 completionHandler(action, policies, swap, WTFMove(safeBrowsingResults));184 m_activeListener = WebFramePolicyListenerProxy::create([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)] (WebCore::PolicyAction action, API::WebsitePolicies* policies, ProcessSwapRequestedByClient processSwapRequestedByClient, Vector<SafeBrowsingResult>&& safeBrowsingResults) mutable { 185 completionHandler(action, policies, processSwapRequestedByClient, WTFMove(safeBrowsingResults)); 186 186 m_activeListener = nullptr; 187 187 }, expect); -
trunk/Source/WebKit/UIProcess/WebFrameProxy.h
r234640 r235559 55 55 class WebsiteDataStore; 56 56 enum class ShouldExpectSafeBrowsingResult; 57 enum class ShouldProcessSwapIfPossible;57 enum class ProcessSwapRequestedByClient; 58 58 struct WebsitePoliciesData; 59 59 … … 118 118 void didChangeTitle(const String&); 119 119 120 WebFramePolicyListenerProxy& setUpPolicyListenerProxy(CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible, Vector<SafeBrowsingResult>&&)>&&, ShouldExpectSafeBrowsingResult);120 WebFramePolicyListenerProxy& setUpPolicyListenerProxy(CompletionHandler<void(WebCore::PolicyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient, Vector<SafeBrowsingResult>&&)>&&, ShouldExpectSafeBrowsingResult); 121 121 122 122 #if ENABLE(CONTENT_FILTERING) -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r235556 r235559 4014 4014 #endif 4015 4015 4016 auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), frame = makeRef(*frame), sender = sender.copyRef(), navigation] (WebCore::PolicyAction policyAction, API::WebsitePolicies* policies, ShouldProcessSwapIfPossible swap, Vector<SafeBrowsingResult>&&) mutable {4016 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 { 4017 4017 // FIXME: do something with the SafeBrowsingResults. 4018 4018 … … 4025 4025 4026 4026 if (policyAction == PolicyAction::Use && frame->isMainFrame()) { 4027 auto proposedProcess = process().processPool().processForNavigation(*this, *navigation, swap, policyAction);4027 auto proposedProcess = process().processPool().processForNavigation(*this, *navigation, processSwapRequestedByClient, policyAction); 4028 4028 4029 4029 if (proposedProcess.ptr() != &process()) { … … 4085 4085 MESSAGE_CHECK_URL(request.url()); 4086 4086 4087 auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), listenerID, frameID] (WebCore::PolicyAction policyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible swap, Vector<SafeBrowsingResult>&& safeBrowsingResults) mutable {4087 auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), listenerID, frameID] (WebCore::PolicyAction policyAction, API::WebsitePolicies*, ProcessSwapRequestedByClient processSwapRequestedByClient, Vector<SafeBrowsingResult>&& safeBrowsingResults) mutable { 4088 4088 // FIXME: Assert the API::WebsitePolicies* is nullptr here once clients of WKFramePolicyListenerUseWithPolicies go away. 4089 RELEASE_ASSERT( swap == ShouldProcessSwapIfPossible::No);4089 RELEASE_ASSERT(processSwapRequestedByClient == ProcessSwapRequestedByClient::No); 4090 4090 ASSERT_UNUSED(safeBrowsingResults, safeBrowsingResults.isEmpty()); 4091 4091 receivedPolicyDecision(policyAction, nullptr, std::nullopt, PolicyDecisionSender::create([this, protectedThis = WTFMove(protectedThis), frameID, listenerID] (auto... args) { … … 4121 4121 4122 4122 RefPtr<API::Navigation> navigation = navigationID ? &m_navigationState->navigation(navigationID) : nullptr; 4123 auto listener = makeRef(frame->setUpPolicyListenerProxy([this, protectedThis = makeRef(*this), frameID, listenerID, navigation = WTFMove(navigation)] (WebCore::PolicyAction policyAction, API::WebsitePolicies*, ShouldProcessSwapIfPossible swap, Vector<SafeBrowsingResult>&& safeBrowsingResults) mutable {4123 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 { 4124 4124 // FIXME: Assert the API::WebsitePolicies* is nullptr here once clients of WKFramePolicyListenerUseWithPolicies go away. 4125 RELEASE_ASSERT( swap == ShouldProcessSwapIfPossible::No);4125 RELEASE_ASSERT(processSwapRequestedByClient == ProcessSwapRequestedByClient::No); 4126 4126 ASSERT_UNUSED(safeBrowsingResults, safeBrowsingResults.isEmpty()); 4127 4127 receivedPolicyDecision(policyAction, navigation.get(), std::nullopt, PolicyDecisionSender::create([this, protectedThis = WTFMove(protectedThis), frameID, listenerID] (auto... args) { -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r235556 r235559 259 259 struct URLSchemeTaskParameters; 260 260 261 enum class ShouldProcessSwapIfPossible;261 enum class ProcessSwapRequestedByClient; 262 262 enum class UndoOrRedo; 263 263 -
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
r235513 r235559 2127 2127 } 2128 2128 2129 Ref<WebProcessProxy> WebProcessPool::processForNavigation(WebPageProxy& page, const API::Navigation& navigation, ShouldProcessSwapIfPossible shouldProcessSwapIfPossible, PolicyAction& action)2130 { 2131 auto process = processForNavigationInternal(page, navigation, shouldProcessSwapIfPossible, action);2129 Ref<WebProcessProxy> WebProcessPool::processForNavigation(WebPageProxy& page, const API::Navigation& navigation, ProcessSwapRequestedByClient processSwapRequestedByClient, PolicyAction& action) 2130 { 2131 auto process = processForNavigationInternal(page, navigation, processSwapRequestedByClient, action); 2132 2132 2133 2133 if (m_configuration->alwaysKeepAndReuseSwappedProcesses() && process.ptr() != &page.process()) { … … 2145 2145 } 2146 2146 2147 Ref<WebProcessProxy> WebProcessPool::processForNavigationInternal(WebPageProxy& page, const API::Navigation& navigation, ShouldProcessSwapIfPossible shouldProcessSwapIfPossible, PolicyAction& action)2148 { 2149 if (!m_configuration->processSwapsOnNavigation() && shouldProcessSwapIfPossible == ShouldProcessSwapIfPossible::No)2147 Ref<WebProcessProxy> WebProcessPool::processForNavigationInternal(WebPageProxy& page, const API::Navigation& navigation, ProcessSwapRequestedByClient processSwapRequestedByClient, PolicyAction& action) 2148 { 2149 if (!m_configuration->processSwapsOnNavigation() && processSwapRequestedByClient == ProcessSwapRequestedByClient::No) 2150 2150 return page.process(); 2151 2151 … … 2191 2191 2192 2192 auto targetURL = navigation.currentRequest().url(); 2193 if ( shouldProcessSwapIfPossible == ShouldProcessSwapIfPossible::No) {2193 if (processSwapRequestedByClient == ProcessSwapRequestedByClient::No) { 2194 2194 if (navigation.treatAsSameOriginNavigation()) 2195 2195 return page.process(); -
trunk/Source/WebKit/UIProcess/WebProcessPool.h
r235481 r235559 111 111 #endif 112 112 113 enum class ShouldProcessSwapIfPossible;113 enum class ProcessSwapRequestedByClient; 114 114 115 115 class WebProcessPool final : public API::ObjectImpl<API::Object::Type::ProcessPool>, public CanMakeWeakPtr<WebProcessPool>, private IPC::MessageReceiver { … … 451 451 #endif 452 452 453 Ref<WebProcessProxy> processForNavigation(WebPageProxy&, const API::Navigation&, ShouldProcessSwapIfPossible, WebCore::PolicyAction&);453 Ref<WebProcessProxy> processForNavigation(WebPageProxy&, const API::Navigation&, ProcessSwapRequestedByClient, WebCore::PolicyAction&); 454 454 void registerSuspendedPageProxy(SuspendedPageProxy&); 455 455 void unregisterSuspendedPageProxy(SuspendedPageProxy&); … … 471 471 void platformInvalidateContext(); 472 472 473 Ref<WebProcessProxy> processForNavigationInternal(WebPageProxy&, const API::Navigation&, ShouldProcessSwapIfPossible, WebCore::PolicyAction&);473 Ref<WebProcessProxy> processForNavigationInternal(WebPageProxy&, const API::Navigation&, ProcessSwapRequestedByClient, WebCore::PolicyAction&); 474 474 475 475 RefPtr<WebProcessProxy> tryTakePrewarmedProcess(WebsiteDataStore&);
Note: See TracChangeset
for help on using the changeset viewer.