Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / chrome / test / data / extensions / api_test / webnavigation / iframe / test_iframe.js
bloba8e10130fa2679c9721fa8b402b60c78081fa456
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 onload = function() {
6 var getURL = chrome.extension.getURL;
7 chrome.tabs.create({"url": "about:blank"}, function(tab) {
8 var tabId = tab.id;
10 chrome.test.runTests([
11 // Navigates to a.html which includes b.html as an iframe. b.html
12 // redirects to c.html.
13 function iframe() {
14 expect([
15 { label: "a-onBeforeNavigate",
16 event: "onBeforeNavigate",
17 details: { frameId: 0,
18 parentFrameId: -1,
19 processId: 0,
20 tabId: 0,
21 timeStamp: 0,
22 url: getURL('a.html') }},
23 { label: "a-onCommitted",
24 event: "onCommitted",
25 details: { frameId: 0,
26 processId: 0,
27 tabId: 0,
28 timeStamp: 0,
29 transitionQualifiers: [],
30 transitionType: "link",
31 url: getURL('a.html') }},
32 { label: "a-onDOMContentLoaded",
33 event: "onDOMContentLoaded",
34 details: { frameId: 0,
35 processId: 0,
36 tabId: 0,
37 timeStamp: 0,
38 url: getURL('a.html') }},
39 { label: "a-onCompleted",
40 event: "onCompleted",
41 details: { frameId: 0,
42 processId: 0,
43 tabId: 0,
44 timeStamp: 0,
45 url: getURL('a.html') }},
46 { label: "b-onBeforeNavigate",
47 event: "onBeforeNavigate",
48 details: { frameId: 1,
49 parentFrameId: 0,
50 processId: 0,
51 tabId: 0,
52 timeStamp: 0,
53 url: getURL('b.html') }},
54 { label: "b-onCommitted",
55 event: "onCommitted",
56 details: { frameId: 1,
57 processId: 0,
58 tabId: 0,
59 timeStamp: 0,
60 transitionQualifiers: [],
61 transitionType: "auto_subframe",
62 url: getURL('b.html') }},
63 { label: "b-onDOMContentLoaded",
64 event: "onDOMContentLoaded",
65 details: { frameId: 1,
66 processId: 0,
67 tabId: 0,
68 timeStamp: 0,
69 url: getURL('b.html') }},
70 { label: "b-onCompleted",
71 event: "onCompleted",
72 details: { frameId: 1,
73 processId: 0,
74 tabId: 0,
75 timeStamp: 0,
76 url: getURL('b.html') }},
77 { label: "c-onBeforeNavigate",
78 event: "onBeforeNavigate",
79 details: { frameId: 1,
80 parentFrameId: 0,
81 processId: 0,
82 tabId: 0,
83 timeStamp: 0,
84 url: getURL('c.html') }},
85 { label: "c-onCommitted",
86 event: "onCommitted",
87 details: { frameId: 1,
88 processId: 0,
89 tabId: 0,
90 timeStamp: 0,
91 transitionQualifiers: [],
92 transitionType: "auto_subframe",
93 url: getURL('c.html') }},
94 { label: "c-onDOMContentLoaded",
95 event: "onDOMContentLoaded",
96 details: { frameId: 1,
97 processId: 0,
98 tabId: 0,
99 timeStamp: 0,
100 url: getURL('c.html') }},
101 { label: "c-onCompleted",
102 event: "onCompleted",
103 details: { frameId: 1,
104 processId: 0,
105 tabId: 0,
106 timeStamp: 0,
107 url: getURL('c.html') }}],
108 [ navigationOrder("a-"),
109 navigationOrder("b-"),
110 navigationOrder("c-"),
111 isIFrameOf("b-", "a-"),
112 isLoadedBy("c-", "b-")]);
113 chrome.tabs.update(tabId, { url: getURL('a.html') });
116 // Navigates to d.html which includes e.html and f.html as iframes. To be
117 // able to predict which iframe has which id, the iframe for f.html is
118 // created by javascript. f.html then navigates to g.html.
119 function iframeMultiple() {
120 expect([
121 { label: "d-onBeforeNavigate",
122 event: "onBeforeNavigate",
123 details: { frameId: 0,
124 parentFrameId: -1,
125 processId: 0,
126 tabId: 0,
127 timeStamp: 0,
128 url: getURL('d.html') }},
129 { label: "d-onCommitted",
130 event: "onCommitted",
131 details: { frameId: 0,
132 processId: 0,
133 tabId: 0,
134 timeStamp: 0,
135 transitionQualifiers: [],
136 transitionType: "link",
137 url: getURL('d.html') }},
138 { label: "d-onDOMContentLoaded",
139 event: "onDOMContentLoaded",
140 details: { frameId: 0,
141 processId: 0,
142 tabId: 0,
143 timeStamp: 0,
144 url: getURL('d.html') }},
145 { label: "d-onCompleted",
146 event: "onCompleted",
147 details: { frameId: 0,
148 processId: 0,
149 tabId: 0,
150 timeStamp: 0,
151 url: getURL('d.html') }},
152 { label: "e-onBeforeNavigate",
153 event: "onBeforeNavigate",
154 details: { frameId: 1,
155 parentFrameId: 0,
156 processId: 0,
157 tabId: 0,
158 timeStamp: 0,
159 url: getURL('e.html') }},
160 { label: "e-onCommitted",
161 event: "onCommitted",
162 details: { frameId: 1,
163 processId: 0,
164 tabId: 0,
165 timeStamp: 0,
166 transitionQualifiers: [],
167 transitionType: "auto_subframe",
168 url: getURL('e.html') }},
169 { label: "e-onDOMContentLoaded",
170 event: "onDOMContentLoaded",
171 details: { frameId: 1,
172 processId: 0,
173 tabId: 0,
174 timeStamp: 0,
175 url: getURL('e.html') }},
176 { label: "e-onCompleted",
177 event: "onCompleted",
178 details: { frameId: 1,
179 processId: 0,
180 tabId: 0,
181 timeStamp: 0,
182 url: getURL('e.html') }},
183 { label: "f-onBeforeNavigate",
184 event: "onBeforeNavigate",
185 details: { frameId: 2,
186 parentFrameId: 0,
187 processId: 0,
188 tabId: 0,
189 timeStamp: 0,
190 url: getURL('f.html') }},
191 { label: "f-onCommitted",
192 event: "onCommitted",
193 details: { frameId: 2,
194 processId: 0,
195 tabId: 0,
196 timeStamp: 0,
197 transitionQualifiers: [],
198 transitionType: "auto_subframe",
199 url: getURL('f.html') }},
200 { label: "f-onDOMContentLoaded",
201 event: "onDOMContentLoaded",
202 details: { frameId: 2,
203 processId: 0,
204 tabId: 0,
205 timeStamp: 0,
206 url: getURL('f.html') }},
207 { label: "f-onCompleted",
208 event: "onCompleted",
209 details: { frameId: 2,
210 processId: 0,
211 tabId: 0,
212 timeStamp: 0,
213 url: getURL('f.html') }},
214 { label: "g-onBeforeNavigate",
215 event: "onBeforeNavigate",
216 details: { frameId: 2,
217 parentFrameId: 0,
218 processId: 0,
219 tabId: 0,
220 timeStamp: 0,
221 url: getURL('g.html') }},
222 { label: "g-onCommitted",
223 event: "onCommitted",
224 details: { frameId: 2,
225 processId: 0,
226 tabId: 0,
227 timeStamp: 0,
228 transitionQualifiers: [],
229 transitionType: "auto_subframe",
230 url: getURL('g.html') }},
231 { label: "g-onDOMContentLoaded",
232 event: "onDOMContentLoaded",
233 details: { frameId: 2,
234 processId: 0,
235 tabId: 0,
236 timeStamp: 0,
237 url: getURL('g.html') }},
238 { label: "g-onCompleted",
239 event: "onCompleted",
240 details: { frameId: 2,
241 processId: 0,
242 tabId: 0,
243 timeStamp: 0,
244 url: getURL('g.html') }}],
245 [ navigationOrder("d-"),
246 navigationOrder("e-"),
247 navigationOrder("f-"),
248 navigationOrder("g-"),
249 isIFrameOf("e-", "d-"),
250 ["d-onDOMContentLoaded", "f-onBeforeNavigate", "f-onCompleted",
251 "d-onCompleted"],
252 isLoadedBy("g-", "f-")]);
253 chrome.tabs.update(tabId, { url: getURL('d.html') });
256 // Navigates to h.html which includes i.html that triggers a navigation
257 // on the main frame.
258 function iframeNavigate() {
259 expect([
260 { label: "h-onBeforeNavigate",
261 event: "onBeforeNavigate",
262 details: { frameId: 0,
263 parentFrameId: -1,
264 processId: 0,
265 tabId: 0,
266 timeStamp: 0,
267 url: getURL('h.html') }},
268 { label: "h-onCommitted",
269 event: "onCommitted",
270 details: { frameId: 0,
271 processId: 0,
272 tabId: 0,
273 timeStamp: 0,
274 transitionQualifiers: [],
275 transitionType: "link",
276 url: getURL('h.html') }},
277 { label: "h-onDOMContentLoaded",
278 event: "onDOMContentLoaded",
279 details: { frameId: 0,
280 processId: 0,
281 tabId: 0,
282 timeStamp: 0,
283 url: getURL('h.html') }},
284 { label: "h-onCompleted",
285 event: "onCompleted",
286 details: { frameId: 0,
287 processId: 0,
288 tabId: 0,
289 timeStamp: 0,
290 url: getURL('h.html') }},
291 { label: "i-onBeforeNavigate",
292 event: "onBeforeNavigate",
293 details: { frameId: 1,
294 parentFrameId: 0,
295 processId: 0,
296 tabId: 0,
297 timeStamp: 0,
298 url: getURL('i.html') }},
299 { label: "i-onCommitted",
300 event: "onCommitted",
301 details: { frameId: 1,
302 processId: 0,
303 tabId: 0,
304 timeStamp: 0,
305 transitionQualifiers: [],
306 transitionType: "auto_subframe",
307 url: getURL('i.html') }},
308 { label: "i-onDOMContentLoaded",
309 event: "onDOMContentLoaded",
310 details: { frameId: 1,
311 processId: 0,
312 tabId: 0,
313 timeStamp: 0,
314 url: getURL('i.html') }},
315 { label: "i-onCompleted",
316 event: "onCompleted",
317 details: { frameId: 1,
318 processId: 0,
319 tabId: 0,
320 timeStamp: 0,
321 url: getURL('i.html') }},
322 { label: "c-onBeforeNavigate",
323 event: "onBeforeNavigate",
324 details: { frameId: 0,
325 parentFrameId: -1,
326 processId: 0,
327 tabId: 0,
328 timeStamp: 0,
329 url: getURL('c.html') }},
330 { label: "c-onCommitted",
331 event: "onCommitted",
332 details: { frameId: 0,
333 processId: 0,
334 tabId: 0,
335 timeStamp: 0,
336 transitionQualifiers: ['maybe_client_redirect'],
337 transitionType: "link",
338 url: getURL('c.html') }},
339 { label: "c-onDOMContentLoaded",
340 event: "onDOMContentLoaded",
341 details: { frameId: 0,
342 processId: 0,
343 tabId: 0,
344 timeStamp: 0,
345 url: getURL('c.html') }},
346 { label: "c-onCompleted",
347 event: "onCompleted",
348 details: { frameId: 0,
349 processId: 0,
350 tabId: 0,
351 timeStamp: 0,
352 url: getURL('c.html') }}],
353 [ navigationOrder("h-"),
354 navigationOrder("i-"),
355 navigationOrder("c-"),
356 isIFrameOf("i-", "h-"),
357 isLoadedBy("c-", "i-") ]);
358 chrome.tabs.update(tabId, { url: getURL('h.html') });