Assert that all extra HTTP header values are strings (#781)

Since protocol ignores all HTTP headers that don't have string
value, this patch starts validating header key-values before
sending them over the protocol.

Fixes #713.
This commit is contained in:
Andrey Lushnikov
2017-09-14 19:08:48 -07:00
committed by GitHub
parent 86b05dadd5
commit d562db3140
3 changed files with 15 additions and 3 deletions

View File

@@ -63,8 +63,11 @@ class NetworkManager extends EventEmitter {
*/
async setExtraHTTPHeaders(extraHTTPHeaders) {
this._extraHTTPHeaders = {};
for (const key of Object.keys(extraHTTPHeaders))
this._extraHTTPHeaders[key.toLowerCase()] = extraHTTPHeaders[key];
for (const key of Object.keys(extraHTTPHeaders)) {
const value = extraHTTPHeaders[key];
console.assert(helper.isString(value), `Expected value of header "${key}" to be String, but "${typeof value}" is found.`);
this._extraHTTPHeaders[key.toLowerCase()] = value;
}
await this._client.send('Network.setExtraHTTPHeaders', { headers: this._extraHTTPHeaders });
}