| Index: chrome/test/data/extensions/platform_apps/web_view/main.js
|
| diff --git a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js b/chrome/test/data/extensions/platform_apps/web_view/main.js
|
| similarity index 62%
|
| copy from chrome/test/data/extensions/platform_apps/web_view/shim/main.js
|
| copy to chrome/test/data/extensions/platform_apps/web_view/main.js
|
| index 831cf764e09fdf28dec84109e0424d895e300554..f7503797f7932daf8f580190054babe6617fe4d7 100644
|
| --- a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
|
| +++ b/chrome/test/data/extensions/platform_apps/web_view/main.js
|
| @@ -9,14 +9,13 @@ var util = {};
|
| // sure that the <object> shim is created (asynchronously at this point) for the
|
| // <webview> tag. This makes the <webview> tag ready for add/removeEventListener
|
| // calls.
|
| -util.createWebViewTagInDOM = function(partitionName) {
|
| +util.createWebViewTagInDOM = function() {
|
| var webview = document.createElement('webview');
|
| webview.style.width = '300px';
|
| webview.style.height = '200px';
|
| + document.body.appendChild(webview);
|
| var urlDummy = 'data:text/html,<body>Initial dummy guest</body>';
|
| webview.setAttribute('src', urlDummy);
|
| - webview.setAttribute('partition', partitionName);
|
| - document.body.appendChild(webview);
|
| return webview;
|
| };
|
|
|
| @@ -70,7 +69,6 @@ onload = function() {
|
| 'terminate'
|
| ];
|
| var webview = document.createElement('webview');
|
| - webview.setAttribute('partition', arguments.callee.name);
|
| webview.addEventListener('loadstop', function(e) {
|
| for (var i = 0; i < apiMethodsToCheck.length; ++i) {
|
| chrome.test.assertEq('function',
|
| @@ -81,6 +79,7 @@ onload = function() {
|
| chrome.test.assertEq('object', typeof webview.contentWindow);
|
| chrome.test.assertEq('function',
|
| typeof webview.contentWindow.postMessage);
|
| +
|
| chrome.test.succeed();
|
| });
|
| webview.setAttribute('src', 'data:text/html,webview check api');
|
| @@ -89,7 +88,8 @@ onload = function() {
|
|
|
| function webViewEventName() {
|
| var webview = document.createElement('webview');
|
| - webview.setAttribute('partition', arguments.callee.name);
|
| + webview.setAttribute('src', 'data:text/html,webview check api');
|
| + document.body.appendChild(webview);
|
|
|
| webview.addEventListener('loadstart', function(evt) {
|
| chrome.test.assertEq('loadstart', evt.type);
|
| @@ -106,7 +106,6 @@ onload = function() {
|
| });
|
|
|
| webview.setAttribute('src', 'data:text/html,trigger navigation');
|
| - document.body.appendChild(webview);
|
| },
|
|
|
| // This test registers two listeners on an event (loadcommit) and removes
|
| @@ -114,7 +113,7 @@ onload = function() {
|
| // Current expected behavior is that the second event listener will still
|
| // fire without crashing.
|
| function webviewDestroyOnEventListener() {
|
| - var webview = util.createWebViewTagInDOM(arguments.callee.name);
|
| + var webview = util.createWebViewTagInDOM();
|
| var url = 'data:text/html,<body>Destroy test</body>';
|
|
|
| var loadCommitCount = 0;
|
| @@ -124,6 +123,8 @@ onload = function() {
|
| return;
|
| ++loadCommitCount;
|
| if (loadCommitCount == 1) {
|
| + webview.parentNode.removeChild(webview);
|
| + webview = null;
|
| setTimeout(function() {
|
| chrome.test.succeed();
|
| }, 0);
|
| @@ -134,7 +135,6 @@ onload = function() {
|
|
|
| // The test starts from here, by setting the src to |url|.
|
| webview.addEventListener('loadcommit', function(e) {
|
| - webview.parentNode.removeChild(webview);
|
| loadCommitCommon(e);
|
| });
|
| webview.addEventListener('loadcommit', function(e) {
|
| @@ -147,7 +147,7 @@ onload = function() {
|
| // Each of the listener tries to change some properties on the event param,
|
| // which should not be possible.
|
| function cannotMutateEventName() {
|
| - var webview = util.createWebViewTagInDOM(arguments.callee.name);
|
| + var webview = util.createWebViewTagInDOM();
|
| var url = 'data:text/html,<body>Two</body>';
|
|
|
| var loadCommitACalled = false;
|
| @@ -195,7 +195,6 @@ onload = function() {
|
| // been set raises an exception.
|
| function partitionRaisesException() {
|
| var webview = document.createElement('webview');
|
| - webview.setAttribute('partition', arguments.callee.name);
|
| webview.setAttribute('src', 'data:text/html,trigger navigation');
|
| document.body.appendChild(webview);
|
| setTimeout(function() {
|
| @@ -208,109 +207,22 @@ onload = function() {
|
| }, 0);
|
| },
|
|
|
| + // This test verifies that executeScript is able to inject script into a
|
| + // guest and receives a response.
|
| function webViewExecuteScript() {
|
| var webview = document.createElement('webview');
|
| - webview.setAttribute('partition', arguments.callee.name);
|
| - webview.addEventListener('loadstop', function() {
|
| + webview.addEventListener('loadstop', function(e) {
|
| webview.executeScript(
|
| - {code:'document.body.style.backgroundColor = "red";'},
|
| - function(results) {
|
| - chrome.test.assertEq(1, results.length);
|
| - chrome.test.assertEq('red', results[0]);
|
| - chrome.test.succeed();
|
| - });
|
| + {code:"document.body.offsetWidth"},
|
| + function(result) {
|
| + console.log(result);
|
| + //chrome.test.assertEq('red', result);
|
| + chrome.test.succeed();
|
| + });
|
| });
|
| - webview.setAttribute('src', 'data:text/html,trigger navigation');
|
| + var urlDummy = 'data:text/html,<body>Initial dummy guest</body>';
|
| + webview.setAttribute('src', urlDummy);
|
| document.body.appendChild(webview);
|
| - },
|
| -
|
| - // This test calls terminate() on guest after it has already been
|
| - // terminated. This makes sure we ignore the call gracefully.
|
| - function webViewTerminateAfterExitDoesntCrash() {
|
| - var webview = document.createElement('webview');
|
| - webview.setAttribute('partition', arguments.callee.name);
|
| - var loadstopSucceedsTest = false;
|
| - webview.addEventListener('loadstop', function(evt) {
|
| - chrome.test.assertEq('loadstop', evt.type);
|
| - if (loadstopSucceedsTest) {
|
| - chrome.test.succeed();
|
| - return;
|
| - }
|
| -
|
| - webview.terminate();
|
| - });
|
| -
|
| - webview.addEventListener('exit', function(evt) {
|
| - chrome.test.assertEq('exit', evt.type);
|
| - // Call terminate again.
|
| - webview.terminate();
|
| - // Load another page. The test would pass when loadstop is called on
|
| - // this second page. This would hopefully catch if call to
|
| - // webview.terminate() caused a browser crash.
|
| - setTimeout(function() {
|
| - loadstopSucceedsTest = true;
|
| - webview.setAttribute('src', 'data:text/html,test second page');
|
| - }, 0);
|
| - });
|
| -
|
| - webview.setAttribute('src', 'data:text/html,test terminate() crash.');
|
| - document.body.appendChild(webview);
|
| - },
|
| -
|
| - // This test verifies that assigning the src attribute the same value it had
|
| - // prior to a crash spawns off a new guest process.
|
| - function webViewAssignSrcAfterCrash() {
|
| - var webview = document.createElement('webview');
|
| - webview.setAttribute('partition', arguments.callee.name);
|
| - var terminated = false;
|
| - webview.addEventListener('loadstop', function(evt) {
|
| - if (!terminated) {
|
| - webview.terminate();
|
| - return;
|
| - }
|
| - // The guest has recovered after being terminated.
|
| - chrome.test.succeed();
|
| - });
|
| - webview.addEventListener('exit', function(evt) {
|
| - terminated = true;
|
| - webview.setAttribute('src', 'data:text/html,test page');
|
| - });
|
| - webview.setAttribute('src', 'data:text/html,test page');
|
| - document.body.appendChild(webview);
|
| - },
|
| -
|
| - // This test verifies that <webview> restores the src attribute if it is
|
| - // removed after navigation.
|
| - function webViewRemoveSrcAttribute() {
|
| - var dataUrl = 'data:text/html,test page';
|
| - var webview = document.createElement('webview');
|
| - webview.setAttribute('partition', arguments.callee.name);
|
| - var terminated = false;
|
| - webview.addEventListener('loadstop', function(evt) {
|
| - webview.removeAttribute('src');
|
| - setTimeout(function() {
|
| - chrome.test.assertEq(dataUrl, webview.getAttribute('src'));
|
| - chrome.test.succeed();
|
| - }, 0);
|
| - });
|
| - webview.setAttribute('src', dataUrl);
|
| - document.body.appendChild(webview);
|
| - },
|
| -
|
| - function browserPluginObjectInstantiationIsNotAllowed() {
|
| - var container = document.getElementById('object-container');
|
| - if (!container) {
|
| - chrome.test.fail('Container for object not found.');
|
| - return;
|
| - }
|
| - container.innerHTML = '<object type="application/browser-plugin"' +
|
| - ' id="object-plugin"' +
|
| - ' src="data:text/html,<body>You should not see this</body>">' +
|
| - '</object>';
|
| - var objectElement = document.getElementById('object-plugin');
|
| - // Check that bindings are not registered.
|
| - chrome.test.assertTrue(objectElement.canGoBack === undefined);
|
| - chrome.test.succeed();
|
| }
|
| ]);
|
| };
|
|
|