summaryrefslogtreecommitdiffstats
path: root/accessible/ipc/extension/android
diff options
context:
space:
mode:
Diffstat (limited to 'accessible/ipc/extension/android')
-rw-r--r--accessible/ipc/extension/android/DocAccessiblePlatformExtChild.cpp84
-rw-r--r--accessible/ipc/extension/android/DocAccessiblePlatformExtChild.h44
-rw-r--r--accessible/ipc/extension/android/DocAccessiblePlatformExtParent.cpp46
-rw-r--r--accessible/ipc/extension/android/DocAccessiblePlatformExtParent.h22
-rw-r--r--accessible/ipc/extension/android/PDocAccessiblePlatformExt.ipdl36
-rw-r--r--accessible/ipc/extension/android/moz.build29
6 files changed, 261 insertions, 0 deletions
diff --git a/accessible/ipc/extension/android/DocAccessiblePlatformExtChild.cpp b/accessible/ipc/extension/android/DocAccessiblePlatformExtChild.cpp
new file mode 100644
index 0000000000..2cf7160dac
--- /dev/null
+++ b/accessible/ipc/extension/android/DocAccessiblePlatformExtChild.cpp
@@ -0,0 +1,84 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* 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 "DocAccessiblePlatformExtChild.h"
+
+#include "DocAccessibleChild.h"
+#include "AccessibleWrap.h"
+
+namespace mozilla {
+namespace a11y {
+
+mozilla::ipc::IPCResult DocAccessiblePlatformExtChild::RecvPivot(
+ uint64_t aID, int32_t aGranularity, bool aForward, bool aInclusive) {
+ if (auto acc = IdToAccessibleWrap(aID)) {
+ acc->PivotTo(aGranularity, aForward, aInclusive);
+ }
+
+ return IPC_OK();
+}
+
+mozilla::ipc::IPCResult DocAccessiblePlatformExtChild::RecvNavigateText(
+ uint64_t aID, int32_t aGranularity, int32_t aStartOffset,
+ int32_t aEndOffset, bool aForward, bool aSelect) {
+ if (auto acc = IdToAccessibleWrap(aID)) {
+ acc->NavigateText(aGranularity, aStartOffset, aEndOffset, aForward,
+ aSelect);
+ }
+
+ return IPC_OK();
+}
+
+mozilla::ipc::IPCResult DocAccessiblePlatformExtChild::RecvSetSelection(
+ uint64_t aID, int32_t aStart, int32_t aEnd) {
+ if (auto acc = IdToAccessibleWrap(aID)) {
+ acc->SetSelection(aStart, aEnd);
+ }
+
+ return IPC_OK();
+}
+
+mozilla::ipc::IPCResult DocAccessiblePlatformExtChild::RecvCut(uint64_t aID) {
+ if (auto acc = IdToAccessibleWrap(aID)) {
+ acc->Cut();
+ }
+
+ return IPC_OK();
+}
+
+mozilla::ipc::IPCResult DocAccessiblePlatformExtChild::RecvCopy(uint64_t aID) {
+ if (auto acc = IdToAccessibleWrap(aID)) {
+ acc->Copy();
+ }
+
+ return IPC_OK();
+}
+
+mozilla::ipc::IPCResult DocAccessiblePlatformExtChild::RecvPaste(uint64_t aID) {
+ if (auto acc = IdToAccessibleWrap(aID)) {
+ acc->Paste();
+ }
+
+ return IPC_OK();
+}
+
+mozilla::ipc::IPCResult DocAccessiblePlatformExtChild::RecvExploreByTouch(
+ uint64_t aID, float aX, float aY) {
+ if (auto acc = IdToAccessibleWrap(aID)) {
+ acc->ExploreByTouch(aX, aY);
+ }
+
+ return IPC_OK();
+}
+
+AccessibleWrap* DocAccessiblePlatformExtChild::IdToAccessibleWrap(
+ const uint64_t& aID) const {
+ return static_cast<AccessibleWrap*>(
+ static_cast<DocAccessibleChild*>(Manager())->IdToAccessible(aID));
+}
+
+} // namespace a11y
+} // namespace mozilla
diff --git a/accessible/ipc/extension/android/DocAccessiblePlatformExtChild.h b/accessible/ipc/extension/android/DocAccessiblePlatformExtChild.h
new file mode 100644
index 0000000000..b4bc0ce7ab
--- /dev/null
+++ b/accessible/ipc/extension/android/DocAccessiblePlatformExtChild.h
@@ -0,0 +1,44 @@
+/* vim: set ts=2 et sw=2 tw=80: */
+/* 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/. */
+
+#ifndef mozilla_a11y_DocAccessiblePlatformExtChild_h
+#define mozilla_a11y_DocAccessiblePlatformExtChild_h
+
+#include "mozilla/a11y/PDocAccessiblePlatformExtChild.h"
+
+namespace mozilla {
+namespace a11y {
+
+class AccessibleWrap;
+class DocAccessibleChild;
+
+class DocAccessiblePlatformExtChild : public PDocAccessiblePlatformExtChild {
+ public:
+ mozilla::ipc::IPCResult RecvPivot(uint64_t aID, int32_t aGranularity,
+ bool aForward, bool aInclusive);
+
+ mozilla::ipc::IPCResult RecvNavigateText(uint64_t aID, int32_t aGranularity,
+ int32_t aStartOffset,
+ int32_t aEndOffset, bool aForward,
+ bool aSelect);
+
+ mozilla::ipc::IPCResult RecvSetSelection(uint64_t aID, int32_t aStart,
+ int32_t aEnd);
+
+ mozilla::ipc::IPCResult RecvCut(uint64_t aID);
+
+ mozilla::ipc::IPCResult RecvCopy(uint64_t aID);
+
+ mozilla::ipc::IPCResult RecvPaste(uint64_t aID);
+
+ mozilla::ipc::IPCResult RecvExploreByTouch(uint64_t aID, float aX, float aY);
+
+ private:
+ AccessibleWrap* IdToAccessibleWrap(const uint64_t& aID) const;
+};
+} // namespace a11y
+} // namespace mozilla
+
+#endif
diff --git a/accessible/ipc/extension/android/DocAccessiblePlatformExtParent.cpp b/accessible/ipc/extension/android/DocAccessiblePlatformExtParent.cpp
new file mode 100644
index 0000000000..960a68a554
--- /dev/null
+++ b/accessible/ipc/extension/android/DocAccessiblePlatformExtParent.cpp
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* 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 "DocAccessiblePlatformExtParent.h"
+
+#include "AccessibleWrap.h"
+#include "SessionAccessibility.h"
+
+#include "mozilla/a11y/DocAccessibleParent.h"
+
+namespace mozilla {
+namespace a11y {
+
+mozilla::ipc::IPCResult DocAccessiblePlatformExtParent::RecvSetPivotBoundaries(
+ PDocAccessibleParent* aFirstDoc, uint64_t aFirst,
+ PDocAccessibleParent* aLastDoc, uint64_t aLast) {
+ MOZ_ASSERT(aFirstDoc);
+ MOZ_ASSERT(aLastDoc);
+
+ RefPtr<SessionAccessibility> sessionAcc =
+ SessionAccessibility::GetInstanceFor(
+ static_cast<DocAccessibleParent*>(Manager()));
+ if (!sessionAcc) {
+ return IPC_OK();
+ }
+
+ ProxyAccessible* first =
+ static_cast<DocAccessibleParent*>(aFirstDoc)->GetAccessible(aFirst);
+ ProxyAccessible* last =
+ static_cast<DocAccessibleParent*>(aLastDoc)->GetAccessible(aLast);
+
+ // We may not have proxy accessibles available yet for those accessibles
+ // in the parent process.
+ if (first && last) {
+ sessionAcc->UpdateAccessibleFocusBoundaries(WrapperFor(first),
+ WrapperFor(last));
+ }
+
+ return IPC_OK();
+}
+
+} // namespace a11y
+} // namespace mozilla
diff --git a/accessible/ipc/extension/android/DocAccessiblePlatformExtParent.h b/accessible/ipc/extension/android/DocAccessiblePlatformExtParent.h
new file mode 100644
index 0000000000..b9278599bb
--- /dev/null
+++ b/accessible/ipc/extension/android/DocAccessiblePlatformExtParent.h
@@ -0,0 +1,22 @@
+/* vim: set ts=2 et sw=2 tw=80: */
+/* 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/. */
+
+#ifndef mozilla_a11y_DocAccessiblePlatformExtParent_h
+#define mozilla_a11y_DocAccessiblePlatformExtParent_h
+
+#include "mozilla/a11y/PDocAccessiblePlatformExtParent.h"
+
+namespace mozilla {
+namespace a11y {
+class DocAccessiblePlatformExtParent : public PDocAccessiblePlatformExtParent {
+ public:
+ mozilla::ipc::IPCResult RecvSetPivotBoundaries(
+ PDocAccessibleParent* aFirstDoc, uint64_t aFirst,
+ PDocAccessibleParent* aLastDoc, uint64_t aLast);
+};
+} // namespace a11y
+} // namespace mozilla
+
+#endif
diff --git a/accessible/ipc/extension/android/PDocAccessiblePlatformExt.ipdl b/accessible/ipc/extension/android/PDocAccessiblePlatformExt.ipdl
new file mode 100644
index 0000000000..e0a1043358
--- /dev/null
+++ b/accessible/ipc/extension/android/PDocAccessiblePlatformExt.ipdl
@@ -0,0 +1,36 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* 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 protocol PDocAccessible;
+
+namespace mozilla {
+namespace a11y {
+
+protocol PDocAccessiblePlatformExt {
+ manager PDocAccessible;
+
+child:
+ async __delete__();
+
+ async Pivot(uint64_t aID, int32_t aGranularity, bool aForward, bool aInclusive);
+
+ async NavigateText(uint64_t aID, int32_t aGranularity, int32_t aStartOffset, int32_t aEndOffset, bool aForward, bool aSelect);
+
+ async SetSelection(uint64_t aID, int32_t aStart, int32_t aEnd);
+
+ async Cut(uint64_t aID);
+
+ async Copy(uint64_t aID);
+
+ async Paste(uint64_t aID);
+
+ async ExploreByTouch(uint64_t aID, float aX, float aY);
+
+parent:
+ async SetPivotBoundaries(PDocAccessible aFirstDoc, uint64_t aFirst, PDocAccessible aLastDoc, uint64_t aLast);
+ };
+}
+}
diff --git a/accessible/ipc/extension/android/moz.build b/accessible/ipc/extension/android/moz.build
new file mode 100644
index 0000000000..50871e326b
--- /dev/null
+++ b/accessible/ipc/extension/android/moz.build
@@ -0,0 +1,29 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# 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/.
+
+if CONFIG["ACCESSIBILITY"]:
+ IPDL_SOURCES += ["PDocAccessiblePlatformExt.ipdl"]
+
+ EXPORTS.mozilla.a11y += [
+ "DocAccessiblePlatformExtChild.h",
+ "DocAccessiblePlatformExtParent.h",
+ ]
+
+ SOURCES += [
+ "DocAccessiblePlatformExtChild.cpp",
+ "DocAccessiblePlatformExtParent.cpp",
+ ]
+
+ LOCAL_INCLUDES += [
+ "/accessible/android",
+ "/accessible/generic",
+ "/accessible/ipc/other",
+ "/widget/android",
+ ]
+
+include("/ipc/chromium/chromium-config.mozbuild")
+
+FINAL_LIBRARY = "xul"