Skip to content

Commit

Permalink
Backed out changeset 8178c74a4c65 (bug 1839515) for causing mochitest…
Browse files Browse the repository at this point in the history
… failures on browser_events_vcchange.js
  • Loading branch information
Norisz Fay committed Jun 21, 2023
1 parent cb6eab2 commit f8505d5
Show file tree
Hide file tree
Showing 22 changed files with 1,080 additions and 41 deletions.
15 changes: 11 additions & 4 deletions accessible/android/AccessibleWrap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,14 @@ nsresult AccessibleWrap::HandleAccEvent(AccEvent* aEvent) {
if (sessionAcc && newPosition) {
if (vcEvent->Reason() == nsIAccessiblePivot::REASON_POINT) {
sessionAcc->SendHoverEnterEvent(newPosition);
} else {
} else if (vcEvent->BoundaryType() == nsIAccessiblePivot::NO_BOUNDARY) {
sessionAcc->SendAccessibilityFocusedEvent(newPosition);
}

if (vcEvent->BoundaryType() != nsIAccessiblePivot::NO_BOUNDARY) {
sessionAcc->SendTextTraversedEvent(
newPosition, vcEvent->NewStartOffset(), vcEvent->NewEndOffset());
}
}
break;
}
Expand Down Expand Up @@ -270,7 +275,8 @@ bool AccessibleWrap::PivotTo(int32_t aGranularity, bool aForward,
: nsIAccessiblePivot::REASON_PREV;
LocalAccessible* localResult = result->AsLocal();
RefPtr<AccEvent> event = new AccVCChangeEvent(
localResult->Document(), this, localResult, reason, eFromUserInput);
localResult->Document(), this, -1, -1, localResult, -1, -1, reason,
nsIAccessiblePivot::NO_BOUNDARY, eFromUserInput);
nsEventShell::FireEvent(event);

