Commit Graph

8670 Commits

Author SHA1 Message Date
Eitan Isaacson
c4c117984b Bug 1654679 - Add selected text marker range to text selection changed events. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D84616
2020-07-23 16:29:19 +00:00
James Teh
fa611658d4 Bug 1368270: When shutting down Windows AccessibleWraps, don't clear the id. r=MarcoZ
When an Accessible is shut down, there might still be external references to it, so we keep the instance alive.
We don't want to reuse the id until all references are released, so we only release the id in the destructor (which runs when all references are released).
Previously, we were clearing the id variable in Shutdown, which meant we couldn't release the id in the destructor!
This meant we always leaked ids, never reusing them.
Now, we don't clear the id in Shutdown.

Differential Revision: https://phabricator.services.mozilla.com/D84653
2020-07-23 11:18:57 +00:00
Bogdan Tara
c61d07ee89 Backed out changeset 290c72f07e0c (bug 1654679) for es lint failure on browser_text_input.js CLOSED TREE 2020-07-23 09:05:54 +03:00
Eitan Isaacson
089db2c536 Bug 1654679 - Add selected text marker range to text selection changed events. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D84616
2020-07-23 04:52:00 +00:00
Eitan Isaacson
6da8e46f49 Bug 1654444 - Check text change element on webarea dispatched text events. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D84551
2020-07-22 18:04:24 +00:00
Eitan Isaacson
6233e4868e Bug 1654601 - Ensure given text marker is valid in public API. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D84567
2020-07-22 18:08:10 +00:00
Morgan Reschenberg
7de6a01c17 Bug 1648813: Retreive iframe doc from top-level doc if load events are passed out of order. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D84250
2020-07-21 23:57:12 +00:00
Eitan Isaacson
7927ccf478 Bug 1653421 - Part 6: Introduce tests for text change events. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D84058
2020-07-21 23:03:04 +00:00
Eitan Isaacson
8216f98213 Bug 1653421 - Part 5: Add xpc mac event interface so we can include data. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D84057
2020-07-21 23:03:02 +00:00
Eitan Isaacson
42dcf89b84 Bug 1653421 - Part 4: Pass data with text value change events. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D84056
2020-07-21 23:03:00 +00:00
Eitan Isaacson
1d2bd5cd78 Bug 1653421 - Part 3: Don't normalize marker beyond editable root. r=morgan
When in an editable container, text markers are expected to not go past or before the editable root.

Differential Revision: https://phabricator.services.mozilla.com/D84055
2020-07-21 23:02:57 +00:00
Eitan Isaacson
c52b49a014 Bug 1653421 - Part 2: Add attributed string for range getter. r=morgan
This doesn't actually add any attributes yet.
VoiceOver uses this instead of the plain string equivalent.

Differential Revision: https://phabricator.services.mozilla.com/D84054
2020-07-21 23:02:55 +00:00
Eitan Isaacson
66653fbad1 Bug 1653421 - Part 1: Refactor AccessibleWrap event handling. r=morgan
I split the switch statement into two: the first switch determines the
MOX target accessible. The second one does all the rest. This makes it more
readable and scalable when we add more events that need to be accompanied with
data.

Differential Revision: https://phabricator.services.mozilla.com/D84053
2020-07-21 23:02:53 +00:00
Morgan Reschenberg
a707c0c636 Bug 1643765: Add moxUnignoredChildren getter to MOXAccessibleBase r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D80983
2020-07-21 20:41:55 +00:00
Eitan Isaacson
cfcad506f6 Bug 1628236 - Add cell getter and column headers attribute to tables. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D84249
2020-07-21 20:58:36 +00:00
Dorel Luca
560f272fda Backed out changeset a83d85107142 (bug 1628236) for OSX build bustage on mozTableAccessible.h. CLOSED TREE 2020-07-21 22:49:30 +03:00
Eitan Isaacson
a024bafebe Bug 1628236 - Add cell getter and column headers attribute to tables. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D84249
2020-07-21 16:43:28 +00:00
Eitan Isaacson
906483c74e Bug 1653039 - Add word at marker APIs. r=morgan
This patch adds several new parameters:
* AXLeftWordTextMarkerRangeForTextMarker
* AXRightWordTextMarkerRangeForTextMarker
* AXStartTextMarkerForTextMarkerRange
* AXEndTextMarkerForTextMarkerRange
* AXNextTextMarkerForTextMarker
* AXPreviousTextMarkerForTextMarker

Our word boundaries API is pretty buggy. Instead of trying to
resolve or triage each issue I found, I added todo tests
for them.

Differential Revision: https://phabricator.services.mozilla.com/D83680
2020-07-20 22:53:04 +00:00
James Teh
7821989f81 Bug 1420529: Don't fire immediate events on a DocAccessible whose tree isn't constructed yet. r=eeejay
For remote documents, the DocAccessibleChild isn't created until the tree is constructed.
This means we can't send events to the parent process and thus to the client.
We shouldn't fire these events in the first place, since this makes events inconsistent for local and remote documents.

Differential Revision: https://phabricator.services.mozilla.com/D83605
2020-07-19 22:46:33 +00:00
Marco Bonardo
9cba702385 Bug 1653611 - Make UrlbarProvider.cancelQuery optional. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D83974
2020-07-17 19:55:30 +00:00
Eitan Isaacson
47eeb74440 Bug 1652211 - Create and destroy xul tooltips as they appear and go away. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D83408
2020-07-16 17:51:22 +00:00
Kashav Madan
46c04e90f2 Bug 1596738 - Don't focus the tab's content area for restores triggered by DocumentChannel process switches, r=dao,nika,mixedpuppy
This causes the browser to steal focus from any element that was focused prior
to the completion of the remoteness flip. This is particularly a problem for
fission because every cross-origin navigation requires a process switch.

This code is still necessary for "normal" session restores (see bug 1410591),
but focus is handled elsewhere for remote navigations.

Differential Revision: https://phabricator.services.mozilla.com/D82783
2020-07-15 23:09:09 +00:00
Simon Giesecke
d3d071323d Bug 1652021 - Remove unnecessary includes from Accessible.h. r=surkov
Differential Revision: https://phabricator.services.mozilla.com/D83112
2020-07-15 13:46:02 +00:00
Simon Giesecke
96fb649d21 Bug 1652017 - Remove unnecessary includes for expensive nsIFrame.h. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D83111
2020-07-15 13:44:39 +00:00
Csoregi Natalia
d74107a680 Backed out changeset 99402617d852 (bug 1652211) for failures on test_tooltip.xhtml. CLOSED TREE 2020-07-15 07:06:48 +03:00
Eitan Isaacson
a1dcb0fa34 Bug 1370669 - Don't queue redundant hide events. r=Jamie
An accessible can be hidden twice in a mutation event queue. With the first
time representing a move. Instead of queueing a second hide event,
simply drop it.

Differential Revision: https://phabricator.services.mozilla.com/D83373
2020-07-14 21:24:22 +00:00
Eitan Isaacson
c43598ec97 Bug 1652211 - Create and destroy xul tooltips as they appear and go away. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D83408
2020-07-14 21:20:51 +00:00
James Teh
3b449c5301 Bug 1652439: Null check the root accessible when handling QueryService to SID_IAccessibleContentDocument in content processes. r=MarcoZ
Accessible::RootAccessible() returns null on the ApplicationAccessible.
We weren't null checking this previously, so QueryService for SID_IAccessibleContentDocument on the ApplicationAccessible in a content process would crash.
This is rare, but JAWS does sometimes trigger it.

Differential Revision: https://phabricator.services.mozilla.com/D83452
2020-07-14 04:55:56 +00:00
longsonr
c2fc063be0 Bug 1652254 - Remove svg from some moz.build local includes r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D83247
2020-07-12 16:38:26 +00:00
James Teh
947ab30aca Bug 1650462: Don't include group descendants when calculating the acc name of treeitems. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D83042
2020-07-13 01:32:33 +00:00
Harry Twyford
f9ae9c43a1 Bug 1648468 - Part 6 - Resolve a11y focus issue causing a failure in browser_test_focus_urlbar.js. r=adw
The line that adds `suggestedIndex` in the test should also fix bug 1652138.

Differential Revision: https://phabricator.services.mozilla.com/D83244
2020-07-12 21:55:25 +00:00
James Teh
eee112f8f9 Bug 1647666: test_doc_busy.html: Handle the case where the busy change and not-busy change events are coalesced out of existence. r=yzen
Also removed debug logging, as well as about:blank check which turned out not to be the cause of the timeout.

