Commit Graph

8326 Commits

Author SHA1 Message Date
Narcis Beleuzu
0bb36c9ac1 Backed out changeset d2b10235d8ac (bug 1624909) for bustages on Pivot.h . CLOSED TREE 2020-05-29 07:05:21 +03:00
Morgan Reschenberg
d013e0b775 Bug 1624909: Create and maintain radio siblings array for position information. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D72751
2020-05-28 15:53:01 +00:00
Razvan Maries
0b581d46a0 Backed out changeset 156d42f01488 (bug 1624909) for build bustages on Pivot.h. CLOSED TREE 2020-05-27 22:49:22 +03:00
Morgan Reschenberg
c29473e265 Bug 1624909: Create and maintain radio siblings array for position information. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D72751
2020-05-27 19:23:32 +00:00
Eitan Isaacson
b0be864424 Bug 1641002 - Map NSAccessibility API to MOXAccessible protocol. r=morgan
Add most attributes getters, setters and actions to prottocol,
autogenerate objective c dictionaries, and implement forwarding
logic from NSAccessibility methods.

Differential Revision: https://phabricator.services.mozilla.com/D76921
2020-05-27 17:26:38 +00:00
Eitan Isaacson
553616aa05 Bug 1641002 - Introduce MOXAccessible protocol and MOXAccessibleBase. r=morgan
This sets up the possibility of moving most non-gecko things to a base class, and
start a protocol to add for all the subclasses to implement as needed.

Differential Revision: https://phabricator.services.mozilla.com/D76920
2020-05-27 17:24:44 +00:00
Emilio Cobos Álvarez
54fd961a29 Bug 1641245 - Make string comparators not virtual. r=froydnj,necko-reviewers,geckoview-reviewers,jgilbert,agi,valentin
There's no use case for stateful comparators, so they can be just plain
function pointers.

This is used in some hot places like CSS selector matching.

Differential Revision: https://phabricator.services.mozilla.com/D77084
2020-05-27 18:11:12 +00:00
Razvan Maries
e44db87b99 Backed out changeset b4c58d9afd4b (bug 1624909) for build bustages on Pivot.h. CLOSED TREE 2020-05-27 21:04:58 +03:00
Morgan Reschenberg
812a214eeb Bug 1624909: Create and maintain radio siblings array for position information. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D72751
2020-05-27 17:51:30 +00:00
Morgan Reschenberg
6b03f5994e Bug 1632252: Replace constructor with AccOrProxy, adjust native getter. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D75354
2020-05-27 15:50:47 +00:00
James Teh
5abc128c45 Bug 1640553 part 3: AccessibleHandler: Use the row/column header ids in the payload to avoid cross-process calls. r=eeejay
1. When we unmarshal a row/column header, cache it so we can get it by id later.
2. get_rowHeaderCells and get_columnHeaderCells use the header ids in the payload.
    If the headers are in the cache (as per 1), return them to the client.
    Otherwise, fall back to a cross-process call, which might happen if we haven't encountered the header yet.

Differential Revision: https://phabricator.services.mozilla.com/D76667
2020-05-26 01:10:22 +00:00
James Teh
fe12e1e987 Bug 1640553 part 2: Include row/column header cell ids in the payload for AccessibleHandler. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D76666
2020-05-26 03:20:07 +00:00
James Teh
61ed1074ea Bug 1640553 part 1: Add the ability for AccessibleHandler to cache accessibles by id. r=eeejay
This cache is cleared when other AccessibleHandler caches are invalidated; i.e. when an event is fired.