return true;
Expand All @@ -288,8 +294,9 @@ void AccessibleWrap::ExploreByTouch(float aX, float aY) {

if (result && result != this) {
RefPtr<AccEvent> event =
new AccVCChangeEvent(result->Document(), this, result,
nsIAccessiblePivot::REASON_POINT, eFromUserInput);
new AccVCChangeEvent(result->Document(), this, -1, -1, result, -1, -1,
nsIAccessiblePivot::REASON_POINT,
nsIAccessiblePivot::NO_BOUNDARY, eFromUserInput);
nsEventShell::FireEvent(event);
}
}
Expand Down
17 changes: 12 additions & 5 deletions accessible/android/Platform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -167,10 +167,12 @@ void a11y::ProxyShowHideEvent(RemoteAccessible* aTarget,
void a11y::ProxySelectionEvent(RemoteAccessible*, RemoteAccessible*, uint32_t) {
}

void a11y::ProxyVirtualCursorChangeEvent(RemoteAccessible* aTarget,
RemoteAccessible* aOldPosition,
RemoteAccessible* aNewPosition,
int16_t aReason, bool aFromUser) {
void a11y::ProxyVirtualCursorChangeEvent(
RemoteAccessible* aTarget, RemoteAccessible* aOldPosition,
int32_t aOldStartOffset, int32_t aOldEndOffset,
RemoteAccessible* aNewPosition, int32_t aNewStartOffset,
int32_t aNewEndOffset, int16_t aReason, int16_t aBoundaryType,
bool aFromUser) {
if (!aNewPosition || !aFromUser) {
return;
}
Expand All @@ -184,9 +186,14 @@ void a11y::ProxyVirtualCursorChangeEvent(RemoteAccessible* aTarget,

if (aReason == nsIAccessiblePivot::REASON_POINT) {
sessionAcc->SendHoverEnterEvent(aNewPosition);
} else {
} else if (aBoundaryType == nsIAccessiblePivot::NO_BOUNDARY) {
sessionAcc->SendAccessibilityFocusedEvent(aNewPosition);
}

if (aBoundaryType != nsIAccessiblePivot::NO_BOUNDARY) {
sessionAcc->SendTextTraversedEvent(aNewPosition, aNewStartOffset,
aNewEndOffset);
}
}

void a11y::ProxyScrollingEvent(RemoteAccessible* aTarget, uint32_t aEventType,
Expand Down
16 changes: 12 additions & 4 deletions accessible/base/AccEvent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -180,14 +180,21 @@ AccTableChangeEvent::AccTableChangeEvent(LocalAccessible* aAccessible,

AccVCChangeEvent::AccVCChangeEvent(LocalAccessible* aAccessible,
LocalAccessible* aOldAccessible,
int32_t aOldStart, int32_t aOldEnd,
LocalAccessible* aNewAccessible,
int16_t aReason,
int32_t aNewStart, int32_t aNewEnd,
int16_t aReason, int16_t aBoundaryType,
EIsFromUserInput aIsFromUserInput)
: AccEvent(::nsIAccessibleEvent::EVENT_VIRTUALCURSOR_CHANGED, aAccessible,
aIsFromUserInput),
mOldAccessible(aOldAccessible),
mNewAccessible(aNewAccessible),
mReason(aReason) {}
mOldStart(aOldStart),
mNewStart(aNewStart),
mOldEnd(aOldEnd),
mNewEnd(aNewEnd),
mReason(aReason),
mBoundaryType(aBoundaryType) {}

already_AddRefed<nsIAccessibleEvent> a11y::MakeXPCEvent(AccEvent* aEvent) {
DocAccessible* doc = aEvent->Document();
Expand Down Expand Up @@ -257,8 +264,9 @@ already_AddRefed<nsIAccessibleEvent> a11y::MakeXPCEvent(AccEvent* aEvent) {
AccVCChangeEvent* vcc = downcast_accEvent(aEvent);
xpEvent = new xpcAccVirtualCursorChangeEvent(
type, ToXPC(acc), ToXPCDocument(doc), node, fromUser,
ToXPC(vcc->OldAccessible()), ToXPC(vcc->NewAccessible()),
vcc->Reason());
ToXPC(vcc->OldAccessible()), vcc->OldStartOffset(), vcc->OldEndOffset(),
ToXPC(vcc->NewAccessible()), vcc->NewStartOffset(), vcc->NewEndOffset(),
vcc->Reason(), vcc->BoundaryType());
return xpEvent.forget();
}

Expand Down
16 changes: 14 additions & 2 deletions accessible/base/AccEvent.h
Original file line number Diff line number Diff line change
Expand Up @@ -472,8 +472,10 @@ class AccTableChangeEvent : public AccEvent {
class AccVCChangeEvent : public AccEvent {
public:
AccVCChangeEvent(LocalAccessible* aAccessible,
LocalAccessible* aOldAccessible,
LocalAccessible* aNewAccessible, int16_t aReason,
LocalAccessible* aOldAccessible, int32_t aOldStart,
int32_t aOldEnd, LocalAccessible* aNewAccessible,
int32_t aNewStart, int32_t aNewEnd, int16_t aReason,
int16_t aBoundaryType,
EIsFromUserInput aIsFromUserInput = eFromUserInput);

virtual ~AccVCChangeEvent() {}
Expand All @@ -486,13 +488,23 @@ class AccVCChangeEvent : public AccEvent {

// AccVCChangeEvent
LocalAccessible* OldAccessible() const { return mOldAccessible; }
int32_t OldStartOffset() const { return mOldStart; }
int32_t OldEndOffset() const { return mOldEnd; }
LocalAccessible* NewAccessible() const { return mNewAccessible; }
int32_t NewStartOffset() const { return mNewStart; }
int32_t NewEndOffset() const { return mNewEnd; }
int32_t Reason() const { return mReason; }
int32_t BoundaryType() const { return mBoundaryType; }

private:
RefPtr<LocalAccessible> mOldAccessible;
RefPtr<LocalAccessible> mNewAccessible;
int32_t mOldStart;
int32_t mNewStart;
int32_t mOldEnd;
int32_t mNewEnd;
int16_t mReason;
int16_t mBoundaryType;
};

/**
Expand Down
Loading

0 comments on commit f8505d5

Please sign in to comment.