diff options
author | fsamuel <fsamuel@chromium.org> | 2014-10-03 17:30:37 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-04 00:31:14 +0000 |
commit | e7c9f7781cbc6db099dacbefdc19ac2fd9bfc19a (patch) | |
tree | 0c446e0f1268662c9e7daff6297086b42bdacf7a /chrome | |
parent | 684abf9f49c6dd79a0745689941ea9321f3c10fa (diff) | |
download | chromium_src-e7c9f7781cbc6db099dacbefdc19ac2fd9bfc19a.zip chromium_src-e7c9f7781cbc6db099dacbefdc19ac2fd9bfc19a.tar.gz chromium_src-e7c9f7781cbc6db099dacbefdc19ac2fd9bfc19a.tar.bz2 |
<webview>: resizing with display:none set should resize on attachment
BUG=330264, 419020
TEST=WebViewTest.Shim_TestResizeWebviewWithDisplayNoneResizesContent
TBR=creis@chromium.org for minor browser_plugin_delegate.h change.
Review URL: https://codereview.chromium.org/624063002
Cr-Commit-Position: refs/heads/master@{#298133}
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/apps/web_view_browsertest.cc | 7 | ||||
-rw-r--r-- | chrome/test/data/extensions/platform_apps/web_view/shim/main.js | 66 |
2 files changed, 73 insertions, 0 deletions
diff --git a/chrome/browser/apps/web_view_browsertest.cc b/chrome/browser/apps/web_view_browsertest.cc index b23bd19..22d9108 100644 --- a/chrome/browser/apps/web_view_browsertest.cc +++ b/chrome/browser/apps/web_view_browsertest.cc @@ -1202,6 +1202,13 @@ IN_PROC_BROWSER_TEST_F(WebViewTest, Shim_TestNavigationToExternalProtocol) { NO_TEST_SERVER); } +IN_PROC_BROWSER_TEST_F(WebViewTest, + Shim_TestResizeWebviewWithDisplayNoneResizesContent) { + TestHelper("testResizeWebviewWithDisplayNoneResizesContent", + "web_view/shim", + NO_TEST_SERVER); +} + IN_PROC_BROWSER_TEST_F(WebViewTest, Shim_TestResizeWebviewResizesContent) { TestHelper("testResizeWebviewResizesContent", "web_view/shim", 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 2ec7c15..0b338108 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, |