Fixes OOM bitmap crash.

Change-Id: Ied0293b7f1dbfe16c3517dbb9e2b19c8030d31a5
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index c3be486..c71234b 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -2465,7 +2465,10 @@
 
         Canvas canvas = new Canvas(sThumbnailBitmap);
         canvas.drawBitmap(viewportBitmap, srcRect, dstRect, new Paint(Paint.FILTER_BITMAP_FLAG));
-
+        if (viewportBitmap != null) {
+            viewportBitmap.recycle();
+            viewportBitmap = null;
+        }
         return sThumbnailBitmap;
     }
 
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index b5d0a38..7ae9bf7 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -572,6 +572,10 @@
             mTitle.setImageBitmap(mTitleBarBitmap);
             mTitle.setVisibility(View.VISIBLE);
             // SWE: WebView.draw() wouldn't draw anything if SurfaceView is enabled.
+            if (mContentBitmap != null) {
+                mContentBitmap.recycle();
+                mContentBitmap = null;
+            }
             mContentBitmap = web.getViewportBitmap();
             if (mContentBitmap == null) {
                 int h = web.getHeight() - embTbarHeight;
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 786e376..b951306 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -1396,6 +1396,14 @@
      * Destroy the tab's main WebView and subWindow if any
      */
     void destroy() {
+        if (mScreenShot != null) {
+            mScreenShot.recycle();
+            mScreenShot = null;
+        }
+        if (mCapture != null ) {
+            mCapture.recycle();
+            mCapture = null;
+        }
         if (mPostponeDestroy) {
             mShouldDestroy = true;
             return;
@@ -2024,6 +2032,10 @@
         int state = c.save();
         float scale = 0;
         Bitmap screenShot = mMainView.getViewportBitmap();
+        if (mScreenShot != null) {
+            mScreenShot.recycle();
+            mScreenShot = null;
+        }
         mScreenShot = screenShot;
         if (screenShot != null) {
             //scale based on device orientation