Differential Revision: https://phabricator.services.mozilla.com/D76665
2020-05-26 01:10:26 +00:00
Noemi Erli
fe1f281e9e Backed out 3 changesets (bug 1640553) for causing Windows build bustages CLOSED TREE
Backed out changeset 25dd5eeb676f (bug 1640553)
Backed out changeset 4e0cd8a3d83c (bug 1640553)
Backed out changeset 6658e0ae7e35 (bug 1640553)
2020-05-26 03:50:11 +03:00
James Teh
f3893a240b Bug 1640553 part 3: AccessibleHandler: Use the row/column header ids in the payload to avoid cross-process calls. r=eeejay
1. When we unmarshal a row/column header, cache it so we can get it by id later.
2. get_rowHeaderCells and get_columnHeaderCells use the header ids in the payload.
    If the headers are in the cache (as per 1), return them to the client.
    Otherwise, fall back to a cross-process call, which might happen if we haven't encountered the header yet.

Differential Revision: https://phabricator.services.mozilla.com/D76667
2020-05-25 14:43:06 +00:00
James Teh
c664bdb2f9 Bug 1640553 part 2: Include row/column header cell ids in the payload for AccessibleHandler. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D76666
2020-05-25 14:41:42 +00:00
James Teh
32802da1f1 Bug 1640553 part 1: Add the ability for AccessibleHandler to cache accessibles by id. r=eeejay
This cache is cleared when other AccessibleHandler caches are invalidated; i.e. when an event is fired.

Differential Revision: https://phabricator.services.mozilla.com/D76665
2020-05-25 14:35:09 +00:00
James Teh
7dafc35406 Bug 1638238: Cache previous column header for each cell to make TableCellAccessible::ColHeaders faster. r=eeejay
Previously, to get the column headers for a cell when there weren't explicit headers, we walked over all previous cells in the column looking for headers.
For large tables with thousands of rows, this was very expensive, particularly when Windows screen readers rendered virtual buffers, fetching headers for all cells.

To speed this up, we now lazily cache the previous column header for each cell.
We even cache whether there is no previous header, since that is quite common and we don't want to pointlessly walk in that case.
Subsequent cells utilise the cached values (if any) for prior cells.

We don't store the cache on individual TableCellAccessibles because that would require us to walk all cells to invalidate the cache, even if few or no cells had cached values.
Instead, we store the cache as a hash table on the TableAccessible.
This way, we can just clear the cache whenever a column header is added to the tree.

We invalidate the cache whenever a column header is bound to its parent.
We don't need to invalidate the cache for removals because we instead just ignore defunct Accessibles in the cache.

Differential Revision: https://phabricator.services.mozilla.com/D76106
2020-05-25 14:15:57 +00:00
Emilio Cobos Álvarez
89958b377a Bug 1640605 - Remove IsInAnonymousSubtree / IsRootOfAnonymousSubtree. r=edgar
In favor of the NativeAnonymous versions which they forward to.

Done automatically with:

  rg -l 'IsInAnonymousSubtree' | xargs sed -i 's/IsInAnonymousSubtree/IsInNativeAnonymousSubtree/g'

And removing the function definitions afterwards.

Differential Revision: https://phabricator.services.mozilla.com/D76681
2020-05-25 11:43:51 +00:00
Sylvestre Ledru
615c83d723 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D76451
2020-05-25 07:42:38 +00:00
Bogdan Tara
6bd3bb7800 Backed out changeset d9a39c63e40e (bug 1624909) for Pivot.h related bustages CLOSED TREE 2020-05-22 02:58:12 +03:00
Morgan Reschenberg
7a58efe041 Bug 1624909: Create and maintain radio siblings array for position information. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D72751
2020-05-21 23:36:13 +00:00
James Teh
be8c555522 Bug 1409084: Map inputs with a list attribute to role EDITCOMBOBOX. r=eeejay
Previously, we mapped these to ENTRY.
This is incorrect according to the HTML AAM spec and causes problems for JAWS.

Differential Revision: https://phabricator.services.mozilla.com/D76066
2020-05-20 23:58:22 +00:00
Eitan Isaacson
d623bd478b Bug 1638147 - Introduce tests for MathML accessibility support on mac. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D75425
2020-05-20 23:53:46 +00:00
Eitan Isaacson
1a6f602dff Bug 1639623 - Support AXPress on radio buttons and remove action description. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D76175
2020-05-20 23:48:30 +00:00
Yura Zenevich
5b6445cb0e Bug 1639399 - expose uniqueID property on the xpcAccessible. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D76072
2020-05-20 00:11:20 +00:00
James Teh
5af2a7d076 Bug 1639108: Use the end offset for e10s IAccessibleText::newText instead of the length. r=eeejay
Previously, we were incorrectly using the length.

