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

Side by Side Diff: chrome/test/data/extensions/platform_apps/web_view/shim/main.js

Issue 888563003: <webview>: Navigate to about:blank if attempting to navigate to bad URL (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed nits Created 5 years, 10 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 | « no previous file | extensions/browser/guest_view/web_view/web_view_guest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 util = {}; 5 var util = {};
6 var embedder = {}; 6 var embedder = {};
7 embedder.baseGuestURL = ''; 7 embedder.baseGuestURL = '';
8 embedder.emptyGuestURL = ''; 8 embedder.emptyGuestURL = '';
9 embedder.windowOpenGuestURL = ''; 9 embedder.windowOpenGuestURL = '';
10 embedder.noReferrerGuestURL = ''; 10 embedder.noReferrerGuestURL = '';
(...skipping 1403 matching lines...) Expand 10 before | Expand all | Expand 10 after
1414 embedder.test.succeed(); 1414 embedder.test.succeed();
1415 }); 1415 });
1416 webview.setAttribute('src', embedder.closeSocketURL); 1416 webview.setAttribute('src', embedder.closeSocketURL);
1417 document.body.appendChild(webview); 1417 document.body.appendChild(webview);
1418 } 1418 }
1419 1419
1420 // This test verifies that the loadabort event fires as expected when an illegal 1420 // This test verifies that the loadabort event fires as expected when an illegal
1421 // chrome URL is provided. 1421 // chrome URL is provided.
1422 function testLoadAbortIllegalChromeURL() { 1422 function testLoadAbortIllegalChromeURL() {
1423 var webview = document.createElement('webview'); 1423 var webview = document.createElement('webview');
1424 var onFirstLoadStop = function(e) {
1425 webview.removeEventListener('loadstop', onFirstLoadStop);
1426 webview.setAttribute('src', 'chrome://newtab');
1427 };
1428 webview.addEventListener('loadstop', onFirstLoadStop);
1429 webview.addEventListener('loadabort', function(e) { 1424 webview.addEventListener('loadabort', function(e) {
1430 embedder.test.assertEq('ERR_ABORTED', e.reason); 1425 embedder.test.assertEq('ERR_ABORTED', e.reason);
1426 });
1427 webview.addEventListener('loadstop', function(e) {
1428 embedder.test.assertEq('about:blank', webview.src);
1431 embedder.test.succeed(); 1429 embedder.test.succeed();
1432 }); 1430 });
1433 webview.setAttribute('src', 'about:blank'); 1431 webview.src = 'chrome://newtab';
1434 document.body.appendChild(webview); 1432 document.body.appendChild(webview);
1435 } 1433 }
1436 1434
1437 function testLoadAbortIllegalFileURL() { 1435 function testLoadAbortIllegalFileURL() {
1438 var webview = document.createElement('webview'); 1436 var webview = document.createElement('webview');
1439 webview.addEventListener('loadabort', function(e) { 1437 webview.addEventListener('loadabort', function(e) {
1440 embedder.test.assertEq('ERR_ABORTED', e.reason); 1438 embedder.test.assertEq('ERR_ABORTED', e.reason);
1439 });
1440 webview.addEventListener('loadstop', function(e) {
1441 embedder.test.assertEq('about:blank', webview.src);
1441 embedder.test.succeed(); 1442 embedder.test.succeed();
1442 }); 1443 });
1443 webview.setAttribute('src', 'file://foo'); 1444 webview.src = 'file://foo';
1444 document.body.appendChild(webview); 1445 document.body.appendChild(webview);
1445 } 1446 }
1446 1447
1447 function testLoadAbortIllegalJavaScriptURL() { 1448 function testLoadAbortIllegalJavaScriptURL() {
1448 var webview = document.createElement('webview'); 1449 var webview = document.createElement('webview');
1449 webview.addEventListener('loadabort', function(e) { 1450 webview.addEventListener('loadabort', function(e) {
1450 embedder.test.assertEq('ERR_ABORTED', e.reason); 1451 embedder.test.assertEq('ERR_ABORTED', e.reason);
1452 });
1453 webview.addEventListener('loadstop', function(e) {
1454 embedder.test.assertEq('about:blank', webview.src);
1451 embedder.test.succeed(); 1455 embedder.test.succeed();
1452 }); 1456 });
1453 webview.setAttribute('src', 'javascript:void(document.bgColor="#0000FF")'); 1457 webview.setAttribute('src', 'javascript:void(document.bgColor="#0000FF")');
1454 document.body.appendChild(webview); 1458 document.body.appendChild(webview);
1455 } 1459 }
1456 1460
1457 // Verifies that navigating to invalid URL (e.g. 'http:') doesn't cause a crash. 1461 // Verifies that navigating to invalid URL (e.g. 'http:') doesn't cause a crash.
1458 function testLoadAbortInvalidNavigation() { 1462 function testLoadAbortInvalidNavigation() {
1459 var webview = document.createElement('webview'); 1463 var webview = document.createElement('webview');
1460 var validSchemeWithEmptyURL = 'http:';
1461 webview.addEventListener('loadabort', function(e) { 1464 webview.addEventListener('loadabort', function(e) {
1462 embedder.test.assertEq('ERR_ABORTED', e.reason); 1465 embedder.test.assertEq('ERR_ABORTED', e.reason);
1463 embedder.test.assertEq('', e.url); 1466 embedder.test.assertEq('', e.url);
1467 });
1468 webview.addEventListener('loadstop', function(e) {
1469 embedder.test.assertEq('about:blank', webview.src);
1464 embedder.test.succeed(); 1470 embedder.test.succeed();
1465 }); 1471 });
1466 webview.addEventListener('exit', function(e) { 1472 webview.addEventListener('exit', function(e) {
1467 // We should not crash. 1473 // We should not crash.
1468 embedder.test.fail(); 1474 embedder.test.fail();
1469 }); 1475 });
1470 webview.setAttribute('src', validSchemeWithEmptyURL); 1476 webview.src = 'http:';
1471 document.body.appendChild(webview); 1477 document.body.appendChild(webview);
1472 } 1478 }
1473 1479
1474 // Verifies that navigation to a URL that is valid but not web-safe or 1480 // Verifies that navigation to a URL that is valid but not web-safe or
1475 // pseudo-scheme fires loadabort and doesn't cause a crash. 1481 // pseudo-scheme fires loadabort and doesn't cause a crash.
1476 function testLoadAbortNonWebSafeScheme() { 1482 function testLoadAbortNonWebSafeScheme() {
1477 var webview = document.createElement('webview'); 1483 var webview = document.createElement('webview');
1478 var chromeGuestURL = 'chrome-guest://abc123'; 1484 var chromeGuestURL = 'chrome-guest://abc123/';
1479 webview.addEventListener('loadabort', function(e) { 1485 webview.addEventListener('loadabort', function(e) {
1480 embedder.test.assertEq('ERR_ABORTED', e.reason); 1486 embedder.test.assertEq('ERR_ABORTED', e.reason);
1481 embedder.test.assertEq('chrome-guest://abc123/', e.url); 1487 embedder.test.assertEq(chromeGuestURL, e.url);
1488 });
1489 webview.addEventListener('loadstop', function(e) {
1490 embedder.test.assertEq('about:blank', webview.src);
1482 embedder.test.succeed(); 1491 embedder.test.succeed();
1483 }); 1492 });
1484 webview.addEventListener('exit', function(e) { 1493 webview.addEventListener('exit', function(e) {
1485 // We should not crash. 1494 // We should not crash.
1486 embedder.test.fail(); 1495 embedder.test.fail();
1487 }); 1496 });
1488 webview.setAttribute('src', chromeGuestURL); 1497 webview.src = chromeGuestURL;
1489 document.body.appendChild(webview); 1498 document.body.appendChild(webview);
1490 }; 1499 };
1491 1500
1492 // This test verifies that the reload method on webview functions as expected. 1501 // This test verifies that the reload method on webview functions as expected.
1493 function testReload() { 1502 function testReload() {
1494 var triggerNavUrl = 'data:text/html,trigger navigation'; 1503 var triggerNavUrl = 'data:text/html,trigger navigation';
1495 var webview = document.createElement('webview'); 1504 var webview = document.createElement('webview');
1496 1505
1497 var loadCommitCount = 0; 1506 var loadCommitCount = 0;
1498 webview.addEventListener('loadstop', function(e) { 1507 webview.addEventListener('loadstop', function(e) {
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
2134 'testFindAPI_findupdate': testFindAPI, 2143 'testFindAPI_findupdate': testFindAPI,
2135 'testLoadDataAPI': testLoadDataAPI 2144 'testLoadDataAPI': testLoadDataAPI
2136 }; 2145 };
2137 2146
2138 onload = function() { 2147 onload = function() {
2139 chrome.test.getConfig(function(config) { 2148 chrome.test.getConfig(function(config) {
2140 embedder.setUp_(config); 2149 embedder.setUp_(config);
2141 chrome.test.sendMessage("Launched"); 2150 chrome.test.sendMessage("Launched");
2142 }); 2151 });
2143 }; 2152 };
OLDNEW
« no previous file with comments | « no previous file | extensions/browser/guest_view/web_view/web_view_guest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698