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
diff --git a/core/java/android/webkit/ViewManager.java b/core/java/android/webkit/ViewManager.java
index ece33ab..153c1c2 100644
--- a/core/java/android/webkit/ViewManager.java
+++ b/core/java/android/webkit/ViewManager.java
@@ -205,7 +205,14 @@
                 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();
                 }