Граф коммитов

3000 Коммитов

Автор SHA1 Сообщение Дата
Morgan Reschenberg ca2f84aa05 Bug 1757661: Make cached fields accessible in tests directly r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D139979
2022-03-14 19:52:50 +00:00
Morgan Reschenberg 238bdbc5e9 Bug 1756229: Cache scroll position r=Jamie,emilio
Differential Revision: https://phabricator.services.mozilla.com/D139190
2022-03-14 19:52:50 +00:00
Iulian Moraru e8a5d3a8b3 Backed out 2 changesets (bug 1757661, bug 1756229) for causing build bustages on LocalAccessible.cpp. CLOSED TREE
Backed out changeset ba6ef5bc928e (bug 1757661)
Backed out changeset a6ea1aa0492a (bug 1756229)
2022-03-12 12:17:19 +02:00
Morgan Reschenberg c5a24dd555 Bug 1757661: Make cached fields accessible in tests directly r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D139979
2022-03-12 00:02:34 +00:00
Morgan Reschenberg 36590416d2 Bug 1756229: Cache scroll position r=Jamie,emilio
Differential Revision: https://phabricator.services.mozilla.com/D139190
2022-03-12 00:02:33 +00:00
Butkovits Atila bfa9c70d05 Backed out 2 changesets (bug 1756229, bug 1757661) for causing leaks. CLOSED TREE
Backed out changeset 20b9c772f7b5 (bug 1757661)
Backed out changeset 1dfe3b2c9405 (bug 1756229)
2022-03-09 01:12:55 +02:00
Morgan Reschenberg 9358cee431 Bug 1757661: Make cached fields accessible in tests directly r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D139979
2022-03-08 20:16:09 +00:00
Morgan Reschenberg 06012cd8fd Bug 1756229: Cache scroll position r=Jamie,emilio
Differential Revision: https://phabricator.services.mozilla.com/D139190
2022-03-08 20:16:08 +00:00
James Teh 2f2e5d80a2 Bug 1756528: Fix cropping of siblings in TextRange::Crop. r=eeejay
There was already a code path to handle siblings, but this only applied if the boundary child at the range's start/end (often a text leaf) was a sibling of aContainer.
It didn't apply if aContainer was a direct sibling of the range's start/end container.
To fix this, don't restrict the code which handles the case where aContainer does not contain the start/end boundary.
This should always fail to crop, regardless of the ancestry.

Differential Revision: https://phabricator.services.mozilla.com/D139351
2022-02-26 23:01:56 +00:00
James Teh 8c2cca9320 Bug 1741793 part 6: Add tests to exercise RemoteAccessible text selection retrieval. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D139345
2022-02-26 23:01:56 +00:00
Morgan Reschenberg 7aae56705c Bug 1744573: Apply single-level transforms in RemoteAccessibleBase::Bounds r=eeejay,Jamie,emilio
Differential Revision: https://phabricator.services.mozilla.com/D131554
2022-02-25 22:23:13 +00:00
Eitan Isaacson cedb598cc3 Bug 1746833 - P4: Add remote textbox value calculation and tests. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D138950
2022-02-18 18:21:00 +00:00
James Teh e9f99b869e Bug 1730090: Implement support for BOUNDARY_PARAGRAPH in TextLeafPoint and HyperTextAccessibleBase. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D138744
2022-02-18 11:41:41 +00:00
smolnar a7d4b25671 Backed out 4 changesets (bug 1730090, bug 1755604, bug 1755420) for causing build bustages in accessible/base/TextLeafRange.cpp CLOSED TREE
Backed out changeset f1f8a381f403 (bug 1755420)
Backed out changeset a3cfe47a020c (bug 1755420)
Backed out changeset b3360b57cf38 (bug 1730090)
Backed out changeset 3fb940c71b19 (bug 1755604)
2022-02-18 08:11:20 +02:00
James Teh 3c0d005e1c Bug 1730090: Implement support for BOUNDARY_PARAGRAPH in TextLeafPoint and HyperTextAccessibleBase. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D138744
2022-02-18 02:19:11 +00:00
James Teh bdcedbe127 Bug 1743968: Cache the display object attribute. r=morgan
This also adds Accessible::DisplayStyle, as we sometimes want to be able to get the display style without fetching all the Attributes.

Differential Revision: https://phabricator.services.mozilla.com/D138629
2022-02-17 21:56:34 +00:00
Eitan Isaacson cf6dfac2f6 Bug 1755383 - P3: Migrate HTML selection tests from mochitests to browser tests. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D138730
2022-02-16 18:42:54 +00:00
Eitan Isaacson 6063921e0f Bug 1752380 - P2: Don't cache ancestor actions directly. r=morgan
When a linkable accessible has an action because of an ancestor, don't
cache it directly, but instead walk up in the parent process to find it.

