Chromium Code Reviews| 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..da024e2d133bfb12fe7257559fca591c84f5e354 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,141 @@ 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'), |
|
yzshen1
2011/01/18 21:49:24
[Nice to have, optional]
Test the scenario that a
|
| + 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') }); |
| + }, |
| ]); |
| }); |
| </script> |