From 8aedd10aca67ce988888e99ecc3fcbe81344ea4d Mon Sep 17 00:00:00 2001 From: Grace Kloba Date: Wed, 21 Apr 2010 21:14:23 -0700 Subject: [PATCH] Post a message to set SurfaceView to be visible when we switch to use the layout size. Otherwise it will first use the old dimension which can exceed the limit, which in turn causes the Browser to crash. Fix http://b/issue?id=2616263 --- core/java/android/webkit/ViewManager.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/java/android/webkit/ViewManager.java b/core/java/android/webkit/ViewManager.java index ece33ab87cbf0..153c1c23c978d 100644 --- a/core/java/android/webkit/ViewManager.java +++ b/core/java/android/webkit/ViewManager.java @@ -205,7 +205,14 @@ class ViewManager { if (sView.getVisibility() == View.VISIBLE) { sView.setVisibility(View.INVISIBLE); sView.getHolder().setSizeFromLayout(); - sView.setVisibility(View.VISIBLE); + // setLayoutParams() only requests the layout. If we set it + // to VISIBLE now, it will use the old dimension to set the + // size. Post a message to ensure that it shows the new size. + mWebView.mPrivateHandler.post(new Runnable() { + public void run() { + sView.setVisibility(View.VISIBLE); + } + }); } else { sView.getHolder().setSizeFromLayout(); }