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

Side by Side Diff: content/renderer/gpu/render_widget_compositor.cc

Issue 2649573003: Revert of Move compositor InputHandler from RenderViewImpl to RenderWidget. (Closed)
Patch Set: Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/renderer/gpu/render_widget_compositor.h" 5 #include "content/renderer/gpu/render_widget_compositor.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 #include <limits> 10 #include <limits>
(...skipping 11 matching lines...) Expand all
22 #include "base/sys_info.h" 22 #include "base/sys_info.h"
23 #include "base/task_scheduler/post_task.h" 23 #include "base/task_scheduler/post_task.h"
24 #include "base/task_scheduler/task_scheduler.h" 24 #include "base/task_scheduler/task_scheduler.h"
25 #include "base/task_scheduler/task_traits.h" 25 #include "base/task_scheduler/task_traits.h"
26 #include "base/threading/thread_task_runner_handle.h" 26 #include "base/threading/thread_task_runner_handle.h"
27 #include "base/time/time.h" 27 #include "base/time/time.h"
28 #include "base/values.h" 28 #include "base/values.h"
29 #include "build/build_config.h" 29 #include "build/build_config.h"
30 #include "cc/animation/animation_host.h" 30 #include "cc/animation/animation_host.h"
31 #include "cc/animation/animation_timeline.h" 31 #include "cc/animation/animation_timeline.h"
32 #include "cc/base/region.h"
33 #include "cc/base/switches.h" 32 #include "cc/base/switches.h"
34 #include "cc/blink/web_layer_impl.h" 33 #include "cc/blink/web_layer_impl.h"
35 #include "cc/debug/layer_tree_debug_state.h" 34 #include "cc/debug/layer_tree_debug_state.h"
36 #include "cc/debug/micro_benchmark.h" 35 #include "cc/debug/micro_benchmark.h"
37 #include "cc/input/layer_selection_bound.h" 36 #include "cc/input/layer_selection_bound.h"
38 #include "cc/layers/layer.h" 37 #include "cc/layers/layer.h"
39 #include "cc/output/begin_frame_args.h" 38 #include "cc/output/begin_frame_args.h"
40 #include "cc/output/copy_output_request.h" 39 #include "cc/output/copy_output_request.h"
41 #include "cc/output/copy_output_result.h" 40 #include "cc/output/copy_output_result.h"
42 #include "cc/output/latency_info_swap_promise.h" 41 #include "cc/output/latency_info_swap_promise.h"
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 } 200 }
202 201
203 RenderWidgetCompositor::RenderWidgetCompositor( 202 RenderWidgetCompositor::RenderWidgetCompositor(
204 RenderWidgetCompositorDelegate* delegate, 203 RenderWidgetCompositorDelegate* delegate,
205 CompositorDependencies* compositor_deps) 204 CompositorDependencies* compositor_deps)
206 : num_failed_recreate_attempts_(0), 205 : num_failed_recreate_attempts_(0),
207 delegate_(delegate), 206 delegate_(delegate),
208 compositor_deps_(compositor_deps), 207 compositor_deps_(compositor_deps),
209 threaded_(!!compositor_deps_->GetCompositorImplThreadTaskRunner()), 208 threaded_(!!compositor_deps_->GetCompositorImplThreadTaskRunner()),
210 never_visible_(false), 209 never_visible_(false),
211 is_for_oopif_(false),
212 layout_and_paint_async_callback_(nullptr), 210 layout_and_paint_async_callback_(nullptr),
213 weak_factory_(this) {} 211 weak_factory_(this) {}
214 212
215 void RenderWidgetCompositor::Initialize(float device_scale_factor, 213 void RenderWidgetCompositor::Initialize(float device_scale_factor,
216 const ScreenInfo& screen_info) { 214 const ScreenInfo& screen_info) {
217 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess(); 215 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess();
218 cc::LayerTreeSettings settings = GenerateLayerTreeSettings( 216 cc::LayerTreeSettings settings = GenerateLayerTreeSettings(
219 *cmd, compositor_deps_, device_scale_factor, screen_info); 217 *cmd, compositor_deps_, device_scale_factor, screen_info);
220 218
221 animation_host_ = cc::AnimationHost::CreateMainInstance(); 219 animation_host_ = cc::AnimationHost::CreateMainInstance();
(...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after
812 "EventListener and WebEventListener enums must match"); 810 "EventListener and WebEventListener enums must match");
813 811
814 void RenderWidgetCompositor::setEventListenerProperties( 812 void RenderWidgetCompositor::setEventListenerProperties(
815 blink::WebEventListenerClass eventClass, 813 blink::WebEventListenerClass eventClass,
816 blink::WebEventListenerProperties properties) { 814 blink::WebEventListenerProperties properties) {
817 layer_tree_host_->GetLayerTree()->SetEventListenerProperties( 815 layer_tree_host_->GetLayerTree()->SetEventListenerProperties(
818 static_cast<cc::EventListenerClass>(eventClass), 816 static_cast<cc::EventListenerClass>(eventClass),
819 static_cast<cc::EventListenerProperties>(properties)); 817 static_cast<cc::EventListenerProperties>(properties));
820 } 818 }
821 819
822 void RenderWidgetCompositor::updateTouchRectsForSubframeIfNecessary() {
823 if (!is_for_oopif_)
824 return;
825
826 // If this is an oopif sub-frame compositor, we won't be getting TouchRects
827 // from ScrollingCoordinator, so to make sure touch events are handled
828 // properly, mark the entire root layer as a TouchRect.
829 // TODO(wjmaclean): remove this when ScrollingCoordinator is made per-frame,
830 // as opposed to per-page.
831 using blink::WebEventListenerProperties;
832 using blink::WebEventListenerClass;
833
834 blink::WebEventListenerProperties touch_start_properties =
835 eventListenerProperties(WebEventListenerClass::TouchStartOrMove);
836 blink::WebEventListenerProperties touch_end_cancel_properties =
837 eventListenerProperties(WebEventListenerClass::TouchEndOrCancel);
838 bool has_touch_handlers =
839 touch_start_properties == WebEventListenerProperties::Blocking ||
840 touch_start_properties ==
841 WebEventListenerProperties::BlockingAndPassive ||
842 touch_end_cancel_properties == WebEventListenerProperties::Blocking ||
843 touch_end_cancel_properties ==
844 WebEventListenerProperties::BlockingAndPassive;
845
846 cc::Layer* root_layer = layer_tree_host_->GetLayerTree()->root_layer();
847 cc::Region touch_handler_region;
848 if (has_touch_handlers)
849 touch_handler_region = gfx::Rect(gfx::Point(), root_layer->bounds());
850 root_layer->SetTouchEventHandlerRegion(touch_handler_region);
851 }
852
853 blink::WebEventListenerProperties 820 blink::WebEventListenerProperties
854 RenderWidgetCompositor::eventListenerProperties( 821 RenderWidgetCompositor::eventListenerProperties(
855 blink::WebEventListenerClass event_class) const { 822 blink::WebEventListenerClass event_class) const {
856 return static_cast<blink::WebEventListenerProperties>( 823 return static_cast<blink::WebEventListenerProperties>(
857 layer_tree_host_->GetLayerTree()->event_listener_properties( 824 layer_tree_host_->GetLayerTree()->event_listener_properties(
858 static_cast<cc::EventListenerClass>(event_class))); 825 static_cast<cc::EventListenerClass>(event_class)));
859 } 826 }
860 827
861 void RenderWidgetCompositor::setHaveScrollEventHandlers(bool has_handlers) { 828 void RenderWidgetCompositor::setHaveScrollEventHandlers(bool has_handlers) {
862 layer_tree_host_->GetLayerTree()->SetHaveScrollEventHandlers(has_handlers); 829 layer_tree_host_->GetLayerTree()->SetHaveScrollEventHandlers(has_handlers);
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
1114 void RenderWidgetCompositor::SetPaintedDeviceScaleFactor( 1081 void RenderWidgetCompositor::SetPaintedDeviceScaleFactor(
1115 float device_scale) { 1082 float device_scale) {
1116 layer_tree_host_->GetLayerTree()->SetPaintedDeviceScaleFactor(device_scale); 1083 layer_tree_host_->GetLayerTree()->SetPaintedDeviceScaleFactor(device_scale);
1117 } 1084 }
1118 1085
1119 void RenderWidgetCompositor::SetDeviceColorSpace( 1086 void RenderWidgetCompositor::SetDeviceColorSpace(
1120 const gfx::ColorSpace& color_space) { 1087 const gfx::ColorSpace& color_space) {
1121 layer_tree_host_->GetLayerTree()->SetDeviceColorSpace(color_space); 1088 layer_tree_host_->GetLayerTree()->SetDeviceColorSpace(color_space);
1122 } 1089 }
1123 1090
1124 void RenderWidgetCompositor::SetIsForOopif(bool is_for_oopif) {
1125 is_for_oopif_ = is_for_oopif;
1126 }
1127
1128 } // namespace content 1091 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/gpu/render_widget_compositor.h ('k') | content/renderer/input/input_handler_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698