summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Choc <tedchoc@google.com>2014-08-29 13:04:40 -0700
committerTed Choc <tedchoc@google.com>2014-08-29 20:05:56 +0000
commit4efb7be44aa9e437d11c39dd505b4bb7621abfee (patch)
tree01fc6a57e078f3bd46b97c576559f2c454ee44ce
parent1eca6752a8b939d2e69bfa96007750a260451195 (diff)
downloadchromium_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}
-rw-r--r--content/browser/android/content_view_render_view.cc6
-rw-r--r--content/browser/android/content_view_render_view.h1
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java10
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);
}