summaryrefslogtreecommitdiffstats
path: root/android_webview
diff options
context:
space:
mode:
Diffstat (limited to 'android_webview')
-rw-r--r--android_webview/browser/in_process_view_renderer.cc21
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",