adding ability to fix the size of a surface view when created.
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index 7cfe5b5..ff4e736 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -1991,14 +1991,16 @@
             implements SurfaceHolder.Callback {
         private final ViewManager.ChildView mChildView;
         private int mPointer;
+        private final boolean mIsFixedSize;
         SurfaceViewProxy(Context context, ViewManager.ChildView childView,
-                int pointer) {
+                int pointer, boolean isFixedSize) {
             super(context);
             setWillNotDraw(false); // this prevents the black box artifact
             getHolder().addCallback(this);
             mChildView = childView;
             mChildView.mView = this;
             mPointer = pointer;
+            mIsFixedSize = isFixedSize;
         }
         void destroy() {
             mPointer = 0;
@@ -2006,6 +2008,10 @@
         }
         void attach(int x, int y, int width, int height) {
             mChildView.attachView(x, y, width, height);
+
+            if (mIsFixedSize) {
+                getHolder().setFixedSize(width, height);
+            }
         }
 
         // SurfaceHolder.Callback methods
@@ -2029,12 +2035,12 @@
 
     // PluginWidget functions for mainting SurfaceViews for the Surface drawing
     // model.
-    private SurfaceView createSurface(int nativePointer) {
+    private SurfaceView createSurface(int nativePointer, boolean isFixedSize) {
         if (mWebView == null) {
             return null;
         }
         return new SurfaceViewProxy(mContext,
-                mWebView.mViewManager.createView(), nativePointer);
+                mWebView.mViewManager.createView(), nativePointer, isFixedSize);
     }
 
     private void destroySurface(SurfaceView surface) {