Differential Revision: https://phabricator.services.mozilla.com/D82137
2020-07-12 14:56:23 +00:00
Csoregi Natalia
af5cff556a Backed out 6 changesets (bug 1648468) for failures on test_keywords.js. CLOSED TREE
Backed out changeset 918db5010acb (bug 1648468)
Backed out changeset 91a4b5b593bf (bug 1648468)
Backed out changeset 3bded27be98e (bug 1648468)
Backed out changeset 60a36d4424df (bug 1648468)
Backed out changeset 1edf02398318 (bug 1648468)
Backed out changeset ebac9fb9da0d (bug 1648468)
2020-07-12 09:03:53 +03:00
Harry Twyford
daefa9ecc0 Bug 1648468 - Part 6 - Resolve a11y focus issue causing a failure in browser_test_focus_urlbar.js. r=adw
The line that adds `suggestedIndex` in the test should also fix bug 1652138.

Differential Revision: https://phabricator.services.mozilla.com/D83244
2020-07-12 02:28:07 +00:00
Razvan Maries
911baac099 Backed out 6 changesets (bug 1648468) for perma failures on browser_test_focus_urlbar.js. CLOSED TREE
Backed out changeset 60b6915e8037 (bug 1648468)
Backed out changeset fc7a6b8f84a2 (bug 1648468)
Backed out changeset 97c7475abf85 (bug 1648468)
Backed out changeset bb37a0821844 (bug 1648468)
Backed out changeset 10447a3e04ff (bug 1648468)
Backed out changeset 69a210ce0e9a (bug 1648468)
2020-07-12 01:31:42 +03:00
Harry Twyford
ed82a86096 Bug 1648468 - Part 6 - Resolve a11y focus issue causing a failure in browser_test_focus_urlbar.js. r=adw
The line that adds `suggestedIndex` in the test should also fix bug 1652138.

Differential Revision: https://phabricator.services.mozilla.com/D83244
2020-07-11 21:32:19 +00:00
Butkovits Atila
7c20974c02 Backed out changeset 54aff812a50b (bug 1650462) as requested by jya. 2020-07-11 15:46:30 +03:00
James Teh
8512a122d8 Bug 1650462: Don't include group descendants when calculating the acc name of treeitems. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D83042
2020-07-10 07:34:31 +00:00
James Teh
ba7d805a62 Bug 1650590: A11y COM handler: Use CoTaskMemAlloc/Free for row/column header ids arrays when returned by IGeckoBackChannel::Refresh. r=MarcoZ
DynamicIA2Data can be built to be transmitted in two different ways:

1. As part of the payload included in the stream when an accessible is marshaled; or
2. As an out parameter returned by IGeckoBackChannel::Refresh().

DynamicIA2Data includes arrays for row/column header ids.
Normally, such arrays would be allocated by CoTaskMemAlloc and freed by CoTaskMemFree.
However, in the first case, the struct is actually marshaled by RPC encoding functions, not by COM itself.
This means we must use midl_user_allocate/free, lest we crash.
We previously used midl_user_allocate/free for the second case as well.
Unfortunately, it turns out that this too causes crashes.

To fix this, we now use different memory allocation functions depending on how the struct is transmitted.

This patch also cleans up the old DynamicIA2Data in the client before calling IGeckoBackChannel::Refresh.
Previously, we didn't do this, which would have resulted in a leak.

Differential Revision: https://phabricator.services.mozilla.com/D82823
2020-07-09 06:56:24 +00:00
Samuel Thibault
667bd111f3 Bug 1606721 - Fix crash on screen reader text requests with bogus offsets, r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D82424
2020-07-08 22:46:28 +00:00
Samuel Thibault
08cdd6ddc7 Bug 1606721 - Fix crash on screen reader text requests with end offset smaller than -1, r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D82324
2020-07-08 22:47:11 +00:00
Bogdan Tara
92d6c2f06f Backed out changeset 8d3a31f6fcd6 (bug 1643765) by morgan's request CLOSED TREE 2020-07-08 19:57:22 +03:00
Dorel Luca
2e8d3a633e Bug 1648813 - disable browser_webarea.js on macos opt builds. r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D82254
2020-07-07 14:05:52 +00:00
Morgan Reschenberg
22c2b06956 Bug 1643765: Add moxUnignoredChildren getter to MOXAccessibleBase r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D80983
2020-07-06 19:24:19 +00:00
Razvan Maries
3b7f8e576f Backed out changeset e7c1f66e9ff4 (bug 1643765) for build bustages on MOXAccessibleProtocol.h. CLOSED TREE 2020-07-06 21:02:44 +03:00
Morgan Reschenberg
1a49e563e3 Bug 1643765: Add moxUnignoredChildren getter to MOXAccessibleBase r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D80983
2020-07-06 17:31:15 +00:00
Eitan Isaacson
8b130be2bb Bug 1226473 - Support AXSelectedTextMarkerRange. r=morgan
To do this well we need to cache the text selection in the top level process.

Differential Revision: https://phabricator.services.mozilla.com/D82111
2020-07-06 17:32:45 +00:00
Eitan Isaacson
e1559a9b24 Bug 1650740 - Don't allow text range retrieval when doc tree is not fully constructed. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D82410
2020-07-06 17:31:17 +00:00
Sylvestre Ledru
caf785c695 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D82178
2020-07-04 09:38:43 +00:00
Eitan Isaacson
7b241c8028 Bug 1649575 - Part 6: Introduce browser test for basic text API. r=morgan.
Differential Revision: https://phabricator.services.mozilla.com/D81762
2020-07-02 21:24:58 +00:00
Eitan Isaacson
2f2f6eb3ee Bug 1649575 - Part 5: Implement string building for GeckoTextMarkerRange. r=morgan
This is a seperate patch because of the complexity.

Differential Revision: https://phabricator.services.mozilla.com/D81761
2020-07-02 21:57:55 +00:00
Eitan Isaacson
ebff8f5ad8 Bug 1649575 - Part 4: Introduce GeckoTextMarker and GeckoTextMarkerRange. r=morgan
These classes do a few things:
1. They implement and abstract common text operations, for example:
 (a) comparing two markers to know which one precedes the other.
 (b) text retrieval for ranges
 (c) geometric bounds for ranges
 (d) etc.
2. They can be converted to and from AXTextMarker(Range)s. Since the AXTextMarker
should not contain a raw pointer since there is a potential for use-after-free,
we need to lookup the referenced accessible in its document to know that it still exists.

Note: mozTextAccessible got pushed to another unified source file, so we need to
declare some stuff for it. Ideally we would be detecting these kinds of things sooner.

Differential Revision: https://phabricator.services.mozilla.com/D81760
2020-07-02 21:35:05 +00:00
Eitan Isaacson
7c21778bfd Bug 1649575 - Part 3: Introduce MOXTextMarkerDelegate. r=morgan
The delegate is associated with accessible documents (either local or remote).

I made a separate protocol for all the text marker stuff as it really is a seperate API.

Differential Revision: https://phabricator.services.mozilla.com/D81759
2020-07-02 21:33:07 +00:00
Eitan Isaacson
82c3896e77 Bug 1649575 - Part 2: Wrap opaque NSObjects for testing. r=morgan
AXTextMarker and AXTextMarkerRange are opaque types that are not queried or
manipulated by the AT. For tests, we need to be able to retrieve them,
and pass them back.

This patch generalizes the wrapper we already had in nsIAccessibleMacInterface
and allows other types to be wrapped.

Differential Revision: https://phabricator.services.mozilla.com/D81758
2020-07-02 21:24:39 +00:00
Eitan Isaacson
ec18c36609 Bug 1649575 - Part 1: Add comparators to AccessibleOrProxy. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D81757
2020-07-02 21:24:32 +00:00
Eitan Isaacson
65ed33dc4e Bug 1649217 - Part 4: Update caret move event tests to support isSelectionCollapsed. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D81914
2020-07-02 17:43:24 +00:00
Eitan Isaacson
970939c823 Bug 1649217 - Part 3: Support isSelectionCollapsed in caret moved xpcom iface. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D81913
2020-07-02 17:43:21 +00:00
Eitan Isaacson
9abbad9091 Bug 1649217 - Part 2: Send isSelectionCollapsed for caret move in IPC. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D81912
2020-07-02 18:08:52 +00:00
Eitan Isaacson
92abff2aee Bug 1649217 - Part 1: Add isSelectionCollapsed to AccCaretMoveEvent. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D81911
2020-07-02 17:43:09 +00:00
James Teh
b9c87a600d Bug 1649253: Correctly assign an Android a11y id to OOP iframe documents. r=eeejay
The DocProxyAccessibleWrap for an OOP iframe document is always created before we know its parent.
Previously, this resulted in the document getting an id of -1, which is only valid for the root document.
It also broke subsequent assumptions once the parent was set later.

