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

Unified Diff: android_webview/browser/browser_view_renderer.cc

Issue 2383933002: Added message filter receiving frames from compositor
Patch Set: Created 4 years, 3 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
« no previous file with comments | « android_webview/browser/browser_view_renderer.h ('k') | android_webview/browser/hardware_renderer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1f0d849e1e5b60719b9b133bb0cca61acf518678..6ad260c5073cf0036c7e4fe4ebf0e7efa6d54c00 100644
--- a/android_webview/browser/browser_view_renderer.cc
+++ b/android_webview/browser/browser_view_renderer.cc
@@ -109,7 +109,8 @@ BrowserViewRenderer::BrowserViewRenderer(
max_page_scale_factor_(0.f),
on_new_picture_enable_(false),
clear_view_(false),
- offscreen_pre_raster_(false) {}
+ offscreen_pre_raster_(false),
+ first_sync_frame_(false) {}
BrowserViewRenderer::~BrowserViewRenderer() {
DCHECK(compositor_map_.empty());
@@ -232,14 +233,17 @@ bool BrowserViewRenderer::OnDrawHardware() {
gfx::Rect viewport_rect_for_tile_priority =
ComputeViewportRectForTilePriority();
- if (async_on_draw_hardware_) {
- compositor_->DemandDrawHwAsync(size_, viewport_rect_for_tile_priority,
- transform_for_tile_priority);
+ if (async_on_draw_hardware_ && first_sync_frame_) {
+ OnDrawHardwareProcessFrameFuture(compositor_->DemandDrawHwAsync(
+ size_, viewport_rect_for_tile_priority, transform_for_tile_priority));
return current_compositor_frame_consumer_->HasFrameOnUI();
}
+ first_sync_frame_ = true;
+
content::SynchronousCompositor::Frame frame = compositor_->DemandDrawHw(
size_, viewport_rect_for_tile_priority, transform_for_tile_priority);
+
if (!frame.frame) {
TRACE_EVENT_INSTANT0("android_webview", "NoNewFrame",
TRACE_EVENT_SCOPE_THREAD);
@@ -255,7 +259,6 @@ bool BrowserViewRenderer::OnDrawHardware() {
current_compositor_frame_consumer_->PassUncommittedFrameOnUI());
current_compositor_frame_consumer_->SetFrameOnUI(std::move(child_frame),
nullptr);
-
return true;
}
« no previous file with comments | « android_webview/browser/browser_view_renderer.h ('k') | android_webview/browser/hardware_renderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698