OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 var embedder = {}; | 5 var embedder = {}; |
6 embedder.test = {}; | 6 embedder.test = {}; |
7 embedder.baseGuestURL = ''; | 7 embedder.baseGuestURL = ''; |
8 embedder.guestURL = ''; | 8 embedder.guestURL = ''; |
9 embedder.guestWithLinkURL = ''; | 9 embedder.guestWithLinkURL = ''; |
10 embedder.newWindowURL = ''; | 10 embedder.newWindowURL = ''; |
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
326 webview.addEventListener('loadstop', function(e) { | 326 webview.addEventListener('loadstop', function(e) { |
327 webview.focus(); | 327 webview.focus(); |
328 chrome.test.sendMessage('Loaded'); | 328 chrome.test.sendMessage('Loaded'); |
329 }); | 329 }); |
330 webview.addEventListener('newwindow', function(e) { | 330 webview.addEventListener('newwindow', function(e) { |
331 embedder.test.succeed(); | 331 embedder.test.succeed(); |
332 }); | 332 }); |
333 webview.src = embedder.guestWithLinkURL; | 333 webview.src = embedder.guestWithLinkURL; |
334 } | 334 } |
335 | 335 |
336 function testNewWindowOpenerDestroyedBeforeAttach() { | |
337 var testName = 'testNewWindowOpenerDestroyedBeforeAttach'; | |
338 var webview = embedder.setUpGuest_('foobar'); | |
339 | |
340 var onNewWindow = function(e) { | |
341 embedder.assertCorrectEvent_(e, ''); | |
342 | |
343 // Remove the opener. | |
344 webview.parentNode.removeChild(webview); | |
345 // Pass in a timeout so we ensure the newwindow disposal codepath | |
346 // works properly. | |
347 window.setTimeout(function() { embedder.test.succeed(); }, 0); | |
Fady Samuel
2014/09/09 21:55:34
What happens if we try e.window.attach on another
lazyboy
2014/09/09 22:52:22
It would throw the same exception, added guards to
| |
348 | |
349 e.preventDefault(); | |
350 }; | |
351 webview.addEventListener('newwindow', onNewWindow); | |
352 | |
353 // Load a new window with the given name. | |
354 embedder.setUpNewWindowRequest_(webview, 'guest.html', '', testName); | |
355 } | |
356 | |
336 function testNewWindowWebRequest() { | 357 function testNewWindowWebRequest() { |
337 var testName = 'testNewWindowWebRequest'; | 358 var testName = 'testNewWindowWebRequest'; |
338 var webview = embedder.setUpGuest_('foobar'); | 359 var webview = embedder.setUpGuest_('foobar'); |
339 | 360 |
340 var onNewWindow = function(e) { | 361 var onNewWindow = function(e) { |
341 chrome.test.log('Embedder notified on newwindow'); | 362 chrome.test.log('Embedder notified on newwindow'); |
342 embedder.assertCorrectEvent_(e, ''); | 363 embedder.assertCorrectEvent_(e, ''); |
343 | 364 |
344 var newwebview = new WebView(); | 365 var newwebview = new WebView(); |
345 var calledWebRequestEvent = false; | 366 var calledWebRequestEvent = false; |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
492 | 513 |
493 embedder.test.testList = { | 514 embedder.test.testList = { |
494 'testNewWindowNameTakesPrecedence': testNewWindowNameTakesPrecedence, | 515 'testNewWindowNameTakesPrecedence': testNewWindowNameTakesPrecedence, |
495 'testWebViewNameTakesPrecedence': testWebViewNameTakesPrecedence, | 516 'testWebViewNameTakesPrecedence': testWebViewNameTakesPrecedence, |
496 'testNoName': testNoName, | 517 'testNoName': testNoName, |
497 'testNewWindowRedirect': testNewWindowRedirect, | 518 'testNewWindowRedirect': testNewWindowRedirect, |
498 'testNewWindowClose': testNewWindowClose, | 519 'testNewWindowClose': testNewWindowClose, |
499 'testNewWindowDeferredAttachment': testNewWindowDeferredAttachment, | 520 'testNewWindowDeferredAttachment': testNewWindowDeferredAttachment, |
500 'testNewWindowExecuteScript': testNewWindowExecuteScript, | 521 'testNewWindowExecuteScript': testNewWindowExecuteScript, |
501 'testNewWindowOpenInNewTab': testNewWindowOpenInNewTab, | 522 'testNewWindowOpenInNewTab': testNewWindowOpenInNewTab, |
523 'testNewWindowOpenerDestroyedBeforeAttach': | |
524 testNewWindowOpenerDestroyedBeforeAttach, | |
502 'testNewWindowDeclarativeWebRequest': testNewWindowDeclarativeWebRequest, | 525 'testNewWindowDeclarativeWebRequest': testNewWindowDeclarativeWebRequest, |
503 'testNewWindowWebRequest': testNewWindowWebRequest, | 526 'testNewWindowWebRequest': testNewWindowWebRequest, |
504 'testNewWindowWebRequestCloseWindow': testNewWindowWebRequestCloseWindow, | 527 'testNewWindowWebRequestCloseWindow': testNewWindowWebRequestCloseWindow, |
505 'testNewWindowWebRequestRemoveElement': testNewWindowWebRequestRemoveElement | 528 'testNewWindowWebRequestRemoveElement': testNewWindowWebRequestRemoveElement |
506 }; | 529 }; |
507 | 530 |
508 onload = function() { | 531 onload = function() { |
509 chrome.test.getConfig(function(config) { | 532 chrome.test.getConfig(function(config) { |
510 embedder.setUp_(config); | 533 embedder.setUp_(config); |
511 chrome.test.sendMessage('Launched'); | 534 chrome.test.sendMessage('Launched'); |
512 }); | 535 }); |
513 }; | 536 }; |
OLD | NEW |