diff options
author | Ted Choc <tedchoc@google.com> | 2014-08-29 13:04:40 -0700 |
---|---|---|
committer | Ted Choc <tedchoc@google.com> | 2014-08-29 20:05:56 +0000 |
commit | 4efb7be44aa9e437d11c39dd505b4bb7621abfee (patch) | |
tree | 01fc6a57e078f3bd46b97c576559f2c454ee44ce | |
parent | 1eca6752a8b939d2e69bfa96007750a260451195 (diff) | |
download | chromium_src-4efb7be44aa9e437d11c39dd505b4bb7621abfee.zip chromium_src-4efb7be44aa9e437d11c39dd505b4bb7621abfee.tar.gz chromium_src-4efb7be44aa9e437d11c39dd505b4bb7621abfee.tar.bz2 |
[Android] Expose method for UI to force composites
Allow the ContentViewRenderView to request composites if UX components require it.
BUG=387177
TBR=dtrainor@chromium.org
Review URL: https://codereview.chromium.org/504553002
Cr-Commit-Position: refs/heads/master@{#291982}
(cherry picked from commit e3ed0e0a71cff087bb2a9a082c16ca3617966d7c)
Review URL: https://codereview.chromium.org/523793004
Cr-Commit-Position: refs/branch-heads/2125@{#152}
Cr-Branched-From: b68026d94bda36dd106a3d91a098719f952a9477-refs/heads/master@{#290040}
3 files changed, 17 insertions, 0 deletions
diff --git a/content/browser/android/content_view_render_view.cc b/content/browser/android/content_view_render_view.cc index 06590fa..52d0c23 100644 --- a/content/browser/android/content_view_render_view.cc +++ b/content/browser/android/content_view_render_view.cc @@ -120,6 +120,12 @@ void ContentViewRenderView::SurfaceChanged(JNIEnv* env, jobject obj, void ContentViewRenderView::SetOverlayVideoMode( JNIEnv* env, jobject obj, bool enabled) { compositor_->SetHasTransparentBackground(enabled); + SetNeedsComposite(env, obj); +} + +void ContentViewRenderView::SetNeedsComposite(JNIEnv* env, jobject obj) { + if (compositor_) + compositor_->SetNeedsComposite(); } void ContentViewRenderView::Layout() { diff --git a/content/browser/android/content_view_render_view.h b/content/browser/android/content_view_render_view.h index 2f1bcc1..905adb4 100644 --- a/content/browser/android/content_view_render_view.h +++ b/content/browser/android/content_view_render_view.h @@ -41,6 +41,7 @@ class ContentViewRenderView : public CompositorClient { jint format, jint width, jint height, jobject surface); jboolean Composite(JNIEnv* env, jobject obj); void SetOverlayVideoMode(JNIEnv* env, jobject obj, bool enabled); + void SetNeedsComposite(JNIEnv* env, jobject obj); // CompositorClient implementation virtual void Layout() OVERRIDE; diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java index 97949f3..63c6c04 100644 --- a/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java +++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java @@ -148,6 +148,15 @@ public class ContentViewRenderView extends FrameLayout { } /** + * Trigger a redraw of the compositor. This is only needed if the UI changes something that + * does not trigger a redraw itself by updating the layer tree. + */ + public void setNeedsComposite() { + if (mNativeContentViewRenderView == 0) return; + nativeSetNeedsComposite(mNativeContentViewRenderView); + } + + /** * This method should be subclassed to provide actions to be performed once the view is ready to * render. */ @@ -216,4 +225,5 @@ public class ContentViewRenderView extends FrameLayout { int format, int width, int height, Surface surface); private native void nativeSetOverlayVideoMode(long nativeContentViewRenderView, boolean enabled); + private native void nativeSetNeedsComposite(long nativeContentViewRenderView); } |