Because we don't have the parent in this case, we can't add the document's id to its parent's hash table.
To deal with this, we no longer add any document to its parent's hash table.
Instead, when finding an accessible by id, we just check the id of each child document before checking that child document's hash table.

Differential Revision: https://phabricator.services.mozilla.com/D81959
2020-07-02 17:20:38 +00:00
Eitan Isaacson
080acfd067 Bug 1635722 - Check node ipc docs before sending pivot boundaries. r=Jamie
The IPC docs of the first/last nodes are not guaranteed to exist. This
could happen early on when the child docs are still hanging and have not
yet been processed in the NotificationController.

Differential Revision: https://phabricator.services.mozilla.com/D81883
2020-07-01 23:09:51 +00:00
Simon Giesecke
9364b353d4 Bug 1648010 - Remove NS_NAMED_LITERAL_CSTRING and NS_NAMED_LITERAL_STRING macros. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80631
2020-07-01 08:42:31 +00:00
Simon Giesecke
cd8b8939b9 Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
James Teh
a14ee5ceec Bug 1631276 part 3: Don't return a descendant document in DocAccessibleChild::RecvChildAtPoint unless we're certain that document has been constructed in the parent process. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D81010
2020-06-25 16:11:07 +00:00
James Teh
06946181ec Bug 1631276 part 2: On non-Windows, have the parent process notify the content process when the DocAccessibleParent is constructed. r=eeejay
This is already handled in a different way on Windows.
For documents at the top level of their process (including OOP iframes), we can just set the flag rather than waiting for a message, since we can never get queries for such documents or descendants before parent process construction is complete.

Differential Revision: https://phabricator.services.mozilla.com/D81009
2020-06-29 18:12:44 +00:00
James Teh
feb712c112 Bug 1631276 part 1: Move Set/GetIsConstructedInParentProcess into DocAccessibleChildBase. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D81008
2020-06-25 16:07:20 +00:00
James Teh
c598f2c2a3 Bug 1647666: test_doc_busy.html: Log a11y events to help debug the intermittent timeout. r=MarcoZ
It seems the window location isn't the issue here at all.
Rather, we never get the expected a11y events.
So, let's try to find out what events we *do* get.

Differential Revision: https://phabricator.services.mozilla.com/D81478
2020-06-29 05:26:59 +00:00
James Teh
bb33c7f919 Bug 1648341: Handle eHasValueMinMaxIfFocusable correctly in Accessible::Value. r=MarcoZ
Previously, this returned a value if the ARIA value rule was not eNoValue, which covered eHasValueMinMaxIfFocusable.
However, eHasValueMinMaxIfFocusable needs the focusable state to be checked.
Rather than checking the value rule directly, just use HasNumericValue(), which already knows how to handle this.

Differential Revision: https://phabricator.services.mozilla.com/D81483
2020-06-29 05:22:00 +00:00
Morgan Reschenberg
4891a7b86e Bug 1630292: Enusre we don't create accessibles for linebreaks. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D80986
2020-06-26 18:04:39 +00:00
Morgan Reschenberg
117fa600ac Bug 1642707: Add web area class and attributes r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D80473
2020-06-26 04:00:49 +00:00
James Teh
9fff2a353f Bug 1647666: test_doc_busy.html: Log the window location so we can try to figure out why this is failing intermittently. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D80997
2020-06-25 04:27:01 +00:00
James Teh
a047283d38 Bug 1647666: test_doc_busy.html: Handle the case where we get a load event for about:blank before the download prompt itself. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D80828
2020-06-24 09:30:14 +00:00
Eitan Isaacson
cd63c02db9 Bug 1647828 - Block moxPerformPress selector on non-actionable nodes. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D80712
2020-06-23 19:21:28 +00:00
Eitan Isaacson
ccdf272301 Bug 1647483 - Add a TextRange getter to text selection change events. r=Jamie
This includes 3 changes:
1. Add a lazy ranges getter to AccTextSelChangeEvent.
2. Create an XPCOM interface for testing purposes.
3. Add IPDL bindings for passing ranges in e10s.

Differential Revision: https://phabricator.services.mozilla.com/D80556
2020-06-23 18:52:42 +00:00
Gijs Kruitbosch
fca766666b Bug 1646780 - use a template to wrap the identity popup while it's not needed, r=johannh
Differential Revision: https://phabricator.services.mozilla.com/D78894
2020-06-23 14:04:49 +00:00
James Teh
15c8945c91 Bug 1626851 part 2: Close the download prompt before finishing the test. r=MarcoZ
This is the actual fix.
Previously, we opened a download prompt, but we didn't close it.
This download prompt could sometimes get focus and prevent subsequent tests from getting focus.
Explicitly closing it should prevent this from happening.

Differential Revision: https://phabricator.services.mozilla.com/D80590
2020-06-23 05:45:47 +00:00
James Teh
e378731208 Bug 1626851 part 1: Rewrite test_doc_busy.html to use promises. r=MarcoZ
It's just too difficult/confusing to mix a11y and non-a11y async stuff using eventQueue.
This patch should be functionally equivalent; it doesn't fix the bug.

Differential Revision: https://phabricator.services.mozilla.com/D80589
2020-06-23 05:43:30 +00:00
Kagami Sascha Rosylight
166f2891a2 Bug 1643464 - Part 1: Rename eLeft/eRight to ePrimary/eSecondary r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D80331
2020-06-19 18:02:41 +00:00
Eitan Isaacson
3267d4f31f Bug 1639048 - Don't traverse into labels. r=Jamie
Labels are often used as primary click targets for related inputs. If
they are styled to certain bounds, but contain overflowing text for a11y
with a color of "transparent", the synthesized click will happen outside
the bounds of the label.

If we skip text leafs with "color: transparent", we will skip labels
altogether. Instead, lets land on labels when traversing, and ignore
its subtree.

Differential Revision: https://phabricator.services.mozilla.com/D77898
2020-06-22 22:03:58 +00:00
Narcis Beleuzu
aaf25b6782 Backed out changeset b408bd393d95 (bug 1639048) for gv-junit failures on test.AccessibilityTest.testCheckbox . CLOSED TREE 2020-06-22 23:41:28 +03:00
Eitan Isaacson
06217d0c54 Bug 1639048 - Don't traverse into labels. r=Jamie
Labels are often used as primary click targets for related inputs. If
they are styled to certain bounds, but contain overflowing text for a11y
with a color of "transparent", the synthesized click will happen outside
the bounds of the label.

If we skip text leafs with "color: transparent", we will skip labels
altogether. Instead, lets land on labels when traversing, and ignore
its subtree.

Differential Revision: https://phabricator.services.mozilla.com/D77898
2020-06-22 18:16:30 +00:00
Emilio Cobos Álvarez
b9b9e38dd9 Bug 1646224 - Use mozilla::Length rather than nscoord to store font sizes. r=heycam,jfkthame
This avoids arbitrary precision loss when computing REM units and so on,
which is particularly important if we ever change the base of our app
units (but useful regardless).

Differential Revision: https://phabricator.services.mozilla.com/D79928
2020-06-22 09:45:40 +00:00
Dorel Luca
d4c820fa0f Backed out changeset 3671a57712e4 (bug 1646780) for Browser-chrome failures in webrtc/browser_devices_get_user_media_tear_off_tab.js 2020-06-19 04:22:23 +03:00
Gijs Kruitbosch
f457ccd655 Bug 1646780 - use a template to wrap the identity popup while it's not needed, r=johannh
Differential Revision: https://phabricator.services.mozilla.com/D78894
2020-06-19 00:02:11 +00:00
Edgar Chen
4d53288bec Bug 1635784 - Part 1: IsRemoteTarget should take fission OOP iframe into account; r=smaug
And add IsTopLevelRemoteTarget for the original usage.

Differential Revision: https://phabricator.services.mozilla.com/D79441
2020-06-18 20:38:34 +00:00
Eitan Isaacson
29f8f3833e Bug 1645817 - Use overlay scrollbars win browser resolution test. r=kats
Using overlay scrollbars will avoid the need to account for the trimmed
space that is introduced after an overflowing zoom caused by scrollbars.

