Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: chrome/test/data/extensions/api_test/webnavigation/navigation1/test.html

Issue 6363002: Implement the onBeforeRetarget event of the webNavigation API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tests Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 <script> 1 <script>
2 var expectedEventData; 2 var expectedEventData;
3 var capturedEventData; 3 var capturedEventData;
4 var nextFrameId; 4 var nextFrameId;
5 var frameIds; 5 var frameIds;
6 var nextTabId;
7 var tabIds;
6 8
7 function expect(data) { 9 function expect(data) {
8 expectedEventData = data; 10 expectedEventData = data;
9 capturedEventData = []; 11 capturedEventData = [];
10 nextFrameId = 1; 12 nextFrameId = 1;
11 frameIds = {}; 13 frameIds = {};
14 nextTabId = 0;
15 tabIds = {};
12 } 16 }
13 17
14 function checkExpectations() { 18 function checkExpectations() {
15 if (capturedEventData.length < expectedEventData.length) { 19 if (capturedEventData.length < expectedEventData.length) {
16 return; 20 return;
17 } 21 }
18 chrome.test.assertEq(JSON.stringify(expectedEventData), 22 chrome.test.assertEq(JSON.stringify(expectedEventData),
19 JSON.stringify(capturedEventData)); 23 JSON.stringify(capturedEventData));
20 chrome.test.succeed(); 24 chrome.test.succeed();
21 } 25 }
22 26
23 function captureEvent(name, details) { 27 function captureEvent(name, details) {
24 // normalize details. 28 // normalize details.
25 details.timeStamp = 0; 29 if ('timeStamp' in details) {
26 if (details.frameId != 0) { 30 details.timeStamp = 0;
31 }
32 if (('frameId' in details) && (details.frameId != 0)) {
27 if (frameIds[details.frameId] === undefined) { 33 if (frameIds[details.frameId] === undefined) {
28 frameIds[details.frameId] = nextFrameId++; 34 frameIds[details.frameId] = nextFrameId++;
29 } 35 }
30 details.frameId = frameIds[details.frameId]; 36 details.frameId = frameIds[details.frameId];
31 } 37 }
38 if ('tabId' in details) {
39 if (tabIds[details.tabId] === undefined) {
40 tabIds[details.tabId] = nextTabId++;
41 }
42 details.tabId = tabIds[details.tabId];
43 }
44 if ('sourceTabId' in details) {
45 if (tabIds[details.sourceTabId] === undefined) {
46 tabIds[details.sourceTabId] = nextTabId++;
47 }
48 details.sourceTabId = tabIds[details.sourceTabId];
49 }
32 capturedEventData.push([name, details]); 50 capturedEventData.push([name, details]);
33 checkExpectations(); 51 checkExpectations();
34 } 52 }
35 53
36 chrome.experimental.webNavigation.onBeforeNavigate.addListener( 54 chrome.experimental.webNavigation.onBeforeNavigate.addListener(
37 function(details) { 55 function(details) {
38 captureEvent("onBeforeNavigate", details); 56 captureEvent("onBeforeNavigate", details);
39 }); 57 });
40 58
41 chrome.experimental.webNavigation.onCommitted.addListener(function(details) { 59 chrome.experimental.webNavigation.onCommitted.addListener(function(details) {
42 captureEvent("onCommitted", details); 60 captureEvent("onCommitted", details);
43 }); 61 });
44 62
45 chrome.experimental.webNavigation.onDOMContentLoaded.addListener( 63 chrome.experimental.webNavigation.onDOMContentLoaded.addListener(
46 function(details) { 64 function(details) {
47 captureEvent("onDOMContentLoaded", details); 65 captureEvent("onDOMContentLoaded", details);
48 }); 66 });
49 67
50 chrome.experimental.webNavigation.onCompleted.addListener( 68 chrome.experimental.webNavigation.onCompleted.addListener(
51 function(details) { 69 function(details) {
52 captureEvent("onCompleted", details); 70 captureEvent("onCompleted", details);
53 }); 71 });
54 72
73 chrome.experimental.webNavigation.onBeforeRetarget.addListener(
74 function(details) {
75 captureEvent("onBeforeRetarget", details);
76 });
77
55 chrome.experimental.webNavigation.onErrorOccurred.addListener( 78 chrome.experimental.webNavigation.onErrorOccurred.addListener(
56 function(details) { 79 function(details) {
57 captureEvent("onErrorOccurred", details); 80 captureEvent("onErrorOccurred", details);
58 }); 81 });
59 82
60 var getURL = chrome.extension.getURL; 83 var getURL = chrome.extension.getURL;
61 chrome.tabs.getSelected(null, function(tab) { 84 chrome.tabs.getSelected(null, function(tab) {
62 var tabId = tab.id; 85 var tabId = tab.id;
63 86
64 chrome.test.runTests([ 87 chrome.test.runTests([
65 /* Navigates to an URL */ 88 /* Navigates to an URL */
66 function simpleLoad() { 89 function simpleLoad() {
67 expect([ 90 expect([
68 [ "onBeforeNavigate", 91 [ "onBeforeNavigate",
69 { frameId: 0, 92 { frameId: 0,
70 requestId: 0, 93 requestId: 0,
71 tabId: tabId, 94 tabId: 0,
72 timeStamp: 0, 95 timeStamp: 0,
73 url: getURL('simpleLoad/a.html') }], 96 url: getURL('simpleLoad/a.html') }],
74 [ "onCommitted", 97 [ "onCommitted",
75 { frameId: 0, 98 { frameId: 0,
76 tabId: tabId, 99 tabId: 0,
77 timeStamp: 0, 100 timeStamp: 0,
78 transitionQualifiers: "", 101 transitionQualifiers: "",
79 transitionType: "link", 102 transitionType: "link",
80 url: getURL('simpleLoad/a.html') }], 103 url: getURL('simpleLoad/a.html') }],
81 [ "onDOMContentLoaded", 104 [ "onDOMContentLoaded",
82 { frameId: 0, 105 { frameId: 0,
83 tabId: tabId, 106 tabId: 0,
84 timeStamp: 0, 107 timeStamp: 0,
85 url: getURL('simpleLoad/a.html') }], 108 url: getURL('simpleLoad/a.html') }],
86 [ "onCompleted", 109 [ "onCompleted",
87 { frameId: 0, 110 { frameId: 0,
88 tabId: tabId, 111 tabId: 0,
89 timeStamp: 0, 112 timeStamp: 0,
90 url: getURL('simpleLoad/a.html') }]]); 113 url: getURL('simpleLoad/a.html') }]]);
91 chrome.tabs.update(tabId, { url: getURL('simpleLoad/a.html') }); 114 chrome.tabs.update(tabId, { url: getURL('simpleLoad/a.html') });
92 }, 115 },
93 116
94 /* Navigates to a.html that redirects to b.html (using javascript) 117 /* Navigates to a.html that redirects to b.html (using javascript)
95 after a delay of 500ms, so the initial navigation is completed and 118 after a delay of 500ms, so the initial navigation is completed and
96 the redirection is marked as client_redirect */ 119 the redirection is marked as client_redirect */
97 function clientRedirect() { 120 function clientRedirect() {
98 expect([ 121 expect([
99 [ "onBeforeNavigate", 122 [ "onBeforeNavigate",
100 { frameId: 0, 123 { frameId: 0,
101 requestId: 0, 124 requestId: 0,
102 tabId: tabId, 125 tabId: 0,
103 timeStamp: 0, 126 timeStamp: 0,
104 url: getURL('clientRedirect/a.html') }], 127 url: getURL('clientRedirect/a.html') }],
105 [ "onCommitted", 128 [ "onCommitted",
106 { frameId: 0, 129 { frameId: 0,
107 tabId: tabId, 130 tabId: 0,
108 timeStamp: 0, 131 timeStamp: 0,
109 transitionQualifiers: "", 132 transitionQualifiers: "",
110 transitionType: "link", 133 transitionType: "link",
111 url: getURL('clientRedirect/a.html') }], 134 url: getURL('clientRedirect/a.html') }],
112 [ "onDOMContentLoaded", 135 [ "onDOMContentLoaded",
113 { frameId: 0, 136 { frameId: 0,
114 tabId: tabId, 137 tabId: 0,
115 timeStamp: 0, 138 timeStamp: 0,
116 url: getURL('clientRedirect/a.html') }], 139 url: getURL('clientRedirect/a.html') }],
117 [ "onCompleted", 140 [ "onCompleted",
118 { frameId: 0, 141 { frameId: 0,
119 tabId: tabId, 142 tabId: 0,
120 timeStamp: 0, 143 timeStamp: 0,
121 url: getURL('clientRedirect/a.html') }], 144 url: getURL('clientRedirect/a.html') }],
122 [ "onBeforeNavigate", 145 [ "onBeforeNavigate",
123 { frameId: 0, 146 { frameId: 0,
124 requestId: 0, 147 requestId: 0,
125 tabId: tabId, 148 tabId: 0,
126 timeStamp: 0, 149 timeStamp: 0,
127 url: getURL('clientRedirect/b.html') }], 150 url: getURL('clientRedirect/b.html') }],
128 [ "onCommitted", 151 [ "onCommitted",
129 { frameId: 0, 152 { frameId: 0,
130 tabId: tabId, 153 tabId: 0,
131 timeStamp: 0, 154 timeStamp: 0,
132 transitionQualifiers: "client_redirect", 155 transitionQualifiers: "client_redirect",
133 transitionType: "link", 156 transitionType: "link",
134 url: getURL('clientRedirect/b.html') }], 157 url: getURL('clientRedirect/b.html') }],
135 [ "onDOMContentLoaded", 158 [ "onDOMContentLoaded",
136 { frameId: 0, 159 { frameId: 0,
137 tabId: tabId, 160 tabId: 0,
138 timeStamp: 0, 161 timeStamp: 0,
139 url: getURL('clientRedirect/b.html') }], 162 url: getURL('clientRedirect/b.html') }],
140 [ "onCompleted", 163 [ "onCompleted",
141 { frameId: 0, 164 { frameId: 0,
142 tabId: tabId, 165 tabId: 0,
143 timeStamp: 0, 166 timeStamp: 0,
144 url: getURL('clientRedirect/b.html') }]]); 167 url: getURL('clientRedirect/b.html') }]]);
145 chrome.tabs.update(tabId, { url: getURL('clientRedirect/a.html') }); 168 chrome.tabs.update(tabId, { url: getURL('clientRedirect/a.html') });
146 }, 169 },
147 170
148 /* First navigates to a.html which redirects to to b.html which uses 171 /* First navigates to a.html which redirects to to b.html which uses
149 history.back() to navigate back to a.html */ 172 history.back() to navigate back to a.html */
150 function forwardBack() { 173 function forwardBack() {
151 expect([ 174 expect([
152 [ "onBeforeNavigate", 175 [ "onBeforeNavigate",
153 { frameId: 0, 176 { frameId: 0,
154 requestId: 0, 177 requestId: 0,
155 tabId: tabId, 178 tabId: 0,
156 timeStamp: 0, 179 timeStamp: 0,
157 url: getURL('forwardBack/a.html') }], 180 url: getURL('forwardBack/a.html') }],
158 [ "onCommitted", 181 [ "onCommitted",
159 { frameId: 0, 182 { frameId: 0,
160 tabId: tabId, 183 tabId: 0,
161 timeStamp: 0, 184 timeStamp: 0,
162 transitionQualifiers: "", 185 transitionQualifiers: "",
163 transitionType: "link", 186 transitionType: "link",
164 url: getURL('forwardBack/a.html') }], 187 url: getURL('forwardBack/a.html') }],
165 [ "onDOMContentLoaded", 188 [ "onDOMContentLoaded",
166 { frameId: 0, 189 { frameId: 0,
167 tabId: tabId, 190 tabId: 0,
168 timeStamp: 0, 191 timeStamp: 0,
169 url: getURL('forwardBack/a.html') }], 192 url: getURL('forwardBack/a.html') }],
170 [ "onCompleted", 193 [ "onCompleted",
171 { frameId: 0, 194 { frameId: 0,
172 tabId: tabId, 195 tabId: 0,
173 timeStamp: 0, 196 timeStamp: 0,
174 url: getURL('forwardBack/a.html') }], 197 url: getURL('forwardBack/a.html') }],
175 [ "onBeforeNavigate", 198 [ "onBeforeNavigate",
176 { frameId: 0, 199 { frameId: 0,
177 requestId: 0, 200 requestId: 0,
178 tabId: tabId, 201 tabId: 0,
179 timeStamp: 0, 202 timeStamp: 0,
180 url: getURL('forwardBack/b.html') }], 203 url: getURL('forwardBack/b.html') }],
181 [ "onCommitted", 204 [ "onCommitted",
182 { frameId: 0, 205 { frameId: 0,
183 tabId: tabId, 206 tabId: 0,
184 timeStamp: 0, 207 timeStamp: 0,
185 transitionQualifiers: "client_redirect", 208 transitionQualifiers: "client_redirect",
186 transitionType: "link", 209 transitionType: "link",
187 url: getURL('forwardBack/b.html') }], 210 url: getURL('forwardBack/b.html') }],
188 [ "onDOMContentLoaded", 211 [ "onDOMContentLoaded",
189 { frameId: 0, 212 { frameId: 0,
190 tabId: tabId, 213 tabId: 0,
191 timeStamp: 0, 214 timeStamp: 0,
192 url: getURL('forwardBack/b.html') }], 215 url: getURL('forwardBack/b.html') }],
193 [ "onCompleted", 216 [ "onCompleted",
194 { frameId: 0, 217 { frameId: 0,
195 tabId: tabId, 218 tabId: 0,
196 timeStamp: 0, 219 timeStamp: 0,
197 url: getURL('forwardBack/b.html') }], 220 url: getURL('forwardBack/b.html') }],
198 [ "onBeforeNavigate", 221 [ "onBeforeNavigate",
199 { frameId: 0, 222 { frameId: 0,
200 requestId: 0, 223 requestId: 0,
201 tabId: tabId, 224 tabId: 0,
202 timeStamp: 0, 225 timeStamp: 0,
203 url: getURL('forwardBack/a.html') }], 226 url: getURL('forwardBack/a.html') }],
204 [ "onCommitted", 227 [ "onCommitted",
205 { frameId: 0, 228 { frameId: 0,
206 tabId: tabId, 229 tabId: 0,
207 timeStamp: 0, 230 timeStamp: 0,
208 transitionQualifiers: "forward_back", 231 transitionQualifiers: "forward_back",
209 transitionType: "link", 232 transitionType: "link",
210 url: getURL('forwardBack/a.html') }], 233 url: getURL('forwardBack/a.html') }],
211 [ "onDOMContentLoaded", 234 [ "onDOMContentLoaded",
212 { frameId: 0, 235 { frameId: 0,
213 tabId: tabId, 236 tabId: 0,
214 timeStamp: 0, 237 timeStamp: 0,
215 url: getURL('forwardBack/a.html') }], 238 url: getURL('forwardBack/a.html') }],
216 [ "onCompleted", 239 [ "onCompleted",
217 { frameId: 0, 240 { frameId: 0,
218 tabId: tabId, 241 tabId: 0,
219 timeStamp: 0, 242 timeStamp: 0,
220 url: getURL('forwardBack/a.html') }]]); 243 url: getURL('forwardBack/a.html') }]]);
221 chrome.tabs.update(tabId, { url: getURL('forwardBack/a.html') }); 244 chrome.tabs.update(tabId, { url: getURL('forwardBack/a.html') });
222 }, 245 },
223 246
224 /* Navigates to a.html which includes b.html as an iframe. b.html 247 /* Navigates to a.html which includes b.html as an iframe. b.html
225 redirects to c.html. */ 248 redirects to c.html. */
226 function iframe() { 249 function iframe() {
227 expect([ 250 expect([
228 [ "onBeforeNavigate", 251 [ "onBeforeNavigate",
229 { frameId: 0, 252 { frameId: 0,
230 requestId: 0, 253 requestId: 0,
231 tabId: tabId, 254 tabId: 0,
232 timeStamp: 0, 255 timeStamp: 0,
233 url: getURL('iframe/a.html') }], 256 url: getURL('iframe/a.html') }],
234 [ "onCommitted", 257 [ "onCommitted",
235 { frameId: 0, 258 { frameId: 0,
236 tabId: tabId, 259 tabId: 0,
237 timeStamp: 0, 260 timeStamp: 0,
238 transitionQualifiers: "", 261 transitionQualifiers: "",
239 transitionType: "link", 262 transitionType: "link",
240 url: getURL('iframe/a.html') }], 263 url: getURL('iframe/a.html') }],
241 [ "onBeforeNavigate", 264 [ "onBeforeNavigate",
242 { frameId: 1, 265 { frameId: 1,
243 requestId: 0, 266 requestId: 0,
244 tabId: tabId, 267 tabId: 0,
245 timeStamp: 0, 268 timeStamp: 0,
246 url: getURL('iframe/b.html') }], 269 url: getURL('iframe/b.html') }],
247 [ "onDOMContentLoaded", 270 [ "onDOMContentLoaded",
248 { frameId: 0, 271 { frameId: 0,
249 tabId: tabId, 272 tabId: 0,
250 timeStamp: 0, 273 timeStamp: 0,
251 url: getURL('iframe/a.html') }], 274 url: getURL('iframe/a.html') }],
252 [ "onCommitted", 275 [ "onCommitted",
253 { frameId: 1, 276 { frameId: 1,
254 tabId: tabId, 277 tabId: 0,
255 timeStamp: 0, 278 timeStamp: 0,
256 transitionQualifiers: "", 279 transitionQualifiers: "",
257 transitionType: "auto_subframe", 280 transitionType: "auto_subframe",
258 url: getURL('iframe/b.html') }], 281 url: getURL('iframe/b.html') }],
259 [ "onDOMContentLoaded", 282 [ "onDOMContentLoaded",
260 { frameId: 1, 283 { frameId: 1,
261 tabId: tabId, 284 tabId: 0,
262 timeStamp: 0, 285 timeStamp: 0,
263 url: getURL('iframe/b.html') }], 286 url: getURL('iframe/b.html') }],
264 [ "onCompleted", 287 [ "onCompleted",
265 { frameId: 1, 288 { frameId: 1,
266 tabId: tabId, 289 tabId: 0,
267 timeStamp: 0, 290 timeStamp: 0,
268 url: getURL('iframe/b.html') }], 291 url: getURL('iframe/b.html') }],
269 [ "onCompleted", 292 [ "onCompleted",
270 { frameId: 0, 293 { frameId: 0,
271 tabId: tabId, 294 tabId: 0,
272 timeStamp: 0, 295 timeStamp: 0,
273 url: getURL('iframe/a.html') }], 296 url: getURL('iframe/a.html') }],
274 [ "onBeforeNavigate", 297 [ "onBeforeNavigate",
275 { frameId: 1, 298 { frameId: 1,
276 requestId: 0, 299 requestId: 0,
277 tabId: tabId, 300 tabId: 0,
278 timeStamp: 0, 301 timeStamp: 0,
279 url: getURL('iframe/c.html') }], 302 url: getURL('iframe/c.html') }],
280 [ "onCommitted", 303 [ "onCommitted",
281 { frameId: 1, 304 { frameId: 1,
282 tabId: tabId, 305 tabId: 0,
283 timeStamp: 0, 306 timeStamp: 0,
284 transitionQualifiers: "", 307 transitionQualifiers: "",
285 transitionType: "manual_subframe", 308 transitionType: "manual_subframe",
286 url: getURL('iframe/c.html') }], 309 url: getURL('iframe/c.html') }],
287 [ "onDOMContentLoaded", 310 [ "onDOMContentLoaded",
288 { frameId: 1, 311 { frameId: 1,
289 tabId: tabId, 312 tabId: 0,
290 timeStamp: 0, 313 timeStamp: 0,
291 url: getURL('iframe/c.html') }], 314 url: getURL('iframe/c.html') }],
292 [ "onCompleted", 315 [ "onCompleted",
293 { frameId: 1, 316 { frameId: 1,
294 tabId: tabId, 317 tabId: 0,
295 timeStamp: 0, 318 timeStamp: 0,
296 url: getURL('iframe/c.html') }]]); 319 url: getURL('iframe/c.html') }]]);
297 chrome.tabs.update(tabId, { url: getURL('iframe/a.html') }); 320 chrome.tabs.update(tabId, { url: getURL('iframe/a.html') });
298 }, 321 },
299 322
300 /* Navigates to d.html which includes e.html and f.html as iframes. To be 323 /* Navigates to d.html which includes e.html and f.html as iframes. To be
301 able to predict which iframe has which id, the iframe for f.html is 324 able to predict which iframe has which id, the iframe for f.html is
302 created by javascript. f.html then navigates to g.html. */ 325 created by javascript. f.html then navigates to g.html. */
303 function iframe2() { 326 function iframe2() {
304 expect([ 327 expect([
305 [ "onBeforeNavigate", 328 [ "onBeforeNavigate",
306 { frameId: 0, 329 { frameId: 0,
307 requestId: 0, 330 requestId: 0,
308 tabId: tabId, 331 tabId: 0,
309 timeStamp: 0, 332 timeStamp: 0,
310 url: getURL('iframe/d.html') }], 333 url: getURL('iframe/d.html') }],
311 [ "onCommitted", 334 [ "onCommitted",
312 { frameId: 0, 335 { frameId: 0,
313 tabId: tabId, 336 tabId: 0,
314 timeStamp: 0, 337 timeStamp: 0,
315 transitionQualifiers: "", 338 transitionQualifiers: "",
316 transitionType: "link", 339 transitionType: "link",
317 url: getURL('iframe/d.html') }], 340 url: getURL('iframe/d.html') }],
318 [ "onBeforeNavigate", 341 [ "onBeforeNavigate",
319 { frameId: 1, 342 { frameId: 1,
320 requestId: 0, 343 requestId: 0,
321 tabId: tabId, 344 tabId: 0,
322 timeStamp: 0, 345 timeStamp: 0,
323 url: getURL('iframe/e.html') }], 346 url: getURL('iframe/e.html') }],
324 [ "onDOMContentLoaded", 347 [ "onDOMContentLoaded",
325 { frameId: 0, 348 { frameId: 0,
326 tabId: tabId, 349 tabId: 0,
327 timeStamp: 0, 350 timeStamp: 0,
328 url: getURL('iframe/d.html') }], 351 url: getURL('iframe/d.html') }],
329 [ "onCommitted", 352 [ "onCommitted",
330 { frameId: 1, 353 { frameId: 1,
331 tabId: tabId, 354 tabId: 0,
332 timeStamp: 0, 355 timeStamp: 0,
333 transitionQualifiers: "", 356 transitionQualifiers: "",
334 transitionType: "auto_subframe", 357 transitionType: "auto_subframe",
335 url: getURL('iframe/e.html') }], 358 url: getURL('iframe/e.html') }],
336 [ "onDOMContentLoaded", 359 [ "onDOMContentLoaded",
337 { frameId: 1, 360 { frameId: 1,
338 tabId: tabId, 361 tabId: 0,
339 timeStamp: 0, 362 timeStamp: 0,
340 url: getURL('iframe/e.html') }], 363 url: getURL('iframe/e.html') }],
341 [ "onBeforeNavigate", 364 [ "onBeforeNavigate",
342 { frameId: 2, 365 { frameId: 2,
343 requestId: 0, 366 requestId: 0,
344 tabId: tabId, 367 tabId: 0,
345 timeStamp: 0, 368 timeStamp: 0,
346 url: getURL('iframe/f.html') }], 369 url: getURL('iframe/f.html') }],
347 [ "onCompleted", 370 [ "onCompleted",
348 { frameId: 1, 371 { frameId: 1,
349 tabId: tabId, 372 tabId: 0,
350 timeStamp: 0, 373 timeStamp: 0,
351 url: getURL('iframe/e.html') }], 374 url: getURL('iframe/e.html') }],
352 [ "onCommitted", 375 [ "onCommitted",
353 { frameId: 2, 376 { frameId: 2,
354 tabId: tabId, 377 tabId: 0,
355 timeStamp: 0, 378 timeStamp: 0,
356 transitionQualifiers: "", 379 transitionQualifiers: "",
357 transitionType: "auto_subframe", 380 transitionType: "auto_subframe",
358 url: getURL('iframe/f.html') }], 381 url: getURL('iframe/f.html') }],
359 [ "onDOMContentLoaded", 382 [ "onDOMContentLoaded",
360 { frameId: 2, 383 { frameId: 2,
361 tabId: tabId, 384 tabId: 0,
362 timeStamp: 0, 385 timeStamp: 0,
363 url: getURL('iframe/f.html') }], 386 url: getURL('iframe/f.html') }],
364 [ "onCompleted", 387 [ "onCompleted",
365 { frameId: 2, 388 { frameId: 2,
366 tabId: tabId, 389 tabId: 0,
367 timeStamp: 0, 390 timeStamp: 0,
368 url: getURL('iframe/f.html') }], 391 url: getURL('iframe/f.html') }],
369 [ "onCompleted", 392 [ "onCompleted",
370 { frameId: 0, 393 { frameId: 0,
371 tabId: tabId, 394 tabId: 0,
372 timeStamp: 0, 395 timeStamp: 0,
373 url: getURL('iframe/d.html') }], 396 url: getURL('iframe/d.html') }],
374 [ "onBeforeNavigate", 397 [ "onBeforeNavigate",
375 { frameId: 2, 398 { frameId: 2,
376 requestId: 0, 399 requestId: 0,
377 tabId: tabId, 400 tabId: 0,
378 timeStamp: 0, 401 timeStamp: 0,
379 url: getURL('iframe/g.html') }], 402 url: getURL('iframe/g.html') }],
380 [ "onCommitted", 403 [ "onCommitted",
381 { frameId: 2, 404 { frameId: 2,
382 tabId: tabId, 405 tabId: 0,
383 timeStamp: 0, 406 timeStamp: 0,
384 transitionQualifiers: "", 407 transitionQualifiers: "",
385 transitionType: "manual_subframe", 408 transitionType: "manual_subframe",
386 url: getURL('iframe/g.html') }], 409 url: getURL('iframe/g.html') }],
387 [ "onDOMContentLoaded", 410 [ "onDOMContentLoaded",
388 { frameId: 2, 411 { frameId: 2,
389 tabId: tabId, 412 tabId: 0,
390 timeStamp: 0, 413 timeStamp: 0,
391 url: getURL('iframe/g.html') }], 414 url: getURL('iframe/g.html') }],
392 [ "onCompleted", 415 [ "onCompleted",
393 { frameId: 2, 416 { frameId: 2,
394 tabId: tabId, 417 tabId: 0,
395 timeStamp: 0, 418 timeStamp: 0,
396 url: getURL('iframe/g.html') }]]); 419 url: getURL('iframe/g.html') }]]);
397 chrome.tabs.update(tabId, { url: getURL('iframe/d.html') }); 420 chrome.tabs.update(tabId, { url: getURL('iframe/d.html') });
398 }, 421 },
422
423 /* Opens a new tab from javascript. */
424 function openTab() {
425 expect([
426 [ "onBeforeNavigate",
427 { frameId: 0,
428 requestId: 0,
429 tabId: 0,
430 timeStamp: 0,
431 url: getURL('openTab/a.html') }],
432 [ "onCommitted",
433 { frameId: 0,
434 tabId: 0,
435 timeStamp: 0,
436 transitionQualifiers: "",
437 transitionType: "link",
438 url: getURL('openTab/a.html') }],
439 [ "onDOMContentLoaded",
440 { frameId: 0,
441 tabId: 0,
442 timeStamp: 0,
443 url: getURL('openTab/a.html') }],
444 [ "onCompleted",
445 { frameId: 0,
446 tabId: 0,
447 timeStamp: 0,
448 url: getURL('openTab/a.html') }],
449 [ "onBeforeRetarget",
450 { sourceTabId: 0,
451 sourceUrl: getURL('openTab/a.html'),
yzshen1 2011/01/18 21:49:24 [Nice to have, optional] Test the scenario that a
452 targetUrl: getURL('openTab/b.html'),
453 timeStamp: 0 }],
454 [ "onBeforeNavigate",
455 { frameId: 0,
456 requestId: 0,
457 tabId: 1,
458 timeStamp: 0,
459 url: getURL('openTab/b.html') }],
460 [ "onCommitted",
461 { frameId: 0,
462 tabId: 1,
463 timeStamp: 0,
464 transitionQualifiers: "",
465 transitionType: "link",
466 url: getURL('openTab/b.html') }],
467 [ "onDOMContentLoaded",
468 { frameId: 0,
469 tabId: 1,
470 timeStamp: 0,
471 url: getURL('openTab/b.html') }],
472 [ "onCompleted",
473 { frameId: 0,
474 tabId: 1,
475 timeStamp: 0,
476 url: getURL('openTab/b.html') }]]);
477 chrome.tabs.update(tabId, { url: getURL('openTab/a.html') });
478 },
399 ]); 479 ]);
400 }); 480 });
401 </script> 481 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698