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

Side by Side Diff: chrome/test/data/extensions/platform_apps/web_view/newwindow/embedder.js

Issue 558813002: <webview>: Fix an issue with destroying an opener that has unattached guests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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/renderer/resources/extensions/web_view_events.js ('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 // 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
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
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 };
OLDNEW
« no previous file with comments | « chrome/renderer/resources/extensions/web_view_events.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698