Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2235)

Unified Diff: android_webview/browser/browser_view_renderer.cc

Issue 846323002: aw: Fix clearView implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 ded772d6403d360843683889e81a98d981d9fc5d..a2432efb52c7e38be362f857d08c9810f4f9cc0d 100644
--- a/android_webview/browser/browser_view_renderer.cc
+++ b/android_webview/browser/browser_view_renderer.cc
@@ -143,14 +143,28 @@ void BrowserViewRenderer::PrepareToDraw(const gfx::Vector2d& scroll,
last_on_draw_global_visible_rect_ = global_visible_rect;
}
-bool BrowserViewRenderer::OnDrawHardware() {
- TRACE_EVENT0("android_webview", "BrowserViewRenderer::OnDrawHardware");
- shared_renderer_state_.InitializeHardwareDrawIfNeededOnUI();
+bool BrowserViewRenderer::CanOnDraw() {
if (!compositor_) {
TRACE_EVENT_INSTANT0("android_webview", "EarlyOut_NoCompositor",
TRACE_EVENT_SCOPE_THREAD);
return false;
}
+ if (clear_view_) {
+ TRACE_EVENT_INSTANT0("android_webview", "EarlyOut_ClearView",
+ TRACE_EVENT_SCOPE_THREAD);
+ return false;
+ }
+
+ return true;
+}
+
+bool BrowserViewRenderer::OnDrawHardware() {
+ TRACE_EVENT0("android_webview", "BrowserViewRenderer::OnDrawHardware");
+ shared_renderer_state_.InitializeHardwareDrawIfNeededOnUI();
+
+ if (!CanOnDraw()) {
+ return false;
+ }
shared_renderer_state_.SetScrollOffsetOnUI(last_on_draw_scroll_offset_);
@@ -270,13 +284,7 @@ void BrowserViewRenderer::InvalidateOnFunctorDestroy() {
}
bool BrowserViewRenderer::OnDrawSoftware(SkCanvas* canvas) {
- if (!compositor_) {
- TRACE_EVENT_INSTANT0(
- "android_webview", "EarlyOut_NoCompositor", TRACE_EVENT_SCOPE_THREAD);
- return false;
- }
-
- return CompositeSW(canvas);
+ return CanOnDraw() && CompositeSW(canvas);
}
skia::RefPtr<SkPicture> BrowserViewRenderer::CapturePicture(int width,

Powered by Google App Engine
This is Rietveld 408576698