Index: android_webview/browser/shared_renderer_state.cc |
diff --git a/android_webview/browser/shared_renderer_state.cc b/android_webview/browser/shared_renderer_state.cc |
index 582908eb39e699abb54e00ef9294bbd8fe0acc98..200e2abb8231c4e039d791aba04d0f240f965a53 100644 |
--- a/android_webview/browser/shared_renderer_state.cc |
+++ b/android_webview/browser/shared_renderer_state.cc |
@@ -51,6 +51,11 @@ void SharedRendererState::ClientRequestDrawGLOnUIThread() { |
} |
} |
+void SharedRendererState::UpdateParentDrawConstraintsOnUIThread() { |
+ DCHECK(ui_loop_->BelongsToCurrentThread()); |
+ client_on_ui_->UpdateParentDrawConstraints(); |
+} |
+ |
void SharedRendererState::SetDrawGLInput(scoped_ptr<DrawGLInput> input) { |
base::AutoLock lock(lock_); |
DCHECK(!draw_gl_input_.get()); |
@@ -62,6 +67,26 @@ scoped_ptr<DrawGLInput> SharedRendererState::PassDrawGLInput() { |
return draw_gl_input_.Pass(); |
} |
+void SharedRendererState::PostExternalDrawConstraintsToChildCompositor( |
+ const ParentCompositorDrawConstraints& parent_draw_constraints) { |
+ { |
+ base::AutoLock lock(lock_); |
+ parent_draw_constraints_ = parent_draw_constraints; |
+ } |
+ |
+ // No need to hold the lock_ during the post task. |
+ ui_loop_->PostTask( |
+ FROM_HERE, |
+ base::Bind(&SharedRendererState::UpdateParentDrawConstraintsOnUIThread, |
+ ui_thread_weak_ptr_)); |
+} |
+ |
+const ParentCompositorDrawConstraints |
+SharedRendererState::ParentDrawConstraints() const { |
+ base::AutoLock lock(lock_); |
+ return parent_draw_constraints_; |
+} |
+ |
void SharedRendererState::SetInsideHardwareRelease(bool inside) { |
base::AutoLock lock(lock_); |
inside_hardware_release_ = inside; |