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

Side by Side Diff: content/browser/renderer_host/render_widget_host_impl.h

Issue 1884883005: Prepare SyntheticPointerAction to handle touch actions for multiple fingers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_IMPL_H_ 5 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_IMPL_H_
6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_IMPL_H_ 6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_IMPL_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 12 matching lines...) Expand all
23 #include "base/strings/string16.h" 23 #include "base/strings/string16.h"
24 #include "base/time/time.h" 24 #include "base/time/time.h"
25 #include "base/timer/elapsed_timer.h" 25 #include "base/timer/elapsed_timer.h"
26 #include "build/build_config.h" 26 #include "build/build_config.h"
27 #include "cc/resources/shared_bitmap.h" 27 #include "cc/resources/shared_bitmap.h"
28 #include "content/browser/renderer_host/event_with_latency_info.h" 28 #include "content/browser/renderer_host/event_with_latency_info.h"
29 #include "content/browser/renderer_host/input/input_ack_handler.h" 29 #include "content/browser/renderer_host/input/input_ack_handler.h"
30 #include "content/browser/renderer_host/input/input_router_client.h" 30 #include "content/browser/renderer_host/input/input_router_client.h"
31 #include "content/browser/renderer_host/input/render_widget_host_latency_tracker .h" 31 #include "content/browser/renderer_host/input/render_widget_host_latency_tracker .h"
32 #include "content/browser/renderer_host/input/synthetic_gesture.h" 32 #include "content/browser/renderer_host/input/synthetic_gesture.h"
33 #include "content/browser/renderer_host/input/synthetic_pointer_action.h"
33 #include "content/browser/renderer_host/input/touch_emulator_client.h" 34 #include "content/browser/renderer_host/input/touch_emulator_client.h"
34 #include "content/browser/renderer_host/render_widget_host_view_base.h" 35 #include "content/browser/renderer_host/render_widget_host_view_base.h"
35 #include "content/common/input/input_event_ack_state.h" 36 #include "content/common/input/input_event_ack_state.h"
36 #include "content/common/input/synthetic_gesture_packet.h" 37 #include "content/common/input/synthetic_gesture_packet.h"
37 #include "content/common/view_message_enums.h" 38 #include "content/common/view_message_enums.h"
38 #include "content/public/browser/readback_types.h" 39 #include "content/public/browser/readback_types.h"
39 #include "content/public/browser/render_widget_host.h" 40 #include "content/public/browser/render_widget_host.h"
40 #include "content/public/common/page_zoom.h" 41 #include "content/public/common/page_zoom.h"
41 #include "ipc/ipc_listener.h" 42 #include "ipc/ipc_listener.h"
42 #include "third_party/WebKit/public/platform/WebDisplayMode.h" 43 #include "third_party/WebKit/public/platform/WebDisplayMode.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 class MockRenderWidgetHost; 81 class MockRenderWidgetHost;
81 class RenderWidgetHostDelegate; 82 class RenderWidgetHostDelegate;
82 class RenderWidgetHostOwnerDelegate; 83 class RenderWidgetHostOwnerDelegate;
83 class SyntheticGestureController; 84 class SyntheticGestureController;
84 class TimeoutMonitor; 85 class TimeoutMonitor;
85 class TouchEmulator; 86 class TouchEmulator;
86 class WebCursor; 87 class WebCursor;
87 struct EditCommand; 88 struct EditCommand;
88 struct ResizeParams; 89 struct ResizeParams;
89 90
91 using blink::WebTouchEvent;
92
90 // This implements the RenderWidgetHost interface that is exposed to 93 // This implements the RenderWidgetHost interface that is exposed to
91 // embedders of content, and adds things only visible to content. 94 // embedders of content, and adds things only visible to content.
92 class CONTENT_EXPORT RenderWidgetHostImpl : public RenderWidgetHost, 95 class CONTENT_EXPORT RenderWidgetHostImpl : public RenderWidgetHost,
93 public InputRouterClient, 96 public InputRouterClient,
94 public InputAckHandler, 97 public InputAckHandler,
95 public TouchEmulatorClient, 98 public TouchEmulatorClient,
96 public IPC::Listener { 99 public IPC::Listener {
97 public: 100 public:
98 // |routing_id| must not be MSG_ROUTING_NONE. 101 // |routing_id| must not be MSG_ROUTING_NONE.
99 // If this object outlives |delegate|, DetachDelegate() must be called when 102 // If this object outlives |delegate|, DetachDelegate() must be called when
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 // Called (either immediately or asynchronously) after we're done with our 598 // Called (either immediately or asynchronously) after we're done with our
596 // BackingStore and can send an ACK to the renderer so it can paint onto it 599 // BackingStore and can send an ACK to the renderer so it can paint onto it
597 // again. 600 // again.
598 void DidUpdateBackingStore(const ViewHostMsg_UpdateRect_Params& params, 601 void DidUpdateBackingStore(const ViewHostMsg_UpdateRect_Params& params,
599 const base::TimeTicks& paint_start); 602 const base::TimeTicks& paint_start);
600 603
601 // Give key press listeners a chance to handle this key press. This allow 604 // Give key press listeners a chance to handle this key press. This allow
602 // widgets that don't have focus to still handle key presses. 605 // widgets that don't have focus to still handle key presses.
603 bool KeyPressListenersHandleEvent(const NativeWebKeyboardEvent& event); 606 bool KeyPressListenersHandleEvent(const NativeWebKeyboardEvent& event);
604 607
608 void QueueSyntheticPointerAction(
609 const SyntheticPointerActionParams& gesture_params);
610
611 void SetSyntheticPointer(const SyntheticPointerActionParams& gesture_params);
612
605 // InputRouterClient 613 // InputRouterClient
606 InputEventAckState FilterInputEvent( 614 InputEventAckState FilterInputEvent(
607 const blink::WebInputEvent& event, 615 const blink::WebInputEvent& event,
608 const ui::LatencyInfo& latency_info) override; 616 const ui::LatencyInfo& latency_info) override;
609 void IncrementInFlightEventCount() override; 617 void IncrementInFlightEventCount() override;
610 void DecrementInFlightEventCount() override; 618 void DecrementInFlightEventCount() override;
611 void OnHasTouchEventHandlers(bool has_handlers) override; 619 void OnHasTouchEventHandlers(bool has_handlers) override;
612 void DidFlush() override; 620 void DidFlush() override;
613 void DidOverscroll(const DidOverscrollParams& params) override; 621 void DidOverscroll(const DidOverscrollParams& params) override;
614 void DidStopFlinging() override; 622 void DidStopFlinging() override;
615 623
616 // InputAckHandler 624 // InputAckHandler
617 void OnKeyboardEventAck(const NativeWebKeyboardEventWithLatencyInfo& event, 625 void OnKeyboardEventAck(const NativeWebKeyboardEventWithLatencyInfo& event,
618 InputEventAckState ack_result) override; 626 InputEventAckState ack_result) override;
619 void OnMouseEventAck(const MouseEventWithLatencyInfo& event, 627 void OnMouseEventAck(const MouseEventWithLatencyInfo& event,
620 InputEventAckState ack_result) override; 628 InputEventAckState ack_result) override;
621 void OnWheelEventAck(const MouseWheelEventWithLatencyInfo& event, 629 void OnWheelEventAck(const MouseWheelEventWithLatencyInfo& event,
622 InputEventAckState ack_result) override; 630 InputEventAckState ack_result) override;
623 void OnTouchEventAck(const TouchEventWithLatencyInfo& event, 631 void OnTouchEventAck(const TouchEventWithLatencyInfo& event,
624 InputEventAckState ack_result) override; 632 InputEventAckState ack_result) override;
625 void OnGestureEventAck(const GestureEventWithLatencyInfo& event, 633 void OnGestureEventAck(const GestureEventWithLatencyInfo& event,
626 InputEventAckState ack_result) override; 634 InputEventAckState ack_result) override;
627 void OnUnexpectedEventAck(UnexpectedEventAckType type) override; 635 void OnUnexpectedEventAck(UnexpectedEventAckType type) override;
628 636
629 void OnSyntheticGestureCompleted(SyntheticGesture::Result result); 637 void OnSyntheticGestureCompleted(SyntheticGesture::Result result);
630 638
639 void OnSyntheticPointerActionCompleted(SyntheticGesture::Result result);
tdresser 2016/04/18 15:24:39 It isn't clear to me why we need this in addition
lanwei 2016/04/19 19:05:32 Yes, but OnSyntheticGestureCompleted will send som
640
631 // Called when there is a new auto resize (using a post to avoid a stack 641 // Called when there is a new auto resize (using a post to avoid a stack
632 // which may get in recursive loops). 642 // which may get in recursive loops).
633 void DelayedAutoResized(); 643 void DelayedAutoResized();
634 644
635 void WindowSnapshotReachedScreen(int snapshot_id); 645 void WindowSnapshotReachedScreen(int snapshot_id);
636 646
637 void OnSnapshotDataReceived(int snapshot_id, 647 void OnSnapshotDataReceived(int snapshot_id,
638 const unsigned char* png, 648 const unsigned char* png,
639 size_t size); 649 size_t size);
640 650
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
814 // TODO(oshima): Remove this once crbug.com/563730 is addressed. 824 // TODO(oshima): Remove this once crbug.com/563730 is addressed.
815 bool scale_input_to_viewport_; 825 bool scale_input_to_viewport_;
816 826
817 // This value indicates how long to wait before we consider a renderer hung. 827 // This value indicates how long to wait before we consider a renderer hung.
818 base::TimeDelta hung_renderer_delay_; 828 base::TimeDelta hung_renderer_delay_;
819 829
820 // This value indicates how long to wait for a new compositor frame from a 830 // This value indicates how long to wait for a new compositor frame from a
821 // renderer process before clearing any previously displayed content. 831 // renderer process before clearing any previously displayed content.
822 base::TimeDelta new_content_rendering_delay_; 832 base::TimeDelta new_content_rendering_delay_;
823 833
834 std::vector<SyntheticPointerActionParams> action_param_list_;
835
836 std::unique_ptr<SyntheticPointer> synthetic_pointer_;
837
838 int index_map_[blink::WebTouchEvent::touchesLengthCap];
839
824 base::WeakPtrFactory<RenderWidgetHostImpl> weak_factory_; 840 base::WeakPtrFactory<RenderWidgetHostImpl> weak_factory_;
825 841
826 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostImpl); 842 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostImpl);
827 }; 843 };
828 844
829 } // namespace content 845 } // namespace content
830 846
831 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_IMPL_H_ 847 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698