Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1671)

Unified Diff: chrome/test/data/extensions/platform_apps/web_view/shim/main.js

Issue 624063002: <webview>: resizing with display:none set should resize on attachment (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..e7edf5ad2fee0bd2986be9cd478b5299c090be69 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,62 @@ 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) {
+ window.console.log('The resize test has been injected into webview.');
lazyboy 2014/10/03 20:30:05 if (!results || !results.length) embedder.test.fai
Fady Samuel 2014/10/03 21:52:30 Done.
+ }
+ );
+ webview.executeScript(
+ {file: 'inject_comm_channel.js'},
+ function(results) {
+ window.console.log('The guest script for a two-way comm channel has ' +
lazyboy 2014/10/03 20:30:05 Same here.
Fady Samuel 2014/10/03 21:52:30 Done.
+ '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';
lazyboy 2014/10/03 20:30:05 From what i've seen this probably is race-y, you'r
Fady Samuel 2014/10/03 21:52:30 I don't know the full flow of code so I'm not 100%
+ 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 +1989,8 @@ embedder.test.testList = {
'testRemoveWebviewOnExit': testRemoveWebviewOnExit,
'testRemoveWebviewAfterNavigation': testRemoveWebviewAfterNavigation,
'testResizeWebviewResizesContent': testResizeWebviewResizesContent,
+ 'testResizeWebviewWithDisplayNoneResizesContent':
+ testResizeWebviewWithDisplayNoneResizesContent,
'testPostMessageCommChannel': testPostMessageCommChannel,
'testScreenshotCapture' : testScreenshotCapture,
'testZoomAPI' : testZoomAPI,

Powered by Google App Engine
This is Rietveld 408576698