| Index: chrome/test/data/extensions/api_test/webnavigation/navigation1/test.html
|
| diff --git a/chrome/test/data/extensions/api_test/webnavigation/navigation1/test.html b/chrome/test/data/extensions/api_test/webnavigation/navigation1/test.html
|
| index cbbfd99b1ffaca2dac8660d887f72b2024e0c50a..54080a734cd6f1d92e4e32c1a0ae813858c3fe18 100644
|
| --- a/chrome/test/data/extensions/api_test/webnavigation/navigation1/test.html
|
| +++ b/chrome/test/data/extensions/api_test/webnavigation/navigation1/test.html
|
| @@ -3,12 +3,16 @@ var expectedEventData;
|
| var capturedEventData;
|
| var nextFrameId;
|
| var frameIds;
|
| +var nextTabId;
|
| +var tabIds;
|
|
|
| function expect(data) {
|
| expectedEventData = data;
|
| capturedEventData = [];
|
| nextFrameId = 1;
|
| frameIds = {};
|
| + nextTabId = 0;
|
| + tabIds = {};
|
| }
|
|
|
| function checkExpectations() {
|
| @@ -22,13 +26,27 @@ function checkExpectations() {
|
|
|
| function captureEvent(name, details) {
|
| // normalize details.
|
| - details.timeStamp = 0;
|
| - if (details.frameId != 0) {
|
| + if ('timeStamp' in details) {
|
| + details.timeStamp = 0;
|
| + }
|
| + if (('frameId' in details) && (details.frameId != 0)) {
|
| if (frameIds[details.frameId] === undefined) {
|
| frameIds[details.frameId] = nextFrameId++;
|
| }
|
| details.frameId = frameIds[details.frameId];
|
| }
|
| + if ('tabId' in details) {
|
| + if (tabIds[details.tabId] === undefined) {
|
| + tabIds[details.tabId] = nextTabId++;
|
| + }
|
| + details.tabId = tabIds[details.tabId];
|
| + }
|
| + if ('sourceTabId' in details) {
|
| + if (tabIds[details.sourceTabId] === undefined) {
|
| + tabIds[details.sourceTabId] = nextTabId++;
|
| + }
|
| + details.sourceTabId = tabIds[details.sourceTabId];
|
| + }
|
| capturedEventData.push([name, details]);
|
| checkExpectations();
|
| }
|
| @@ -52,6 +70,11 @@ chrome.experimental.webNavigation.onCompleted.addListener(
|
| captureEvent("onCompleted", details);
|
| });
|
|
|
| +chrome.experimental.webNavigation.onBeforeRetarget.addListener(
|
| + function(details) {
|
| + captureEvent("onBeforeRetarget", details);
|
| +});
|
| +
|
| chrome.experimental.webNavigation.onErrorOccurred.addListener(
|
| function(details) {
|
| captureEvent("onErrorOccurred", details);
|
| @@ -68,24 +91,24 @@ chrome.tabs.getSelected(null, function(tab) {
|
| [ "onBeforeNavigate",
|
| { frameId: 0,
|
| requestId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('simpleLoad/a.html') }],
|
| [ "onCommitted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| transitionQualifiers: "",
|
| transitionType: "link",
|
| url: getURL('simpleLoad/a.html') }],
|
| [ "onDOMContentLoaded",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('simpleLoad/a.html') }],
|
| [ "onCompleted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('simpleLoad/a.html') }]]);
|
| chrome.tabs.update(tabId, { url: getURL('simpleLoad/a.html') });
|
| @@ -99,47 +122,47 @@ chrome.tabs.getSelected(null, function(tab) {
|
| [ "onBeforeNavigate",
|
| { frameId: 0,
|
| requestId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('clientRedirect/a.html') }],
|
| [ "onCommitted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| transitionQualifiers: "",
|
| transitionType: "link",
|
| url: getURL('clientRedirect/a.html') }],
|
| [ "onDOMContentLoaded",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('clientRedirect/a.html') }],
|
| [ "onCompleted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('clientRedirect/a.html') }],
|
| [ "onBeforeNavigate",
|
| { frameId: 0,
|
| requestId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('clientRedirect/b.html') }],
|
| [ "onCommitted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| transitionQualifiers: "client_redirect",
|
| transitionType: "link",
|
| url: getURL('clientRedirect/b.html') }],
|
| [ "onDOMContentLoaded",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('clientRedirect/b.html') }],
|
| [ "onCompleted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('clientRedirect/b.html') }]]);
|
| chrome.tabs.update(tabId, { url: getURL('clientRedirect/a.html') });
|
| @@ -152,70 +175,70 @@ chrome.tabs.getSelected(null, function(tab) {
|
| [ "onBeforeNavigate",
|
| { frameId: 0,
|
| requestId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('forwardBack/a.html') }],
|
| [ "onCommitted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| transitionQualifiers: "",
|
| transitionType: "link",
|
| url: getURL('forwardBack/a.html') }],
|
| [ "onDOMContentLoaded",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('forwardBack/a.html') }],
|
| [ "onCompleted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('forwardBack/a.html') }],
|
| [ "onBeforeNavigate",
|
| { frameId: 0,
|
| requestId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('forwardBack/b.html') }],
|
| [ "onCommitted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| transitionQualifiers: "client_redirect",
|
| transitionType: "link",
|
| url: getURL('forwardBack/b.html') }],
|
| [ "onDOMContentLoaded",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('forwardBack/b.html') }],
|
| [ "onCompleted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('forwardBack/b.html') }],
|
| [ "onBeforeNavigate",
|
| { frameId: 0,
|
| requestId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('forwardBack/a.html') }],
|
| [ "onCommitted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| transitionQualifiers: "forward_back",
|
| transitionType: "link",
|
| url: getURL('forwardBack/a.html') }],
|
| [ "onDOMContentLoaded",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('forwardBack/a.html') }],
|
| [ "onCompleted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('forwardBack/a.html') }]]);
|
| chrome.tabs.update(tabId, { url: getURL('forwardBack/a.html') });
|
| @@ -228,12 +251,12 @@ chrome.tabs.getSelected(null, function(tab) {
|
| [ "onBeforeNavigate",
|
| { frameId: 0,
|
| requestId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/a.html') }],
|
| [ "onCommitted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| transitionQualifiers: "",
|
| transitionType: "link",
|
| @@ -241,57 +264,57 @@ chrome.tabs.getSelected(null, function(tab) {
|
| [ "onBeforeNavigate",
|
| { frameId: 1,
|
| requestId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/b.html') }],
|
| [ "onDOMContentLoaded",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/a.html') }],
|
| [ "onCommitted",
|
| { frameId: 1,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| transitionQualifiers: "",
|
| transitionType: "auto_subframe",
|
| url: getURL('iframe/b.html') }],
|
| [ "onDOMContentLoaded",
|
| { frameId: 1,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/b.html') }],
|
| [ "onCompleted",
|
| { frameId: 1,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/b.html') }],
|
| [ "onCompleted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/a.html') }],
|
| [ "onBeforeNavigate",
|
| { frameId: 1,
|
| requestId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/c.html') }],
|
| [ "onCommitted",
|
| { frameId: 1,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| transitionQualifiers: "",
|
| transitionType: "manual_subframe",
|
| url: getURL('iframe/c.html') }],
|
| [ "onDOMContentLoaded",
|
| { frameId: 1,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/c.html') }],
|
| [ "onCompleted",
|
| { frameId: 1,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/c.html') }]]);
|
| chrome.tabs.update(tabId, { url: getURL('iframe/a.html') });
|
| @@ -305,12 +328,12 @@ chrome.tabs.getSelected(null, function(tab) {
|
| [ "onBeforeNavigate",
|
| { frameId: 0,
|
| requestId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/d.html') }],
|
| [ "onCommitted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| transitionQualifiers: "",
|
| transitionType: "link",
|
| @@ -318,84 +341,221 @@ chrome.tabs.getSelected(null, function(tab) {
|
| [ "onBeforeNavigate",
|
| { frameId: 1,
|
| requestId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/e.html') }],
|
| [ "onDOMContentLoaded",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/d.html') }],
|
| [ "onCommitted",
|
| { frameId: 1,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| transitionQualifiers: "",
|
| transitionType: "auto_subframe",
|
| url: getURL('iframe/e.html') }],
|
| [ "onDOMContentLoaded",
|
| { frameId: 1,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/e.html') }],
|
| [ "onBeforeNavigate",
|
| { frameId: 2,
|
| requestId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/f.html') }],
|
| [ "onCompleted",
|
| { frameId: 1,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/e.html') }],
|
| [ "onCommitted",
|
| { frameId: 2,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| transitionQualifiers: "",
|
| transitionType: "auto_subframe",
|
| url: getURL('iframe/f.html') }],
|
| [ "onDOMContentLoaded",
|
| { frameId: 2,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/f.html') }],
|
| [ "onCompleted",
|
| { frameId: 2,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/f.html') }],
|
| [ "onCompleted",
|
| { frameId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/d.html') }],
|
| [ "onBeforeNavigate",
|
| { frameId: 2,
|
| requestId: 0,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/g.html') }],
|
| [ "onCommitted",
|
| { frameId: 2,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| transitionQualifiers: "",
|
| transitionType: "manual_subframe",
|
| url: getURL('iframe/g.html') }],
|
| [ "onDOMContentLoaded",
|
| { frameId: 2,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/g.html') }],
|
| [ "onCompleted",
|
| { frameId: 2,
|
| - tabId: tabId,
|
| + tabId: 0,
|
| timeStamp: 0,
|
| url: getURL('iframe/g.html') }]]);
|
| chrome.tabs.update(tabId, { url: getURL('iframe/d.html') });
|
| },
|
| +
|
| + /* Opens a new tab from javascript. */
|
| + function openTab() {
|
| + expect([
|
| + [ "onBeforeNavigate",
|
| + { frameId: 0,
|
| + requestId: 0,
|
| + tabId: 0,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/a.html') }],
|
| + [ "onCommitted",
|
| + { frameId: 0,
|
| + tabId: 0,
|
| + timeStamp: 0,
|
| + transitionQualifiers: "",
|
| + transitionType: "link",
|
| + url: getURL('openTab/a.html') }],
|
| + [ "onDOMContentLoaded",
|
| + { frameId: 0,
|
| + tabId: 0,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/a.html') }],
|
| + [ "onCompleted",
|
| + { frameId: 0,
|
| + tabId: 0,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/a.html') }],
|
| + [ "onBeforeRetarget",
|
| + { sourceTabId: 0,
|
| + sourceUrl: getURL('openTab/a.html'),
|
| + targetUrl: getURL('openTab/b.html'),
|
| + timeStamp: 0 }],
|
| + [ "onBeforeNavigate",
|
| + { frameId: 0,
|
| + requestId: 0,
|
| + tabId: 1,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/b.html') }],
|
| + [ "onCommitted",
|
| + { frameId: 0,
|
| + tabId: 1,
|
| + timeStamp: 0,
|
| + transitionQualifiers: "",
|
| + transitionType: "link",
|
| + url: getURL('openTab/b.html') }],
|
| + [ "onDOMContentLoaded",
|
| + { frameId: 0,
|
| + tabId: 1,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/b.html') }],
|
| + [ "onCompleted",
|
| + { frameId: 0,
|
| + tabId: 1,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/b.html') }]]);
|
| + chrome.tabs.update(tabId, { url: getURL('openTab/a.html') });
|
| + },
|
| +
|
| + /* Opens a new tab from javascript within an iframe. */
|
| + function openTabFrame() {
|
| + expect([
|
| + [ "onBeforeNavigate",
|
| + { frameId: 0,
|
| + requestId: 0,
|
| + tabId: 0,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/c.html') }],
|
| + [ "onCommitted",
|
| + { frameId: 0,
|
| + tabId: 0,
|
| + timeStamp: 0,
|
| + transitionQualifiers: "",
|
| + transitionType: "link",
|
| + url: getURL('openTab/c.html') }],
|
| + [ "onBeforeNavigate",
|
| + { frameId: 1,
|
| + requestId: 0,
|
| + tabId: 0,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/a.html') }],
|
| + [ "onDOMContentLoaded",
|
| + { frameId: 0,
|
| + tabId: 0,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/c.html') }],
|
| + [ "onCommitted",
|
| + { frameId: 1,
|
| + tabId: 0,
|
| + timeStamp: 0,
|
| + transitionQualifiers: "",
|
| + transitionType: "auto_subframe",
|
| + url: getURL('openTab/a.html') }],
|
| + [ "onDOMContentLoaded",
|
| + { frameId: 1,
|
| + tabId: 0,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/a.html') }],
|
| + [ "onCompleted",
|
| + { frameId: 1,
|
| + tabId: 0,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/a.html') }],
|
| + [ "onCompleted",
|
| + { frameId: 0,
|
| + tabId: 0,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/c.html') }],
|
| + [ "onBeforeRetarget",
|
| + { sourceTabId: 0,
|
| + sourceUrl: getURL('openTab/a.html'),
|
| + targetUrl: getURL('openTab/b.html'),
|
| + timeStamp: 0 }],
|
| + [ "onBeforeNavigate",
|
| + { frameId: 0,
|
| + requestId: 0,
|
| + tabId: 1,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/b.html') }],
|
| + [ "onCommitted",
|
| + { frameId: 0,
|
| + tabId: 1,
|
| + timeStamp: 0,
|
| + transitionQualifiers: "",
|
| + transitionType: "link",
|
| + url: getURL('openTab/b.html') }],
|
| + [ "onDOMContentLoaded",
|
| + { frameId: 0,
|
| + tabId: 1,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/b.html') }],
|
| + [ "onCompleted",
|
| + { frameId: 0,
|
| + tabId: 1,
|
| + timeStamp: 0,
|
| + url: getURL('openTab/b.html') }]]);
|
| + chrome.tabs.update(tabId, { url: getURL('openTab/c.html') });
|
| + },
|
| ]);
|
| });
|
| </script>
|
|
|