#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "third_party/blink/renderer/core/events/pointer_event_factory.h"
#include "base/trace_event/trace_event.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_pointer_event_init.h"
#include "third_party/blink/renderer/core/events/pointer_event_util.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/local_frame_view.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/pointer_type_names.h"
#include "ui/gfx/geometry/size_f.h"
namespace blink {
namespace {
inline int ToInt(WebPointerProperties::PointerType t) { … }
uint16_t ButtonToButtonsBitfield(WebPointerProperties::Button button) { … }
const AtomicString& PointerEventNameForEventType(WebInputEvent::Type type) { … }
float GetPointerEventPressure(float force, uint16_t buttons) { … }
void UpdateCommonPointerEventInit(const WebPointerEvent& web_pointer_event,
const gfx::PointF& last_global_position,
LocalDOMWindow* dom_window,
PointerEventInit* pointer_event_init) { … }
}
const AtomicString& PointerEventFactory::PointerTypeNameForWebPointPointerType(
WebPointerProperties::PointerType type) { … }
HeapVector<Member<PointerEvent>> PointerEventFactory::CreateEventSequence(
const WebPointerEvent& web_pointer_event,
const PointerEventInit* pointer_event_init,
const Vector<WebPointerEvent>& event_list,
LocalDOMWindow* view) { … }
const PointerId PointerEventFactory::kReservedNonPointerId = …;
const PointerId PointerEventFactory::kInvalidId = …;
const PointerId PointerEventFactory::kMouseId = …;
PointerEventInit* PointerEventFactory::ConvertIdTypeButtonsEvent(
const WebPointerEvent& web_pointer_event) { … }
void PointerEventFactory::SetEventSpecificFields(
PointerEventInit* pointer_event_init,
const AtomicString& type) { … }
PointerEvent* PointerEventFactory::Create(
const WebPointerEvent& web_pointer_event,
const Vector<WebPointerEvent>& coalesced_events,
const Vector<WebPointerEvent>& predicted_events,
LocalDOMWindow* view) { … }
void PointerEventFactory::SetLastPosition(int pointer_id,
const gfx::PointF& position_in_screen,
WebInputEvent::Type event_type) { … }
void PointerEventFactory::RemoveLastPosition(const int pointer_id) { … }
gfx::PointF PointerEventFactory::GetLastPointerPosition(
int pointer_id,
const WebPointerProperties& event,
WebInputEvent::Type event_type) const { … }
PointerEvent* PointerEventFactory::CreatePointerCancelEvent(
const int pointer_id,
base::TimeTicks platfrom_time_stamp,
const int32_t device_id) { … }
PointerEvent* PointerEventFactory::CreatePointerEventFrom(
PointerEvent* pointer_event,
const AtomicString& type,
EventTarget* related_target) { … }
PointerEvent* PointerEventFactory::CreatePointerRawUpdateEvent(
PointerEvent* pointer_event) { … }
PointerEvent* PointerEventFactory::CreatePointerCaptureEvent(
PointerEvent* pointer_event,
const AtomicString& type) { … }
PointerEvent* PointerEventFactory::CreatePointerBoundaryEvent(
PointerEvent* pointer_event,
const AtomicString& type,
EventTarget* related_target) { … }
PointerEventFactory::PointerEventFactory() { … }
PointerEventFactory::~PointerEventFactory() { … }
void PointerEventFactory::Clear() { … }
PointerId PointerEventFactory::AddOrUpdateIdAndActiveButtons(
const IncomingId p,
bool is_active_buttons,
bool hovering,
WebInputEvent::Type event_type,
uint32_t unique_touch_event_id) { … }
bool PointerEventFactory::Remove(const PointerId mapped_id) { … }
Vector<PointerId> PointerEventFactory::GetPointerIdsOfNonHoveringPointers()
const { … }
bool PointerEventFactory::IsPrimary(PointerId mapped_id) const { … }
bool PointerEventFactory::IsActive(const PointerId pointer_id) const { … }
bool PointerEventFactory::IsPrimary(
const WebPointerProperties& properties) const { … }
bool PointerEventFactory::IsActiveButtonsState(
const PointerId pointer_id) const { … }
WebPointerProperties::PointerType PointerEventFactory::GetPointerType(
PointerId pointer_id) const { … }
PointerId PointerEventFactory::GetPointerEventId(
const WebPointerProperties& properties) const { … }
PointerId PointerEventFactory::GetPointerIdForTouchGesture(
const uint32_t unique_touch_event_id) { … }
void PointerEventFactory::SaveRecentlyRemovedPointer(
PointerId pointer_id,
PointerAttributes pointer_attributes) { … }
int32_t PointerEventFactory::GetBlinkDeviceId(
const WebPointerEvent& web_pointer_event) { … }
PointerId PointerEventFactory::GetNextAvailablePointerid() { … }
}