Manual cherry-pick of https://codereview.chromium.org/23623020

Fix for bug 10043555

I don't have a molly, and could not reproduce. This means it is
untested, but at least it builds.

Change-Id: I9a114e6902af6ddc2e3f0c617b4222a4ac3b205c
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
index e03551a..20b4eb6 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -180,7 +180,6 @@
     private Callable<Picture> mPictureListenerContentProvider;
 
     private boolean mContainerViewFocused;
-    private boolean mWindowFocused;
 
     private AwAutofillManagerDelegate mAwAutofillManagerDelegate;
 
@@ -593,10 +592,10 @@
         final boolean wasViewVisible = mIsViewVisible;
         final boolean wasWindowVisible = mIsWindowVisible;
         final boolean wasPaused = mIsPaused;
-        final boolean wasFocused = mWindowFocused;
+        final boolean wasFocused = mContainerViewFocused;
 
         // Properly clean up existing mContentViewCore and mNativeAwContents.
-        if (wasFocused) onWindowFocusChanged(false);
+        if (wasFocused) onFocusChanged(false, 0, null);
         if (wasViewVisible) setViewVisibilityInternal(false);
         if (wasWindowVisible) setWindowVisibilityInternal(false);
         if (!wasPaused) onPause();
@@ -612,7 +611,7 @@
         onSizeChanged(mContainerView.getWidth(), mContainerView.getHeight(), 0, 0);
         if (wasWindowVisible) setWindowVisibilityInternal(true);
         if (wasViewVisible) setViewVisibilityInternal(true);
-        if (wasFocused) onWindowFocusChanged(true);
+        if (wasFocused) onFocusChanged(true, 0, null);
     }
 
     /**
@@ -1502,8 +1501,7 @@
      * @see android.view.View#onWindowFocusChanged()
      */
     public void onWindowFocusChanged(boolean hasWindowFocus) {
-        mWindowFocused = hasWindowFocus;
-        mContentViewCore.onFocusChanged(mContainerViewFocused && mWindowFocused);
+        // If adding any code here, remember to adding correct handling in receivePopupContents().
     }
 
     /**
@@ -1511,7 +1509,7 @@
      */
     public void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
         mContainerViewFocused = focused;
-        mContentViewCore.onFocusChanged(mContainerViewFocused && mWindowFocused);
+        mContentViewCore.onFocusChanged(focused);
     }
 
     /**