| Index: android_webview/browser/browser_view_renderer.cc
|
| diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc
|
| index fd00b6be6b701a1c054c305d7ccadf9ae3f1890b..ef039bf7ec396775f699682057931f2aaada0b11 100644
|
| --- a/android_webview/browser/browser_view_renderer.cc
|
| +++ b/android_webview/browser/browser_view_renderer.cc
|
| @@ -240,6 +240,7 @@ bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) {
|
| if (!hardware_enabled_) {
|
| hardware_enabled_ = compositor_->InitializeHwDraw();
|
| if (hardware_enabled_) {
|
| + tile_manager_key_ = GlobalTileManager::GetInstance()->PushBack(this);
|
| gpu::GLInProcessContext* share_context = compositor_->GetShareContext();
|
| DCHECK(share_context);
|
| shared_renderer_state_->SetSharedContext(share_context);
|
| @@ -404,27 +405,27 @@ void BrowserViewRenderer::OnAttachedToWindow(int width, int height) {
|
| attached_to_window_ = true;
|
| width_ = width;
|
| height_ = height;
|
| - tile_manager_key_ = GlobalTileManager::GetInstance()->PushBack(this);
|
| }
|
|
|
| void BrowserViewRenderer::OnDetachedFromWindow() {
|
| TRACE_EVENT0("android_webview", "BrowserViewRenderer::OnDetachedFromWindow");
|
| attached_to_window_ = false;
|
| - if (hardware_enabled_) {
|
| - ReturnUnusedResource(shared_renderer_state_->PassDrawGLInput());
|
| - ReturnResourceFromParent();
|
| - DCHECK(shared_renderer_state_->ReturnedResourcesEmpty());
|
| -
|
| - compositor_->ReleaseHwDraw();
|
| - shared_renderer_state_->SetSharedContext(NULL);
|
| - hardware_enabled_ = false;
|
| - }
|
| + DCHECK(!hardware_enabled_);
|
| +}
|
| +
|
| +void BrowserViewRenderer::ReleaseHardware() {
|
| + DCHECK(hardware_enabled_);
|
| + ReturnUnusedResource(shared_renderer_state_->PassDrawGLInput());
|
| + ReturnResourceFromParent();
|
| + DCHECK(shared_renderer_state_->ReturnedResourcesEmpty());
|
| +
|
| + compositor_->ReleaseHwDraw();
|
| + shared_renderer_state_->SetSharedContext(NULL);
|
| + hardware_enabled_ = false;
|
| +
|
| SynchronousCompositorMemoryPolicy zero_policy;
|
| RequestMemoryPolicy(zero_policy);
|
| GlobalTileManager::GetInstance()->Remove(tile_manager_key_);
|
| - // The hardware resources are released in the destructor of hardware renderer,
|
| - // so we don't need to do it here.
|
| - // See AwContents::ReleaseHardwareDrawOnRenderThread(JNIEnv*, jobject).
|
| }
|
|
|
| bool BrowserViewRenderer::IsVisible() const {
|
|
|