Differential Revision: https://phabricator.services.mozilla.com/D75897
2020-05-19 16:30:20 +00:00
Coroiu Cristina
239a24caab Bug 1630208 - disable browser_test_zoom_text.js on linux 64 fission for frequent failures r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D75705
2020-05-17 19:28:28 +00:00
Emilio Cobos Álvarez
c12d8705fe Bug 1638703 - Flush layout explicitly in some a11y non-e10s tests. r=Jamie
These tests insert a <browser> into the DOM via tabbrowser, and
immediately try to get a hold to the underlying document right after.

However the a11y tree is constructed after frame construction, and with
bug 1584935 there's no longer a guarantee that it gets done in time
without these explicit flushes.

Note that I couldn't reproduce these failures locally, so take the
diagnostic with a grain of salt, but I believe it's accurate and that
this is the right fix.

Differential Revision: https://phabricator.services.mozilla.com/D75715
2020-05-17 22:08:47 +00:00
Eitan Isaacson
37b62ce349 Bug 1625192 - Introduce test for select dropdown. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D75136
2020-05-15 21:27:57 +00:00
Eitan Isaacson
96db37abd6 Bug 1625192 - Support select element and its dropdown menu. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D75135
2020-05-15 21:31:08 +00:00
Aaron Klotz
da67dfa6bb Bug 1637452: Part 9 - Fix JNI includes in accessible/android; r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D75372
2020-05-15 17:04:36 +00:00
Emilio Cobos Álvarez
b9c1bf761c Bug 312971 - Unprefix -moz-read-write / -moz-read-only. r=edgar
And remove some duplicated tests from WPT.

Differential Revision: https://phabricator.services.mozilla.com/D75231
2020-05-14 16:46:08 +00:00
James Teh
d09d8b85c6 Bug 1572852: a11y::Logging::LogDocShellTree: Make it clear that this is in-process DocShell tree info. r=yzen
For an OOP iframe, the logged parent will be null and the logged root won't be the real top level document.
This is just the way things are and this might still be useful info sometimes, so we still log it, but make it clear in the log message that it's about the in-process tree.

Differential Revision: https://phabricator.services.mozilla.com/D74587
2020-05-11 14:38:53 +00:00
Marco Zehe
bc8f0b63cb Bug 1635538 - Correct the AXRole for image maps, r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D75030
2020-05-13 20:07:42 +00:00
Marco Zehe
7215ba00a1 Bug 1635527 - Correct AXRole for status bar, r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D75028
2020-05-13 20:06:51 +00:00
James Teh
d24d857a51 Bug 1628582: Set DocAccessibleParent::mDocProxyStream on the child document, not the parent document. r=yzen
DocAccessibleParent::AddChildDoc sends a COM proxy for the embedded document to the embedder process hosting the iframe.
This gets returned as the child of the embedder OuterDocAccessible.
Whenever we send a proxy to a content process, we must hold a PreservedStreamPtr in the parent process.
Previously, we set mDocProxyStream on the parent (embedder) document.
However, if a document had multiple OOP iframes, this meant we  ended up losing the PreservedStreamPtr for all but the last added child OOP document.
We now set mDocProxyStream on the child document instead, since there can only be one embedder OuterDocAccessible per child document.

