Loading accessible/android/AccessibleWrap.h +2 −2 Original line number Diff line number Diff line Loading @@ -38,8 +38,6 @@ class AccessibleWrap : public LocalAccessible { virtual void PivotTo(int32_t aGranularity, bool aForward, bool aInclusive); virtual void ExploreByTouch(float aX, float aY); virtual void NavigateText(int32_t aGranularity, int32_t aStartOffset, int32_t aEndOffset, bool aForward, bool aSelect); Loading @@ -52,6 +50,8 @@ class AccessibleWrap : public LocalAccessible { MOZ_CAN_RUN_SCRIPT_BOUNDARY virtual void Paste(); void ExploreByTouch(float aX, float aY); mozilla::java::GeckoBundle::LocalRef ToBundle(bool aSmall = false); mozilla::java::GeckoBundle::LocalRef ToBundle( Loading accessible/android/RemoteAccessibleWrap.cpp +0 −5 Original line number Diff line number Diff line Loading @@ -112,11 +112,6 @@ void RemoteAccessibleWrap::PivotTo(int32_t aGranularity, bool aForward, Proxy()->ID(), aGranularity, aForward, aInclusive); } void RemoteAccessibleWrap::ExploreByTouch(float aX, float aY) { Unused << Proxy()->Document()->GetPlatformExtension()->SendExploreByTouch( Proxy()->ID(), aX, aY); } void RemoteAccessibleWrap::NavigateText(int32_t aGranularity, int32_t aStartOffset, int32_t aEndOffset, bool aForward, Loading accessible/android/RemoteAccessibleWrap.h +0 −2 Original line number Diff line number Diff line Loading @@ -74,8 +74,6 @@ class RemoteAccessibleWrap : public AccessibleWrap { virtual void Paste() override; virtual void ExploreByTouch(float aX, float aY) override; virtual void WrapperDOMNodeID(nsString& aDOMNodeID) override; private: Loading accessible/android/RootAccessibleWrap.cpp +54 −0 Original line number Diff line number Diff line Loading @@ -12,9 +12,13 @@ #include "RemoteAccessibleWrap.h" #include "SessionAccessibility.h" #include "mozilla/PresShell.h" #include "mozilla/dom/EventTarget.h" #include "mozilla/dom/Event.h" #include "mozilla/dom/MouseEvent.h" using namespace mozilla; using namespace mozilla::a11y; using namespace mozilla::dom; RootAccessibleWrap::RootAccessibleWrap(dom::Document* aDoc, PresShell* aPresShell) Loading Loading @@ -96,3 +100,53 @@ AccessibleWrap* RootAccessibleWrap::FindAccessibleById(DocAccessibleWrap* aDoc, return acc; } nsresult RootAccessibleWrap::AddEventListeners() { nsPIDOMWindowOuter* window = mDocumentNode->GetWindow(); nsCOMPtr<EventTarget> nstarget = window ? window->GetParentTarget() : nullptr; if (nstarget) { nstarget->AddEventListener(u"MozMouseExploreByTouch"_ns, this, false, true); } return RootAccessible::AddEventListeners(); } nsresult RootAccessibleWrap::RemoveEventListeners() { nsPIDOMWindowOuter* window = mDocumentNode->GetWindow(); nsCOMPtr<EventTarget> nstarget = window ? window->GetParentTarget() : nullptr; if (nstarget) { nstarget->RemoveEventListener(u"MozMouseExploreByTouch"_ns, this, true); } return RootAccessible::RemoveEventListeners(); } //////////////////////////////////////////////////////////////////////////////// // nsIDOMEventListener NS_IMETHODIMP RootAccessibleWrap::HandleEvent(Event* aDOMEvent) { WidgetMouseEvent* widgetEvent = aDOMEvent->WidgetEventPtr()->AsMouseEvent(); if (widgetEvent && widgetEvent->mMessage == eMouseExploreByTouch) { if (HasShutdown()) { return NS_OK; } MouseEvent* mouseEvent = aDOMEvent->AsMouseEvent(); if (mouseEvent) { nsPresContext* pc = PresContext(); int32_t x = pc->CSSPixelsToDevPixels(mouseEvent->ScreenX(CallerType::System)); int32_t y = pc->CSSPixelsToDevPixels(mouseEvent->ScreenY(CallerType::System)); ExploreByTouch(x, y); } return NS_OK; } return RootAccessible::HandleEvent(aDOMEvent); } accessible/android/RootAccessibleWrap.h +7 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,9 @@ class RootAccessibleWrap : public RootAccessible { RootAccessibleWrap(dom::Document* aDocument, PresShell* aPresShell); virtual ~RootAccessibleWrap(); // nsIDOMEventListener NS_DECL_NSIDOMEVENTLISTENER AccessibleWrap* GetContentAccessible(); AccessibleWrap* FindAccessibleById(int32_t aID); Loading @@ -31,6 +34,10 @@ class RootAccessibleWrap : public RootAccessible { // Recursively searches for the accessible ID within the proxy document tree. AccessibleWrap* FindAccessibleById(DocRemoteAccessibleWrap* aDocument, int32_t aID); protected: virtual nsresult AddEventListeners() override; virtual nsresult RemoveEventListeners() override; }; } // namespace a11y Loading Loading
accessible/android/AccessibleWrap.h +2 −2 Original line number Diff line number Diff line Loading @@ -38,8 +38,6 @@ class AccessibleWrap : public LocalAccessible { virtual void PivotTo(int32_t aGranularity, bool aForward, bool aInclusive); virtual void ExploreByTouch(float aX, float aY); virtual void NavigateText(int32_t aGranularity, int32_t aStartOffset, int32_t aEndOffset, bool aForward, bool aSelect); Loading @@ -52,6 +50,8 @@ class AccessibleWrap : public LocalAccessible { MOZ_CAN_RUN_SCRIPT_BOUNDARY virtual void Paste(); void ExploreByTouch(float aX, float aY); mozilla::java::GeckoBundle::LocalRef ToBundle(bool aSmall = false); mozilla::java::GeckoBundle::LocalRef ToBundle( Loading
accessible/android/RemoteAccessibleWrap.cpp +0 −5 Original line number Diff line number Diff line Loading @@ -112,11 +112,6 @@ void RemoteAccessibleWrap::PivotTo(int32_t aGranularity, bool aForward, Proxy()->ID(), aGranularity, aForward, aInclusive); } void RemoteAccessibleWrap::ExploreByTouch(float aX, float aY) { Unused << Proxy()->Document()->GetPlatformExtension()->SendExploreByTouch( Proxy()->ID(), aX, aY); } void RemoteAccessibleWrap::NavigateText(int32_t aGranularity, int32_t aStartOffset, int32_t aEndOffset, bool aForward, Loading
accessible/android/RemoteAccessibleWrap.h +0 −2 Original line number Diff line number Diff line Loading @@ -74,8 +74,6 @@ class RemoteAccessibleWrap : public AccessibleWrap { virtual void Paste() override; virtual void ExploreByTouch(float aX, float aY) override; virtual void WrapperDOMNodeID(nsString& aDOMNodeID) override; private: Loading
accessible/android/RootAccessibleWrap.cpp +54 −0 Original line number Diff line number Diff line Loading @@ -12,9 +12,13 @@ #include "RemoteAccessibleWrap.h" #include "SessionAccessibility.h" #include "mozilla/PresShell.h" #include "mozilla/dom/EventTarget.h" #include "mozilla/dom/Event.h" #include "mozilla/dom/MouseEvent.h" using namespace mozilla; using namespace mozilla::a11y; using namespace mozilla::dom; RootAccessibleWrap::RootAccessibleWrap(dom::Document* aDoc, PresShell* aPresShell) Loading Loading @@ -96,3 +100,53 @@ AccessibleWrap* RootAccessibleWrap::FindAccessibleById(DocAccessibleWrap* aDoc, return acc; } nsresult RootAccessibleWrap::AddEventListeners() { nsPIDOMWindowOuter* window = mDocumentNode->GetWindow(); nsCOMPtr<EventTarget> nstarget = window ? window->GetParentTarget() : nullptr; if (nstarget) { nstarget->AddEventListener(u"MozMouseExploreByTouch"_ns, this, false, true); } return RootAccessible::AddEventListeners(); } nsresult RootAccessibleWrap::RemoveEventListeners() { nsPIDOMWindowOuter* window = mDocumentNode->GetWindow(); nsCOMPtr<EventTarget> nstarget = window ? window->GetParentTarget() : nullptr; if (nstarget) { nstarget->RemoveEventListener(u"MozMouseExploreByTouch"_ns, this, true); } return RootAccessible::RemoveEventListeners(); } //////////////////////////////////////////////////////////////////////////////// // nsIDOMEventListener NS_IMETHODIMP RootAccessibleWrap::HandleEvent(Event* aDOMEvent) { WidgetMouseEvent* widgetEvent = aDOMEvent->WidgetEventPtr()->AsMouseEvent(); if (widgetEvent && widgetEvent->mMessage == eMouseExploreByTouch) { if (HasShutdown()) { return NS_OK; } MouseEvent* mouseEvent = aDOMEvent->AsMouseEvent(); if (mouseEvent) { nsPresContext* pc = PresContext(); int32_t x = pc->CSSPixelsToDevPixels(mouseEvent->ScreenX(CallerType::System)); int32_t y = pc->CSSPixelsToDevPixels(mouseEvent->ScreenY(CallerType::System)); ExploreByTouch(x, y); } return NS_OK; } return RootAccessible::HandleEvent(aDOMEvent); }
accessible/android/RootAccessibleWrap.h +7 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,9 @@ class RootAccessibleWrap : public RootAccessible { RootAccessibleWrap(dom::Document* aDocument, PresShell* aPresShell); virtual ~RootAccessibleWrap(); // nsIDOMEventListener NS_DECL_NSIDOMEVENTLISTENER AccessibleWrap* GetContentAccessible(); AccessibleWrap* FindAccessibleById(int32_t aID); Loading @@ -31,6 +34,10 @@ class RootAccessibleWrap : public RootAccessible { // Recursively searches for the accessible ID within the proxy document tree. AccessibleWrap* FindAccessibleById(DocRemoteAccessibleWrap* aDocument, int32_t aID); protected: virtual nsresult AddEventListeners() override; virtual nsresult RemoveEventListeners() override; }; } // namespace a11y Loading