Differential Revision: https://phabricator.services.mozilla.com/D80102
2020-06-18 11:21:41 +00:00
Cosmin Sabou
65d75a47f3 Backed out changeset 299e19193e11 (bug 1646224) for causing font related failures. CLOSED TREE 2020-06-18 18:26:51 +03:00
Emilio Cobos Álvarez
090e3d2409 Bug 1646224 - Use mozilla::Length rather than nscoord to store font sizes. r=heycam,jfkthame
This avoids arbitrary precision loss when computing REM units and so on,
which is particularly important if we ever change the base of our app
units (but useful regardless).

Differential Revision: https://phabricator.services.mozilla.com/D79928
2020-06-18 13:55:03 +00:00
Emilio Cobos Álvarez
011d524740 Bug 1646336 - Don't unnecessarily lose precision in nsComputedDOMStyle. r=hiro
We're converting to nscoord in some places unnecessarily, reducing the
precision of the computed value we return.

This makes some tests unnecessarily fail if we change the base of
nscoord.

Differential Revision: https://phabricator.services.mozilla.com/D79996
2020-06-18 00:42:47 +00:00
James Teh
02ae717477 Bug 1630208 part 4: Re-enable accessible/tests/browser/hittest/browser_test_zoom_text.js. r=yzen
The intermittent leak has been fixed, so we can now re-enable this.

Differential Revision: https://phabricator.services.mozilla.com/D79782
2020-06-17 18:42:48 +00:00
James Teh
9d61ef8210 Bug 1630208 part 3: Clean up the remote XPC document accessible cache on shutdown. r=yzen
The cache should already be empty by this point unless there's a bug, but we should still clean up regardless.
Also, the hashtable itself was previously never cleaned up even if it was empty.

Differential Revision: https://phabricator.services.mozilla.com/D79781
2020-06-17 18:42:30 +00:00
James Teh
6a5821c667 Bug 1630208 part 2: Drop events for DocAccessibleParents which are already shut down. r=yzen
We can receive IPC events after a DocAccessibleParent is shut down if the BrowserParent is in the process of being destroyed (probably the tab closed) but there are still events in the IPC queue.
Most Recv*Event methods in BrowserParent check mShutdown, but a few don't.
For the events that don't, if the event is for a document, we'll successfully fire the platform event, and then successfully get and cache an xpcAccessibleDocument.
However, that xpcAccessibleDocument will never be removed from the cache because it's already shut down, so NotifyOfRemoteDocShutdown (which would normally remove it from the XPC cache) won't get called.
This results in a leaked object.
Thus, it's important that all Recv*Event methods drop the event if mShutdown is true.
This patch adds that check to the methods which didn't have it already.

Differential Revision: https://phabricator.services.mozilla.com/D79780
2020-06-17 18:40:42 +00:00
James Teh
dffc53d36b Bug 1630208 part 1: Assert that we don't add a shut down DocAccessibleParent to the remote XPC cache in DocManager::GetXPCDocument. r=yzen
We really want to know about this because the document will never be removed from the cache, since NotifyOfRemoteDocShutdown (which would normally remove it from the XPC cache) won't get called.

Differential Revision: https://phabricator.services.mozilla.com/D79779
2020-06-17 18:37:58 +00:00
Brindusan Cristian
f93d2c823e Backed out changeset 2011f0091ccf (bug 1646336) for dt failures at browser_accessibility_print_to_json.js. CLOSED TREE 2020-06-18 03:17:34 +03:00
Emilio Cobos Álvarez
24a7deb2a4 Bug 1646336 - Don't unnecessarily lose precision in nsComputedDOMStyle. r=hiro
We're converting to nscoord in some places unnecessarily, reducing the
precision of the computed value we return.

This makes some tests unnecessarily fail if we change the base of
nscoord.

Differential Revision: https://phabricator.services.mozilla.com/D79996
2020-06-17 22:30:14 +00:00
Kris Maglione
3bda67deab Bug 1638153: Part 2 - Fix uses of .rootTreeItem to get top browser window. r=geckoview-reviewers,nika,snorp
Differential Revision: https://phabricator.services.mozilla.com/D75429
2020-06-17 17:17:16 +00:00
Marco Zehe
1bb00164a8 Bug 1330659 - Expose the HTML dialog element to accessibility APIs, r=Jamie
This patch exposes the dialog element as a HyperTextAccessible with role DIALOG and enables the test after flipping the pref temporarily. Once the pref is on by default, the if block should be removed and the test run always.

Differential Revision: https://phabricator.services.mozilla.com/D79798
2020-06-17 05:22:05 +00:00
Simon Giesecke
3fef818588 Bug 1645339 - Use range-based for with nsTObserverArray in accessible. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D79494
2020-06-16 10:14:32 +00:00
Morgan Reschenberg
10236aef18 Bug 1630391: Add telemetry test for backplate and a11y theme scalars. r=chutten,yzen
Differential Revision: https://phabricator.services.mozilla.com/D72184
2020-06-12 17:02:45 +00:00
James Teh
c384807ed4 Bug 1645067: Set the top level DocAccessibleChild as early as possible. r=MarcoZ
Otherwise, if we're replacing a previous top level doc, we might refer to the old top level doc during initialization.

Differential Revision: https://phabricator.services.mozilla.com/D79398
2020-06-12 07:11:02 +00:00
Emilio Cobos Álvarez
ef3d21048d Bug 1640623 - Use enum classes for LookAndFeel int and float IDs. r=jmathies,geckoview-reviewers,esawin
Differential Revision: https://phabricator.services.mozilla.com/D76694
2020-06-11 11:27:43 +00:00
Eitan Isaacson
31b2dc735d Bug 1643168 - block moxSetFocused: on non-focusable accessibles. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D78160
2020-06-10 17:34:30 +00:00
Bogdan Tara
2c49516739 Backed out changeset b1ea583f8cb8 (bug 1630391) for browser_HCM_telemetry.js failures CLOSED TREE 2020-06-11 01:06:00 +03:00
Morgan Reschenberg
ea3409c4f8 Bug 1630391: Add telemetry test for backplate and a11y theme scalars. r=chutten,yzen
Differential Revision: https://phabricator.services.mozilla.com/D72184
2020-06-10 20:40:33 +00:00
James Teh
0b42799e46 Bug 1644323: For in-process iframes in content processes, use the emulated window set on the top level DocAccessibleChild (if any). r=MarcoZ
When window emulation is enabled, the emulated window is set on the top level DocAccessibleChild.
However, it isn't set on child documents (in-process iframes).
Therefore, when querying the window handle, we need to check for an emulated window handle on the top level document and return that if present.
This fixes the window handle returned by IAccessible2::get_windowHandle.

Note that the window handle used when firing events was already correct, as that is determined in the parent process.
In the parent process, the emulated window was already being propagated down to child DocAccessibleParents by BrowserParent::RecvPDocAccessibleConstructor.

Differential Revision: https://phabricator.services.mozilla.com/D79035
2020-06-10 07:11:31 +00:00
James Teh
26c591b2c1 Bug 1573630: Remove usage of nsIDocShellTreeItem in nsCoreUtils::IsTopLevelContentDocInProcess. r=MarcoZ
This usage of nsIDocShellTreeItem is safe, but nsIDocShellTreeItem is going away and it's trivial to convert this to use BrowsingContext.
As a bonus, the code is also shorter and more readable.

Differential Revision: https://phabricator.services.mozilla.com/D79022
2020-06-10 05:03:07 +00:00
James Teh
97cb27b85a Bug 1634591: Rename nsCoreUtils::IsTabDocument to IsTopLevelContentDocInProcess. Rename DocAccessible::eTabDocument to eTopLevelContentDocInProcess. r=MarcoZ
This also adds some assertions where these are used in the Windows code, as it would be bad if that code ran in an OOP iframe document.

Differential Revision: https://phabricator.services.mozilla.com/D79021
2020-06-10 05:03:05 +00:00
James Teh
26861090f2 Bug 1644319: Move code specific to DocAccessibles out of AccessibleWrap::get_accParent and into DocAccessibleWrap::get_accParent. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D79020
2020-06-10 05:02:58 +00:00
Csoregi Natalia
81b315c91b Backed out changeset c15ccd143f32 (bug 1630391) for failures on browser_HCM_telemetry.js. CLOSED TREE 2020-06-10 03:07:24 +03:00
Morgan Reschenberg
564e7c4295 Bug 1630391: Add telemetry test for backplate and a11y theme scalars. r=chutten,yzen
Differential Revision: https://phabricator.services.mozilla.com/D72184
2020-06-09 21:56:01 +00:00
Dorel Luca
31ee7a3080 Backed out changeset 498dee65dcf8 (bug 1643168) for Browser-chrome failures browser/mac/browser_focus.js. CLOSED TREE 2020-06-08 20:28:05 +03:00
Eitan Isaacson
97fb862d37 Bug 1643168 - block moxSetFocused: on non-focusable accessibles. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D78160
2020-06-08 15:47:11 +00:00
Simon Giesecke
0011473324 Bug 1644079 - Fix invalid array index access in ia2Accessible::get_selectionRanges. r=MarcoZ
Since loops that modify the array are error-prone, this is changed to use
nsTArray::RemoveElementsBy instead.

