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

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

Issue 3561008: Implement the frame id required for the web navigation api. (Closed)
Patch Set: updates Created 10 years, 2 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
« no previous file with comments | « chrome/test/data/extensions/api_test/webnavigation/navigation/iframeFail/d.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <script> 1 <script>
2 var expectedEventData; 2 var expectedEventData;
3 var capturedEventData; 3 var capturedEventData;
4 var nextFrameId;
5 var frameIds;
4 6
5 function expect(data) { 7 function expect(data) {
6 expectedEventData = data; 8 expectedEventData = data;
7 capturedEventData = []; 9 capturedEventData = [];
10 nextFrameId = 1;
11 frameIds = {};
8 } 12 }
9 13
10 function checkExpectations() { 14 function checkExpectations() {
11 if (capturedEventData.length < expectedEventData.length) { 15 if (capturedEventData.length < expectedEventData.length) {
12 return; 16 return;
13 } 17 }
14 chrome.test.assertEq(JSON.stringify(expectedEventData), 18 chrome.test.assertEq(JSON.stringify(expectedEventData),
15 JSON.stringify(capturedEventData)); 19 JSON.stringify(capturedEventData));
16 chrome.test.succeed(); 20 chrome.test.succeed();
17 } 21 }
18 22
23 function captureEvent(name, details) {
24 // normalize details.
25 details.timeStamp = 0;
26 if (details.frameId != 0) {
27 if (frameIds[details.frameId] === undefined) {
28 frameIds[details.frameId] = nextFrameId++;
29 }
30 details.frameId = frameIds[details.frameId];
31 }
32 capturedEventData.push([name, details]);
33 checkExpectations();
34 }
35
19 chrome.experimental.webNavigation.onBeforeNavigate.addListener( 36 chrome.experimental.webNavigation.onBeforeNavigate.addListener(
20 function(details) { 37 function(details) {
21 console.log('---onBeforeNavigate: ' + details.url); 38 captureEvent("onBeforeNavigate", details);
22 // normalize details.
23 details.timeStamp = 0;
24 if (details.frameId != 0) {
25 details.frameId = 1;
26 }
27 capturedEventData.push(["onBeforeNavigate", details]);
28 checkExpectations();
29 }); 39 });
30 40
31 chrome.experimental.webNavigation.onCommitted.addListener(function(details) { 41 chrome.experimental.webNavigation.onCommitted.addListener(function(details) {
32 console.log('---onCommitted: ' + details.url); 42 captureEvent("onCommitted", details);
33 // normalize details.
34 details.timeStamp = 0;
35 if (details.frameId != 0) {
36 details.frameId = 1;
37 }
38 capturedEventData.push(["onCommitted", details]);
39 checkExpectations();
40 }); 43 });
41 44
42 chrome.experimental.webNavigation.onErrorOccurred.addListener( 45 chrome.experimental.webNavigation.onErrorOccurred.addListener(
43 function(details) { 46 function(details) {
44 console.log('---onErrorOccurred: ' + details.url); 47 captureEvent("onErrorOccurred", details);
45 // normalize details.
46 details.timeStamp = 0;
47 if (details.frameId != 0) {
48 details.frameId = 1;
49 }
50 capturedEventData.push(["onErrorOccurred", details]);
51 checkExpectations();
52 }); 48 });
53 49
54 var getURL = chrome.extension.getURL; 50 var getURL = chrome.extension.getURL;
55 chrome.tabs.getSelected(null, function(tab) { 51 chrome.tabs.getSelected(null, function(tab) {
56 var tabId = tab.id; 52 var tabId = tab.id;
57 53
58 chrome.test.runTests([ 54 chrome.test.runTests([
59 /* Navigates to an URL */ 55 /* Navigates to an URL */
60 function simpleLoad() { 56 function simpleLoad() {
61 expect([ 57 expect([
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 timeStamp: 0, 162 timeStamp: 0,
167 url: getURL('iframe/a.html') }], 163 url: getURL('iframe/a.html') }],
168 [ "onCommitted", 164 [ "onCommitted",
169 { frameId: 0, 165 { frameId: 0,
170 tabId: tabId, 166 tabId: tabId,
171 timeStamp: 0, 167 timeStamp: 0,
172 transitionQualifiers: "", 168 transitionQualifiers: "",
173 transitionType: "link", 169 transitionType: "link",
174 url: getURL('iframe/a.html') }], 170 url: getURL('iframe/a.html') }],
175 [ "onBeforeNavigate", 171 [ "onBeforeNavigate",
176 { frameId: 0, 172 { frameId: 1,
177 requestId: 0, 173 requestId: 0,
178 tabId: tabId, 174 tabId: tabId,
179 timeStamp: 0, 175 timeStamp: 0,
180 url: getURL('iframe/b.html') }], 176 url: getURL('iframe/b.html') }],
181 [ "onCommitted", 177 [ "onCommitted",
182 { frameId: 0, 178 { frameId: 1,
183 tabId: tabId, 179 tabId: tabId,
184 timeStamp: 0, 180 timeStamp: 0,
185 transitionQualifiers: "", 181 transitionQualifiers: "",
186 transitionType: "auto_subframe", 182 transitionType: "auto_subframe",
187 url: getURL('iframe/b.html') }], 183 url: getURL('iframe/b.html') }],
188 [ "onBeforeNavigate", 184 [ "onBeforeNavigate",
189 { frameId: 0, 185 { frameId: 1,
190 requestId: 0, 186 requestId: 0,
191 tabId: tabId, 187 tabId: tabId,
192 timeStamp: 0, 188 timeStamp: 0,
193 url: getURL('iframe/c.html') }], 189 url: getURL('iframe/c.html') }],
194 [ "onCommitted", 190 [ "onCommitted",
195 { frameId: 0, 191 { frameId: 1,
196 tabId: tabId, 192 tabId: tabId,
197 timeStamp: 0, 193 timeStamp: 0,
198 transitionQualifiers: "", 194 transitionQualifiers: "",
199 transitionType: "manual_subframe", 195 transitionType: "manual_subframe",
200 url: getURL('iframe/c.html') }]]); 196 url: getURL('iframe/c.html') }]]);
201 chrome.tabs.update(tabId, { url: getURL('iframe/a.html') }); 197 chrome.tabs.update(tabId, { url: getURL('iframe/a.html') });
202 }, 198 },
203 199
200 /* Navigates to d.html which includes e.html and f.html as iframes. To be
201 able to predict which iframe has which id, the iframe for f.html is
202 created by javascript. f.html then navigates to g.html. */
203 function iframe2() {
204 expect([
205 [ "onBeforeNavigate",
206 { frameId: 0,
207 requestId: 0,
208 tabId: tabId,
209 timeStamp: 0,
210 url: getURL('iframe/d.html') }],
211 [ "onCommitted",
212 { frameId: 0,
213 tabId: tabId,
214 timeStamp: 0,
215 transitionQualifiers: "",
216 transitionType: "link",
217 url: getURL('iframe/d.html') }],
218 [ "onBeforeNavigate",
219 { frameId: 1,
220 requestId: 0,
221 tabId: tabId,
222 timeStamp: 0,
223 url: getURL('iframe/e.html') }],
224 [ "onCommitted",
225 { frameId: 1,
226 tabId: tabId,
227 timeStamp: 0,
228 transitionQualifiers: "",
229 transitionType: "auto_subframe",
230 url: getURL('iframe/e.html') }],
231 [ "onBeforeNavigate",
232 { frameId: 2,
233 requestId: 0,
234 tabId: tabId,
235 timeStamp: 0,
236 url: getURL('iframe/f.html') }],
237 [ "onCommitted",
238 { frameId: 2,
239 tabId: tabId,
240 timeStamp: 0,
241 transitionQualifiers: "",
242 transitionType: "auto_subframe",
243 url: getURL('iframe/f.html') }],
244 [ "onBeforeNavigate",
245 { frameId: 2,
246 requestId: 0,
247 tabId: tabId,
248 timeStamp: 0,
249 url: getURL('iframe/g.html') }],
250 [ "onCommitted",
251 { frameId: 2,
252 tabId: tabId,
253 timeStamp: 0,
254 transitionQualifiers: "",
255 transitionType: "manual_subframe",
256 url: getURL('iframe/g.html') }]]);
257 chrome.tabs.update(tabId, { url: getURL('iframe/d.html') });
258 },
259
204 /* Navigates to a non-existant page. */ 260 /* Navigates to a non-existant page. */
205 function nonExistant() { 261 function nonExistant() {
206 expect([ 262 expect([
207 [ "onBeforeNavigate", 263 [ "onBeforeNavigate",
208 { frameId: 0, 264 { frameId: 0,
209 requestId: 0, 265 requestId: 0,
210 tabId: tabId, 266 tabId: tabId,
211 timeStamp: 0, 267 timeStamp: 0,
212 url: getURL('nonexistant.html') }], 268 url: getURL('nonexistant.html') }],
213 [ "onErrorOccurred", 269 [ "onErrorOccurred",
(...skipping 10 matching lines...) Expand all
224 url: "chrome://chromewebdata/"}], 280 url: "chrome://chromewebdata/"}],
225 [ "onCommitted", 281 [ "onCommitted",
226 { frameId: 0, 282 { frameId: 0,
227 tabId: tabId, 283 tabId: tabId,
228 timeStamp: 0, 284 timeStamp: 0,
229 transitionQualifiers: "", 285 transitionQualifiers: "",
230 transitionType: "link", 286 transitionType: "link",
231 url: getURL('nonexistant.html') }]]); 287 url: getURL('nonexistant.html') }]]);
232 chrome.tabs.update(tabId, { url: getURL('nonexistant.html') }); 288 chrome.tabs.update(tabId, { url: getURL('nonexistant.html') });
233 }, 289 },
290
291 /* An page that tries to load an non-existant iframe. */
292 function nonExistantIframe() {
293 expect([
294 [ "onBeforeNavigate",
295 { frameId: 0,
296 requestId: 0,
297 tabId: tabId,
298 timeStamp: 0,
299 url: getURL('iframeFail/d.html') }],
300 [ "onCommitted",
301 { frameId: 0,
302 tabId: tabId,
303 timeStamp: 0,
304 transitionQualifiers: "",
305 transitionType: "link",
306 url: getURL('iframeFail/d.html') }],
307 [ "onBeforeNavigate",
308 { frameId: 1,
309 requestId: 0,
310 tabId: tabId,
311 timeStamp: 0,
312 url: getURL('iframeFail/c.html') }],
313 [ "onErrorOccurred",
314 { error: "net::ERR_FILE_NOT_FOUND",
315 frameId: 1,
316 tabId: tabId,
317 timeStamp: 0,
318 url: getURL('iframeFail/c.html') }],
319 [ "onBeforeNavigate",
320 { frameId: 1,
321 requestId: 0,
322 tabId: tabId,
323 timeStamp: 0,
324 url: "chrome://chromewebdata/"}],
325 [ "onCommitted",
326 { frameId: 1,
327 tabId: tabId,
328 timeStamp: 0,
329 transitionQualifiers: "",
330 transitionType: "auto_subframe",
331 url: getURL('iframeFail/c.html') }]]);
332 chrome.tabs.update(tabId, { url: getURL('iframeFail/d.html') });
333 },
334
335 /* An iframe navigates to a non-existant page. */
336 function nonExistantIframeNavigation() {
337 expect([
338 [ "onBeforeNavigate",
339 { frameId: 0,
340 requestId: 0,
341 tabId: tabId,
342 timeStamp: 0,
343 url: getURL('iframeFail/a.html') }],
344 [ "onCommitted",
345 { frameId: 0,
346 tabId: tabId,
347 timeStamp: 0,
348 transitionQualifiers: "",
349 transitionType: "link",
350 url: getURL('iframeFail/a.html') }],
351 [ "onBeforeNavigate",
352 { frameId: 1,
353 requestId: 0,
354 tabId: tabId,
355 timeStamp: 0,
356 url: getURL('iframeFail/b.html') }],
357 [ "onCommitted",
358 { frameId: 1,
359 tabId: tabId,
360 timeStamp: 0,
361 transitionQualifiers: "",
362 transitionType: "auto_subframe",
363 url: getURL('iframeFail/b.html') }],
364 [ "onBeforeNavigate",
365 { frameId: 1,
366 requestId: 0,
367 tabId: tabId,
368 timeStamp: 0,
369 url: getURL('iframeFail/c.html') }],
370 [ "onErrorOccurred",
371 { error: "net::ERR_FILE_NOT_FOUND",
372 frameId: 1,
373 tabId: tabId,
374 timeStamp: 0,
375 url: getURL('iframeFail/c.html') }],
376 [ "onBeforeNavigate",
377 { frameId: 1,
378 requestId: 0,
379 tabId: tabId,
380 timeStamp: 0,
381 url: "chrome://chromewebdata/"}],
382 [ "onCommitted",
383 { frameId: 1,
384 tabId: tabId,
385 timeStamp: 0,
386 transitionQualifiers: "",
387 transitionType: "manual_subframe",
388 url: getURL('iframeFail/c.html') }]]);
389 chrome.tabs.update(tabId, { url: getURL('iframeFail/a.html') });
390 },
234 ]); 391 ]);
235 }); 392 });
236 </script> 393 </script>
OLDNEW
« no previous file with comments | « chrome/test/data/extensions/api_test/webnavigation/navigation/iframeFail/d.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698