Index: android_webview/java/src/org/chromium/android_webview/AwContents.java |
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 d24cb7cbeccd81287981368ba41df25e6c645c9f..9060c091319daeb93e497aee886b4e3450569c6e 100644 |
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java |
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java |
@@ -278,6 +278,10 @@ public class AwContents implements SmartClipProvider, |
// through the resourcethrottle. This is only used for popup windows. |
private boolean mDeferredShouldOverrideUrlLoadingIsPendingForPopup; |
+ // This is a workaround for some qualcomm devices discarding buffer on |
+ // Activity restore. |
+ private boolean mInvalidateRootViewOnNextDraw; |
+ |
// The framework may temporarily detach our container view, for example during layout if |
// we are a child of a ListView. This may cause many toggles of View focus, which we suppress |
// when in this state. |
@@ -2213,6 +2217,8 @@ public class AwContents implements SmartClipProvider, |
} |
private void setWindowVisibilityInternal(boolean visible) { |
+ mInvalidateRootViewOnNextDraw |= Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP |
+ && visible && !mIsWindowVisible; |
mIsWindowVisible = visible; |
if (!isDestroyed()) nativeSetWindowVisibility(mNativeAwContents, mIsWindowVisible); |
} |
@@ -2732,6 +2738,11 @@ public class AwContents implements SmartClipProvider, |
mScrollOffsetManager.computeMaximumVerticalScrollOffset())) { |
postInvalidateOnAnimation(); |
} |
+ |
+ if (mInvalidateRootViewOnNextDraw) { |
+ mContainerView.getRootView().invalidate(); |
+ mInvalidateRootViewOnNextDraw = false; |
+ } |
} |
@Override |