Differential Revision: https://phabricator.services.mozilla.com/D78641
2020-06-08 09:14:56 +00:00
Simon Giesecke
ebbc7ae838 Bug 1642989 - Use RemoveLastElements instead of RemoveElementsAt where possible. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D78049
2020-06-08 08:50:15 +00:00
Simon Giesecke
13502cf27c Bug 1642991 - Use RemoveElementsBy where easily possible. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D78055
2020-06-08 09:01:48 +00:00
James Teh
b1c5fca60f Bug 1547657: Null check frame in HyperTextAccessible::TextBounds. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D78631
2020-06-08 05:11:23 +00:00
James Teh
58a574a9c2 Bug 1642568: accessible/tests/mochitest/role/test_aria.html: Wait for a11y load when opening the chrome window. r=MarcoZ
Even though we previously waited for the DOM load event, the a11y tree probably wasn't ready yet.

Differential Revision: https://phabricator.services.mozilla.com/D78630
2020-06-08 05:06:39 +00:00
Morgan Reschenberg
3083026d43 Bug 1641932: Add Mac subroles to role map. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D77500
2020-06-05 03:45:44 +00:00
James Teh
c45ca37cf4 Bug 1151648: Construct accessible objects for SVG elements which have title or desc. r=MarcoZ,yzen
According to SVG Accessibility API Mappings, an SVG element which has title or desc element must be exposed.
https://w3c.github.io/svg-aam/#include_elements
Previously, we didn't expose <g> elements at all even if they had a title/desc, and we unconditionally exposed some other SVG elements even when they didn't.

This removes the Dev Tools A11y Panel code which explicitly allowed unlabelled descendants of role="img" <svg> elements, since we don't create descendants if they don't have a label now anyway.
The associated tests had to be tweaked as well, since now we don't create unlabelled descendants.

Original patch by Takeshi Kurosawa.

Differential Revision: https://phabricator.services.mozilla.com/D77763
2020-06-03 13:18:38 +00:00
Eitan Isaacson
add69c1749 Bug 1642033 - Refactor mozTextAccessible to use MOX api. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D77564
2020-06-03 21:15:43 +00:00
Zeke Medley
533e723a19 Bug 1642448 - Replace remaining NSAssert statements in accessible/mac/ with MOZ_ASSERT's. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D77874
2020-06-02 20:40:37 +00:00
Eitan Isaacson
ccfae4a0f0 Bug 1642030 - Support testing of parameterized attributes in Mac mochitests. r=morgan
Depends on D77559

Differential Revision: https://phabricator.services.mozilla.com/D77562
2020-06-02 04:20:38 +00:00
Eitan Isaacson
4523f18d89 Bug 1642024 - Remove method-based NSAccessibility support from XPCOM mac a11y interface. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D77559
2020-06-01 19:48:43 +00:00
Eitan Isaacson
c3aa4bdf8c Bug 1641984 - Implement MOX parameterized attribute getters. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D77563
2020-06-02 04:57:14 +00:00
Csoregi Natalia
88d27d2500 Backed out changeset f2da1b325e97 (bug 1151648) for failures on browser_accessibility_text_label_audit.js. CLOSED TREE 2020-06-02 13:17:30 +03:00
James Teh
bfaf8c5057 Bug 1151648: Construct accessible objects for SVG elements which have title or desc. r=MarcoZ
According to SVG Accessibility API Mappings, an SVG element which has title or desc element must be exposed.
https://w3c.github.io/svg-aam/#include_elements
Previously, we didn't expose <g> elements at all even if they had a title/desc, and we unconditionally exposed some other SVG elements even when they didn't.

Original patch by Takeshi Kurosawa.

Differential Revision: https://phabricator.services.mozilla.com/D77763
2020-06-02 06:59:31 +00:00
James Teh
0003a43cd3 Bug 1642480: Null check content in nsAccUtils::IsARIALive. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D77748
2020-06-02 05:56:22 +00:00
James Teh
d82ab85438 Bug 1642258: Allow role="alert" on the body of chrome documents (but not content documents). r=MarcoZ
Also fixes a typo in an existing test that meant we weren't actually testing as intended.

Differential Revision: https://phabricator.services.mozilla.com/D77628
2020-06-02 05:53:52 +00:00
Razvan Maries
a36bb7751f Backed out 3 changesets (bug 1638153) for perma failures on cross-origin-objects.html. CLOSED TREE
Backed out changeset f7aedc92d396 (bug 1638153)
Backed out changeset 07ec713926c6 (bug 1638153)
Backed out changeset 5a656842e241 (bug 1638153)
2020-06-01 23:51:35 +03:00
Kris Maglione
b3fcd970ec Bug 1638153: Part 2 - Fix uses of .rootTreeItem to get top browser window. r=geckoview-reviewers,nika,snorp
Differential Revision: https://phabricator.services.mozilla.com/D75429
2020-06-01 17:59:01 +00:00
Ricky Stewart
0bbaac721b Bug 1641693 - Replace a bunch of uses of GENERATED_FILES with the GeneratedFile template r=necko-reviewers,geckoview-reviewers,aklotz,dragana,froydnj
Also update documentation to suggest using the `GeneratedFile` template rather than directly referencing `GENERATED_FILES` where possible.

Differential Revision: https://phabricator.services.mozilla.com/D77496
2020-06-01 16:00:28 +00:00
James Teh
8da3be47f5 Bug 1642141: When clearing the AccessibleHandlerControl Accessible cache, swap it into a temporary map first to avoid re-entry into the main map while clearing. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D77623
2020-06-01 05:45:44 +00:00
James Teh
eb93cd44c2 Bug 1427304: Return the oleacc window accessible for the outer HWND of windows created with popup=yes. r=yzen
Differential Revision: https://phabricator.services.mozilla.com/D77442
2020-05-29 14:16:14 +00:00
Eitan Isaacson
6d5ab04a9d Bug 1641960 - Introduce some Mac selection tests for inputs. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D77531
2020-05-29 22:58:54 +00:00
Eitan Isaacson
d5c9522fec Bug 1641960 - Support NSRange getting and setting in XPCOM mac a11y interface. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D77530
2020-05-29 22:58:44 +00:00
Morgan Reschenberg
d93dd3ccbb Bug 1624909: Create and maintain radio siblings array for position information. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D72751
2020-05-29 17:37:46 +00:00
Eitan Isaacson
9aa6dd6524 Bug 1641665 - Remove NSAccessibility methods from mozTableAccessible. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D77345
2020-05-28 23:06:42 +00:00
Eitan Isaacson
4a8cd9c1f8 Bug 1641659 - Remove NSAccessibility methods from mozActionElements. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D77344
2020-05-28 23:02:52 +00:00
Eitan Isaacson
a3ca2295dc Bug 1641657 - Remove NSAccessibility methods from mozRootAccessible. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D77343
2020-05-28 22:41:30 +00:00
Eitan Isaacson
d0f0c96f5e Bug 1641655 - Remove NSAccessibility methods from mozSelectableElements. r=morgan
A casualty of this is the "switch" action description for pressing tabs. That code
goes way back to our first Mac a11y support. WebKit and Chromium don't have it.

I tried to figure out when other browsers or apps had that with no luck.
Anyway, removing that description gives us the same behavior in VO as
WebKit and Chromium where there are no custom action description strings.

Differential Revision: https://phabricator.services.mozilla.com/D77342
2020-05-28 22:41:23 +00:00
Eitan Isaacson
11a255caf4 Bug 1641654 - Remove NSAccessibility methods from mozHTMLAccessible classes. r=morgan
A casualty of this is the ability to change listed attribute names on the fly.
I think this is the right choice in general and doesn't seem to affect VO.
If we run into a case where it does we should reconsider.

Differential Revision: https://phabricator.services.mozilla.com/D77341
2020-05-28 22:41:21 +00:00
Eitan Isaacson
d13bf79114 Bug 1641644 - Remove most NSAccessibility methods from mozAccessible. r=morgan
Keeping accessibilityAttributeNames because it calls additionalAccessibilityAttributeNames
which is used by subclasses.

Differential Revision: https://phabricator.services.mozilla.com/D77335
2020-05-28 22:41:13 +00:00
Eitan Isaacson
9d2ffbbfee Bug 1641644 - Create MOXSummaryAccessible for summary element. r=morgan
This will make it easier to generalize mozAccessible.

