Commit Graph

71 Commits

Author SHA1 Message Date
James Teh
5a3fe47fee Bug 1372296: Unify ScrollSubstringToPoint for local and remote Accessibles, thus enabling support for RemoteAccessible on Windows. r=eeejay
Eventually, the bulk of this functionality should be moved to TextLeafRange.
In the meantime, let's get rid of the platform specific ugliness here.

Differential Revision: https://phabricator.services.mozilla.com/D185263
2023-08-08 05:18:55 +00:00
Narcis Beleuzu
77fae04444 Backed out changeset 270594af44f1 (bug 1372296) for bustages on ia2AccessibleText.cpp 2023-08-08 07:44:53 +03:00
James Teh
fd499b63dc Bug 1372296: Unify ScrollSubstringToPoint for local and remote Accessibles, thus enabling support for RemoteAccessible on Windows. r=eeejay
Eventually, the bulk of this functionality should be moved to TextLeafRange.
In the meantime, let's get rid of the platform specific ugliness here.

Differential Revision: https://phabricator.services.mozilla.com/D185263
2023-08-08 00:59:25 +00:00
Nathan LaPre
ae9a5fd699 Bug 1840732 Part 4: Remove unnecessary includes from accessible/xpcom, r=Jamie
This revision removes unnecessary include directives from cpp files in the
accessible/xpcom directory. These suggestions came from the Include What You
Use tool.

Depends on D182398

Differential Revision: https://phabricator.services.mozilla.com/D182399
2023-07-07 03:22:08 +00:00
James Teh
a385baf40d Bug 1837332: Remove unused HyperTextAccessible::EnclosingRange/VisibleRanges/RangeByChild/RangeAtPoint, TextRange::EmbeddedChildren/Text and xpcAccessibleTextRange::ScrollIntoView. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D180301
2023-06-14 00:43:11 +00:00
James Teh
099028e248 Bug 1828295 part 3: Add tests for GetCaretRect. r=morgan
This required exposing GetCaretRect via XPCOM.

Differential Revision: https://phabricator.services.mozilla.com/D179346
2023-05-31 10:04:18 +00:00
Natalia Csoregi
e0b44e24bd Backed out 3 changesets (bug 1828295) for causing failures on browser_caret_rect.js. CLOSED TREE
Backed out changeset 52b9bf7e6344 (bug 1828295)
Backed out changeset 6e6ee5fe337f (bug 1828295)
Backed out changeset 4e8ff9c439ef (bug 1828295)
2023-05-31 08:44:34 +03:00
James Teh
12ecfea9b2 Bug 1828295 part 3: Add tests for GetCaretRect. r=morgan
This required exposing GetCaretRect via XPCOM.

Differential Revision: https://phabricator.services.mozilla.com/D179346
2023-05-31 03:43:29 +00:00
Eitan Isaacson
ffd44071a4 Bug 1832353 - P3: Make editable text methods async and return void. r=Jamie,ipc-reviewers,mccr8
Depends on D178715

Differential Revision: https://phabricator.services.mozilla.com/D178724
2023-05-26 22:17:12 +00:00
Noemi Erli
639d4fa3c6 Backed out 6 changesets (bug 1832353, bug 1821965) for causing build bustages in GeckoTextMarker.mm
Backed out changeset 6df0877f288a (bug 1821965)
Backed out changeset e663ccc0334e (bug 1821965)
Backed out changeset 36b250225e50 (bug 1821965)
Backed out changeset 6df5d07bf19f (bug 1832353)
Backed out changeset 409966c76f0f (bug 1832353)
Backed out changeset 3be446e44436 (bug 1832353)
2023-05-26 02:48:29 +03:00
Eitan Isaacson
17da3db56a Bug 1832353 - P3: Make editable text methods async and return void. r=Jamie,ipc-reviewers,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D178724
2023-05-25 20:38:29 +00:00
James Teh
0ac5aa0568 Bug 1821956 part 8: Remove most of the remaining parts of Windows RemoteAccessible. r=nlapre
This only worked with the COM proxy architecture.
It cannot be used with the cache active.
This includes ScrollSubstringToPoint, and since that isn't currently supported by the cache, it isn't supported at all on Windows now.
However, no one seems to use this on Windows and this implementation can't be used with the cache active anyway.

Differential Revision: https://phabricator.services.mozilla.com/D177901
2023-05-21 22:23:48 +00:00
James Teh
9d71e92d3b Bug 1821957: Remove RemoteAccessible methods which are already supported by RemoteAccessibleBase/CachedTableAccessible/CachedTableCellAccessible or are no longer used. r=eeejay,ipc-reviewers,mccr8
This removes the following RemoteAccessible methods:

Name
Value
Step
Description
Help
State
Bounds
BoundsInCSSPixels
Language
Attributes
RelationByType
CurValue
MinValue
MaxValue
OffsetAtPoint
TextSubstring
TextBeforeOffset
TextAtOffset
TextAfterOffset
RemoveFromSelection
CaretOffset
SetCaretOffset
ScrollSubstringTo
DOMNodeID
TakeFocus
ChildAtPoint
GroupPosition
SetSelectionBoundsAt
IsSearchbox
LandmarkRole
CharacterCount
SelectionCount
CharAt
TextAttributes
DefaultTextAttributes
TextBounds
CharBounds
SelectionBoundsAt
Text
StartOffset
EndOffset
LinkCount
LinkIndexAtOffset
TableIsProbablyForLayout
SelectedItems
SelectedItemCount
GetSelectedItem
IsItemSelected
AddItemToSelection
RemoveItemFromSelection
SelectAll
UnselectAll
DoAction
ActionCount
ActionNameAt
AccessKey
Extents
AtkKeyBinding
NativeState
Relations
ImagePosition
ImageSize
TableSummary
TableRowAndColumnIndicesAt
TableSelectedCellCount
TableSelectedColumnCount
TableSelectedRowCount
TableSelectedCells
TableSelectedCellIndices
TableOfACell
ColIdx
RowIdx
GetPosition
ColExtent
RowExtent
GetColRowExtents
ColHeaderCells
RowHeaderCells
IsCellSelected
TableCaption
TableColumnCount
TableRowCount
TableCellAt
TableCellIndexAt
TableColumnIndexAt
TableRowIndexAt
TableColumnExtentAt
TableRowExtentAt
TableColumnDescription
TableRowDescription
TableColumnSelected
TableRowSelected
TableSelectedColumnIndices
TableSelectedRowIndices
TableSelectColumn
TableSelectRow
TableUnselectColumn
TableUnselectRow
AtkTableColumnHeader
AtkTableRowHeader

Differential Revision: https://phabricator.services.mozilla.com/D177873
2023-05-21 02:44:36 +00:00
James Teh
ddfdb64368 Bug 1821955 part 5: Change all CtW pref checks to use a11y::IsCacheActive. r=eeejay,taskgraph-reviewers,bhearsum
This was done using the following script:

```
matchingFiles=`git grep -l accessibility_cache_enabled`
sed -i 's/StaticPrefs::accessibility_cache_enabled_AtStartup/a11y::IsCacheActive/' $matchingFiles
for f in $matchingFiles; do
  usesA11yPref=
  grep -q StaticPrefs::accessibility_ $f && usesA11yPref=1
  hasA11yInclude=
  grep -q 'nsAccessibilityService.h' $f && hasA11yInclude=1
  if [ -z $usesA11yPref ] && [ -z $hasA11yInclude ]; then
    sed -i 's,mozilla/StaticPrefs_accessibility.h,nsAccessibilityService.h,' $f
  elif [ -z $usesA11yPref ] && [ $hasA11yInclude ]; then
    sed -i '/"mozilla.StaticPrefs_accessibility.h"/d' $f
  elif [ $usesA11yPref ] && [ -z $hasA11yInclude ]; then
    sed -i '/"mozilla.StaticPrefs_accessibility.h"/a#include "nsAccessibilityService.h"' $f
  fi
done
```

Differential Revision: https://phabricator.services.mozilla.com/D177722
2023-05-19 02:56:48 +00:00
Eitan Isaacson
7c8e90480f Bug 1826264 - P2: Add range TextLeafRange::ScrollIntoView. r=Jamie
Use it when caching is enabled.

Differential Revision: https://phabricator.services.mozilla.com/D174977
2023-04-13 20:40:19 +00:00
Eitan Isaacson
1da11845ac Bug 1826852 - Use caching version of CharAt when available. r=nlapre
Differential Revision: https://phabricator.services.mozilla.com/D174971
2023-04-11 21:58:09 +00:00
Eitan Isaacson
64a2b30dfe Bug 1811092 - P2: Add async text selection removal message. r=Jamie
Depends on D167201

Differential Revision: https://phabricator.services.mozilla.com/D167202
2023-01-27 20:15:12 +00:00
Eitan Isaacson
8e8b337a1c Bug 1811092 - P1: Add new async add/set text selection message. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D167201
2023-01-27 20:15:11 +00:00
James Teh
b45027e23b Bug 1784841: Use unified OffsetAtPoint in platform specific code. r=morgan
Most importantly, this means OffsetAtPoint is now supported for cached RemoteAccessible on Windows.
I also included a drive-by fix to make ATK use the unified CharacterCount method instead of the old unnecessary conditional local/remote paths.

Differential Revision: https://phabricator.services.mozilla.com/D154628
2022-08-17 04:59:12 +00:00
James Teh
2c7ca10cac Bug 1766546: Implement SetCaretOffset for cached Windows RemoteAccessible. r=morgan
We implement setting of the caret using HyperText rather than TextLeafPoint because caret stuff, including events, still uses HyperText internally for now.

This moves the async IPDL method already used on non-Windows into the base classes so Windows can use it.
We keep the COM implementation for Windows RemoteAccessible without the cache.
SetCaretOffset was moved into HyperTextAccessibleBase and platform methods were updated accordingly.
Finally, I did some drive-by cleanup (no user impact) and changed GetCaretOffset in ATK and XPCOM to use HyperTextAccessibleBase.
GetCaretOffset was moved to the base some time ago, but ATK and XPCOM weren't updated at the time.

Differential Revision: https://phabricator.services.mozilla.com/D147852
2022-06-01 19:34:09 +00:00
Morgan Reschenberg
996b9533c9 Bug 1735101: Cache char, line coordinate info to support computing TextBounds and CharBounds in the parent process r=Jamie
Depends on D144767

Differential Revision: https://phabricator.services.mozilla.com/D143527
2022-05-09 20:30:27 +00:00
James Teh
03d2f4a216 Bug 1760939 part 2: Move LinkCount to HyperTextAccessibleBase. r=eeejay
This updates the XPCOM, ATK and Windows implementations too.

Differential Revision: https://phabricator.services.mozilla.com/D142028
2022-04-11 23:20:14 +00:00
James Teh
89646bc72b Bug 1741793 part 5: Update XPCOM, Windows and ATK to support cached text selection querying. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D139344
2022-02-26 23:01:56 +00:00
James Teh
c612403115 Bug 1741793 part 2: Update TextPoint/Range to use base Accessible. r=eeejay
Even though we'd ideally be using TextLeafRange for new things, TextRange is still needed by our selection events (which still use HyperText offsets) and IA2/ATK clients which depend on HyperText offsets.
Thus, we need TextRange to support RemoteAccessible.

Although the start and end containers are HyperTextAccessibles, I chose to store Accessible rather than HyperTextAccessibleBase because HyperTextAccessibleBase doesn't inherit from Accessible and having an Accessible is easier.

XPCOM needs to hold a reference to any state objects.
Because we can't hold a reference to an Accessible (due to RemoteAccessible), xpcAccessibleTextRange holds references to xpcAccessibleHyperText instead.

Differential Revision: https://phabricator.services.mozilla.com/D139341
2022-02-26 23:01:54 +00:00
James Teh
e27e61ccef Bug 1730086 part 3: Rename RemoteAccessible::GetTextBefore/AfterOffset to TextBefore/AfterOffset, have it override HyperTextAccessibleBase and use the base methods in ATK/XPCOM. r=morgan
This also unifies the code path for TextAtOffset in ATK, rather than having different local and remote code paths.
This isn't strictly related to this patch series, but this change was missed before, so I took the opportunity to deal with it here.

Differential Revision: https://phabricator.services.mozilla.com/D137504
2022-02-04 02:10:28 +00:00
Morgan Reschenberg
a626fee84a Bug 1748878: Use LayoutDeviceInt types for points, rects, sizes in dev pixels r=Jamie,emilio
Differential Revision: https://phabricator.services.mozilla.com/D135272
2022-01-18 23:31:21 +00:00
Butkovits Atila
906de52c9f Backed out changeset 6c3a672524b7 (bug 1748878) for causing accessibility crashes. a=backout 2022-01-20 17:24:17 +02:00
Morgan Reschenberg
9415297eaf Bug 1748878: Use LayoutDeviceInt types for points, rects, sizes in dev pixels r=Jamie,emilio
Differential Revision: https://phabricator.services.mozilla.com/D135272
2022-01-18 23:31:21 +00:00
James Teh
58cba1faf6 Bug 1742917 part 4: Move LinkIndexAtOffset to HyperTextAccessibleBase. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D132201
2021-12-02 06:55:29 +00:00
James Teh
011883e63c Bug 1742917 part 3: Move LinkIndexOf to HyperTextAccessibleBase. r=eeejay
I removed the sync IPDL implementation of LinkIndexOf because we can calculate this in the parent process even with the cache disabled.

Differential Revision: https://phabricator.services.mozilla.com/D132200
2021-12-02 06:55:28 +00:00
James Teh
a83e7d9799 Bug 1730096 part 8: Move DefaultTextAttributes to HyperTextAccessibleBase and implement it for RemoteAccessible. r=eeejay
This patch includes ATK and XPCOM support.

Differential Revision: https://phabricator.services.mozilla.com/D129474
2021-11-01 23:27:39 +00:00
James Teh
03c484030f Bug 1730096 part 3: Add HyperTextAccessibleBase::TextAttributes. r=eeejay
This uses TextLeafPoint.
This patch includes support for ATK, IA2 and XPCOM.
As with TextAtOffset, HyperTextAccessible calls the base implementation if the cache is enabled, but otherwise uses the old implementation for now.

Differential Revision: https://phabricator.services.mozilla.com/D129469
2021-11-01 23:27:37 +00:00
James Teh
7e6e1926c8 Bug 1735722 part 2: Add HyperTextAccessibleBase::LinkAt. r=morgan
This uses the unified Accessible::EmbeddedChildAt from the previous patch.
HyperTextAccessible::LinkAt still exists, since there are still some callers that depend on it returning a LocalAccessible.
xpcAccessibleHyperText has also been updated to call this, which means tests will work on Windows when the cache is enabled.

Differential Revision: https://phabricator.services.mozilla.com/D128551
2021-10-19 03:57:18 +00:00
James Teh
6e30838c20 Bug 1733514 part 4: Add xpcAccessibleHyperText::Intl and use it for methods which are supported by HyperTextAccessibleBase. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D128034
2021-10-12 23:43:08 +00:00
James Teh
6400ee852c Bug 1733514 part 3: Rename xpcAccessibleHyperText::Intl to IntlLocal. r=eeejay
This is to make way for a new Intl which returns HyperTextAccessibleBase.

Differential Revision: https://phabricator.services.mozilla.com/D128033
2021-10-12 23:43:08 +00:00
James Teh
2b9eb69474 Bug 1733514 part 2: Rename RemoteAccessible::GetTextAtOffset to TextAtOffset and have it override HyperTextAccessibleBase. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D128032
2021-10-12 23:43:07 +00:00
Eitan Isaacson
1d61cedf0e Bug 1714390 - P2: Use AccAttributes for accessible and text attributes. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D116783
2021-06-10 23:07:05 +00:00
Mike Hommey
eae0e77b68 Bug 1711811 - Remove code that dereferences an uninitialized pointer in xpcAccessibleHyperText::Get*TextAttributes. r=Jamie
Likely, the code is never used.

Differential Revision: https://phabricator.services.mozilla.com/D115444
2021-05-19 08:01:47 +00:00
Eitan Isaacson
f218833222 Bug 1695765 - Use Accessible base type in XPCOM instead of AccessibleOrProxy. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D104927
2021-03-09 04:09:03 +00:00
Cosmin Sabou
c46323d0e3 Backed out changeset fd254f9f8ae1 (bug 1695765) for causing xpcAccessible related bustages. CLOSED TREE 2021-03-05 08:51:53 +02:00
Eitan Isaacson
81c5826442 Bug 1695765 - Use Accessible base type in XPCOM instead of AccessibleOrProxy. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D104927
2021-03-05 05:47:16 +00:00
Butkovits Atila
3c5d0d93b3 Backed out changeset 858bc4755aae (bug 1695765) for causing failures at xpcAccessibleGeneric.h. CLOSED TREE 2021-03-04 02:17:36 +02:00
Eitan Isaacson
4f39103aa7 Bug 1695765 - Use Accessible base type in XPCOM instead of AccessibleOrProxy. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D104927
2021-03-03 22:56:45 +00:00
Eitan Isaacson
a434046b4c Bug 1693597 - P2: Rename ProxyAccessible to RemoteAccessible. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D105671
2021-02-19 23:14:33 +00:00
Eitan Isaacson
c1ef28b8c2 Bug 1693597 - P1: Rename Accessible to LocalAccessible. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D105670
2021-02-19 23:14:32 +00:00
Eitan Isaacson
dd2f95aa73 Bug 1693607 - [Linux] Add braces around statements. r=morgan
This is a collaboration between clang-tidy and clang-format.

clang-tidy uses compiled code paths, so this patch is linux specific.

Differential Revision: https://phabricator.services.mozilla.com/D105669
2021-02-19 23:14:32 +00:00
Andi-Bogdan Postelnicu
b6ead28014 Bug 1683561 - Make accessibility buildable outside of unified-build environment. r=sg
Differential Revision: https://phabricator.services.mozilla.com/D100212
2021-01-05 09:47:12 +00:00
Jonathan Watt
9dfbddb0c2 Bug 1634217. Make accessible/ buildable outside of unified-build environment. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D73176
2020-05-01 04:28:35 +00:00
Yura Zenevich
c3f4d8dbee Bug 1595979 - add zoom text hittest b-c test. Implement OffsetAtPoint for XPCOM on Windows with e10s. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D69824
2020-04-14 23:57:42 +00:00
Gabriele Svelto
eeb9bfc398 Bug 1600545 - Remove useless inclusions of header files generated from IDL files in accessible/, browser/, caps/, chrome/, devtools/, docshell/, editor/, extensions/, gfx/, hal/, image/, intl/, ipc/, js/, layout/, and media/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55443
2019-12-06 09:16:44 +00:00