Depends on D137200

Differential Revision: https://phabricator.services.mozilla.com/D137201
2022-02-15 23:20:11 +00:00
Joel Maher 2399972c85 Bug 1754613 - split a11y tests out of mochitest-browser-chrome into mochitest-browser-a11y. r=releng-reviewers,Jamie,gbrown
here is a try push:
https://treeherder.mozilla.org/jobs?repo=try&group_state=expanded&tier=1%2C2%2C3&revision=aca12d2de75f1fb0eb25432358e5518a8e7f812d

most of the bc failures fall into:
https://bugzilla.mozilla.org/show_bug.cgi?id=1742167

I only tested bc to see if there were issues removing the `ba` tests from there.

Differential Revision: https://phabricator.services.mozilla.com/D138571
2022-02-15 16:47:57 +00:00
James Teh b7e0ab5019 Bug 1754680: Don't treat a list item bullet as an embedded object. r=eeejay
This was causing LinkAt to return a bullet instead of the first embedded object in a list item, breaking rendering with NVDA when the cache was enabled.
Rather than adding another role to RemoteAccessibleBase::IsEmbeddedObject, I changed it to use IsText().
This is consistent with how embedded objects are determined for LocalAccessible in EmbeddedObjCollector.
I think the reason this previously used roles is that when this was originally implemented, AccTypes weren't remoted, so IsText() couldn't be used.

Differential Revision: https://phabricator.services.mozilla.com/D138506
2022-02-14 23:43:34 +00:00
James Teh f65b9ea3f5 Bug 1730085 part 4: Implement support for BOUNDARY_WORD_END in TextLeafPoint and HyperTextAccessibleBase. r=eeejay
BOUNDARY_WORD_END is implemented using BOUNDARY_WORD_START and adjusting for spaces, which are word end boundaries.
This is arguably less efficient than it could be, since we will walk over space and then reverse course to compensate.
However, the alternative would mean keeping two slightly different versions of the word boundary check code in sync, plus compensating for the fact that a word often ends before a line start while still supporting words split by line wrapping.
I felt the lower complexity here outweighed the potential slight loss in efficiency.
We can always revisit this if this turns out to be a real problem.

Differential Revision: https://phabricator.services.mozilla.com/D138105
2022-02-11 06:27:03 +00:00
James Teh a8bd05cd9a Bug 1730085 part 2: Implement support for BOUNDARY_LINE_END in TextLeafPoint and HyperTextAccessibleBase. r=eeejay
BOUNDARY_LINE_END is implemented using BOUNDARY_LINE_START and adjusting for line feed characters, which are line end boundaries where present.

Differential Revision: https://phabricator.services.mozilla.com/D138103
2022-02-11 06:27:03 +00:00
smolnar af6e7b57c0 Backed out 4 changesets (bug 1730085) for causing bp-hybrid build bustages. CLOSED TREE
Backed out changeset dd90514bc052 (bug 1730085)
Backed out changeset 750f98502e6d (bug 1730085)
Backed out changeset e15365af4131 (bug 1730085)
Backed out changeset f08f12d82f7f (bug 1730085)
2022-02-11 05:25:29 +02:00
James Teh f5a04369df Bug 1754360: Move EndOffset to base Accessible. r=eeejay
Similar to StartOffset:

1. There was a Windows non-cached RemoteAccessible implementation, but it was never actually called, so I removed it.
2. The sync IPDL RemoteAccessible implementation previously provided a boolean indicating success.
    I removed this because the LocalAccessible implementation doesn't have this and it doesn't seem like remote is special in this respect.

Differential Revision: https://phabricator.services.mozilla.com/D138243
2022-02-11 02:37:13 +00:00
James Teh 3934c7d529 Bug 1730085 part 4: Implement support for BOUNDARY_WORD_END in TextLeafPoint and HyperTextAccessibleBase. r=eeejay
BOUNDARY_WORD_END is implemented using BOUNDARY_WORD_START and adjusting for spaces, which are word end boundaries.
This is arguably less efficient than it could be, since we will walk over space and then reverse course to compensate.
However, the alternative would mean keeping two slightly different versions of the word boundary check code in sync, plus compensating for the fact that a word often ends before a line start while still supporting words split by line wrapping.
I felt the lower complexity here outweighed the potential slight loss in efficiency.
We can always revisit this if this turns out to be a real problem.

Differential Revision: https://phabricator.services.mozilla.com/D138105
2022-02-11 02:25:21 +00:00
James Teh df5caa3102 Bug 1730085 part 2: Implement support for BOUNDARY_LINE_END in TextLeafPoint and HyperTextAccessibleBase. r=eeejay
BOUNDARY_LINE_END is implemented using BOUNDARY_LINE_START and adjusting for line feed characters, which are line end boundaries where present.

