Bug 107175 - [Chromium] Incorrect |isRedirect| value passed to decidePolicyForNavigation
Summary: [Chromium] Incorrect |isRedirect| value passed to decidePolicyForNavigation
Status: RESOLVED WONTFIX
Alias: None
Product: WebKit
Classification: Unclassified
Component: Page Loading (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-01-17 13:51 PST by Marshall Greenblatt
Modified: 2013-04-08 16:03 PDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marshall Greenblatt 2013-01-17 13:51:45 PST
Chromium revision 176706
WebKit revision 139548

1. Load an application that uses the Chromium WebKit API.
2. Redirect a request via net::URLRequestJob::IsRedirectResponse by populating |location| and returning true.

The |isRedirect| value passed to WebFrameClient::decidePolicyForNavigation in FrameLoaderClientImpl::dispatchDecidePolicyForNavigationAction should be true. However, WebKit revision 137607 (http://trac.webkit.org/changeset/137607) changed the implementation of MainResourceLoader::load() such that WebDataSourceImpl::appendRedirect() is no longer called for the redirected URL following this code path. As a result the |isRedirect| value is now false.
Comment 1 Nate Chapin 2013-01-17 13:56:16 PST
(In reply to comment #0)
> Chromium revision 176706
> WebKit revision 139548
> 
> 1. Load an application that uses the Chromium WebKit API.
> 2. Redirect a request via net::URLRequestJob::IsRedirectResponse by populating |location| and returning true.
> 
> The |isRedirect| value passed to WebFrameClient::decidePolicyForNavigation in FrameLoaderClientImpl::dispatchDecidePolicyForNavigationAction should be true. However, WebKit revision 137607 (http://trac.webkit.org/changeset/137607) changed the implementation of MainResourceLoader::load() such that WebDataSourceImpl::appendRedirect() is no longer called for the redirected URL following this code path. As a result the |isRedirect| value is now false.

At a quick glance, this is probably because the timing of the call to dispatchDidReceiveServerRedirectForProvisionalLoad() changed.
Comment 2 Marshall Greenblatt 2013-04-08 16:03:04 PDT
Moved to Blink as https://code.google.com/p/chromium/issues/detail?id=229154.