// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
onload = async function() {
let getURL = chrome.runtime.getURL;
let tab = await promise(chrome.tabs.create, {"url": "about:blank"});
let config = await promise(chrome.test.getConfig);
let port = config.testServer.port;
let URL_TEST = "http://127.0.0.1:" + port +"/test";
chrome.test.runTests([
// Navigates to a different site, but then modifies the reference
// framgent.
function crossProcessFragment() {
expect([
{ label: "a-onBeforeNavigate",
event: "onBeforeNavigate",
details: { frameId: 0,
parentFrameId: -1,
processId: -1,
tabId: 0,
timeStamp: 0,
url: getURL('f.html') }},
{ label: "a-onCommitted",
event: "onCommitted",
details: { frameId: 0,
parentFrameId: -1,
processId: 0,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "link",
url: getURL('f.html') }},
{ label: "a-onDOMContentLoaded",
event: "onDOMContentLoaded",
details: { frameId: 0,
parentFrameId: -1,
processId: 0,
tabId: 0,
timeStamp: 0,
url: getURL('f.html') }},
{ label: "a-onCompleted",
event: "onCompleted",
details: { frameId: 0,
parentFrameId: -1,
processId: 0,
tabId: 0,
timeStamp: 0,
url: getURL('f.html') }},
{ label: "a-onReferenceFragmentUpdated",
event: "onReferenceFragmentUpdated",
details: { frameId: 0,
parentFrameId: -1,
processId: 0,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "link",
url: getURL('f.html#foo') }},
{ label: "b-onBeforeNavigate",
event: "onBeforeNavigate",
details: { frameId: 0,
parentFrameId: -1,
processId: -1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "3" }},
{ label: "b-onCommitted",
event: "onCommitted",
details: { frameId: 0,
parentFrameId: -1,
processId: 1,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "link",
url: URL_TEST + "3" }},
{ label: "b-onDOMContentLoaded",
event: "onDOMContentLoaded",
details: { frameId: 0,
parentFrameId: -1,
processId: 1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "3" }},
{ label: "b-onCompleted",
event: "onCompleted",
details: { frameId: 0,
parentFrameId: -1,
processId: 1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "3" }}],
[ navigationOrder("a-"),
[ "a-onCompleted", "b-onBeforeNavigate",
"a-onReferenceFragmentUpdated", "b-onCommitted"] ]);
chrome.tabs.update( tab.id, { url: getURL('f.html?' + port) });
},
// A page with an iframe that changes its reference fragment before
// the iframe committed.
function crossProcessFragmentIFrame() {
expect([
{ label: "a-onBeforeNavigate",
event: "onBeforeNavigate",
details: { frameId: 0,
parentFrameId: -1,
processId: -1,
tabId: 0,
timeStamp: 0,
url: getURL('g.html') }},
{ label: "a-onCommitted",
event: "onCommitted",
details: { frameId: 0,
parentFrameId: -1,
processId: 0,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "link",
url: getURL('g.html') }},
{ label: "a-onDOMContentLoaded",
event: "onDOMContentLoaded",
details: { frameId: 0,
parentFrameId: -1,
processId: 0,
tabId: 0,
timeStamp: 0,
url: getURL('g.html') }},
{ label: "a-onCompleted",
event: "onCompleted",
details: { frameId: 0,
parentFrameId: -1,
processId: 0,
tabId: 0,
timeStamp: 0,
url: getURL('g.html') }},
{ label: "a-onReferenceFragmentUpdated",
event: "onReferenceFragmentUpdated",
details: { frameId: 0,
parentFrameId: -1,
processId: 0,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "link",
url: getURL('g.html#foo') }},
{ label: "b-onBeforeNavigate",
event: "onBeforeNavigate",
details: { frameId: 1,
parentFrameId: 0,
processId: -1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "4" }},
{ label: "b-onCommitted",
event: "onCommitted",
details: { frameId: 1,
parentFrameId: 0,
processId: 1,
tabId: 0,
timeStamp: 0,
transitionQualifiers: [],
transitionType: "auto_subframe",
url: URL_TEST + "4" }},
{ label: "b-onDOMContentLoaded",
event: "onDOMContentLoaded",
details: { frameId: 1,
parentFrameId: 0,
processId: 1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "4" }},
{ label: "b-onCompleted",
event: "onCompleted",
details: { frameId: 1,
parentFrameId: 0,
processId: 1,
tabId: 0,
timeStamp: 0,
url: URL_TEST + "4" }}],
[ navigationOrder("a-"), navigationOrder("b-"),
[ "a-onCompleted", "b-onBeforeNavigate",
"a-onReferenceFragmentUpdated"] ]);
chrome.tabs.update(tabId, { url: getURL('g.html?' + port)});
},
]);
};