diff options
Diffstat (limited to 'android_webview')
-rw-r--r-- | android_webview/browser/in_process_view_renderer.cc | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/android_webview/browser/in_process_view_renderer.cc b/android_webview/browser/in_process_view_renderer.cc index 31ca5dc..c343fcf 100644 --- a/android_webview/browser/in_process_view_renderer.cc +++ b/android_webview/browser/in_process_view_renderer.cc @@ -370,12 +370,10 @@ void InProcessViewRenderer::DrawGL(AwDrawGLInfo* draw_info) { gpu::InProcessCommandBuffer::ProcessGpuWorkOnCurrentThread(); ScopedAllowGL allow_gl; - if (attached_to_window_ && compositor_ && !hardware_initialized_) { - if (InitializeHwDraw()) { - last_egl_context_ = current_context; - } else { - return; - } + if (!attached_to_window_) { + TRACE_EVENT_INSTANT0( + "android_webview", "EarlyOut_NotAttached", TRACE_EVENT_SCOPE_THREAD); + return; } if (draw_info->mode == AwDrawGLInfo::kModeProcess) { @@ -384,6 +382,17 @@ void InProcessViewRenderer::DrawGL(AwDrawGLInfo* draw_info) { return; } + if (compositor_ && !hardware_initialized_) { + if (InitializeHwDraw()) { + last_egl_context_ = current_context; + } else { + TRACE_EVENT_INSTANT0( + "android_webview", "EarlyOut_HwInitFail", TRACE_EVENT_SCOPE_THREAD); + LOG(ERROR) << "WebView hardware initialization failed"; + return; + } + } + UpdateCachedGlobalVisibleRect(); if (cached_global_visible_rect_.IsEmpty()) { TRACE_EVENT_INSTANT0("android_webview", |