diff options
author | boliu <boliu@chromium.org> | 2014-09-10 11:44:39 -0700 |
---|---|---|
committer | Bo Liu <boliu@google.com> | 2014-09-10 12:20:32 -0700 |
commit | 8e5c3cbe4aa4636b84ad92e4fe132816a597cbb4 (patch) | |
tree | cea3536c60173486ce8fadcf32649846fb17a360 /android_webview | |
parent | e47586f6ca96c635d5e15e7c0e6afc9b5cca3d3d (diff) | |
download | chromium_org-8e5c3cbe4aa4636b84ad92e4fe132816a597cbb4.tar.gz |
Cherry-pick: aw: Invalidate view on hardware teardown
Clean cherry-pick of chromium
crrev.com/f06145bfa6fb8bb4bbff86d8bd38e6e7c4a5078e
BUG: 17415765
Original description:
This is a new requirement in L during functor teardown.
Review URL: https://codereview.chromium.org/561553002
Change-Id: Ic37699f5d73bb9451458a4301cbf6bd34880c537
Cr-Commit-Position: refs/heads/master@{#294201}
Diffstat (limited to 'android_webview')
-rw-r--r-- | android_webview/java/src/org/chromium/android_webview/AwContents.java | 7 | ||||
-rw-r--r-- | android_webview/native/aw_contents.cc | 5 |
2 files changed, 12 insertions, 0 deletions
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 cd4b145a36..7e64190e16 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwContents.java +++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java @@ -2032,6 +2032,13 @@ public class AwContents { } } + // Call postInvalidateOnAnimation for invalidations. This is only used to synchronize + // draw functor destruction. + @CalledByNative + private void invalidateOnFunctorDestroy() { + mContainerView.invalidate(); + } + @CalledByNative private int[] getLocationOnScreen() { int[] result = new int[2]; diff --git a/android_webview/native/aw_contents.cc b/android_webview/native/aw_contents.cc index 97e6a8b16a..19ed04f39c 100644 --- a/android_webview/native/aw_contents.cc +++ b/android_webview/native/aw_contents.cc @@ -899,6 +899,11 @@ void AwContents::OnDetachedFromWindow(JNIEnv* env, jobject obj) { void AwContents::ReleaseHardwareDrawIfNeeded() { InsideHardwareReleaseReset inside_reset(&shared_renderer_state_); + JNIEnv* env = AttachCurrentThread(); + ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); + if (!obj.is_null()) + Java_AwContents_invalidateOnFunctorDestroy(env, obj.obj()); + bool hardware_initialized = browser_view_renderer_.hardware_enabled(); if (hardware_initialized) { bool draw_functor_succeeded = RequestDrawGL(NULL, true); |