1 // Copyright 2017 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_INPUT_WEB_COALESCED_INPUT_EVENT_MOJOM_TRAITS_H_ 6 #define THIRD_PARTY_BLINK_PUBLIC_COMMON_INPUT_WEB_COALESCED_INPUT_EVENT_MOJOM_TRAITS_H_ 7 8 #include "third_party/blink/public/common/common_export.h" 9 #include "third_party/blink/public/common/input/web_coalesced_input_event.h" 10 #include "third_party/blink/public/mojom/input/input_handler.mojom.h" 11 12 namespace mojo { 13 14 template <> 15 struct BLINK_COMMON_EXPORT 16 StructTraits<blink::mojom::EventDataView, 17 std::unique_ptr<blink::WebCoalescedInputEvent>> { 18 static blink::WebInputEvent::Type type( 19 const std::unique_ptr<blink::WebCoalescedInputEvent>& event) { 20 return event->Event().GetType(); 21 } 22 23 static int32_t modifiers( 24 const std::unique_ptr<blink::WebCoalescedInputEvent>& event) { 25 return event->Event().GetModifiers(); 26 } 27 28 static base::TimeTicks timestamp( 29 const std::unique_ptr<blink::WebCoalescedInputEvent>& event) { 30 return event->Event().TimeStamp(); 31 } 32 33 static const ui::LatencyInfo& latency( 34 const std::unique_ptr<blink::WebCoalescedInputEvent>& event) { 35 return event->latency_info(); 36 } 37 38 static blink::mojom::KeyDataPtr key_data( 39 const std::unique_ptr<blink::WebCoalescedInputEvent>& event); 40 static blink::mojom::PointerDataPtr pointer_data( 41 const std::unique_ptr<blink::WebCoalescedInputEvent>& event); 42 static blink::mojom::GestureDataPtr gesture_data( 43 const std::unique_ptr<blink::WebCoalescedInputEvent>& event); 44 static blink::mojom::TouchDataPtr touch_data( 45 const std::unique_ptr<blink::WebCoalescedInputEvent>& event); 46 47 static bool Read(blink::mojom::EventDataView r, 48 std::unique_ptr<blink::WebCoalescedInputEvent>* out); 49 }; 50 51 } // namespace mojo 52 53 #endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_INPUT_WEB_COALESCED_INPUT_EVENT_MOJOM_TRAITS_H_ 54