Differential Revision: https://phabricator.services.mozilla.com/D138103
2022-02-11 02:25:21 +00:00
Daisuke Akatsuka 52f770a48d Bug 1750583: Compress whitespaces in heading content. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D138242
2022-02-10 20:46:54 +00:00
Morgan Reschenberg 56b2c85bf3 Bug 1750583: Create MOXRootGroup for all body elements without a document role r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D138174
2022-02-10 20:46:54 +00:00
Emilio Cobos Álvarez b699e8cdc8 Bug 1753995 - Remove nsDOMWindowUtils.screenPixelsPerCSSPixel. r=smaug,dholbert
For all purposes, this is the same as devicePixelRatio. It was meant to
skip the resistFingerprinting check the devicePixelRatio getter does,
but we do that now using CallerType in WebIDL, so if we cared about that
for these tests (which we don't) we could just do
SpecialPowers.wrap(window).devicePixelRatio.

As a follow-up we could move the NoOverride to window for symmetry. But
it's only used by devtools touch simulation so not sure if worth it.

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

Differential Revision: https://phabricator.services.mozilla.com/D137504
2022-02-04 02:10:28 +00:00
Joel Maher a261492460 Bug 1750839 - Enable fission browser-chrome for variants. r=mccr8,releng-reviewers,gbrown
Differential Revision: https://phabricator.services.mozilla.com/D136512
2022-02-01 19:30:34 +00:00
Eitan Isaacson b494f3eab9 Bug 1743967 - Support async DoAction. r=Jamie
Now that we cache ActionCount, we can check for the absence of actions
and return false, or send an async message and return true.

Differential Revision: https://phabricator.services.mozilla.com/D135909
2022-01-31 23:10:52 +00:00
Eitan Isaacson ac8433cd7e Bug 1748749 - P4: Support cached actions. r=Jamie
Move ActionCount/ActionNameAt/ActionDescriptionAt to Accessible,
use cached values in RemoteAccessible, and tweak platforms.

Also introduce browser test.

Differential Revision: https://phabricator.services.mozilla.com/D135908
2022-01-31 23:10:52 +00:00
Cosmin Sabou ef48e09b4e Backed out 6 changesets (bug 1743967, bug 1748749, bug 1749828) for causing bc failures on browser_PBMCookieBehavior.js.
Backed out changeset afda8c72ba29 (bug 1749828)
Backed out changeset 8b5356f3d50d (bug 1743967)
Backed out changeset 04f178d71ae6 (bug 1748749)
Backed out changeset cd2e76de3d18 (bug 1748749)
Backed out changeset 4190c5e44b32 (bug 1748749)
Backed out changeset 8e23acc969d2 (bug 1748749)
2022-02-01 03:05:11 +02:00
Eitan Isaacson 6f159bbb67 Bug 1743967 - Support async DoAction. r=Jamie
Now that we cache ActionCount, we can check for the absence of actions
and return false, or send an async message and return true.

Differential Revision: https://phabricator.services.mozilla.com/D135909
2022-01-31 23:10:52 +00:00
Eitan Isaacson 12d336ff2f Bug 1748749 - P4: Support cached actions. r=Jamie
Move ActionCount/ActionNameAt/ActionDescriptionAt to Accessible,
use cached values in RemoteAccessible, and tweak platforms.

Also introduce browser test.

Differential Revision: https://phabricator.services.mozilla.com/D135908
2022-01-31 23:10:52 +00:00
Butkovits Atila c6b99e8ff7 Backed out 5 changesets (bug 1743967, bug 1748749) for causing failures at browser_caching_actions.js. CLOSED TREE
Backed out changeset 6f15d287ecd8 (bug 1743967)
Backed out changeset fce9d3a2500d (bug 1748749)
Backed out changeset 9d405f9475b3 (bug 1748749)
Backed out changeset 9dccfcc00718 (bug 1748749)
Backed out changeset f1be79d75c5d (bug 1748749)
2022-01-28 07:07:56 +02:00
Eitan Isaacson ab978bd5c2 Bug 1743967 - Support async DoAction. r=Jamie
Now that we cache ActionCount, we can check for the absence of actions
and return false, or send an async message and return true.

Differential Revision: https://phabricator.services.mozilla.com/D135909
2022-01-28 00:09:05 +00:00
Eitan Isaacson 0a906dbd4f Bug 1748749 - P4: Support cached actions. r=Jamie
Move ActionCount/ActionNameAt/ActionDescriptionAt to Accessible,
use cached values in RemoteAccessible, and tweak platforms.

Also introduce browser test.

Differential Revision: https://phabricator.services.mozilla.com/D135908
2022-01-28 00:09:04 +00:00
James Teh e3e9a67ed9 Bug 1748450: If an Accessible is moved, reuse the RemoteAccessible even if the cache is disabled. r=eeejay
This fixes problems for Orca caused by object destruction when grabbing focus or setting the caret.

This patch also Fixes two bugs in the RemoteAccessible reuse code.
First, moved LocalAccessibles were previously being tracked even in the parent process if the cache was enabled.
While that was harmless, it was also unnecessary, since we only need to do that in order to send IPC notifications.
Second, when an OuterDocAccessible was moved, we were previously trying to shut down its child document, causing a crash.
Child documents must be left alone, since they are added ande removed differently to normal children.

Differential Revision: https://phabricator.services.mozilla.com/D135422
2022-01-27 18:30:46 +00:00
Cristian Tuns fd0e69bce2 Bug 1659435 - disable browser_nested_iframe.js on mac x64 r=intermittent-reviewers,MasterWayZ DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D137036
2022-01-27 01:43:08 +00:00
Alexandru Michis 8508eb2c77 Backed out changeset 52345a440234 (bug 1748450) for causing crashes (Bug 1751268). 2022-01-21 01:47:46 +02:00
James Teh 90e3a2f3bb Bug 1748450: If an Accessible is moved, reuse the RemoteAccessible even if the cache is disabled. r=eeejay
This fixes problems for Orca caused by object destruction when grabbing focus or setting the caret.

This also fixes an oversight where moved LocalAccessibles were being tracked even in the parent process if the cache was enabled.
While that was harmless, it was also unnecessary, since we only need to do that in order to send IPC notifications.

Differential Revision: https://phabricator.services.mozilla.com/D135422
2022-01-20 00:40:17 +00:00
Eitan Isaacson 035538614c Bug 1748775 - Expire column children when table expires. r=morgan
I think there is a potential crasher if an AT holds a reference to a column object while its parent table expires, and then tries to retrieve AXChildren. We need to expire te column objects when the table expires or is destroyed.

Differential Revision: https://phabricator.services.mozilla.com/D136288
2022-01-19 19:33:35 +00:00
Emilio Cobos Álvarez f6a958e457 Bug 1744009 - Accessibility fixes for new combobox layout code. r=eeejay
In terms of the C++ code, this patch does basically one thing, which is
allowing creating option / optgroup accessibles without a frame for
comboboxes, and tracking mutations like layout does.

It seems this should be straight-forward, but handling mutations got a
bit complicated. We don't want to forcibly re-create accessibles, so we
want to re-use the PruneOrInsertSubtree logic that ContentInserted uses.

But determining whether we need to create the accessible requires
having flushed styles, so I added a ScheduleAccessibilitySubtreeUpdate
API to trigger that from WillRefresh once style and layout are
up-to-date.

The rest of the test updates should be sort of straight-forward. They
reflect two changes:

 * <option> accessibles are leaves now (so they don't have text
   children). Note that we still have the right native name and so on,
   using the same logic we use to render the label.

 * In 1proc tests, the focus no longer goes to the <option>, and uses
   the same code-path that e10s does (moving focus to a <menulist> in
   the parent process). Since that wasn't easy to test for (afaict) and
   we have browser tests to cover that
   (browser_treeupdate_select_dropdown.js, etc), I've decided to just
   remove the tests that relied on the previous code-path, as they were
   testing for a codepath that users weren't hitting anyways.

I've tested this with JAWS and Orca and behavior seems unchanged to my
knowledge.

Differential Revision: https://phabricator.services.mozilla.com/D133098
2022-01-17 11:10:05 +00:00
Marian-Vasile Laza 35a88d897e Backed out 2 changesets (bug 1744009) for causing reftest failures on select-3.html.
Backed out changeset 3e44e31d3d12 (bug 1744009)
Backed out changeset 619389788775 (bug 1744009)
2022-01-17 11:14:27 +02:00
Emilio Cobos Álvarez 7b9c5fc6b2 Bug 1744009 - Accessibility fixes for new combobox layout code. r=eeejay
In terms of the C++ code, this patch does basically one thing, which is
allowing creating option / optgroup accessibles without a frame for
comboboxes, and tracking mutations like layout does.

It seems this should be straight-forward, but handling mutations got a
bit complicated. We don't want to forcibly re-create accessibles, so we
want to re-use the PruneOrInsertSubtree logic that ContentInserted uses.

But determining whether we need to create the accessible requires
having flushed styles, so I added a ScheduleAccessibilitySubtreeUpdate
API to trigger that from WillRefresh once style and layout are
up-to-date.

The rest of the test updates should be sort of straight-forward. They
reflect two changes:

 * <option> accessibles are leaves now (so they don't have text
   children). Note that we still have the right native name and so on,
   using the same logic we use to render the label.

 * In 1proc tests, the focus no longer goes to the <option>, and uses
   the same code-path that e10s does (moving focus to a <menulist> in
   the parent process). Since that wasn't easy to test for (afaict) and
   we have browser tests to cover that
   (browser_treeupdate_select_dropdown.js, etc), I've decided to just
   remove the tests that relied on the previous code-path, as they were
   testing for a codepath that users weren't hitting anyways.

I've tested this with JAWS and Orca and behavior seems unchanged to my
knowledge.

Differential Revision: https://phabricator.services.mozilla.com/D133098
2022-01-16 23:31:23 +00:00
Morgan Reschenberg e92d718273 Bug 1749063: Ensure articles expose only AXDescription and not AXTitle r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D135413
2022-01-07 23:00:36 +00:00
James Teh ea75bab2da Bug 1747157: Use a non-remote browser to load snippets in the parent process in a11y browser tests instead of a chrome:// page and .innerHTML. r=eeejay
Creating a non-remote browser is obscure, but it turns out that it is possible.
BrowserTestUtils.addTab/gBrowser.addTab takes a forceNotRemote: true option, but even though this doesn't set remote on the browser element, it still sets maychangeremoteness.
To work around this, we create a tab with a blank document and forceNotRemote: true, remove maychangeremoteness and finally set the src to load our document.
We must also set a pref to allow this.
With this patch, the sanitizer will no longer strip elements from our snippets.

Differential Revision: https://phabricator.services.mozilla.com/D135147
2022-01-05 23:46:20 +00:00
Eitan Isaacson df3b1159a6 Bug 1747835 - P2: Cache text-input-type attribute for text and date/time inputs. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D134759
2022-01-05 22:30:53 +00:00
Eitan Isaacson 654a0be767 Bug 1737944 - P12: Add better todo support to attribute tests, and todo failing cache tests. r=Jamie
Changed how our attributes tests work a bit to be single "is" test
instead of comparing each attribute separately. This allows passing a
todo option without it failing on attributes that are identical.

Differential Revision: https://phabricator.services.mozilla.com/D134974
2022-01-04 21:01:39 +00:00
Eitan Isaacson 935107258c Bug 1737944 - P5: Unify GetLevelInternal and GetDefaultLevel as Accessible::GetLevel. r=Jamie
The nsAccUtils method was a "fast" one for calculating set sizes and
conceptual parents. Unified it with
LocalAccessible::GetLevelInternal in Accessible::GetLevel with an
argument.

I also fixed select->optgroup->option group attributes.

Differential Revision: https://phabricator.services.mozilla.com/D134208
2022-01-04 21:01:36 +00:00
Eitan Isaacson 5379b3edcf Bug 1737944 - P1: Port HTML group position test to browser. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D134204
2022-01-04 21:01:34 +00:00
Eitan Isaacson 7eb72ab403 Bug 1747749 - Introduce inner reorder event. r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D134813
2022-01-04 17:41:41 +00:00
Emilio Cobos Álvarez fac07284a9 Bug 1745869 - Grant 1s of activity to hidden OOPIF iframes. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D134804
2022-01-02 12:39:38 +00:00
James Teh f32815354c Bug 1739050: If an Accessible is moved, reuse the RemoteAccessible and don't push the cache for it. r=eeejay
A move is sent to the parent process as a hide and then a show, even if the LocalAccessible wasn't recreated.
Previously, this meant that a new RemoteAccessible was created and the original RemoteAccessible was destroyed.
This was particularly problematic if the Accessible had focus and the client cached focus.
In that case, the client cache contained a dead Accessible, and since no focus event was fired (because it's the same Accessible in the content process), focus in the client was broken.
This also meant that there was a full cache push for a moved Accessible, which was wasteful.

To fix this:

1. Keep track of LocalAccessibles inserted during a tick.
2. Keep track of LocalAccessibles moved during a tick, including descendants. If a LocalAccessible was inserted during the same tick (1), don't track it as a move.
3. Before processing mutation events, tell the parent process about which Accessibles are about to be moved (2).
4. When sending a subtree to the parent process, don't send cache info for an Accessible which is being moved (2).
5. When the parent process receives a hide event, if there is an Accessible that is about to be moved (3), don't shut it down; allow it to be reused.
6. When the parent process receives a show event, if there is an Accessible that has an existing RemoteAccessible (5), reuse it.

Differential Revision: https://phabricator.services.mozilla.com/D132328
2021-12-22 01:33:52 +00:00
Morgan Reschenberg 422693242c Bug 1723766: Process internal table groups in moxRows r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D133676
2021-12-16 23:06:16 +00:00
James Teh 16c3343e30 Bug 1735955: Always push bounds for an initial cache push, irrespective of LocalAccessible::mBounds. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D133594
2021-12-14 04:58:57 +00:00
James Teh e649b5b5cd Bug 1742915 part 2: Cache the tag attribute. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D132653
2021-12-07 03:37:03 +00:00
Alexandru Michis 77f2a1c3aa Backed out 2 changesets (bug 1742915) for causing android bustages.
CLOSED TREE

Backed out changeset 587bbb6b9224 (bug 1742915)
Backed out changeset 1beb5cf0cceb (bug 1742915)
2021-12-07 03:08:45 +02:00
James Teh 09a73de6f5 Bug 1742915 part 2: Cache the tag attribute. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D132653
2021-12-07 00:01:31 +00:00
Joel Maher 63bf096aef Bug 1743907 - Remove webrender annotation from manifestparser manifests. r=ahal,webdriver-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D132682
2021-12-03 16:04:29 +00:00
James Teh aaae0cfc51 Bug 1742917 part 4: Move LinkIndexAtOffset to HyperTextAccessibleBase. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D132201
2021-12-02 06:55:29 +00:00
James Teh d3e92fc1a1 Bug 1742917 part 3: Move LinkIndexOf to HyperTextAccessibleBase. r=eeejay
I removed the sync IPDL implementation of LinkIndexOf because we can calculate this in the parent process even with the cache disabled.

Differential Revision: https://phabricator.services.mozilla.com/D132200
2021-12-02 06:55:28 +00:00
James Teh 5a9991c9d0 Bug 1742917 part 1: Move StartOffset to base Accessible. r=eeejay
1. There was a Windows non-cached RemoteAccessible implementation, but it was never actually called, so I removed it.
2. The sync IPDL RemoteAccessible implementation previously provided a boolean indicating success.
    I removed this because the LocalAccessible implementation doesn't have this and it doesn't seem like remote is special in this respect.

Differential Revision: https://phabricator.services.mozilla.com/D132198
2021-12-02 06:55:27 +00:00
James Teh 4904fa05f2 Bug 1741792 part 2: Use the cached caret. r=eeejay
This includes support in both TextLeafPoint and HyperTextAccessibleBase.

Differential Revision: https://phabricator.services.mozilla.com/D132098
2021-12-01 04:48:34 +00:00
Tooru Fujisawa d35e49b80a Bug 1617545 - Part 2: Make datalist item not removable in autocomplete drop down menu. r=MattN
Add nsIAutoCompleteResult.isRemovableAt method, to indicate whether the value
is removable, and do nothing for Shift+Delete on the item when the value is
not removable.

Depends on D131740

Differential Revision: https://phabricator.services.mozilla.com/D131741
2021-11-28 16:19:56 +00:00
Eitan Isaacson 37107fdf4c Bug 1733263 - P5: Rely on DOMMenuItem events for ACTIVE state changes in select elements. r=Jamie
1. Use dom events in RootAccessible to fire ACTIVE state changes.
2. Add DOMMenuItemInactive events to nsListControlFrame and fire it on
   the previously active option.
3. Don't fire those DOM events on collapsed combo boxes.
4. Add ACTIVE state change events for collapsed combo box options.

Differential Revision: https://phabricator.services.mozilla.com/D130298
2021-11-11 17:05:58 +00:00
Eitan Isaacson bdc3cd4279 Bug 1733263 - P4: Promisify the select focus change test. r=Jamie
This will make it easier to work with in a later change.

Differential Revision: https://phabricator.services.mozilla.com/D130297
2021-11-11 17:05:58 +00:00
Eitan Isaacson 9116ad2a43 Bug 1733263 - P3: Fire ACTIVE state change when aria-activedescendant changes. r=Jamie
Have ARIAActiveDescendantIDMaybeMoved call ARIAActiveDescendantChanged regardless of
widget focus state. The latter already checks if the widget is focused. This gives us
a chance to fire and ACTIVE state change regardless of focus state.

If an id or aria-activedescendant attribute is about to change, fire an
ACTIVE state change on the previously active accessible.

Differential Revision: https://phabricator.services.mozilla.com/D130296
2021-11-11 17:05:58 +00:00
Eitan Isaacson 48ccdd1553 Bug 1733263 - P2: Flush events and notifications when waiting for unexpected events. r=Jamie
By allowing async DOM events to be dispatched, and advancing the refresh
driver we can force some calls to NotificationController::WillRefresh
and flush out any pending notifications or events.

This lets us more reliably catch unexpected events without the need for
a sentinel event at the end.

Differential Revision: https://phabricator.services.mozilla.com/D130295
2021-11-11 17:05:57 +00:00
Eitan Isaacson ad6731236c Bug 1733263 - P1: Refactor state change event promises. r=Jamie
We do this in a bunch of places, so I moved it into promisified-events.

Differential Revision: https://phabricator.services.mozilla.com/D130294
2021-11-11 17:05:57 +00:00
Butkovits Atila b1ead9992f Backed out 5 changesets (bug 1733263) for causing leakes. CLOSED TREE
Backed out changeset 06263018f1f7 (bug 1733263)
Backed out changeset c8f226476a30 (bug 1733263)
Backed out changeset 2b1755721a8e (bug 1733263)
Backed out changeset 0b3d68cb6e68 (bug 1733263)
Backed out changeset 439e821c9640 (bug 1733263)
2021-11-10 02:22:56 +02:00
Eitan Isaacson 379e516511 Bug 1733263 - P5: Rely on DOMMenuItem events for ACTIVE state changes in select elements. r=Jamie
1. Use dom events in RootAccessible to fire ACTIVE state changes.
2. Add DOMMenuItemInactive events to nsListControlFrame and fire it on
   the previously active option.
3. Don't fire those DOM events on collapsed combo boxes.
4. Add ACTIVE state change events for collapsed combo box options.

Differential Revision: https://phabricator.services.mozilla.com/D130298
2021-11-09 23:17:17 +00:00
Eitan Isaacson c96fcc25b5 Bug 1733263 - P4: Promisify the select focus change test. r=Jamie
This will make it easier to work with in a later change.

Differential Revision: https://phabricator.services.mozilla.com/D130297
2021-11-09 23:17:17 +00:00
Eitan Isaacson c24895a970 Bug 1733263 - P3: Fire ACTIVE state change when aria-activedescendant changes. r=Jamie
Have ARIAActiveDescendantIDMaybeMoved call ARIAActiveDescendantChanged regardless of
widget focus state. The latter already checks if the widget is focused. This gives us
a chance to fire and ACTIVE state change regardless of focus state.

If an id or aria-activedescendant attribute is about to change, fire an
ACTIVE state change on the previously active accessible.

Differential Revision: https://phabricator.services.mozilla.com/D130296
2021-11-09 23:17:17 +00:00
Eitan Isaacson cece555e00 Bug 1733263 - P2: Flush events and notifications when waiting for unexpected events. r=Jamie
By allowing async DOM events to be dispatched, and advancing the refresh
driver we can force some calls to NotificationController::WillRefresh
and flush out any pending notifications or events.

This lets us more reliably catch unexpected events without the need for
a sentinel event at the end.

Differential Revision: https://phabricator.services.mozilla.com/D130295
2021-11-09 23:17:16 +00:00
Eitan Isaacson 594d200c93 Bug 1733263 - P1: Refactor state change event promises. r=Jamie
We do this in a bunch of places, so I moved it into promisified-events.

Differential Revision: https://phabricator.services.mozilla.com/D130294
2021-11-09 23:17:16 +00:00
James Teh ca81384a66 Bug 1738051: Use a11y focus events to support the focused state when the cache is enabled. r=eeejay
This will also serve as the groundwork for unifying FocusedChild, but that isn't implemented here.

Differential Revision: https://phabricator.services.mozilla.com/D129669
2021-11-02 23:56:37 +00:00
James Teh eca2f19b0d Bug 1738032 part 6: browser_caching_states.js: Ignore state changes for states we aren't interested in. r=eeejay
For example, when disabling an HTML input, we get an event for SUPPORTS_AUTOCOMPLETION among others.
If we continue with the test after that state change and there hasn't been an ENABLED/UNAVAILABLE state change, the cache won't be up to date.
Unfortunately, we can't use untilCacheOk here because we don't do a cache push for state changes.

Differential Revision: https://phabricator.services.mozilla.com/D129643
2021-11-02 23:56:36 +00:00
Emilio Cobos Álvarez f3f1e06187 Bug 1738586 - Fix a11y test_general on dark mode. r=Jamie
Since this is a chrome page we start honoring dark mode colors by
default, and after bug 1525107 that affects default background and text
colors, which these tests were hardcoding to black/white.

Differential Revision: https://phabricator.services.mozilla.com/D129983
2021-11-02 10:36:17 +00:00
James Teh 570683a696 Bug 1730096 part 9: Add tests for cached text attributes. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D129475
2021-11-01 23:27:40 +00:00
Emilio Cobos Álvarez 43632d10fb Bug 1738084 - Make popups on Linux have shadows. r=stransky
Differential Revision: https://phabricator.services.mozilla.com/D129699
2021-10-28 00:51:58 +00:00
Eitan Isaacson 254970745b Bug 1733248 - Fire state change events for autocomplete changes. r=morgan
Trickier than just listening for attributes on inputs since a form
can toggle autocomplete too.

Also fixed To32States to work on the 32nd bit.

Differential Revision: https://phabricator.services.mozilla.com/D128913
2021-10-21 22:47:43 +00:00
Eitan Isaacson 9ea8dc7379 Bug 1736115 - Remove HTMLTextFieldAccessible::BindingOrWidgetParent. r=Jamie
Also fix search-textbox's use of aria-autocomplete and a test.

Differential Revision: https://phabricator.services.mozilla.com/D128655
2021-10-21 22:47:43 +00:00
Morgan Reschenberg 02b4894dca Bug 1733440: Adjust RemoteAccessibleBase::Bounds for root relative coordinates r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D127848
2021-10-20 14:49:14 +00:00
James Teh 99831a6ce1 Bug 1735722 part 3: Add test for HyperTextAccessibleBase::LinkAt. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D128552
2021-10-19 03:57:19 +00:00
Evgenia Kotovich 0d0980ee0d Bug 1576768 - Automatically format .sjs files using prettier. r=Standard8,agi,zombie,extension-reviewers
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D128482
2021-10-18 09:26:33 +00:00
Noemi Erli 2bba3cec69 Backed out changeset 2ab6bb03dcc1 (bug 1576768) for causing failures in test_double_submit.html CLOSED TREE 2021-10-18 02:05:57 +03:00
Andreea Pavel cac8dbda22 Bug 1734271 - Disable browser_test_zoom.js for webrender builds and reverted previous change r=aryx DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D128692
2021-10-17 16:50:13 +00:00
Evgenia Kotovich 3e3dff109c Bug 1576768 - Automatically format .sjs files using prettier. r=Standard8,agi,zombie,extension-reviewers
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D128482
2021-10-17 14:59:14 +00:00
Morgan Reschenberg a3da1e4b03 Bug 1735868: Map roles::switch to mozCheckboxAccessible r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D128639
2021-10-15 21:48:29 +00:00
Morgan Reschenberg c703ea6425 Bug 1734271: Disable browser_test_zoom.js for webrender builds r=Jamie
Differential Revision: https://phabricator.services.mozilla.com/D128500
2021-10-15 16:08:13 +00:00
Alexandru Michis dac6815201 Backed out changeset 7c08aa027893 (bug 1576768) for causing multiple failures.
CLOSED TREE
2021-10-15 16:52:43 +03:00
Evgenia Kotovich a8b32926fa Bug 1576768 - Automatically format .sjs files using prettier. r=Standard8,agi,zombie,extension-reviewers
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D128482
2021-10-15 12:58:11 +00:00
James Teh a145479a09 Bug 1734582: Don't assert for a null frame in TextLeafPoint::FindPrev/NextLineStartSameLocalAcc. r=morgan
This can happen for display: contents.
In that case, there are no lines in the Accessible anyway, so returning an invalid TextLeafPoint (as we already did) is the correct thing to do.

Differential Revision: https://phabricator.services.mozilla.com/D128319
2021-10-14 01:53:47 +00:00
James Teh 90ef3d34d8 Bug 1733514 part 5: Add initial tests for a11y text caching. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D128035
2021-10-12 23:43:09 +00:00
James Teh 8fefbe08c1 Bug 1734540: Use document.body.innerHTML instead of document.write in chrome-document-builder.html. r=eeejay
This is a follow-up to my original patch.
It turns out that there is an assertion preventing use of document.write in privileged contexts which my original patch triggered.
Instead, set document.body.innerHTML.

Differential Revision: https://phabricator.services.mozilla.com/D128159
2021-10-12 23:43:06 +00:00
Eitan Isaacson d1e01ab3a8 Bug 1733243 - P3: Fire state change events for select[multiple]. r=morgan
If a select's size is greater than 1 it won't be recreated when multiple
is added or removed. State change events should be fired in that case.

Differential Revision: https://phabricator.services.mozilla.com/D128277
2021-10-12 22:13:34 +00:00
Eitan Isaacson 035a73c527 Bug 1733243 - P2: Recreate accessible when select size or multiple changes. r=morgan
If a <select> element with a default size or size of 1 gets the
`multiple` attribute it will change from a combobox button to an
embedded listbox. Similarly, if a select's size is set to something
larger than 1 it will convert from a combobox button to a listbox.

We should recreate the select's subtree because the
implementing classes are different for those two cases.

Differential Revision: https://phabricator.services.mozilla.com/D128276
2021-10-12 22:13:34 +00:00