Index: chrome/test/data/extensions/platform_apps/web_view/shim/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/shim/main.js |
index 2ec7c1537643594a5f761f5dad57658aebb350ad..0b338108567ee50a744edd5aed43bd56fe5c7255 100644 |
--- a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js |
+++ b/chrome/test/data/extensions/platform_apps/web_view/shim/main.js |
@@ -1571,6 +1571,70 @@ function testResizeWebviewResizesContent() { |
document.body.appendChild(webview); |
} |
+function testResizeWebviewWithDisplayNoneResizesContent() { |
+ var webview = new WebView(); |
+ webview.src = 'about:blank'; |
+ var loadStopCalled = false; |
+ webview.addEventListener('loadstop', function listener(e) { |
+ if (loadStopCalled) { |
+ window.console.log('webview is unexpectedly reloading.'); |
+ embedder.test.fail(); |
+ return; |
+ } |
+ loadStopCalled = true; |
+ webview.executeScript( |
+ {file: 'inject_resize_test.js'}, |
+ function(results) { |
+ if (!results || !results.length) { |
+ embedder.test.fail(); |
+ return; |
+ } |
+ window.console.log('The resize test has been injected into webview.'); |
+ } |
+ ); |
+ webview.executeScript( |
+ {file: 'inject_comm_channel.js'}, |
+ function(results) { |
+ if (!results || !results.length) { |
+ embedder.test.fail(); |
+ return; |
+ } |
+ window.console.log('The guest script for a two-way comm channel has ' + |
+ 'been injected into webview.'); |
+ // Establish a communication channel with the guest. |
+ var msg = ['connect']; |
+ webview.contentWindow.postMessage(JSON.stringify(msg), '*'); |
+ } |
+ ); |
+ }); |
+ window.addEventListener('message', function(e) { |
+ var data = JSON.parse(e.data); |
+ if (data[0] == 'connected') { |
+ console.log('A communication channel has been established with webview.'); |
+ console.log('Resizing <webview> width from 300px to 400px.'); |
+ webview.style.display = 'none'; |
+ window.setTimeout(function() { |
+ webview.style.width = '400px'; |
+ window.setTimeout(function() { |
+ webview.style.display = 'block'; |
+ }, 0); |
+ }, 0); |
+ return; |
+ } |
+ if (data[0] == 'resize') { |
+ var width = data[1]; |
+ var height = data[2]; |
+ embedder.test.assertEq(400, width); |
+ embedder.test.assertEq(300, height); |
+ embedder.test.succeed(); |
+ return; |
+ } |
+ window.console.log('Unexpected message: \'' + data[0] + '\''); |
+ embedder.test.fail(); |
+ }); |
+ document.body.appendChild(webview); |
+} |
+ |
function testPostMessageCommChannel() { |
var webview = new WebView(); |
webview.src = 'about:blank'; |
@@ -1933,6 +1997,8 @@ embedder.test.testList = { |
'testRemoveWebviewOnExit': testRemoveWebviewOnExit, |
'testRemoveWebviewAfterNavigation': testRemoveWebviewAfterNavigation, |
'testResizeWebviewResizesContent': testResizeWebviewResizesContent, |
+ 'testResizeWebviewWithDisplayNoneResizesContent': |
+ testResizeWebviewWithDisplayNoneResizesContent, |
'testPostMessageCommChannel': testPostMessageCommChannel, |
'testScreenshotCapture' : testScreenshotCapture, |
'testZoomAPI' : testZoomAPI, |