blob: 7de73d3b6b609d148dca09229fae700e53cea099 [file] [log] [blame]
// Copyright 2013 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.
onload = function() {
var getURL = chrome.extension.getURL;
var URL_TEST = "http://127.0.0.1:PORT/test";
chrome.tabs.create({"url": "about:blank"}, function(tab) {
var tabId = tab.id;
chrome.test.getConfig(function(config) {
var fixPort = function(url) {
return url.replace(/PORT/g, config.testServer.port);
};
URL_TEST = fixPort(URL_TEST);
chrome.test.runTests([
// Navigates to a different site, but then modifies the history using
// history.pushState().
function crossProcessHistory() {
expect([
{ label: "a-onBeforeNavigate",
event: "onBeforeNavigate",
details: { frameId: 0,
parentFrameId: -1,
processId: -1,
tabId: 0,
timeStamp: 0,
url: getURL('e.html') }},
{ label: "a-onCommitted",
event: "onCommitted",
details: { frameId: 0,
processId: 0,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "link",
url: getURL('e.html') }},
{ label: "a-onDOMContentLoaded",
event: "onDOMContentLoaded",
details: { frameId: 0,
processId: 0,
tabId: 0,
timeStamp: 0,
url: getURL('e.html') }},
{ label: "a-onCompleted",
event: "onCompleted",
details: { frameId: 0,
processId: 0,
tabId: 0,
timeStamp: 0,
url: getURL('e.html') }},
{ label: "a-onHistoryStateUpdated",
event: "onHistoryStateUpdated",
details: { frameId: 0,
processId: 0,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "link",
url: getURL('empty.html') }},
{ label: "b-onBeforeNavigate",
event: "onBeforeNavigate",
details: { frameId: 0,
parentFrameId: -1,
processId: -1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "2" }},
{ label: "b-onCommitted",
event: "onCommitted",
details: { frameId: 0,
processId: 1,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "link",
url: URL_TEST + "2" }},
{ label: "b-onDOMContentLoaded",
event: "onDOMContentLoaded",
details: { frameId: 0,
processId: 1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "2" }},
{ label: "b-onCompleted",
event: "onCompleted",
details: { frameId: 0,
processId: 1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "2" }}],
[ navigationOrder("a-"),
[ "a-onCompleted", "b-onBeforeNavigate",
"a-onHistoryStateUpdated", "b-onCommitted"] ]);
chrome.tabs.update(
tabId,
{ url: getURL('e.html?' +
config.testServer.port) });
},
// A page with an iframe that changes its history state using
// history.pushState before the iframe is committed.
function crossProcessHistoryIFrame() {
expect([
{ label: "a-onBeforeNavigate",
event: "onBeforeNavigate",
details: { frameId: 0,
parentFrameId: -1,
processId: -1,
tabId: 0,
timeStamp: 0,
url: getURL('h.html') }},
{ label: "a-onCommitted",
event: "onCommitted",
details: { frameId: 0,
processId: 0,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "link",
url: getURL('h.html') }},
{ label: "a-onDOMContentLoaded",
event: "onDOMContentLoaded",
details: { frameId: 0,
processId: 0,
tabId: 0,
timeStamp: 0,
url: getURL('h.html') }},
{ label: "a-onCompleted",
event: "onCompleted",
details: { frameId: 0,
processId: 0,
tabId: 0,
timeStamp: 0,
url: getURL('h.html') }},
{ label: "a-onHistoryStateUpdated",
event: "onHistoryStateUpdated",
details: { frameId: 0,
processId: 0,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "link",
url: getURL('empty.html') }},
{ label: "b-onBeforeNavigate",
event: "onBeforeNavigate",
details: { frameId: 1,
parentFrameId: 0,
processId: -1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "5" }},
{ label: "b-onCommitted",
event: "onCommitted",
details: { frameId: 1,
processId: 1,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "auto_subframe",
url: URL_TEST + "5" }},
{ label: "b-onDOMContentLoaded",
event: "onDOMContentLoaded",
details: { frameId: 1,
processId: 1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "5" }},
{ label: "b-onCompleted",
event: "onCompleted",
details: { frameId: 1,
processId: 1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "5" }}],
[ navigationOrder("a-"), navigationOrder("b-"),
[ "a-onCompleted", "b-onBeforeNavigate",
"a-onHistoryStateUpdated"] ]);
chrome.tabs.update(
tabId,
{ url: getURL('h.html?' +
config.testServer.port) });
},
// Navigates to a different site, but then modifies the history using
// history.replaceState().
function crossProcessHistoryReplace() {
expect([
{ label: "a-onBeforeNavigate",
event: "onBeforeNavigate",
details: { frameId: 0,
parentFrameId: -1,
processId: -1,
tabId: 0,
timeStamp: 0,
url: getURL('i.html') }},
{ label: "a-onCommitted",
event: "onCommitted",
details: { frameId: 0,
processId: 0,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "link",
url: getURL('i.html') }},
{ label: "a-onDOMContentLoaded",
event: "onDOMContentLoaded",
details: { frameId: 0,
processId: 0,
tabId: 0,
timeStamp: 0,
url: getURL('i.html') }},
{ label: "a-onCompleted",
event: "onCompleted",
details: { frameId: 0,
processId: 0,
tabId: 0,
timeStamp: 0,
url: getURL('i.html') }},
{ label: "a-onHistoryStateUpdated",
event: "onHistoryStateUpdated",
details: { frameId: 0,
processId: 0,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "link",
url: getURL('empty.html') }},
{ label: "b-onBeforeNavigate",
event: "onBeforeNavigate",
details: { frameId: 0,
parentFrameId: -1,
processId: -1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "6" }},
{ label: "b-onCommitted",
event: "onCommitted",
details: { frameId: 0,
processId: 1,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "link",
url: URL_TEST + "6" }},
{ label: "b-onDOMContentLoaded",
event: "onDOMContentLoaded",
details: { frameId: 0,
processId: 1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "6" }},
{ label: "b-onCompleted",
event: "onCompleted",
details: { frameId: 0,
processId: 1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "6" }}],
[ navigationOrder("a-"),
[ "a-onCompleted", "b-onBeforeNavigate",
"a-onHistoryStateUpdated", "b-onCommitted"] ]);
chrome.tabs.update(
tabId,
{ url: getURL('i.html?' +
config.testServer.port) });
},
]);
});
});
};