Changeset 230128 in webkit
- Timestamp:
- Mar 30, 2018, 11:44:29 PM (7 years ago)
- Location:
- trunk/Source
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/Source/WebCore/ChangeLog ¶
r230127 r230128 1 2018-03-30 Chris Dumez <cdumez@apple.com> 2 3 REGRESSION (r229828): Facebook login popup is blank 4 https://bugs.webkit.org/show_bug.cgi?id=184206 5 <rdar://problem/39057006> 6 7 Reviewed by Wenson Hsieh. 8 9 Since r229828, we freeze the layer tree during the navigation policy check. 10 We freeze in WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction() 11 and unfreeze in WebFrameLoaderClient::didDecidePolicyForNavigationAction(). 12 13 WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction() gets called 14 from PolicyChecker::checkNavigationPolicy() which has 3 call sites in 15 FrameLoader and one in DocumentLoader for redirects. The call sites in 16 FrameLoader were taking care of calling didDecidePolicyForNavigationAction() 17 on the FrameLoaderClient in their completion handler, but the DocumentLoader 18 call site was failing to do so. As a result, the layer tree would stay frozen. 19 20 To make this a lot less error prone, I moved the call to 21 WebFrameLoaderClient::didDecidePolicyForNavigationAction() to 22 PolicyChecker::checkNavigationPolicy(), inside the completion handler passed 23 to WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(). This way, 24 even if new code starts calling PolicyChecker::checkNavigationPolicy(), we 25 do not need to worry about letting the client know when the policy decision 26 is made. 27 28 No new tests, covered by existing redirection tests with the 29 new assertion I added. 30 31 * loader/FrameLoader.cpp: 32 (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): 33 (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): 34 * loader/PolicyChecker.cpp: 35 (WebCore::PolicyChecker::checkNavigationPolicy): 36 1 37 2018-03-30 Devin Rousso <webkit@devinrousso.com> 2 38 -
TabularUnified trunk/Source/WebCore/loader/FrameLoader.cpp ¶
r230051 r230128 2931 2931 void FrameLoader::continueFragmentScrollAfterNavigationPolicy(const ResourceRequest& request, bool shouldContinue) 2932 2932 { 2933 m_client.didDecidePolicyForNavigationAction();2934 2935 2933 m_quickRedirectComing = false; 2936 2934 … … 3177 3175 // through this method already, nested; otherwise, policyDataSource should still be set. 3178 3176 ASSERT(m_policyDocumentLoader || !m_provisionalDocumentLoader->unreachableURL().isEmpty()); 3179 3180 m_client.didDecidePolicyForNavigationAction();3181 3177 3182 3178 bool isTargetItem = history().provisionalItem() ? history().provisionalItem()->isTargetItem() : false; -
TabularUnified trunk/Source/WebCore/loader/PolicyChecker.cpp ¶
r229778 r230128 151 151 ResourceRequest requestCopy = request; 152 152 m_frame.loader().client().dispatchDecidePolicyForNavigationAction(action, request, didReceiveRedirectResponse, formState, [this, function = WTFMove(function), request = WTFMove(requestCopy), formState = makeRefPtr(formState), suggestedFilename = WTFMove(suggestedFilename)](PolicyAction policyAction) mutable { 153 m_frame.loader().client().didDecidePolicyForNavigationAction(); 154 153 155 m_delegateIsDecidingNavigationPolicy = false; 154 156 -
TabularUnified trunk/Source/WebKit/ChangeLog ¶
r230126 r230128 1 2018-03-30 Chris Dumez <cdumez@apple.com> 2 3 REGRESSION (r229828): Facebook login popup is blank 4 https://bugs.webkit.org/show_bug.cgi?id=184206 5 <rdar://problem/39057006> 6 7 Reviewed by Wenson Hsieh. 8 9 Add assertion to make sure we never try to do a policy check to 10 a resource response while a policy check for a navigation is 11 pending. This assertion was being hit by several of our redirection 12 tests without my fix. 13 14 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: 15 (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): 16 1 17 2018-03-30 Ryan Haddad <ryanhaddad@apple.com> 2 18 -
TabularUnified trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp ¶
r230051 r230128 730 730 } 731 731 732 ASSERT(!m_isDecidingNavigationPolicyDecision); 733 732 734 RefPtr<API::Object> userData; 733 735
Note:
See TracChangeset
for help on using the changeset viewer.