1 /* vim: set ts=2 et sw=2 tw=80: */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 
6 #ifndef mozilla_a11y_DocAccessiblePlatformExtChild_h
7 #define mozilla_a11y_DocAccessiblePlatformExtChild_h
8 
9 #include "mozilla/a11y/PDocAccessiblePlatformExtChild.h"
10 
11 namespace mozilla {
12 namespace a11y {
13 
14 class HyperTextAccessibleWrap;
15 class DocAccessibleChild;
16 
17 class DocAccessiblePlatformExtChild : public PDocAccessiblePlatformExtChild {
18  public:
19   mozilla::ipc::IPCResult RecvRangeAt(
20       const uint64_t& aID, const int32_t& aOffset,
21       const EWhichRange& aRangeType, uint64_t* aStartContainer,
22       int32_t* aStartOffset, uint64_t* aEndContainer, int32_t* aEndOffset);
23 
24   mozilla::ipc::IPCResult RecvNextClusterAt(const uint64_t& aID,
25                                             const int32_t& aOffset,
26                                             uint64_t* aNextContainer,
27                                             int32_t* aNextOffset);
28 
29   mozilla::ipc::IPCResult RecvPreviousClusterAt(const uint64_t& aID,
30                                                 const int32_t& aOffset,
31                                                 uint64_t* aPrevContainer,
32                                                 int32_t* aPrevOffset);
33 
34   mozilla::ipc::IPCResult RecvTextForRange(const uint64_t& aID,
35                                            const int32_t& aStartOffset,
36                                            const uint64_t& aEndContainer,
37                                            const int32_t& aEndOffset,
38                                            nsString* aText);
39 
40   mozilla::ipc::IPCResult RecvBoundsForRange(const uint64_t& aID,
41                                              const int32_t& aStartOffset,
42                                              const uint64_t& aEndContainer,
43                                              const int32_t& aEndOffset,
44                                              nsIntRect* aBounds);
45 
46   mozilla::ipc::IPCResult RecvLengthForRange(const uint64_t& aID,
47                                              const int32_t& aStartOffset,
48                                              const uint64_t& aEndContainer,
49                                              const int32_t& aEndOffset,
50                                              int32_t* aLength);
51 
52   mozilla::ipc::IPCResult RecvOffsetAtIndex(const uint64_t& aID,
53                                             const int32_t& aIndex,
54                                             uint64_t* aContainer,
55                                             int32_t* aOffset);
56 
57   mozilla::ipc::IPCResult RecvRangeOfChild(const uint64_t& aID,
58                                            const uint64_t& aChild,
59                                            int32_t* aStartOffset,
60                                            int32_t* aEndOffset);
61 
62   mozilla::ipc::IPCResult RecvLeafAtOffset(const uint64_t& aID,
63                                            const int32_t& aOffset,
64                                            uint64_t* aLeaf);
65 
66   mozilla::ipc::IPCResult RecvAttributedTextForRange(
67       const uint64_t& aID, const int32_t& aStartOffset,
68       const uint64_t& aEndContainer, const int32_t& aEndOffset,
69       nsTArray<TextAttributesRun>* aAttributes);
70 
71   MOZ_CAN_RUN_SCRIPT_BOUNDARY mozilla::ipc::IPCResult RecvSelectRange(
72       const uint64_t& aID, const int32_t& aStartOffset,
73       const uint64_t& aEndContainer, const int32_t& aEndOffset);
74 
75   mozilla::ipc::IPCResult RecvApplyPostSearchFilter(
76       const nsTArray<uint64_t>& aAccessibles, const int32_t& aLimit,
77       const EWhichPostFilter& aSearchKey, const nsString& aSearchText,
78       nsTArray<uint64_t>* aMatches);
79 
80  private:
81   HyperTextAccessibleWrap* IdToHyperTextAccessibleWrap(
82       const uint64_t& aID) const;
83 };
84 }  // namespace a11y
85 }  // namespace mozilla
86 
87 #endif
88