Do not pass API::FrameInfo for source frame or clear out page of target frame on
authordbates@webkit.org <dbates@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 5 Jul 2017 20:10:19 +0000 (20:10 +0000)
committerdbates@webkit.org <dbates@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 5 Jul 2017 20:10:19 +0000 (20:10 +0000)
commit2c3fe4de0a6f497e283c2b0dbb3ee9e5169b8b16
tree0c27fd31249ca8f4a82450f7a5a692a4048296ff
parent8ef3d50c0e30ddd5766122f684baca1338ae3e96
Do not pass API::FrameInfo for source frame or clear out page of target frame on
API navigation
https://bugs.webkit.org/show_bug.cgi?id=174170
<rdar://problem/33140328>

Reviewed by Brady Eidson.

Source/WebKit2:

As a step towards making it straightforward for an embedding client to determine whether
a WebPageProxy::decidePolicyForNavigationAction() callback was initiated from API we
should not pass frame info for the source frame and should not nullify the page pointer
in the target frame info.

Currently we always pass frame info for the source frame and nullify the page pointer
in both the source frame info and target frame info if the navigation was initiated from
API. This seems subtle and error prone. Instead we should not pass frame info for
the source frame and not nullify the page pointer in the target frame info as a step
towards making using this API less error-prone.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Tools:

Update tests as needed for the behavior change.

* TestWebKitAPI/Tests/WebKit2Cocoa/DecidePolicyForNavigationAction.mm:
(TEST):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@219149 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/WebPageProxy.cpp
Tools/ChangeLog
Tools/TestWebKitAPI/Tests/WebKit2Cocoa/DecidePolicyForNavigationAction.mm