blob: 40890b25656fbb0c3a2a8c882b182a5b4539ad9a [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(async function() {
TestRunner.addResult(`Tests overriding user agent via WebInspector extension API\n`);
await TestRunner.loadModule('extensions_test_runner');
await TestRunner.navigatePromise('resources/extensions-useragent.html');
await ExtensionsTestRunner.runExtensionTests([
function extension_testUserAgent(nextTest)
{
const requestsToCheck = [
"extensions-useragent.html",
"xhr-exists.html"
];
var requestCount = 0;
var queuedOutput = [];
function onRequestFinished(request)
{
var url = request.request.url.replace(/^.*[/]/, "");
if (requestsToCheck.indexOf(url) < 0)
return;
queuedOutput.push("user-agent header for " + url + ": " + getHeader(request.request.headers, "user-agent"));
if (++requestCount < requestsToCheck.length)
return;
webInspector.network.onRequestFinished.removeListener(onRequestFinished);
webInspector.inspectedWindow.eval("navigator.userAgent", onEval);
}
function getHeader(headers, name)
{
for (var i = 0; i < headers.length; ++i) {
if (headers[i].name.toLowerCase() === name)
return headers[i].value;
}
}
function onEval(result)
{
queuedOutput.push("navigator.userAgent: " + result);
webInspector.inspectedWindow.eval("undefined", cleanUp);
}
function cleanUp()
{
evaluateOnFrontend("TestRunner.waitForPageLoad(reply)", onPageLoaded);
webInspector.inspectedWindow.reload({userAgent: ""});
}
function onPageLoaded()
{
for (var i = 0; i < queuedOutput.length; ++i)
output(queuedOutput[i]);
nextTest();
}
webInspector.network.onRequestFinished.addListener(onRequestFinished);
webInspector.inspectedWindow.reload({ignoreCache: true, userAgent: "Mozilla/4.0 (compatible; WebInspector Extension User-Agent override; RSX-11M)"});
}
]);
})();