Commit 1d0122c1 authored by Abhijeet Kandalkar's avatar Abhijeet Kandalkar Committed by Commit Bot

Use new downcast helper for blink::PointerEvent

This CL has two goals,
  1. Use To<PointerEvent> and DynamicTo<PointerEvent> as new
     downcast helper
  2. Use IsA<PointerEvent>(element) in place of
     IsPointerEvent(element)

Bug: 891908
Change-Id: I3c7521aefd080d6a7505212a39d0f99c2ea8b2b1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2019746Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Commit-Queue: Abhijeet Kandalkar <abhijeet@igalia.com>
Cr-Commit-Position: refs/heads/master@{#742489}
parent ec5a6558
...@@ -273,10 +273,10 @@ void Event::SetTarget(EventTarget* target) { ...@@ -273,10 +273,10 @@ void Event::SetTarget(EventTarget* target) {
} }
void Event::SetRelatedTargetIfExists(EventTarget* related_target) { void Event::SetRelatedTargetIfExists(EventTarget* related_target) {
if (auto* event = DynamicTo<MouseEvent>(this)) { if (auto* mouse_event = DynamicTo<MouseEvent>(this)) {
event->SetRelatedTarget(related_target); mouse_event->SetRelatedTarget(related_target);
} else if (IsPointerEvent()) { } else if (auto* pointer_event = DynamicTo<PointerEvent>(this)) {
ToPointerEvent(this)->SetRelatedTarget(related_target); pointer_event->SetRelatedTarget(related_target);
} else if (auto* focus_event = DynamicTo<FocusEvent>(this)) { } else if (auto* focus_event = DynamicTo<FocusEvent>(this)) {
focus_event->SetRelatedTarget(related_target); focus_event->SetRelatedTarget(related_target);
} }
......
...@@ -180,7 +180,7 @@ void CountFiringEventListeners(const Event& event, ...@@ -180,7 +180,7 @@ void CountFiringEventListeners(const Event& event,
} }
if (CheckTypeThenUseCount(event, event_type_names::kPointerdown, if (CheckTypeThenUseCount(event, event_type_names::kPointerdown,
WebFeature::kPointerDownFired, document)) { WebFeature::kPointerDownFired, document)) {
if (event.IsPointerEvent() && if (IsA<PointerEvent>(event) &&
static_cast<const PointerEvent&>(event).pointerType() == "touch") { static_cast<const PointerEvent&>(event).pointerType() == "touch") {
UseCounter::Count(document, WebFeature::kPointerDownFiredForTouch); UseCounter::Count(document, WebFeature::kPointerDownFiredForTouch);
} }
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#define THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_POINTER_EVENT_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_POINTER_EVENT_H_
#include "third_party/blink/renderer/core/events/mouse_event.h" #include "third_party/blink/renderer/core/events/mouse_event.h"
#include "third_party/blink/renderer/platform/wtf/casting.h"
namespace blink { namespace blink {
...@@ -97,7 +98,10 @@ class CORE_EXPORT PointerEvent final : public MouseEvent { ...@@ -97,7 +98,10 @@ class CORE_EXPORT PointerEvent final : public MouseEvent {
HeapVector<Member<PointerEvent>> predicted_events_; HeapVector<Member<PointerEvent>> predicted_events_;
}; };
DEFINE_EVENT_TYPE_CASTS(PointerEvent); template <>
struct DowncastTraits<PointerEvent> {
static bool AllowFrom(const Event& event) { return event.IsPointerEvent(); }
};
} // namespace blink } // namespace blink
......
...@@ -196,7 +196,7 @@ void SliderThumbElement::StopDragging() { ...@@ -196,7 +196,7 @@ void SliderThumbElement::StopDragging() {
} }
void SliderThumbElement::DefaultEventHandler(Event& event) { void SliderThumbElement::DefaultEventHandler(Event& event) {
if (event.IsPointerEvent() && if (IsA<PointerEvent>(event) &&
event.type() == event_type_names::kLostpointercapture) { event.type() == event_type_names::kLostpointercapture) {
StopDragging(); StopDragging();
return; return;
......
...@@ -33,7 +33,7 @@ bool ShouldLogEvent(const Event& event) { ...@@ -33,7 +33,7 @@ bool ShouldLogEvent(const Event& event) {
} }
bool IsEventTypeForEventTiming(const Event& event) { bool IsEventTypeForEventTiming(const Event& event) {
return (IsA<MouseEvent>(event) || event.IsPointerEvent() || return (IsA<MouseEvent>(event) || IsA<PointerEvent>(event) ||
event.IsTouchEvent() || event.IsKeyboardEvent() || event.IsTouchEvent() || event.IsKeyboardEvent() ||
event.IsWheelEvent() || event.IsInputEvent() || event.IsWheelEvent() || event.IsInputEvent() ||
event.IsCompositionEvent()) && event.IsCompositionEvent()) &&
...@@ -72,9 +72,10 @@ std::unique_ptr<EventTiming> EventTiming::Create(LocalDOMWindow* window, ...@@ -72,9 +72,10 @@ std::unique_ptr<EventTiming> EventTiming::Create(LocalDOMWindow* window,
if (!should_report_for_event_timing && !should_log_event) if (!should_report_for_event_timing && !should_log_event)
return nullptr; return nullptr;
auto* pointer_event = DynamicTo<PointerEvent>(&event);
base::TimeTicks event_timestamp = base::TimeTicks event_timestamp =
event.IsPointerEvent() ? ToPointerEvent(&event)->OldestPlatformTimeStamp() pointer_event ? pointer_event->OldestPlatformTimeStamp()
: event.PlatformTimeStamp(); : event.PlatformTimeStamp();
base::TimeTicks processing_start = Now(); base::TimeTicks processing_start = Now();
if (should_log_event) { if (should_log_event) {
......
...@@ -38,8 +38,8 @@ const int kThumbRadius = 6; ...@@ -38,8 +38,8 @@ const int kThumbRadius = 6;
// Only respond to main button of primary pointer(s). // Only respond to main button of primary pointer(s).
bool IsValidPointerEvent(const blink::Event& event) { bool IsValidPointerEvent(const blink::Event& event) {
DCHECK(event.IsPointerEvent()); DCHECK(blink::IsA<blink::PointerEvent>(event));
const blink::PointerEvent& pointer_event = ToPointerEvent(event); const auto& pointer_event = blink::To<blink::PointerEvent>(event);
return pointer_event.isPrimary() && return pointer_event.isPrimary() &&
pointer_event.button() == pointer_event.button() ==
static_cast<int16_t>(blink::WebPointerProperties::Button::kLeft); static_cast<int16_t>(blink::WebPointerProperties::Button::kLeft);
...@@ -122,7 +122,7 @@ void MediaControlTimelineElement::DefaultEventHandler(Event& event) { ...@@ -122,7 +122,7 @@ void MediaControlTimelineElement::DefaultEventHandler(Event& event) {
MediaControlInputElement::DefaultEventHandler(event); MediaControlInputElement::DefaultEventHandler(event);
if (IsA<MouseEvent>(event) || event.IsKeyboardEvent() || if (IsA<MouseEvent>(event) || event.IsKeyboardEvent() ||
event.IsGestureEvent() || event.IsPointerEvent()) { event.IsGestureEvent() || IsA<PointerEvent>(event)) {
MaybeRecordInteracted(); MaybeRecordInteracted();
} }
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "third_party/blink/renderer/core/dom/dom_token_list.h" #include "third_party/blink/renderer/core/dom/dom_token_list.h"
#include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/events/mouse_event.h" #include "third_party/blink/renderer/core/events/mouse_event.h"
#include "third_party/blink/renderer/core/events/pointer_event.h"
#include "third_party/blink/renderer/core/html/media/html_media_element.h" #include "third_party/blink/renderer/core/html/media/html_media_element.h"
#include "third_party/blink/renderer/core/html_names.h" #include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/core/layout/layout_object.h" #include "third_party/blink/renderer/core/layout/layout_object.h"
...@@ -71,7 +72,7 @@ void MediaControlVolumeSliderElement::DefaultEventHandler(Event& event) { ...@@ -71,7 +72,7 @@ void MediaControlVolumeSliderElement::DefaultEventHandler(Event& event) {
MediaControlInputElement::DefaultEventHandler(event); MediaControlInputElement::DefaultEventHandler(event);
if (IsA<MouseEvent>(event) || event.IsKeyboardEvent() || if (IsA<MouseEvent>(event) || event.IsKeyboardEvent() ||
event.IsGestureEvent() || event.IsPointerEvent()) { event.IsGestureEvent() || IsA<PointerEvent>(event)) {
MaybeRecordInteracted(); MaybeRecordInteracted();
} }
......
...@@ -1696,9 +1696,10 @@ void MediaControlsImpl::ShowCursor() { ...@@ -1696,9 +1696,10 @@ void MediaControlsImpl::ShowCursor() {
} }
bool MediaControlsImpl::ContainsRelatedTarget(Event* event) { bool MediaControlsImpl::ContainsRelatedTarget(Event* event) {
if (!event->IsPointerEvent()) auto* pointer_event = DynamicTo<PointerEvent>(event);
if (!pointer_event)
return false; return false;
EventTarget* related_target = ToPointerEvent(event)->relatedTarget(); EventTarget* related_target = pointer_event->relatedTarget();
if (!related_target) if (!related_target)
return false; return false;
return contains(related_target->ToNode()); return contains(related_target->ToNode());
......
...@@ -27,7 +27,7 @@ class XRCanvasInputEventListener : public NativeEventListener { ...@@ -27,7 +27,7 @@ class XRCanvasInputEventListener : public NativeEventListener {
if (!input_provider_->ShouldProcessEvents()) if (!input_provider_->ShouldProcessEvents())
return; return;
PointerEvent* pointer_event = ToPointerEvent(event); auto* pointer_event = To<PointerEvent>(event);
DCHECK(pointer_event); DCHECK(pointer_event);
if (!pointer_event->isPrimary()) if (!pointer_event->isPrimary())
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment