| Index: extensions/test/data/web_view/apitest/main.js
|
| diff --git a/extensions/test/data/web_view/apitest/main.js b/extensions/test/data/web_view/apitest/main.js
|
| index b6c734f6c3bc6e5266b33e6f7fc69a0a84ed9165..71ba03300a58c0b77f450cdbed736ff26faab0a9 100644
|
| --- a/extensions/test/data/web_view/apitest/main.js
|
| +++ b/extensions/test/data/web_view/apitest/main.js
|
| @@ -465,6 +465,28 @@ function testChromeExtensionURL() {
|
| document.body.appendChild(webview);
|
| }
|
|
|
| +// This test verifies that guests are blocked from navigating the webview to a
|
| +// data URL.
|
| +function testContentInitiatedNavigationToDataUrlBlocked() {
|
| + var navUrl = "data:text/html,foo";
|
| + var webview = document.createElement('webview');
|
| + webview.addEventListener('consolemessage', function(e) {
|
| + if (e.message.startsWith(
|
| + 'Not allowed to navigate top frame to data URL:')) {
|
| + embedder.test.succeed();
|
| + }
|
| + });
|
| + webview.addEventListener('loadstop', function(e) {
|
| + if (webview.getAttribute('src') == navUrl) {
|
| + embedder.test.fail();
|
| + }
|
| + });
|
| + webview.setAttribute('src',
|
| + 'data:text/html,<script>window.location.href = "' + navUrl +
|
| + '";</scr' + 'ipt>');
|
| + document.body.appendChild(webview);
|
| +}
|
| +
|
| // This test verifies that the load event fires when the a new page is
|
| // loaded.
|
| // TODO(fsamuel): Add a test to verify that subframe loads within a guest
|
| @@ -1229,6 +1251,12 @@ function testNavOnSrcAttributeChange() {
|
| }
|
|
|
| // This test verifies that new window attachment functions as expected.
|
| +//
|
| +// TODO(crbug.com/594215) Test that opening a new window with a data URL is
|
| +// blocked. There is currently no way to test this, as the block message is
|
| +// printed on the new window which never gets created, so the message is lost.
|
| +// Also test that opening a new window with a data URL when the webview is
|
| +// already on a data URL is allowed.
|
| function testNewWindow() {
|
| var webview = document.createElement('webview');
|
| webview.addEventListener('newwindow', function(e) {
|
| @@ -1753,6 +1781,8 @@ embedder.test.testList = {
|
| 'testCannotMutateEventName': testCannotMutateEventName,
|
| 'testChromeExtensionRelativePath': testChromeExtensionRelativePath,
|
| 'testChromeExtensionURL': testChromeExtensionURL,
|
| + 'testContentInitiatedNavigationToDataUrlBlocked':
|
| + testContentInitiatedNavigationToDataUrlBlocked,
|
| 'testContentLoadEvent': testContentLoadEvent,
|
| 'testDeclarativeWebRequestAPI': testDeclarativeWebRequestAPI,
|
| 'testDeclarativeWebRequestAPISendMessage':
|
|
|