Differential Revision: https://phabricator.services.mozilla.com/D74584
2020-05-11 14:41:57 +00:00
Eitan Isaacson
c1c0b3551c Bug 1625184 - Map dialogs and alert dialogs correctly in Mac. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D74957
2020-05-13 05:59:23 +00:00
James Teh
535261ca3d Bug 1637474 part 2: Disconnect accSelection IEnumVARIANT and IAccessibleRelation objects when their associated Accessible is shut down. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D75000
2020-05-13 05:55:02 +00:00
James Teh
ca670d92d5 Bug 1637474 part 1: Provide a way to associate COM objects with an AccessibleWrap so they will be disconnected from remote clients when the Accessible shuts down. r=MarcoZ
To improve performance for cross-process COM, we disable COM garbage collection in content processes for calls from our parent process.
However, this means we don't receive Release calls from in-process a11y clients.
For an Accessible, we get around this by explicitly disconnecting remote clients when the Accessible shuts down.
This doesn't cover COM objects which aren't interfaces of an Accessible; i.e. where the object has a different IUnknown to the Accessible.
This patch adds AccessibleWrap::AssociateCOMObjectForDisconnection to allow these objects to be tracked.
Tracked objects are then disconnected when the Accessible shuts down.

Differential Revision: https://phabricator.services.mozilla.com/D74999
2020-05-13 05:52:42 +00:00
Eitan Isaacson
c5398f4399 Bug 1625196 - Support select[multiple] and role=listbox/option. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D72485
2020-05-12 23:28:34 +00:00
Eitan Isaacson
4b897ca7d9 Bug 1625196 - Add attribute setting methods to nsIAccessibleMacInterface. r=morgan
This is needed since selection is done by setting attributes.

Differential Revision: https://phabricator.services.mozilla.com/D72483
2020-05-12 23:28:34 +00:00
Eitan Isaacson
c14ec1babc Bug 1625196 - Prune proxy accessibles with nsAccUtils::MustPrune(). r=morgan
Platform accessibles from proxies were not getting pruned. Also, there is no need
to walk up ancestors to find a pruning container since all pruning containers have direct
leaf children.

Differential Revision: https://phabricator.services.mozilla.com/D72482
2020-05-12 18:39:06 +00:00
Eitan Isaacson
f395ad8878 Bug 1635517 - Ignore all invisible XUL elements. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D74433
2020-05-12 17:26:34 +00:00
Eitan Isaacson
ac48c6ea9a Bug 1635517 - Filter ignored mac accessible objects from platform tree. r=morgan
Also, allow parent accessibles to ignore certain children.

Differential Revision: https://phabricator.services.mozilla.com/D74432
2020-05-12 19:06:02 +00:00
Eitan Isaacson
567a8af15c Bug 1635517 - Update deprecated accessibilityIsIgnored to isAccessibilityElement. r=spohl
Differential Revision: https://phabricator.services.mozilla.com/D74431
2020-05-12 17:39:18 +00:00
Marco Zehe
6c331c5c53 Bug 1635483 - Avoid unnecessary IPC calls when calculating subroles for landmarks, r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D74008
2020-05-11 17:51:12 +00:00
Eitan Isaacson
11ab196725 Bug 1634619 - Back out focusable state changes on overflow events. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D74487
2020-05-11 00:21:21 +00:00
James Teh
09a25365d2 Bug 1572860: Remove the ability for an outer document to override live region markup in an inner iframe document. r=MarcoZ
This is something that was implemented a long time ago, but it isn't covered in any spec, other browsers don't implement it and I don't know of any usage in the wild.
This doesn't work with OOP iframes, since what we're doing here requires the documents to be in the same process.
Given it isn't used or specified, the simplest solution is to just remove the behaviour altogether.

Differential Revision: https://phabricator.services.mozilla.com/D74628
2020-05-11 11:13:43 +00:00
James Teh
9f69f88101 Bug 1628415 part 3: Remove XULListboxAccessible::Value. r=MarcoZ
This depends on richlistitem's nsIDOMXULSelectControlItemElement::label implementation, which does the wrong thing in several cases.
We could make this use a11y name computation, but I can't find any other list box implementation that exposes accessible value on the list box itself, so I don't see any reason to keep this.

Differential Revision: https://phabricator.services.mozilla.com/D74372
2020-05-08 04:28:11 +00:00