summaryrefslogtreecommitdiff
path: root/android_webview
diff options
context:
space:
mode:
authorboliu <boliu@chromium.org>2014-09-10 11:44:39 -0700
committerBo Liu <boliu@google.com>2014-09-10 12:20:32 -0700
commit8e5c3cbe4aa4636b84ad92e4fe132816a597cbb4 (patch)
treecea3536c60173486ce8fadcf32649846fb17a360 /android_webview
parente47586f6ca96c635d5e15e7c0e6afc9b5cca3d3d (diff)
downloadchromium_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.java7
-rw-r--r--android_webview/native/aw_contents.cc5
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);