mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 02:14:43 +00:00
Bug 1862802 part 5: Remove virtual cursor change event. r=eeejay
Depends on D192645 Differential Revision: https://phabricator.services.mozilla.com/D192646
This commit is contained in:
parent
0bafc2f978
commit
44caba5c0c
@ -121,26 +121,6 @@ Accessible* AccessibleWrap::DoPivot(Accessible* aAccessible,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool AccessibleWrap::PivotTo(int32_t aGranularity, bool aForward,
|
||||
bool aInclusive) {
|
||||
Accessible* result = DoPivot(this, aGranularity, aForward, aInclusive);
|
||||
if (result) {
|
||||
MOZ_ASSERT(result->IsLocal());
|
||||
// Dispatch a virtual cursor change event that will be turned into an
|
||||
// android accessibility focused changed event in the parent.
|
||||
PivotMoveReason reason = aForward ? nsIAccessiblePivot::REASON_NEXT
|
||||
: nsIAccessiblePivot::REASON_PREV;
|
||||
LocalAccessible* localResult = result->AsLocal();
|
||||
RefPtr<AccEvent> event = new AccVCChangeEvent(
|
||||
localResult->Document(), this, localResult, reason, eFromUserInput);
|
||||
nsEventShell::FireEvent(event);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Accessible* AccessibleWrap::ExploreByTouch(Accessible* aAccessible, float aX,
|
||||
float aY) {
|
||||
Accessible* root;
|
||||
|
@ -27,9 +27,6 @@ class AccessibleWrap : public LocalAccessible {
|
||||
|
||||
virtual bool DoAction(uint8_t aIndex) const override;
|
||||
|
||||
MOZ_CAN_RUN_SCRIPT_BOUNDARY
|
||||
virtual bool PivotTo(int32_t aGranularity, bool aForward, bool aInclusive);
|
||||
|
||||
static Accessible* ExploreByTouch(Accessible* aAccessible, float aX,
|
||||
float aY);
|
||||
|
||||
|
@ -193,24 +193,6 @@ void a11y::PlatformShowHideEvent(Accessible* aTarget, Accessible* aParent,
|
||||
|
||||
void a11y::PlatformSelectionEvent(Accessible*, Accessible*, uint32_t) {}
|
||||
|
||||
void a11y::PlatformVirtualCursorChangeEvent(Accessible* aTarget,
|
||||
Accessible* aOldPosition,
|
||||
Accessible* aNewPosition,
|
||||
int16_t aReason, bool aFromUser) {
|
||||
if (!aNewPosition || !aFromUser) {
|
||||
return;
|
||||
}
|
||||
|
||||
RefPtr<SessionAccessibility> sessionAcc =
|
||||
SessionAccessibility::GetInstanceFor(aTarget);
|
||||
|
||||
if (!sessionAcc) {
|
||||
return;
|
||||
}
|
||||
|
||||
sessionAcc->SendAccessibilityFocusedEvent(aNewPosition);
|
||||
}
|
||||
|
||||
void a11y::PlatformScrollingEvent(Accessible* aTarget, uint32_t aEventType,
|
||||
uint32_t aScrollX, uint32_t aScrollY,
|
||||
uint32_t aMaxScrollX, uint32_t aMaxScrollY) {
|
||||
|
@ -161,21 +161,6 @@ AccSelChangeEvent::AccSelChangeEvent(LocalAccessible* aWidget,
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// AccVCChangeEvent
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
AccVCChangeEvent::AccVCChangeEvent(LocalAccessible* aAccessible,
|
||||
LocalAccessible* aOldAccessible,
|
||||
LocalAccessible* aNewAccessible,
|
||||
int16_t aReason,
|
||||
EIsFromUserInput aIsFromUserInput)
|
||||
: AccEvent(::nsIAccessibleEvent::EVENT_VIRTUALCURSOR_CHANGED, aAccessible,
|
||||
aIsFromUserInput),
|
||||
mOldAccessible(aOldAccessible),
|
||||
mNewAccessible(aNewAccessible),
|
||||
mReason(aReason) {}
|
||||
|
||||
already_AddRefed<nsIAccessibleEvent> a11y::MakeXPCEvent(AccEvent* aEvent) {
|
||||
DocAccessible* doc = aEvent->Document();
|
||||
LocalAccessible* acc = aEvent->GetAccessible();
|
||||
@ -240,15 +225,6 @@ already_AddRefed<nsIAccessibleEvent> a11y::MakeXPCEvent(AccEvent* aEvent) {
|
||||
return xpEvent.forget();
|
||||
}
|
||||
|
||||
if (eventGroup & (1 << AccEvent::eVirtualCursorChangeEvent)) {
|
||||
AccVCChangeEvent* vcc = downcast_accEvent(aEvent);
|
||||
xpEvent = new xpcAccVirtualCursorChangeEvent(
|
||||
type, ToXPC(acc), ToXPCDocument(doc), node, fromUser,
|
||||
ToXPC(vcc->OldAccessible()), ToXPC(vcc->NewAccessible()),
|
||||
vcc->Reason());
|
||||
return xpEvent.forget();
|
||||
}
|
||||
|
||||
if (eventGroup & (1 << AccEvent::eObjectAttrChangedEvent)) {
|
||||
AccObjectAttrChangedEvent* oac = downcast_accEvent(aEvent);
|
||||
nsString attribute;
|
||||
|
@ -102,7 +102,6 @@ class AccEvent {
|
||||
eCaretMoveEvent,
|
||||
eTextSelChangeEvent,
|
||||
eSelectionChangeEvent,
|
||||
eVirtualCursorChangeEvent,
|
||||
eObjectAttrChangedEvent,
|
||||
eScrollingEvent,
|
||||
eAnnouncementEvent,
|
||||
@ -441,35 +440,6 @@ class AccSelChangeEvent : public AccEvent {
|
||||
friend class EventQueue;
|
||||
};
|
||||
|
||||
/**
|
||||
* Accessible virtual cursor change event.
|
||||
*/
|
||||
class AccVCChangeEvent : public AccEvent {
|
||||
public:
|
||||
AccVCChangeEvent(LocalAccessible* aAccessible,
|
||||
LocalAccessible* aOldAccessible,
|
||||
LocalAccessible* aNewAccessible, int16_t aReason,
|
||||
EIsFromUserInput aIsFromUserInput = eFromUserInput);
|
||||
|
||||
virtual ~AccVCChangeEvent() {}
|
||||
|
||||
// AccEvent
|
||||
static const EventGroup kEventGroup = eVirtualCursorChangeEvent;
|
||||
virtual unsigned int GetEventGroups() const override {
|
||||
return AccEvent::GetEventGroups() | (1U << eVirtualCursorChangeEvent);
|
||||
}
|
||||
|
||||
// AccVCChangeEvent
|
||||
LocalAccessible* OldAccessible() const { return mOldAccessible; }
|
||||
LocalAccessible* NewAccessible() const { return mNewAccessible; }
|
||||
int32_t Reason() const { return mReason; }
|
||||
|
||||
private:
|
||||
RefPtr<LocalAccessible> mOldAccessible;
|
||||
RefPtr<LocalAccessible> mNewAccessible;
|
||||
int16_t mReason;
|
||||
};
|
||||
|
||||
/**
|
||||
* Accessible object attribute changed event.
|
||||
*/
|
||||
|
@ -110,11 +110,6 @@ void PlatformSelectionEvent(Accessible* aTarget, Accessible* aWidget,
|
||||
uint32_t aType);
|
||||
|
||||
#if defined(ANDROID)
|
||||
void PlatformVirtualCursorChangeEvent(Accessible* aTarget,
|
||||
Accessible* aOldPosition,
|
||||
Accessible* aNewPosition, int16_t aReason,
|
||||
bool aFromUser);
|
||||
|
||||
void PlatformScrollingEvent(Accessible* aTarget, uint32_t aEventType,
|
||||
uint32_t aScrollX, uint32_t aScrollY,
|
||||
uint32_t aMaxScrollX, uint32_t aMaxScrollY);
|
||||
|
@ -936,16 +936,6 @@ nsresult LocalAccessible::HandleAccEvent(AccEvent* aEvent) {
|
||||
aEvent->GetEventType());
|
||||
break;
|
||||
}
|
||||
case nsIAccessibleEvent::EVENT_VIRTUALCURSOR_CHANGED: {
|
||||
AccVCChangeEvent* vcEvent = downcast_accEvent(aEvent);
|
||||
LocalAccessible* position = vcEvent->NewAccessible();
|
||||
LocalAccessible* oldPosition = vcEvent->OldAccessible();
|
||||
ipcDoc->SendVirtualCursorChangeEvent(
|
||||
id, oldPosition ? oldPosition->ID() : 0,
|
||||
position ? position->ID() : 0, vcEvent->Reason(),
|
||||
vcEvent->IsFromUserInput());
|
||||
break;
|
||||
}
|
||||
case nsIAccessibleEvent::EVENT_FOCUS:
|
||||
ipcDoc->SendFocusEvent(id);
|
||||
break;
|
||||
@ -1061,15 +1051,6 @@ nsresult LocalAccessible::HandleAccEvent(AccEvent* aEvent) {
|
||||
aEvent->GetEventType());
|
||||
break;
|
||||
}
|
||||
case nsIAccessibleEvent::EVENT_VIRTUALCURSOR_CHANGED: {
|
||||
#ifdef ANDROID
|
||||
AccVCChangeEvent* vcEvent = downcast_accEvent(aEvent);
|
||||
PlatformVirtualCursorChangeEvent(
|
||||
target, vcEvent->OldAccessible(), vcEvent->NewAccessible(),
|
||||
vcEvent->Reason(), vcEvent->IsFromUserInput());
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
case nsIAccessibleEvent::EVENT_FOCUS: {
|
||||
LayoutDeviceIntRect rect;
|
||||
// The caret rect is only used on Windows, so just pass an empty rect on
|
||||
|
@ -40,7 +40,6 @@ XPIDL_SOURCES += [
|
||||
"nsIAccessibleTextSelectionChangeEvent.idl",
|
||||
"nsIAccessibleTypes.idl",
|
||||
"nsIAccessibleValue.idl",
|
||||
"nsIAccessibleVirtualCursorChangeEvent.idl",
|
||||
]
|
||||
|
||||
XPIDL_MODULE = "accessibility"
|
||||
|
@ -182,46 +182,41 @@ interface nsIAccessibleEvent : nsISupports
|
||||
*/
|
||||
const unsigned long EVENT_OBJECT_ATTRIBUTE_CHANGED = 0x0022;
|
||||
|
||||
/**
|
||||
* A cursorable's virtual cursor has changed.
|
||||
*/
|
||||
const unsigned long EVENT_VIRTUALCURSOR_CHANGED = 0x0023;
|
||||
|
||||
/**
|
||||
* An object's text Value has changed.
|
||||
*/
|
||||
const unsigned long EVENT_TEXT_VALUE_CHANGE = 0x0024;
|
||||
const unsigned long EVENT_TEXT_VALUE_CHANGE = 0x0023;
|
||||
|
||||
/**
|
||||
* An accessible's viewport is scrolling.
|
||||
*/
|
||||
const unsigned long EVENT_SCROLLING = 0x0025;
|
||||
const unsigned long EVENT_SCROLLING = 0x0024;
|
||||
|
||||
/**
|
||||
* An accessible is making an explicit announcement.
|
||||
*/
|
||||
const unsigned long EVENT_ANNOUNCEMENT = 0x0026;
|
||||
const unsigned long EVENT_ANNOUNCEMENT = 0x0025;
|
||||
|
||||
/**
|
||||
* A live region has been introduced. Mac only.
|
||||
*/
|
||||
const unsigned long EVENT_LIVE_REGION_ADDED = 0x0027;
|
||||
const unsigned long EVENT_LIVE_REGION_ADDED = 0x0026;
|
||||
|
||||
/**
|
||||
* A live region has been removed (aria-live attribute changed). Mac Only.
|
||||
*/
|
||||
const unsigned long EVENT_LIVE_REGION_REMOVED = 0x0028;
|
||||
const unsigned long EVENT_LIVE_REGION_REMOVED = 0x0027;
|
||||
|
||||
/**
|
||||
* A reorder event that has been coalesced into a mutation
|
||||
* of an ancestor's subtree.
|
||||
*/
|
||||
const unsigned long EVENT_INNER_REORDER = 0x0029;
|
||||
const unsigned long EVENT_INNER_REORDER = 0x0028;
|
||||
|
||||
/**
|
||||
* Help make sure event map does not get out-of-line.
|
||||
*/
|
||||
const unsigned long EVENT_LAST_ENTRY = 0x002A;
|
||||
const unsigned long EVENT_LAST_ENTRY = 0x0029;
|
||||
|
||||
/**
|
||||
* The type of event, based on the enumerated event values
|
||||
|
@ -20,13 +20,6 @@ interface nsIAccessibleTraversalRule;
|
||||
[scriptable, uuid(81fe5144-059b-42db-bd3a-f6ce3158d5e9)]
|
||||
interface nsIAccessiblePivot : nsISupports
|
||||
{
|
||||
// XXX: These are here for the VC changed event that has yet to go away.
|
||||
const PivotMoveReason REASON_NONE = 0;
|
||||
const PivotMoveReason REASON_NEXT = 1;
|
||||
const PivotMoveReason REASON_PREV = 2;
|
||||
const PivotMoveReason REASON_FIRST = 3;
|
||||
const PivotMoveReason REASON_LAST = 4;
|
||||
|
||||
/**
|
||||
* Move pivot to next object, from current position or given anchor,
|
||||
* complying to given traversal rule.
|
||||
|
@ -1,29 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "nsIAccessibleEvent.idl"
|
||||
|
||||
/*
|
||||
* An interface for virtual cursor changed events.
|
||||
* Passes previous cursor position and text offsets.
|
||||
*/
|
||||
[scriptable, builtinclass, uuid(a58693b1-009e-4cc9-ae93-9c7d8f85cfdf)]
|
||||
interface nsIAccessibleVirtualCursorChangeEvent : nsIAccessibleEvent
|
||||
{
|
||||
/**
|
||||
* Previous object pointed at by virtual cursor, null if none.
|
||||
*/
|
||||
readonly attribute nsIAccessible oldAccessible;
|
||||
|
||||
/**
|
||||
* New object pointed at by virtual cursor, null if none.
|
||||
*/
|
||||
readonly attribute nsIAccessible newAccessible;
|
||||
|
||||
/**
|
||||
* Reason for virtual cursor move.
|
||||
*/
|
||||
readonly attribute short reason;
|
||||
};
|
@ -546,45 +546,6 @@ mozilla::ipc::IPCResult DocAccessibleParent::RecvSelectionEvent(
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult DocAccessibleParent::RecvVirtualCursorChangeEvent(
|
||||
const uint64_t& aID, const uint64_t& aOldPositionID,
|
||||
const uint64_t& aNewPositionID, const int16_t& aReason,
|
||||
const bool& aFromUser) {
|
||||
ACQUIRE_ANDROID_LOCK
|
||||
if (mShutdown) {
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
RemoteAccessible* target = GetAccessible(aID);
|
||||
RemoteAccessible* oldPosition = GetAccessible(aOldPositionID);
|
||||
RemoteAccessible* newPosition = GetAccessible(aNewPositionID);
|
||||
|
||||
if (!target) {
|
||||
NS_ERROR("no proxy for event!");
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
#if defined(ANDROID)
|
||||
PlatformVirtualCursorChangeEvent(target, oldPosition, newPosition, aReason,
|
||||
aFromUser);
|
||||
#endif
|
||||
|
||||
if (!nsCoreUtils::AccEventObserversExist()) {
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
xpcAccessibleDocument* doc = GetAccService()->GetXPCDocument(this);
|
||||
RefPtr<xpcAccVirtualCursorChangeEvent> event =
|
||||
new xpcAccVirtualCursorChangeEvent(
|
||||
nsIAccessibleEvent::EVENT_VIRTUALCURSOR_CHANGED,
|
||||
GetXPCAccessible(target), doc, nullptr, aFromUser,
|
||||
GetXPCAccessible(oldPosition), GetXPCAccessible(newPosition),
|
||||
aReason);
|
||||
nsCoreUtils::DispatchAccEvent(std::move(event));
|
||||
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult DocAccessibleParent::RecvScrollingEvent(
|
||||
const uint64_t& aID, const uint64_t& aType, const uint32_t& aScrollX,
|
||||
const uint32_t& aScrollY, const uint32_t& aMaxScrollX,
|
||||
|
@ -125,11 +125,6 @@ class DocAccessibleParent : public RemoteAccessible,
|
||||
const uint64_t& aID, const uint64_t& aWidgetID,
|
||||
const uint32_t& aType) override;
|
||||
|
||||
virtual mozilla::ipc::IPCResult RecvVirtualCursorChangeEvent(
|
||||
const uint64_t& aID, const uint64_t& aOldPositionID,
|
||||
const uint64_t& aNewPositionID, const int16_t& aReason,
|
||||
const bool& aFromUser) override;
|
||||
|
||||
virtual mozilla::ipc::IPCResult RecvScrollingEvent(
|
||||
const uint64_t& aID, const uint64_t& aType, const uint32_t& aScrollX,
|
||||
const uint32_t& aScrollY, const uint32_t& aMaxScrollX,
|
||||
|
@ -70,11 +70,6 @@ parent:
|
||||
async SelectionEvent(uint64_t aID, uint64_t aWidgetID, uint32_t aType);
|
||||
async RoleChangedEvent(role aRole, uint8_t aRoleMapEntryIndex);
|
||||
async FocusEvent(uint64_t aID, LayoutDeviceIntRect aCaretRect);
|
||||
async VirtualCursorChangeEvent(uint64_t aID,
|
||||
uint64_t aOldPosition,
|
||||
uint64_t aPosition,
|
||||
int16_t aReason,
|
||||
bool aFromUservcEvent);
|
||||
async ScrollingEvent(uint64_t aID, uint64_t aType,
|
||||
uint32_t aScrollX, uint32_t aScrollY,
|
||||
uint32_t aMaxScrollX, uint32_t aMaxScrollY);
|
||||
|
@ -24,8 +24,6 @@ const nsIAccessibleScrollingEvent = Ci.nsIAccessibleScrollingEvent;
|
||||
const nsIAccessibleTextChangeEvent = Ci.nsIAccessibleTextChangeEvent;
|
||||
const nsIAccessibleTextSelectionChangeEvent =
|
||||
Ci.nsIAccessibleTextSelectionChangeEvent;
|
||||
const nsIAccessibleVirtualCursorChangeEvent =
|
||||
Ci.nsIAccessibleVirtualCursorChangeEvent;
|
||||
const nsIAccessibleObjectAttributeChangedEvent =
|
||||
Ci.nsIAccessibleObjectAttributeChangedEvent;
|
||||
const nsIAccessibleAnnouncementEvent = Ci.nsIAccessibleAnnouncementEvent;
|
||||
|
@ -47,7 +47,6 @@ static const uint32_t gWinEventMap[] = {
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_WINDOW_MINIMIZE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_WINDOW_RESTORE
|
||||
IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED, // nsIAccessibleEvent::EVENT_OBJECT_ATTRIBUTE_CHANGED
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_VIRTUALCURSOR_CHANGED
|
||||
EVENT_OBJECT_VALUECHANGE, // nsIAccessibleEvent::EVENT_TEXT_VALUE_CHANGE
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_SCROLLING
|
||||
kEVENT_WIN_UNKNOWN, // nsIAccessibleEvent::EVENT_ANNOUNCEMENT
|
||||
|
@ -15,7 +15,6 @@ simple_events = [
|
||||
'CaretMoveEvent',
|
||||
'ObjectAttributeChangedEvent',
|
||||
'TableChangeEvent',
|
||||
'VirtualCursorChangeEvent',
|
||||
'ScrollingEvent',
|
||||
'AnnouncementEvent'
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user