OLD | NEW |
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 1295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1306 } | 1306 } |
1307 | 1307 |
1308 // This test verifies that the call to executeScript will fail and return null | 1308 // This test verifies that the call to executeScript will fail and return null |
1309 // if the webview has been navigated between the time the call was made and the | 1309 // if the webview has been navigated between the time the call was made and the |
1310 // time it arrives in the guest process. | 1310 // time it arrives in the guest process. |
1311 function testExecuteScriptIsAbortedWhenWebViewSourceIsChanged() { | 1311 function testExecuteScriptIsAbortedWhenWebViewSourceIsChanged() { |
1312 var webview = document.createElement('webview'); | 1312 var webview = document.createElement('webview'); |
1313 webview.addEventListener('loadstop', function onLoadStop(e) { | 1313 webview.addEventListener('loadstop', function onLoadStop(e) { |
1314 window.console.log('2. Inject script to trigger a guest-initiated ' + | 1314 window.console.log('2. Inject script to trigger a guest-initiated ' + |
1315 'navigation.'); | 1315 'navigation.'); |
1316 var navUrl = 'data:text/html,trigger nav'; | 1316 var navUrl = 'data:text/html, trigger nav'; |
1317 webview.executeScript({ | 1317 webview.executeScript({ |
1318 code: 'window.location.href = "' + navUrl + '";' | 1318 code: 'window.location.href = "' + navUrl + '";' |
1319 }); | 1319 }); |
1320 | 1320 |
1321 window.console.log('3. Listening for the load that will be started as a ' + | 1321 window.console.log('3. Listening for the load that will be started as a ' + |
1322 'result of 2.'); | 1322 'result of 2.'); |
1323 webview.addEventListener('loadstart', function onLoadStart(e) { | 1323 webview.addEventListener('loadstart', function onLoadStart(e) { |
1324 embedder.test.assertEq('about:blank', webview.src); | 1324 embedder.test.assertEq('data:text/html, initial page', webview.src); |
1325 window.console.log('4. Attempting to inject script into about:blank. ' + | 1325 window.console.log('4. Attempting to inject script into about:blank. ' + |
1326 'This is expected to fail.'); | 1326 'This is expected to fail.'); |
1327 webview.executeScript( | 1327 webview.executeScript( |
1328 { code: 'document.body.style.backgroundColor = "red";' }, | 1328 { code: 'document.body.style.backgroundColor = "red";' }, |
1329 function(results) { | 1329 function(results) { |
1330 window.console.log( | 1330 window.console.log( |
1331 '5. Verify that executeScript has, indeed, failed.'); | 1331 '5. Verify that executeScript has, indeed, failed.'); |
1332 embedder.test.assertEq(null, results); | 1332 embedder.test.assertEq(null, results); |
1333 embedder.test.assertEq(navUrl, webview.src); | 1333 embedder.test.assertEq(navUrl, webview.src); |
1334 embedder.test.succeed(); | 1334 embedder.test.succeed(); |
1335 } | 1335 } |
1336 ); | 1336 ); |
1337 webview.removeEventListener('loadstart', onLoadStart); | 1337 webview.removeEventListener('loadstart', onLoadStart); |
1338 }); | 1338 }); |
1339 webview.removeEventListener('loadstop', onLoadStop); | 1339 webview.removeEventListener('loadstop', onLoadStop); |
1340 }); | 1340 }); |
1341 | 1341 |
1342 window.console.log('1. Performing initial navigation.'); | 1342 window.console.log('1. Performing initial navigation.'); |
1343 webview.setAttribute('src', 'about:blank'); | 1343 webview.setAttribute('src', 'data:text/html, initial page'); |
1344 document.body.appendChild(webview); | 1344 document.body.appendChild(webview); |
1345 } | 1345 } |
1346 | 1346 |
1347 // This test verifies that, in the case where the WebView is set up with a | 1347 // This test verifies that, in the case where the WebView is set up with a |
1348 // 'loadabort' handler that calls executeScript() with a script that sets | 1348 // 'loadabort' handler that calls executeScript() with a script that sets |
1349 // the WebView's 'src' to an invalid URL, and the caller then calls | 1349 // the WebView's 'src' to an invalid URL, and the caller then calls |
1350 // executeScript() on that WebView with that same script (that sets 'src' | 1350 // executeScript() on that WebView with that same script (that sets 'src' |
1351 // to an invalid URL), that loadabort will get called in both cases (and | 1351 // to an invalid URL), that loadabort will get called in both cases (and |
1352 // that the browser does not crash during the second call to executeScript()). | 1352 // that the browser does not crash during the second call to executeScript()). |
1353 function testExecuteScriptIsAbortedWhenWebViewSourceIsInvalid() { | 1353 function testExecuteScriptIsAbortedWhenWebViewSourceIsInvalid() { |
(...skipping 1805 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3159 testRendererNavigationRedirectWhileUnattached, | 3159 testRendererNavigationRedirectWhileUnattached, |
3160 'testBlobURL': testBlobURL | 3160 'testBlobURL': testBlobURL |
3161 }; | 3161 }; |
3162 | 3162 |
3163 onload = function() { | 3163 onload = function() { |
3164 chrome.test.getConfig(function(config) { | 3164 chrome.test.getConfig(function(config) { |
3165 embedder.setUp_(config); | 3165 embedder.setUp_(config); |
3166 chrome.test.sendMessage("Launched"); | 3166 chrome.test.sendMessage("Launched"); |
3167 }); | 3167 }); |
3168 }; | 3168 }; |
OLD | NEW |