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:
James Teh 2023-11-28 22:03:21 +00:00
parent 0bafc2f978
commit 44caba5c0c
17 changed files with 7 additions and 221 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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) {

View File

@ -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;

View File

@ -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.
*/

View File

@ -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);

View File

@ -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

View File

@ -40,7 +40,6 @@ XPIDL_SOURCES += [
"nsIAccessibleTextSelectionChangeEvent.idl",
"nsIAccessibleTypes.idl",
"nsIAccessibleValue.idl",
"nsIAccessibleVirtualCursorChangeEvent.idl",
]
XPIDL_MODULE = "accessibility"

View File

@ -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

View File

@ -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.

View File

@ -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;
};

View File

@ -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,

View File

@ -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,

View File

@ -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);

View File

@ -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;

View File

@ -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

View File

@ -15,7 +15,6 @@ simple_events = [
'CaretMoveEvent',
'ObjectAttributeChangedEvent',
'TableChangeEvent',
'VirtualCursorChangeEvent',
'ScrollingEvent',
'AnnouncementEvent'
]