Differential Revision: https://phabricator.services.mozilla.com/D77334
2020-05-28 22:41:06 +00:00
Eitan Isaacson
4970260cc9 Bug 1635521 - Create dedicated MathML MOX accessibles. r=morgan
This patch uses the new file/class naming convention.
Hopefully we will convert all of it in time.

Differential Revision: https://phabricator.services.mozilla.com/D77333
2020-05-28 22:41:04 +00:00
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
James Teh
b02d77311a Bug 1628415 part 2: Correct comments regarding XUL control Accessible name computation. r=MarcoZ
This is not strictly related to this bug, but I'm touching the surrounding code and I've been confused by this on several occasions.
The previous comments suggested that NameFromAssociatedXULLabel (which uses XULLabelIterator) looks at child labels.
This is incorrect: XULLabelIterator only looks at <label control="id">.
The inclusion of child labels in the name comes from GetNameFromSubtree, which is called elsewhere.

Differential Revision: https://phabricator.services.mozilla.com/D74371
2020-05-08 04:27:00 +00:00
James Teh
ba3de78b7e Bug 1628415 part 1: Remove use of nsIDOMXULSelectControlItemElement::label in Accessible. r=MarcoZ
This was only used for richlistitems, but the richlistitem implementation of this property did the wrong thing in several cases.
The a11y engine's label computation code generally does a better job.
Where the label does need to be overridden in specific cases, we should use ARIA instead.

Differential Revision: https://phabricator.services.mozilla.com/D74370
2020-05-08 04:24:42 +00:00
Morgan Reschenberg
22bf5cdb58 Bug 1624954: Add support for AXPopupValue, modify AXHasPopup to boolean. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D73912
2020-05-07 18:07:34 +00:00
Ricky Stewart
1395fb03f0 Bug 1634737 - GeneratedFile() template should yell at you if you try to set py2=True r=glandium
As of bug 1621451 this argument was ignored, but it just silently runs your code with `python3` if you pass it anyway. Ensure this doesn't happen any more, and protect against any other unexpected arguments as well.

