Regression(r232082): Websites get loaded inside of Messages App chat transcript
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 6 Jun 2018 04:53:35 +0000 (04:53 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 6 Jun 2018 04:53:35 +0000 (04:53 +0000)
commiteda1ff0b312c97076d8d93ac14ba481007e678f9
tree9ad1db8c4a35358ef0a90e45c816fef131e9d021
parent02b5622b641da74bf851d4d5602e9924f8f2d1bf
Regression(r232082): Websites get loaded inside of Messages App chat transcript
https://bugs.webkit.org/show_bug.cgi?id=186331
<rdar://problem/40735446>

Reviewed by Darin Adler.

Source/WebKitLegacy/mac:

r232082 made it so that if the client implements decidePolicyForMIMEType / decidePolicyForNavigationAction
but does not call use / ignore on the listener, then we would do "use" by default.
The intention was to restore pre-AsyncPolicyDelegates behavior and unbreak Box.app. However,
the pre-AsyncPolicyDelegates behavior was only to "use" by default for decidePolicyForMIMEType,
not decidePolicyForNavigationAction. Doing "use" by default for decidePolicyForNavigationAction
is new behavior and it breaks Messages.app. This patch updates r232082 so that we now do call
"use" by default on the listener for decidePolicyForMIMEType and "ignore" by default for other
policy decisions. This should restore pre-AsyncPolicyDelegates behavior. This fixes Messages.app
and Box.app is still working properly.

* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebFrameLoaderClient::dispatchWillSubmitForm):
(WebFrameLoaderClient::setUpPolicyListener):
(-[WebFramePolicyListener initWithFrame:policyFunction:defaultPolicy:]):
(-[WebFramePolicyListener initWithFrame:policyFunction:defaultPolicy:appLinkURL:]):
(-[WebFramePolicyListener dealloc]):
(-[WebFramePolicyListener initWithFrame:policyFunction:]): Deleted.
(-[WebFramePolicyListener initWithFrame:policyFunction:appLinkURL:]): Deleted.

Tools:

Add API test coverage.

* TestWebKitAPI/Tests/mac/NoPolicyDelegateResponse.mm:
(-[NoDecidePolicyForNavigationActionDecisionDelegate webView:decidePolicyForNavigationAction:request:frame:decisionListener:]):
(-[NoDecidePolicyForNavigationActionDecisionDelegate webView:didStartProvisionalLoadForFrame:]):
(TestWebKitAPI::TEST):
(-[NoPolicyDelegateDecisionDelegate webView:decidePolicyForNavigationAction:request:frame:decisionListener:]): Deleted.
(-[NoPolicyDelegateDecisionDelegate webView:decidePolicyForMIMEType:request:frame:decisionListener:]): Deleted.
(-[NoPolicyDelegateDecisionDelegate webView:didFinishLoadForFrame:]): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232536 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKitLegacy/mac/ChangeLog
Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h
Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm
Tools/ChangeLog
Tools/TestWebKitAPI/Tests/mac/NoPolicyDelegateResponse.mm