session: webRequest.OnHeadersReceived should follow server redirect
Its required to follow server redirects.
This commit is contained in:
parent
cf2a17cf88
commit
4fc35a4587
2 changed files with 32 additions and 5 deletions
|
@ -178,6 +178,8 @@ void ReadFromResponseObject(const base::DictionaryValue& response,
|
|||
!it.IsAtEnd();
|
||||
it.Advance()) {
|
||||
const base::ListValue* list;
|
||||
if (base::ToLowerASCII(it.key()) == "location")
|
||||
(*headers)->ReplaceStatusLine("HTTP/1.1 302 Found");
|
||||
if (it.value().GetAsList(&list)) {
|
||||
(*headers)->RemoveHeader(it.key());
|
||||
for (size_t i = 0; i < list->GetSize(); ++i) {
|
||||
|
|
|
@ -7,12 +7,18 @@ const session = remote.session
|
|||
describe('webRequest module', function () {
|
||||
var ses = session.defaultSession
|
||||
var server = http.createServer(function (req, res) {
|
||||
res.setHeader('Custom', ['Header'])
|
||||
var content = req.url
|
||||
if (req.headers.accept === '*/*;test/header') {
|
||||
content += 'header/received'
|
||||
if (req.url == '/serverRedirect') {
|
||||
res.statusCode = 301
|
||||
res.setHeader('Location', 'http://' + req.rawHeaders[1])
|
||||
res.end()
|
||||
} else {
|
||||
res.setHeader('Custom', ['Header'])
|
||||
var content = req.url
|
||||
if (req.headers.accept === '*/*;test/header') {
|
||||
content += 'header/received'
|
||||
}
|
||||
res.end(content)
|
||||
}
|
||||
res.end(content)
|
||||
})
|
||||
var defaultURL = null
|
||||
|
||||
|
@ -297,6 +303,25 @@ describe('webRequest module', function () {
|
|||
}
|
||||
})
|
||||
})
|
||||
|
||||
it('follows server redirect', function (done) {
|
||||
ses.webRequest.onHeadersReceived(function (details, callback) {
|
||||
var responseHeaders = details.responseHeaders
|
||||
callback({
|
||||
responseHeaders: responseHeaders,
|
||||
})
|
||||
})
|
||||
$.ajax({
|
||||
url: defaultURL + 'serverRedirect',
|
||||
success: function (data, status, xhr) {
|
||||
assert.equal(xhr.getResponseHeader('Custom'), 'Header')
|
||||
done()
|
||||
},
|
||||
error: function (xhr, errorType) {
|
||||
done(errorType)
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('webRequest.onResponseStarted', function () {
|
||||
|
|
Loading…
Add table
Reference in a new issue