Commit 32d2b4e3 authored by Andrey Kosyakov's avatar Andrey Kosyakov Committed by Commit Bot

DevTools: report redirect responses only if response interception is enabled

We previously reported redirect responses when the "Request" interception
stage was enabled. Since they technically are responses, we will now report
them only when the "HeadersReceived" stage is enabled.

Change-Id: I5318f8b4167b662d11852b8d93bff4b9db960c8d
Reviewed-on: https://chromium-review.googlesource.com/1147507Reviewed-by: default avatarDmitry Gozman <dgozman@chromium.org>
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577366}
parent c0054942
...@@ -799,8 +799,7 @@ void DevToolsURLInterceptorRequestJob::OnSubRequestRedirectReceived( ...@@ -799,8 +799,7 @@ void DevToolsURLInterceptorRequestJob::OnSubRequestRedirectReceived(
// If we're not intercepting results or are a response then cancel this // If we're not intercepting results or are a response then cancel this
// redirect and tell the parent request it was redirected through |redirect_|. // redirect and tell the parent request it was redirected through |redirect_|.
if (stage_to_intercept_ == InterceptionStage::DONT_INTERCEPT || if (!(stage_to_intercept_ & InterceptionStage::RESPONSE)) {
stage_to_intercept_ == InterceptionStage::RESPONSE) {
*defer_redirect = false; *defer_redirect = false;
ProcessRedirect(redirectinfo.status_code, redirectinfo.new_url.spec()); ProcessRedirect(redirectinfo.status_code, redirectinfo.new_url.spec());
redirect_.reset(); redirect_.reset();
......
...@@ -1209,7 +1209,7 @@ void InterceptionJob::OnReceiveRedirect( ...@@ -1209,7 +1209,7 @@ void InterceptionJob::OnReceiveRedirect(
response_metadata_->redirect_info = response_metadata_->redirect_info =
std::make_unique<net::RedirectInfo>(redirect_info); std::make_unique<net::RedirectInfo>(redirect_info);
if (!(stage_ & InterceptionStage::REQUEST)) { if (!(stage_ & InterceptionStage::RESPONSE)) {
client_->OnReceiveRedirect(redirect_info, head); client_->OnReceiveRedirect(redirect_info, head);
return; return;
} }
......
...@@ -10,11 +10,6 @@ ...@@ -10,11 +10,6 @@
await dp.Network.setRequestInterception({patterns: [{}]}); await dp.Network.setRequestInterception({patterns: [{}]});
// Automatically proceed with redirect interceptions.
dp.Network.onRequestIntercepted(event => {
if (event.params.request.redirectUrl)
dp.Network.continueInterceptedRequest({interceptionId: event.params.interceptionId});
});
session.navigate('http://test-url/'); session.navigate('http://test-url/');
let params = (await dp.Network.onceRequestIntercepted()).params; let params = (await dp.Network.onceRequestIntercepted()).params;
......
...@@ -9,8 +9,6 @@ allowRequest ID 1 ...@@ -9,8 +9,6 @@ allowRequest ID 1
Network.responseReceived redirect-iframe.html 200 text/html Network.responseReceived redirect-iframe.html 200 text/html
Network.requestIntercepted ID 2 GET redirect1.pl type: Script Network.requestIntercepted ID 2 GET redirect1.pl type: Script
allowRequest ID 2 allowRequest ID 2
Network.requestIntercepted ID 2 307 redirect redirect1.pl -> redirect2.pl
allowRequest ID 2
Network.requestIntercepted ID 3 GET redirect2.pl type: Script Network.requestIntercepted ID 3 GET redirect2.pl type: Script
blockRequest ID 3 AddressUnreachable blockRequest ID 3 AddressUnreachable
Network.loadingFailed redirect2.pl net::ERR_ADDRESS_UNREACHABLE Network.loadingFailed redirect2.pl net::ERR_ADDRESS_UNREACHABLE
......
Tests interception of redirects.
Test started
Network agent enabled
Request interception enabled
Page agent enabled
Runtime agent enabled
Network.requestIntercepted ID 1 GET redirect-iframe.html type: Document
allowRequest ID 1
Network.requestIntercepted ID 1 GET redirect-iframe.html type: Document
allowRequest ID 1
Network.responseReceived redirect-iframe.html 200 text/html
Network.requestIntercepted ID 2 GET redirect1.pl type: Script
allowRequest ID 2
Network.requestIntercepted ID 2 307 redirect redirect1.pl -> redirect2.pl
allowRequest ID 2
Network.requestIntercepted ID 3 GET redirect2.pl type: Script
allowRequest ID 3
Network.requestIntercepted ID 3 302 redirect redirect2.pl -> redirect3.pl
allowRequest ID 3
Network.requestIntercepted ID 4 GET redirect3.pl type: Script
allowRequest ID 4
Network.requestIntercepted ID 4 301 redirect redirect3.pl -> final.js
allowRequest ID 4
Network.requestIntercepted ID 5 GET final.js type: Script
allowRequest ID 5
Network.requestIntercepted ID 5 GET final.js type: Script
allowRequest ID 5
Network.responseReceived final.js 200 application/x-javascript
Page.frameStoppedLoading
Hello from final.js!
(async function(testRunner) {
var {page, session, dp} = await testRunner.startBlank(
`Tests interception of redirects.`);
var InterceptionHelper = await testRunner.loadScript('../resources/interception-test.js');
var helper = new InterceptionHelper(testRunner, session);
var requestInterceptedDict = {
'redirect-iframe.html': event => helper.allowRequest(event),
'redirect1.pl': event => helper.allowRequest(event),
'redirect2.pl': event => helper.allowRequest(event),
'redirect3.pl': event => helper.allowRequest(event),
'final.js': event => helper.allowRequest(event),
};
await helper.startInterceptionTest(requestInterceptedDict, 1, 'Both');
session.evaluate(`
var iframe = document.createElement('iframe');
iframe.src = '${testRunner.url('./resources/redirect-iframe.html')}';
document.body.appendChild(iframe);
`);
})
...@@ -9,16 +9,10 @@ allowRequest ID 1 ...@@ -9,16 +9,10 @@ allowRequest ID 1
Network.responseReceived redirect-iframe.html 200 text/html Network.responseReceived redirect-iframe.html 200 text/html
Network.requestIntercepted ID 2 GET redirect1.pl type: Script Network.requestIntercepted ID 2 GET redirect1.pl type: Script
allowRequest ID 2 allowRequest ID 2
Network.requestIntercepted ID 2 307 redirect redirect1.pl -> redirect2.pl
allowRequest ID 2
Network.requestIntercepted ID 3 GET redirect2.pl type: Script Network.requestIntercepted ID 3 GET redirect2.pl type: Script
allowRequest ID 3 allowRequest ID 3
Network.requestIntercepted ID 3 302 redirect redirect2.pl -> redirect3.pl
allowRequest ID 3
Network.requestIntercepted ID 4 GET redirect3.pl type: Script Network.requestIntercepted ID 4 GET redirect3.pl type: Script
allowRequest ID 4 allowRequest ID 4
Network.requestIntercepted ID 4 301 redirect redirect3.pl -> final.js
allowRequest ID 4
Network.requestIntercepted ID 5 GET final.js type: Script Network.requestIntercepted ID 5 GET final.js type: Script
allowRequest ID 5 allowRequest ID 5
Network.responseReceived final.js 200 application/x-javascript Network.responseReceived final.js 200 application/x-javascript
......
...@@ -9,12 +9,8 @@ allowRequest ID 1 ...@@ -9,12 +9,8 @@ allowRequest ID 1
Network.responseReceived redirect-iframe.html 200 text/html Network.responseReceived redirect-iframe.html 200 text/html
Network.requestIntercepted ID 2 GET redirect1.pl type: Script Network.requestIntercepted ID 2 GET redirect1.pl type: Script
allowRequest ID 2 allowRequest ID 2
Network.requestIntercepted ID 2 307 redirect redirect1.pl -> redirect2.pl
allowRequest ID 2
Network.requestIntercepted ID 3 GET redirect2.pl type: Script Network.requestIntercepted ID 3 GET redirect2.pl type: Script
allowRequest ID 3 allowRequest ID 3
Network.requestIntercepted ID 3 302 redirect redirect2.pl -> redirect3.pl
allowRequest ID 3
Network.requestIntercepted ID 4 GET redirect3.pl type: Script Network.requestIntercepted ID 4 GET redirect3.pl type: Script
mockResponse ID 4 mockResponse ID 4
Network.responseReceived redirect3.pl 200 application/javascript Network.responseReceived redirect3.pl 200 application/javascript
......
...@@ -9,12 +9,8 @@ allowRequest ID 1 ...@@ -9,12 +9,8 @@ allowRequest ID 1
Network.responseReceived redirect-iframe.html 200 text/html Network.responseReceived redirect-iframe.html 200 text/html
Network.requestIntercepted ID 2 GET redirect1.pl type: Script Network.requestIntercepted ID 2 GET redirect1.pl type: Script
allowRequest ID 2 allowRequest ID 2
Network.requestIntercepted ID 2 307 redirect redirect1.pl -> redirect2.pl
allowRequest ID 2
Network.requestIntercepted ID 3 GET redirect2.pl type: Script Network.requestIntercepted ID 3 GET redirect2.pl type: Script
allowRequest ID 3 allowRequest ID 3
Network.requestIntercepted ID 3 302 redirect redirect2.pl -> redirect3.pl
allowRequest ID 3
Network.requestIntercepted ID 4 GET redirect3.pl type: Script Network.requestIntercepted ID 4 GET redirect3.pl type: Script
modifyRequest ID 4: url redirect3.pl -> alternative.js modifyRequest ID 4: url redirect3.pl -> alternative.js
Network.responseReceived redirect3.pl 200 application/x-javascript Network.responseReceived redirect3.pl 200 application/x-javascript
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment