diff --git a/atom/browser/net/atom_network_delegate.cc b/atom/browser/net/atom_network_delegate.cc index 228cb5828e..4f9bc835ed 100644 --- a/atom/browser/net/atom_network_delegate.cc +++ b/atom/browser/net/atom_network_delegate.cc @@ -154,6 +154,7 @@ void ReadFromResponseObject(const base::DictionaryValue& response, net::HttpRequestHeaders* headers) { const base::DictionaryValue* dict; if (response.GetDictionary("requestHeaders", &dict)) { + headers->Clear(); for (base::DictionaryValue::Iterator it(*dict); !it.IsAtEnd(); it.Advance()) { diff --git a/spec/api-web-request-spec.coffee b/spec/api-web-request-spec.coffee index a10ff3d127..5c78ef1d30 100644 --- a/spec/api-web-request-spec.coffee +++ b/spec/api-web-request-spec.coffee @@ -103,12 +103,23 @@ describe 'webRequest module', -> done() error: (xhr, errorType, error) -> done(errorType) + it 'resets the whole headers', (done) -> + requestHeaders = Test: 'header' + ses.webRequest.onBeforeSendHeaders (details, callback) -> + callback({requestHeaders}) + ses.webRequest.onSendHeaders (details) -> + assert.deepEqual details.requestHeaders, requestHeaders + done() + $.ajax + url: defaultURL + error: (xhr, errorType, error) -> done(errorType) + describe 'webRequest.onSendHeaders', -> afterEach -> ses.webRequest.onSendHeaders null it 'receives details object', (done) -> - ses.webRequest.onSendHeaders (details, callback) -> + ses.webRequest.onSendHeaders (details) -> assert.equal typeof details.requestHeaders, 'object' $.ajax url: defaultURL diff --git a/spec/chromium-spec.coffee b/spec/chromium-spec.coffee index d19933393f..cc28f2f7ad 100644 --- a/spec/chromium-spec.coffee +++ b/spec/chromium-spec.coffee @@ -85,7 +85,7 @@ describe 'chromium feature', -> w.loadURL url describe 'window.open', -> - @timeout 10000 + @timeout 20000 it 'returns a BrowserWindowProxy object', -> b = window.open 'about:blank', '', 'show=no'