Differential Revision: https://phabricator.services.mozilla.com/D73485
2020-05-05 15:53:37 +00:00
Ricky Stewart
933b3522b8 Bug 1633156 - Don't emit cached table files from ply r=glandium
`ply`, [by design](https://github.com/dabeaz/ply/issues/79), does not produce reproducible table files; hence bug 1633156. (Note that this was *always* true, but only became a problem once we switched to Python 3, which has more unpredictable dict iteration order than Python 2.7, at least prior to [3.7](https://docs.python.org/3/whatsnew/3.7.html#summary-release-highlights).)

In any other circumstance I would consider submitting a patch to `ply` to fix this, but as of the [in-progress version 4.0 of the library](https://github.com/dabeaz/ply/blob/master/CHANGES), it doesn't even emit this cached data any more, and indeed the [latest version of the code](1fac9fed64/ply) doesn't even call `open()` at all except to do logging or to read the text data to be parsed from `stdin`. So if we were going to pin our future on `ply` and upgrade to later versions of the library in the future, we would have to live in a world where `ply` doesn't generate cached table files for us anyway.

Emitting the cached table files so later build steps can consume them is an "optimization", but it's not clear exactly how much actual value that optimization provides overall. Quoth the `CHANGES` file from that repository:

```
PLY no longer writes cached table files.  Honestly, the use of
the cached files made more sense when I was developing PLY on
my 200Mhz PC in 2001. It's not as much as an issue now. For small
to medium sized grammars, PLY should be almost instantaneous.
```

In practice, I have found this to be true; namely, `./mach build pre-export export` takes just about as long on my machine after this patch as it did before, and in a try push I performed, there's no noticeable performance regression from applying this patch. In local testing I also found that generating the LALR tables in calls to `yacc()` takes about 0.01s on my machine generally, and we generate these tables a couple dozen times total over the course of the `export` tier now. This isn't *nothing*, but in my opinion it's also not nearly long enough where it would be a concern given how long `export` already takes.

That `CHANGES` file also stresses that if caching this data is important, we have the option of doing so via `pickle`. If and when we decide that re-enabling this optimization is valuable for us, we should take control of this process and perform the generation in such a way that we can guarantee reproducibility.

Differential Revision: https://phabricator.services.mozilla.com/D73484
2020-05-07 00:39:28 +00:00
James Teh
21678aeb07 Bug 1636002: Don't use the parent IAccessible from DocAccessibleChild unless it is a top level document. r=MarcoZ
In-process iframes get a DocAccessibleChild, even though they're not top level in their process.
However, the parent IAccessible on DocAccessibleChild (sent from the parent process) is only relevant for the top level.
Previously, we used the parent IAccessible on the DocAccessibleChild for *all* documents, resulting in accParent returning null for in-process iframe documents.
Instead, we need to use the base implementation in this case.

Differential Revision: https://phabricator.services.mozilla.com/D74180
2020-05-07 04:53:39 +00:00
Botond Ballo
5cffd06241 Bug 1631568 - Have nsLayoutUtils::GetFrameForPoint() and GetFramesForArea() take a RelativeTo parameter. r=tnikkel
This removes the need for FrameForPointOptions::IsRelativeToLayoutViewport,
and makes sure each call site of these functions indicates whether the
input point/rect is in visual or layout coordinates.

Several call sites were passing in layout coordinates without setting the
IsRelativeToLayoutViewport flag, which this patch corrects.

Differential Revision: https://phabricator.services.mozilla.com/D71705
2020-05-05 15:24:12 +00:00
Botond Ballo
7cf10dca6d Bug 1556556 - Remove many uses of IgnoreRootScrollFrame. r=mstange,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D68913
2020-05-05 19:23:35 +00:00
Marco Zehe
0eedff8d8e Bug 1635184 - Add actual support for input type='search' in MacOS, r=eeejay
The code in mozAccessible SubRole was actually never executed for inputs, so the SearchField sub role was never set. Moved the implementation to mozTextAccessible. Also reenabled the tests from bug 1634373, which now pass.

Depends on D73308

Differential Revision: https://phabricator.services.mozilla.com/D73735
2020-05-05 17:45:52 +00:00
Marco Zehe
69ff16e0cd Bug 1634373 - Add tests for Mac role and subrole attributes, r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D73308
2020-05-04 18:39:12 +00:00
James Teh
e6468d4b89 Bug 1635309: Clear conceptual parent when updating AccGroupInfo. r=MarcoZ
When an Accessible is removed, the AccGroupInfo for its siblings is marked dirty.
However, when AccGroupInfo::Update is called, it previously didn't clear mParent, which is used for the NODE_CHILD_OF relation.
This meant that if the conceptual group parent was removed and there was subsequently no conceptual parent, NODE_CHILD_OF would return an incorrect (potentially dead) Accessible.

Differential Revision: https://phabricator.services.mozilla.com/D73776
2020-05-05 05:36:31 +00:00
Mirko Brodesser
81a6751c80 Bug 1634663: part 1) Declare Selection::GetRangeAt's callers const around dom/ code. r=masayuki
Only where possible, of course.

Differential Revision: https://phabricator.services.mozilla.com/D73444
2020-05-02 23:43:02 +00:00
Jonathan Watt
2d1fc3c186 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
Morgan Reschenberg
1c82fd0b4b Bug 1624954: query attribute string for aria-haspopup instead of relying on flag alone. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D70264
2020-04-30 21:38:45 +00:00
Morgan Reschenberg
b499462d93 Bug 1624954: Send state-change event when aria-haspopup value is changed to allow for caching. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D71221
2020-04-30 21:38:33 +00:00
Mike Hommey
71ccad7a1b Bug 1634187 - Turn xpcom/idl-parser/xpidl into a proper python 3-ready module. r=rstewart
Differential Revision: https://phabricator.services.mozilla.com/D73151
2020-04-30 21:49:10 +00:00
Csoregi Natalia
5ca61e2a3c Backed out 2 changesets (bug 1624954) for eslint failure on browser_aria_haspopup.js. CLOSED TREE
Backed out changeset 2a3f592412a2 (bug 1624954)
Backed out changeset 74085e028726 (bug 1624954)
2020-04-30 23:37:28 +03:00
Morgan Reschenberg
5636f6c7df Bug 1624954: query attribute string for aria-haspopup instead of relying on flag alone. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D70264
2020-04-30 20:12:45 +00:00
Morgan Reschenberg
13bb4618ce Bug 1624954: Send state-change event when aria-haspopup value is changed to allow for caching. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D71221
2020-04-30 20:12:29 +00:00
Simon Giesecke
9ad17cfd3d Bug 1626570 - Improve handling of copying arrays in accessible/. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D72318
2020-04-30 09:36:14 +00:00
Daniel Varga
a184202d1f Backed out changeset 5c3005879c35 (bug 1634187) for causing build bustages at builds/worker/checkouts/gecko/xpcom/idl-parser/xpidl/runtests.py
CLOSED TREE
2020-04-30 02:58:00 +03:00
Mike Hommey
697361fcd0 Bug 1634187 - Turn xpcom/idl-parser/xpidl into a proper python 3-ready module. r=rstewart
Differential Revision: https://phabricator.services.mozilla.com/D73151
2020-04-29 23:05:29 +00:00
Brendan Dahl
6a11b1827e Bug 1629770 - Create popupgroup for any main process system privileged documents. r=emilio,Jamie
Fixes tooltips/menus in responsive design mode. A few accesibility tests
had to be adjusted since tooltips are now automatically created
for them.

Differential Revision: https://phabricator.services.mozilla.com/D72400
2020-04-29 21:52:51 +00:00
Morgan Reschenberg
707b0c1a92 Bug 1624936: Add required state caching, attribute handling for mozCheckboxAccessibles. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D70231
2020-04-28 18:19:39 +00:00
Morgan Reschenberg
5bf3cbceb9 Bug 1624936: Fire state change event when required state changes. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D71413
2020-04-28 18:19:17 +00:00
Eitan Isaacson
d7324d465e Bug 1625870 - Support figure and figcaption is OSX. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D72509
2020-04-28 19:45:51 +00:00
Brindusan Cristian
ae12f8e207 Backed out changeset b9710246d416 (bug 1625870) for mochitest failures at test_figure.html. CLOSED TREE 2020-04-28 21:54:31 +03:00
Eitan Isaacson
87fa7c9271 Bug 1627899 - Remove keyboard synthesis test cases from browser_app.js. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D72508
2020-04-27 18:24:27 +00:00
Eitan Isaacson
b62ce6a55b Bug 1625870 - Support figure and figcaption is OSX. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D72509
2020-04-28 18:04:00 +00:00
Eitan Isaacson
54fb8b0bfc Bug 1625489 - role::STATICTEXT should return value and not label or title. r=morgan
I also simplified mozTextLeafAccessible by redirecting value to title. And removing some dead methods. It previously was calling Text() on the text accessible, but this is not necessary since Name() returns
the same value.

Differential Revision: https://phabricator.services.mozilla.com/D72584
2020-04-27 18:19:50 +00:00
Morgan Reschenberg
0f8bea4c9f Bug 1625266: Add stepper subclass, support value changes. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D70772
2020-04-28 17:20:16 +00:00
Csoregi Natalia
b073baab86 Backed out 30 changesets (bug 1556556, bug 1631568) for multiple mochitest failures. CLOSED TREE
Backed out changeset edd529f7a9c5 (bug 1631568)
Backed out changeset 1cc0881e244b (bug 1631568)
Backed out changeset ed3c1e85d5e3 (bug 1556556)
Backed out changeset 38ffc6215bbf (bug 1556556)
Backed out changeset 03c2c25d8023 (bug 1556556)
Backed out changeset 9c717eb067b8 (bug 1556556)
Backed out changeset 98e26bc98b85 (bug 1556556)
Backed out changeset 05a6a581e755 (bug 1556556)
Backed out changeset 867946cf05bb (bug 1556556)
Backed out changeset 20d72a334530 (bug 1556556)
Backed out changeset 2c62e61d9054 (bug 1556556)
Backed out changeset 62a223d057d2 (bug 1556556)
Backed out changeset 2c5d55a1f0b1 (bug 1556556)
Backed out changeset 700447945b4e (bug 1556556)
Backed out changeset 93190ae4f5ff (bug 1556556)
Backed out changeset a7bd34d961bb (bug 1556556)
Backed out changeset fccd1d3c7189 (bug 1556556)
Backed out changeset 24056e47183d (bug 1556556)
Backed out changeset 204881474cc1 (bug 1556556)
Backed out changeset 387320881876 (bug 1556556)
Backed out changeset be8f5eb58460 (bug 1556556)
Backed out changeset 629c58a9166b (bug 1556556)
Backed out changeset 4312b2b5dda8 (bug 1556556)
Backed out changeset d11dbf6403a5 (bug 1556556)
Backed out changeset 95c54c023779 (bug 1556556)
Backed out changeset 80fcb7e71188 (bug 1556556)
Backed out changeset d75a4ecb0d47 (bug 1556556)
Backed out changeset 903c4de34e7a (bug 1556556)
Backed out changeset f15334a3e803 (bug 1556556)
Backed out changeset 9553e99137ea (bug 1556556)
2020-04-28 12:43:11 +03:00
Botond Ballo
2cb46cfa4b Bug 1631568 - Have nsLayoutUtils::GetFrameForPoint() and GetFramesForArea() take a RelativeTo parameter. r=tnikkel
This removes the need for FrameForPointOptions::IsRelativeToLayoutViewport,
and makes sure each call site of these functions indicates whether the
input point/rect is in visual or layout coordinates.

Several call sites were passing in layout coordinates without setting the
IsRelativeToLayoutViewport flag, which this patch corrects.

Differential Revision: https://phabricator.services.mozilla.com/D71705
2020-04-28 01:44:43 +00:00
Botond Ballo
b11a399d42 Bug 1556556 - Remove many uses of IgnoreRootScrollFrame. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D68913
2020-04-28 02:25:51 +00:00
Eitan Isaacson
57097f3b0c Bug 1632958 - Add await for addVisits async function call. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D72492
2020-04-25 05:21:41 +00:00
James Teh
28686996c0 Bug 1627084 part 4: Tidy up functions which clean up IA2 payload data. r=MarcoZ
1. CleanupStaticIA2Data just called ReleaseStaticIA2DataInterfaces and zeroed memory.
  We don't need it to zero memory, since we're going to delete the data anyway.
  So, just call ReleaseStaticIA2DataInterfaces directly and get rid of CleanupStaticIA2Data.
2. CleanupDynamicIA2Data had a aZeroMemory argument, but no caller ever set it to true.
  Therefore, get rid of the argument.

Differential Revision: https://phabricator.services.mozilla.com/D70297
2020-04-09 05:00:54 +00:00
James Teh
fc518436e7 Bug 1627084 part 3: Build handler payloads in HandlerProvider::ToWrappedObject. r=aklotz,MarcoZ
This avoids separate cross-thread calls when marshaling each object returned from an IGeckoBackChannel bulk fetch method.

Differential Revision: https://phabricator.services.mozilla.com/D69485
2020-04-24 20:31:22 +00:00
Simon Giesecke
191a830575 Bug 1628715 - Part 7: Add MOZ_NONNULL_RETURN to infallible nsTArray::AppendElements. r=xpcom-reviewers,necko-reviewers,nika,valentin
Differential Revision: https://phabricator.services.mozilla.com/D70831
2020-04-24 13:31:14 +00:00
Simon Giesecke
9cc891f41f Bug 1628715 - Part 5: Add MOZ_NONNULL_RETURN to infallible nsTArray::InsertElementsAt. r=xpcom-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D70403
2020-04-24 13:26:13 +00:00
Eitan Isaacson
5e43ff1e1e Bug 1625864 - Expose unlinked a tags as AXGroup. r=morgan
This is the recommended role in the HTML Accessibility API Mappings draft[1].

Although Chrome and Safari just expose unlinked a tags as AXStaticText.
They also don't update the accessble if it gets an href. So while we
are doing this a bit differently, I think it is probably better. And VO is happy.

1. https://www.w3.org/TR/html-aam-1.0/#html-element-role-mappings

Differential Revision: https://phabricator.services.mozilla.com/D71260
2020-04-24 14:36:36 +00:00
Eitan Isaacson
7f71e4a0c7 Bug 1625864 - Rename mac link test. r=morgan
I want to generalize it for other link stuff. Need a separate commit or
it is not recognized as a move, and won't retain history. For some reason.

Differential Revision: https://phabricator.services.mozilla.com/D71259
2020-04-24 14:36:36 +00:00
Eitan Isaacson
9db905efb4 Bug 1625864 - Fire state change event on LINKED change. r=Jamie,morgan
Also stop recreating any accessible that has href modified.

Differential Revision: https://phabricator.services.mozilla.com/D71258
2020-04-24 14:34:09 +00:00
Eitan Isaacson
b9c73277af Bug 1625864 - Promisify state change events test. r=Jamie
We will probably be adding a lot to this. So let's make it nice to use.

Differential Revision: https://phabricator.services.mozilla.com/D71257
2020-04-24 14:33:15 +00:00
James Teh
122d48f2b2 Bug 1632706: When updating AccGroupInfo, If a sibling has cached group info, assume it's visible. r=MarcoZ
This avoids unnecessary calls to States().

Differential Revision: https://phabricator.services.mozilla.com/D72265
2020-04-24 02:42:46 +00:00
Jean-Yves Avenard
6392e85f33 Bug 1607984 - P15. Wait for the load to start before setting the event handler. r=Jamie
addA11yLoadEvent gets the contentWindow and wait for the document from that window to fire the load event.

Enabling the DocumentChannel for parent process load (or here in non-e10s mode) we have one extra event loop before the load starts.
So the window passed to addAllyLoadEvent would have been of the about:blank page.

The current code was based on an observable behaviour which was that the load was occuring synchronously.

DocumentChannel broke that assumption.

Differential Revision: https://phabricator.services.mozilla.com/D70799
2020-04-24 01:46:10 +00:00
Marco Zehe
f6858d521e Bug 1631406 - Expose the correct sub role for HTML HR elements, r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D71548
2020-04-23 15:30:35 +00:00
Emilio Cobos Álvarez
d36c96ab4c Bug 1612068 - Move zoom from the content viewer to the browsing context. r=nika
We need it to live in BrowsingContext instead of WindowContext, because
we need to preserve the zoom level across same-origin navigation.

It'd be nice if it only lived in the top BC, but that's not possible at
the moment because a lot of tests rely on zooming only iframes. Some of
them can be adjusted for scaling the top instead, but not sure it's
worth it's worth fixing them and moving the zoom to be top-only, as it'd
be a bunch of effort, and the complexity and overhead of propagating the
zoom is not so big.

The print-preview-specific code in nsContentViewer is from before we did
the document cloning setup, and it seems useless. I've tested print
preview scaling before and after my patch and both behave the same.

The rest is just various test changes to use the SpecialPowers APIs or
BrowsingContext as needed instead of directly poking at the content
viewer.

I named the pres context hook RecomputeBrowsingContextDependentData, as
more stuff should move there like overrideDPPX and other media emulation
shenanigans.

I also have some ideas to simplify or even remove ZoomChild and such,
but that's followup work.

Differential Revision: https://phabricator.services.mozilla.com/D71969
2020-04-22 19:32:52 +00:00
James Teh
99f2b37464 Bug 1632467: Clear eGroupInfoDirty flag when creating AccGroupInfo. r=MarcoZ
When the tree is mutated, we set eGroupInfoDirty regardless of whether there is GroupInfo.
Previously, we cleared eGroupInfoDirty when updating GroupInfo, but not when creating it.
This meant that the flag was often still set, causing the cache to not be used a lot of the time.

Differential Revision: https://phabricator.services.mozilla.com/D72139
2020-04-23 13:21:32 +00:00
Csoregi Natalia
448f2f3c76 Backed out 16 changesets (bug 1607984) for leaks on browser_ext_webRequest.js. CLOSED TREE
Backed out changeset 6c6ffa908c06 (bug 1607984)
Backed out changeset e973911e67e6 (bug 1607984)
Backed out changeset 28af6418ac16 (bug 1607984)
Backed out changeset 9a15a605f91a (bug 1607984)
Backed out changeset 52566b3564ba (bug 1607984)
Backed out changeset 142148a95181 (bug 1607984)
Backed out changeset 108e2cb6b2a9 (bug 1607984)
Backed out changeset 77fda525ee12 (bug 1607984)
Backed out changeset 980067f3ac1d (bug 1607984)
Backed out changeset 12b82a39c910 (bug 1607984)
Backed out changeset 7657023a763b (bug 1607984)
Backed out changeset 1ab8758802a6 (bug 1607984)
Backed out changeset 35f22d0817e1 (bug 1607984)
Backed out changeset b8c6277207d8 (bug 1607984)
Backed out changeset 244d3cb006be (bug 1607984)
Backed out changeset 9fc1a237829c (bug 1607984)
2020-04-23 11:49:51 +03:00
Jean-Yves Avenard
013d7a3a84 Bug 1607984 - P15. Wait for the load to start before setting the event handler. r=Jamie
addA11yLoadEvent gets the contentWindow and wait for the document from that window to fire the load event.

Enabling the DocumentChannel for parent process load (or here in non-e10s mode) we have one extra event loop before the load starts.
So the window passed to addAllyLoadEvent would have been of the about:blank page.

The current code was based on an observable behaviour which was that the load was occuring synchronously.

DocumentChannel broke that assumption.

Differential Revision: https://phabricator.services.mozilla.com/D70799
2020-04-23 00:58:02 +00:00
James Teh
4f5d44905a Bug 1629078 part 2: Make date/time inputs labellable by an ancestor HTML label and expose text-input-type attribute. r=MarcoZ
In order for a form control to be labelled by an ancestor HTML label, its Accessible must return true for isWidget().
Also, HTML AAM says the text-input-type attribute should be exposed.

Differential Revision: https://phabricator.services.mozilla.com/D72080
2020-04-23 04:48:53 +00:00
James Teh
bb39797e35 Bug 1629078 part 1: For eNameFromSubtreeIfReqRule, don't walk into the descendants of the Accessible for which the text equiv is being calculated. r=MarcoZ
We already skipped descendants for eNameFromSubtreeIfReqRule when the element wasn't labelled by something else; i.e. when calling GetNameFromSubtree.
However, when such an element is labelled/described by an ancestor, we compute the text equiv for the label using AppendTextEquivFromContent.
Previously, when descending from the ancestor down into the element itself, we would descend into its subtree despite eNameFromSubtreeIfReqRule.
This meant that groupings labelled/described by ancestor would include the content of the grouping itself in its label/description.
This was causing problems for time inputs (once those can accept an ancestor label in the next patch).

Differential Revision: https://phabricator.services.mozilla.com/D72079
2020-04-23 04:38:19 +00:00
Andreea Pavel
cac786a35c Backed out 16 changesets (bug 1607984) for multiple test failures e.g test timeouts on a CLOSED TREE
Backed out changeset 4509808243f5 (bug 1607984)
Backed out changeset 0cb21bedf65f (bug 1607984)
Backed out changeset 4e5d89f68293 (bug 1607984)
Backed out changeset 0c0169ed4f04 (bug 1607984)
Backed out changeset ce527a6ffba4 (bug 1607984)
Backed out changeset 63175f596762 (bug 1607984)
Backed out changeset 107be8f3737d (bug 1607984)
Backed out changeset d7600d4d3528 (bug 1607984)
Backed out changeset e11b1b0ecfbf (bug 1607984)
Backed out changeset bed3f6bee79e (bug 1607984)
Backed out changeset abe692da4556 (bug 1607984)
Backed out changeset e02b12515d60 (bug 1607984)
Backed out changeset 7a2ef225a41e (bug 1607984)
Backed out changeset c173bde5106b (bug 1607984)
Backed out changeset dc8b37e10dc7 (bug 1607984)
Backed out changeset 09a651daf344 (bug 1607984)
2020-04-23 03:47:24 +03:00
Jean-Yves Avenard
8ed0970932 Bug 1607984 - P15. Wait for the load to start before setting the event handler. r=Jamie
addA11yLoadEvent gets the contentWindow and wait for the document from that window to fire the load event.

Enabling the DocumentChannel for parent process load (or here in non-e10s mode) we have one extra event loop before the load starts.
So the window passed to addAllyLoadEvent would have been of the about:blank page.

The current code was based on an observable behaviour which was that the load was occuring synchronously.

DocumentChannel broke that assumption.

Differential Revision: https://phabricator.services.mozilla.com/D70799
2020-04-22 10:27:31 +00:00
Noemi Erli
6cf19c2464 Backed out 3 changesets (bug 1625864) for causing mochitest failures in test_update.html
Backed out changeset cf3caf6f708c (bug 1625864)
Backed out changeset 0a4a66240a9f (bug 1625864)
Backed out changeset 20bcd150f92c (bug 1625864)
2020-04-20 22:31:26 +03:00
Eitan Isaacson
39cd9ad540 Bug 1625864 - Rename mac link test. r=morgan
I want to generalize it for other link stuff. Need a separate commit or
it is not recognized as a move, and won't retain history. For some reason.

Differential Revision: https://phabricator.services.mozilla.com/D71259
2020-04-20 17:59:17 +00:00