| Index: android_webview/browser/render_thread_manager.cc
|
| diff --git a/android_webview/browser/render_thread_manager.cc b/android_webview/browser/render_thread_manager.cc
|
| index 94d74c6bff33e024b71634f1a0089d483912e83f..b55546578e3bd816fea363cac4de3ca17a2c79a7 100644
|
| --- a/android_webview/browser/render_thread_manager.cc
|
| +++ b/android_webview/browser/render_thread_manager.cc
|
| @@ -7,6 +7,7 @@
|
| #include <utility>
|
|
|
| #include "android_webview/browser/child_frame.h"
|
| +#include "android_webview/browser/compositor_frame_producer.h"
|
| #include "android_webview/browser/deferred_gpu_command_service.h"
|
| #include "android_webview/browser/hardware_renderer.h"
|
| #include "android_webview/browser/render_thread_manager_client.h"
|
| @@ -91,6 +92,7 @@ RenderThreadManager::RenderThreadManager(
|
| const scoped_refptr<base::SingleThreadTaskRunner>& ui_loop)
|
| : ui_loop_(ui_loop),
|
| client_(client),
|
| + compositor_frame_producer_(nullptr),
|
| renderer_manager_key_(GLViewRendererManager::GetInstance()->NullKey()),
|
| hardware_renderer_has_frame_(false),
|
| inside_hardware_release_(false),
|
| @@ -104,6 +106,9 @@ RenderThreadManager::RenderThreadManager(
|
| RenderThreadManager::~RenderThreadManager() {
|
| DCHECK(ui_loop_->BelongsToCurrentThread());
|
| DCHECK(!hardware_renderer_.get());
|
| + if (compositor_frame_producer_) {
|
| + compositor_frame_producer_->OnCompositorFrameConsumerWillDestroy();
|
| + }
|
| }
|
|
|
| void RenderThreadManager::ClientRequestInvokeGL(bool for_idle) {
|
| @@ -152,7 +157,9 @@ void RenderThreadManager::ClientRequestInvokeGLOnUI() {
|
|
|
| void RenderThreadManager::UpdateParentDrawConstraintsOnUI() {
|
| DCHECK(ui_loop_->BelongsToCurrentThread());
|
| - client_->OnParentDrawConstraintsUpdated();
|
| + if (compositor_frame_producer_) {
|
| + compositor_frame_producer_->OnParentDrawConstraintsUpdated();
|
| + }
|
| }
|
|
|
| void RenderThreadManager::SetScrollOffsetOnUI(gfx::Vector2d scroll_offset) {
|
| @@ -353,6 +360,11 @@ void RenderThreadManager::DeleteHardwareRendererOnUI() {
|
| }
|
| }
|
|
|
| +void RenderThreadManager::SetCompositorFrameProducer(
|
| + CompositorFrameProducer* compositor_frame_producer) {
|
| + compositor_frame_producer_ = compositor_frame_producer;
|
| +}
|
| +
|
| bool RenderThreadManager::HasFrameOnUI() const {
|
| base::AutoLock lock(lock_);
|
| return hardware_renderer_has_frame_ || child_frame_.get();
|
|
|