1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/core/events/event_util.h"
#include "base/containers/contains.h"
#include "third_party/blink/renderer/core/event_type_names.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"
#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
#include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
namespace blink {
namespace event_util {
const Vector<AtomicString>& MouseButtonEventTypes() {
DEFINE_STATIC_LOCAL(
const Vector<AtomicString>, mouse_button_event_types,
({event_type_names::kClick, event_type_names::kMousedown,
event_type_names::kMouseup, event_type_names::kDOMActivate}));
return mouse_button_event_types;
}
bool IsMouseButtonEventType(const AtomicString& event_type) {
return base::Contains(MouseButtonEventTypes(), event_type);
}
bool IsPointerEventType(const AtomicString& event_type) {
return event_type == event_type_names::kGotpointercapture ||
event_type == event_type_names::kLostpointercapture ||
event_type == event_type_names::kPointercancel ||
event_type == event_type_names::kPointerdown ||
event_type == event_type_names::kPointerenter ||
event_type == event_type_names::kPointerleave ||
event_type == event_type_names::kPointermove ||
event_type == event_type_names::kPointerout ||
event_type == event_type_names::kPointerover ||
event_type == event_type_names::kPointerup;
}
MutationEventInfo IsDOMMutationEventType(const AtomicString& event_type) {
if (event_type == event_type_names::kDOMSubtreeModified) {
return {.is_mutation_event = true,
.listener_feature = WebFeature::kDOMSubtreeModifiedEvent,
.event_fired_feature = WebFeature::kDOMSubtreeModifiedEventFired,
.listener_type = Document::kDOMSubtreeModifiedListener};
} else if (event_type == event_type_names::kDOMNodeInserted) {
return {.is_mutation_event = true,
.listener_feature = WebFeature::kDOMNodeInsertedEvent,
.event_fired_feature = WebFeature::kDOMNodeInsertedEventFired,
.listener_type = Document::kDOMNodeInsertedListener};
} else if (event_type == event_type_names::kDOMNodeRemoved) {
return {.is_mutation_event = true,
.listener_feature = WebFeature::kDOMNodeRemovedEvent,
.event_fired_feature = WebFeature::kDOMNodeRemovedEventFired,
.listener_type = Document::kDOMNodeRemovedListener};
} else if (event_type == event_type_names::kDOMNodeRemovedFromDocument) {
return {.is_mutation_event = true,
.listener_feature = WebFeature::kDOMNodeRemovedFromDocumentEvent,
.event_fired_feature =
WebFeature::kDOMNodeRemovedFromDocumentEventFired,
.listener_type = Document::kDOMNodeRemovedFromDocumentListener};
} else if (event_type == event_type_names::kDOMNodeInsertedIntoDocument) {
return {.is_mutation_event = true,
.listener_feature = WebFeature::kDOMNodeInsertedIntoDocumentEvent,
.event_fired_feature =
WebFeature::kDOMNodeInsertedIntoDocumentEventFired,
.listener_type = Document::kDOMNodeInsertedIntoDocumentListener};
} else if (event_type == event_type_names::kDOMCharacterDataModified) {
return {
.is_mutation_event = true,
.listener_feature = WebFeature::kDOMCharacterDataModifiedEvent,
.event_fired_feature = WebFeature::kDOMCharacterDataModifiedEventFired,
.listener_type = Document::kDOMCharacterDataModifiedListener};
}
return {.is_mutation_event = false};
}
bool IsSnapEventType(const AtomicString& event_type) {
return event_type == event_type_names::kScrollsnapchanging ||
event_type == event_type_names::kScrollsnapchange;
}
} // namespace event_util
} // namespace blink
|