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

Side by Side Diff: content/browser/android/synchronous_compositor_host.cc

Issue 1620053002: sync compositor: Merge input path with chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review Created 4 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/android/synchronous_compositor_host.h" 5 #include "content/browser/android/synchronous_compositor_host.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/containers/hash_tables.h" 9 #include "base/containers/hash_tables.h"
10 #include "base/memory/shared_memory.h" 10 #include "base/memory/shared_memory.h"
(...skipping 12 matching lines...) Expand all
23 #include "third_party/skia/include/core/SkCanvas.h" 23 #include "third_party/skia/include/core/SkCanvas.h"
24 #include "third_party/skia/include/core/SkImageInfo.h" 24 #include "third_party/skia/include/core/SkImageInfo.h"
25 #include "third_party/skia/include/core/SkRect.h" 25 #include "third_party/skia/include/core/SkRect.h"
26 #include "ui/gfx/skia_util.h" 26 #include "ui/gfx/skia_util.h"
27 27
28 namespace content { 28 namespace content {
29 29
30 SynchronousCompositorHost::SynchronousCompositorHost( 30 SynchronousCompositorHost::SynchronousCompositorHost(
31 RenderWidgetHostViewAndroid* rwhva, 31 RenderWidgetHostViewAndroid* rwhva,
32 SynchronousCompositorClient* client, 32 SynchronousCompositorClient* client,
33 bool async_input,
33 bool use_in_proc_software_draw) 34 bool use_in_proc_software_draw)
34 : rwhva_(rwhva), 35 : rwhva_(rwhva),
35 client_(client), 36 client_(client),
36 ui_task_runner_( 37 ui_task_runner_(
37 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI)), 38 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI)),
38 routing_id_(rwhva_->GetRenderWidgetHost()->GetRoutingID()), 39 routing_id_(rwhva_->GetRenderWidgetHost()->GetRoutingID()),
39 sender_(rwhva_->GetRenderWidgetHost()), 40 sender_(rwhva_->GetRenderWidgetHost()),
41 async_input_(async_input),
40 use_in_process_zero_copy_software_draw_(use_in_proc_software_draw), 42 use_in_process_zero_copy_software_draw_(use_in_proc_software_draw),
41 is_active_(false), 43 is_active_(false),
42 bytes_limit_(0u), 44 bytes_limit_(0u),
43 root_scroll_offset_updated_by_browser_(false), 45 root_scroll_offset_updated_by_browser_(false),
44 renderer_param_version_(0u), 46 renderer_param_version_(0u),
45 need_animate_scroll_(false), 47 need_animate_scroll_(false),
46 need_invalidate_count_(0u), 48 need_invalidate_count_(0u),
47 need_begin_frame_(false), 49 need_begin_frame_(false),
48 did_activate_pending_tree_count_(0u), 50 did_activate_pending_tree_count_(0u),
49 weak_ptr_factory_(this) { 51 weak_ptr_factory_(this) {
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 333
332 SyncCompositorCommonBrowserParams common_browser_params; 334 SyncCompositorCommonBrowserParams common_browser_params;
333 PopulateCommonParams(&common_browser_params); 335 PopulateCommonParams(&common_browser_params);
334 SyncCompositorCommonRendererParams common_renderer_params; 336 SyncCompositorCommonRendererParams common_renderer_params;
335 sender_->Send(new SyncCompositorMsg_ComputeScroll( 337 sender_->Send(new SyncCompositorMsg_ComputeScroll(
336 routing_id_, common_browser_params, animation_time)); 338 routing_id_, common_browser_params, animation_time));
337 } 339 }
338 340
339 InputEventAckState SynchronousCompositorHost::HandleInputEvent( 341 InputEventAckState SynchronousCompositorHost::HandleInputEvent(
340 const blink::WebInputEvent& input_event) { 342 const blink::WebInputEvent& input_event) {
343 if (async_input_)
344 return INPUT_EVENT_ACK_STATE_NOT_CONSUMED;
341 SyncCompositorCommonBrowserParams common_browser_params; 345 SyncCompositorCommonBrowserParams common_browser_params;
342 PopulateCommonParams(&common_browser_params); 346 PopulateCommonParams(&common_browser_params);
343 SyncCompositorCommonRendererParams common_renderer_params; 347 SyncCompositorCommonRendererParams common_renderer_params;
344 InputEventAckState ack = INPUT_EVENT_ACK_STATE_NOT_CONSUMED; 348 InputEventAckState ack = INPUT_EVENT_ACK_STATE_NOT_CONSUMED;
345 if (!sender_->Send(new SyncCompositorMsg_HandleInputEvent( 349 if (!sender_->Send(new SyncCompositorMsg_HandleInputEvent(
346 routing_id_, common_browser_params, &input_event, 350 routing_id_, common_browser_params, &input_event,
347 &common_renderer_params, &ack))) { 351 &common_renderer_params, &ack))) {
348 return INPUT_EVENT_ACK_STATE_NOT_CONSUMED; 352 return INPUT_EVENT_ACK_STATE_NOT_CONSUMED;
349 } 353 }
350 ProcessCommonParams(common_renderer_params); 354 ProcessCommonParams(common_renderer_params);
351 return ack; 355 return ack;
352 } 356 }
353 357
358 void SynchronousCompositorHost::DidOverscroll(
359 const DidOverscrollParams& over_scroll_params) {
360 client_->DidOverscroll(over_scroll_params.accumulated_overscroll,
361 over_scroll_params.latest_overscroll_delta,
362 over_scroll_params.current_fling_velocity);
363 }
364
354 void SynchronousCompositorHost::BeginFrame(const cc::BeginFrameArgs& args) { 365 void SynchronousCompositorHost::BeginFrame(const cc::BeginFrameArgs& args) {
355 if (!is_active_ || !need_begin_frame_) 366 if (!is_active_)
356 return; 367 return;
357 368
358 SyncCompositorCommonBrowserParams common_browser_params; 369 SyncCompositorCommonBrowserParams common_browser_params;
359 PopulateCommonParams(&common_browser_params); 370 PopulateCommonParams(&common_browser_params);
360 SyncCompositorCommonRendererParams common_renderer_params; 371 SyncCompositorCommonRendererParams common_renderer_params;
361 if (!sender_->Send( 372 if (!sender_->Send(
362 new SyncCompositorMsg_BeginFrame(routing_id_, common_browser_params, 373 new SyncCompositorMsg_BeginFrame(routing_id_, common_browser_params,
363 args, &common_renderer_params))) { 374 args, &common_renderer_params))) {
364 return; 375 return;
365 } 376 }
366 ProcessCommonParams(common_renderer_params); 377 ProcessCommonParams(common_renderer_params);
367 } 378 }
368 379
369 void SynchronousCompositorHost::OnOverScroll( 380 void SynchronousCompositorHost::OnOverScroll(
370 const SyncCompositorCommonRendererParams& params, 381 const SyncCompositorCommonRendererParams& params,
371 const DidOverscrollParams& over_scroll_params) { 382 const DidOverscrollParams& over_scroll_params) {
372 ProcessCommonParams(params); 383 ProcessCommonParams(params);
373 client_->DidOverscroll(over_scroll_params.accumulated_overscroll, 384 DidOverscroll(over_scroll_params);
374 over_scroll_params.latest_overscroll_delta,
375 over_scroll_params.current_fling_velocity);
376 } 385 }
377 386
378 void SynchronousCompositorHost::PopulateCommonParams( 387 void SynchronousCompositorHost::PopulateCommonParams(
379 SyncCompositorCommonBrowserParams* params) { 388 SyncCompositorCommonBrowserParams* params) {
380 DCHECK(params); 389 DCHECK(params);
381 DCHECK(params->ack.resources.empty()); 390 DCHECK(params->ack.resources.empty());
382 params->bytes_limit = bytes_limit_; 391 params->bytes_limit = bytes_limit_;
383 params->ack.resources.swap(returned_resources_); 392 params->ack.resources.swap(returned_resources_);
384 if (root_scroll_offset_updated_by_browser_) { 393 if (root_scroll_offset_updated_by_browser_) {
385 params->root_scroll_offset = root_scroll_offset_; 394 params->root_scroll_offset = root_scroll_offset_;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 params.scrollable_size, params.page_scale_factor, 436 params.scrollable_size, params.page_scale_factor,
428 params.min_page_scale_factor, params.max_page_scale_factor); 437 params.min_page_scale_factor, params.max_page_scale_factor);
429 } 438 }
430 } 439 }
431 440
432 void SynchronousCompositorHost::UpdateNeedsBeginFrames() { 441 void SynchronousCompositorHost::UpdateNeedsBeginFrames() {
433 rwhva_->OnSetNeedsBeginFrames(is_active_ && need_begin_frame_); 442 rwhva_->OnSetNeedsBeginFrames(is_active_ && need_begin_frame_);
434 } 443 }
435 444
436 } // namespace content 445 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698