It's relying on the other menuitems being tall enough so that they
overflow 5em. When the non-native theme is enabled, this assumption
breaks because that theme doesn't add padding to XUL menuitems, and we
get the failure:
wrong state bits for 'mi_file1.2.4' !got '0', expected 'offscreen'
Get what we want to test more explicitly by setting the height of the
menuitems appropriately.
Differential Revision: https://phabricator.services.mozilla.com/D103267
It's relying on the other menuitems being tall enough so that they
overflow 5em. When the non-native theme is enabled, this assumption
breaks because that theme doesn't add padding to XUL menuitems, and we
get the failure:
wrong state bits for 'mi_file1.2.4' !got '0', expected 'offscreen'
Get what we want to test more explicitly by setting the height of the
menuitems appropriately.
Differential Revision: https://phabricator.services.mozilla.com/D103267
This uses a similar approach to HasNameDependent, introducing a new HasDescriptionDependent.
However, we don't fire events on ancestors, since a description is never computed from an Accessible's own subtree without an explicit described by relation.
Differential Revision: https://phabricator.services.mozilla.com/D102678
HasNameDependent is now set on an Accessible (and thus its descendants) which has A LABEL_FOR relation.
When text mutations occur on such an Accessible, EventQueue::PushNameChange now queues a name change for the Accessible being labelled.
Differential Revision: https://phabricator.services.mozilla.com/D102677
Note that there's still a little plugin related code in
widget/ and gfx/ etc after this. That can be removed
once we remove plugin support from dom/ etc.
The removal from layout/ should be pretty complete though.
Differential Revision: https://phabricator.services.mozilla.com/D102140
This prevents us from instantiating accessibility (and incurring a significant performance cost later in the runtime) when we already know the answers a caller will receive if a11y were instantiated.
Differential Revision: https://phabricator.services.mozilla.com/D102371
The COM proxy for a DocAccessibleParent at the top level in its content process really should never be null.
However, some systems seem to have a broken COM configuration which causes problems like this.
This does mean a11y is broken, but users who get a11y enabled because of something other than an AT (e.g. touch screen) probably aren't even aware.
Regardless, we shouldn't crash.
Instead, we assert (in debug builds) and null check.
Differential Revision: https://phabricator.services.mozilla.com/D102129
The editable state is about navigable text (with a caret), not editable as in "not read only".
ATs don't want this exposed for grids and it causes problems for them.
They can (and already do) distinguish between gridcell and cell using xml-roles.
Differential Revision: https://phabricator.services.mozilla.com/D101707
This allows supporting image-set(), etc, and simplifies the bullet frame
code significantly, too thanks to two changes:
* Instead of manually managing the image request, use the CSS image
loader, with the `REQUEST_REQUIRES_REFLOW` flag, to handle image
loads correctly. This didn't exist when this code was initially
implemented, but we can nicely use it now.
* Instead of re-implementing another WebRender command-builder thing,
we can just reuse the nsImageRenderer code.
Differential Revision: https://phabricator.services.mozilla.com/D100774
This means that the NSDictionaries will be constructed the first time the
wrapper function is called, and not at C++ static initializer time.
This avoids false positive warnings when running with the environment variables
`OBJC_DEBUG_MISSING_POOLS=YES LIBDISPATCH_DEBUG_MISSING_POOLS=NO`.
Differential Revision: https://phabricator.services.mozilla.com/D100976
This allows supporting image-set(), etc, and simplifies the bullet frame
code significantly, too thanks to two changes:
* Instead of manually managing the image request, use the CSS image
loader, with the `REQUEST_REQUIRES_REFLOW` flag, to handle image
loads correctly. This didn't exist when this code was initially
implemented, but we can nicely use it now.
* Instead of re-implementing another WebRender command-builder thing,
we can just reuse the nsImageRenderer code.
Differential Revision: https://phabricator.services.mozilla.com/D100774
Introducing this as a separate patch to simplify this changeset and first introduce a straightforward-ish implementation.
Differential Revision: https://phabricator.services.mozilla.com/D100731
Applying a bulk filter on accessibles in content process allows us to avoid a potentially large (and variable) number of IPC sync calls to retrieve the accessible names. I chose to implement this as a "post filter" and not to actually do the entire search in content because it would cause a lot of duplication of code for non-IPC searching, and we wouldn't have the flexibility to combine a text search with any arbitrary search key as the API requires.
I also generalized the RangeTypes.h header to PlatformExtTypes so it can be used to define filter types as well.
Differential Revision: https://phabricator.services.mozilla.com/D100730
It seems that VoiceOver depends on that property to know if a selection is be extended or moved. This manifests in several places in Slack when the user combines VO navigation with Slack's keyboard navigation.
Also changed where we retrieve the editable ancestor to simplify the notification dispatching block.
Differential Revision: https://phabricator.services.mozilla.com/D100452
This doesn't happen often. I can't find a reproducable case to test with. This happens with rapidly mutating content and is the result of some kind of race.
Differential Revision: https://phabricator.services.mozilla.com/D100174
This change that was introduced in bug 1682692 was not actually tested
and is unrelated to the fix. I thought that this was more correct, and I
added it. But this change should be reverted.
Differential Revision: https://phabricator.services.mozilla.com/D100169
This lifts a bunch of string conversions higher up the stack, but allows
us to make the servo code use utf-8 unconditionally, and seemed faster
in my benchmarking (see comment 0).
It should also make a bunch of attribute setters faster too (like
setting .cssText), now that we use UTF8String for them (we couldn't
because we couldn't specify different string types for the getter and
setters).
Differential Revision: https://phabricator.services.mozilla.com/D99590
This is a safeguard for endless recursion in HyperTextIterator::NormalizeForward. Will catch similar corruptions found in bug 1682692.
Differential Revision: https://phabricator.services.mozilla.com/D99926
And have it mirror in the parent process more automatically.
The docShellIsActive setter in the browser-custom-element side needs to
be there rather than in the usual DidSet() calls because the
AsyncTabSwitcher code relies on getting an exact amount of notifications
as response to that specific setter. Not pretty, but...
BrowserChild no longer sets IsActive() on the docshell itself for OOP
iframes. This fixes bug 1679521. PresShell activeness is used to
throttle rAF as well, which handles OOP iframes nicely as well.
Differential Revision: https://phabricator.services.mozilla.com/D96072
By spec, it would need to be an area for aria-multiline=true and a field for aria-multiline=false. Chrome seems to assign all aria text boxes to areas. For some reason this allows VO to recognize links when editing. Webkit doesn't need this, for some reason and can get links announces in AXTextField as well.
Depends on D99312
Differential Revision: https://phabricator.services.mozilla.com/D99313
For focusable ancestor, just use editable ancestor since the IPC toll
on finding closest focusable ancestor isn't worth it.
Differential Revision: https://phabricator.services.mozilla.com/D99311
By spec, it would need to be an area for aria-multiline=true and a field for aria-multiline=false. Chrome seems to assign all aria text boxes to areas. For some reason this allows VO to recognize links when editing. Webkit doesn't need this, for some reason and can get links announces in AXTextField as well.
Depends on D99312
Differential Revision: https://phabricator.services.mozilla.com/D99313
This is consistent with how WebKit does it: if offset is between two accessibles,
return the previous one.
Depends on D99311
Differential Revision: https://phabricator.services.mozilla.com/D99312
For focusable ancestor, just use editable ancestor since the IPC toll
on finding closest focusable ancestor isn't worth it.
Differential Revision: https://phabricator.services.mozilla.com/D99311
This moves parts of IPCMessageUtils.h to two new header files and adapts
the include directives as necessary. The new header files are:
- EnumSerializer.h, which defines the templates for enum serializers
- IPCMessageUtilsSpecializations.h, which defines template specializations
of ParamTraits with extra dependencies (building upon both IPCMessageUtils.h
and EnumSerializer.h)
This should minimize the dependencies pulled in by every consumer of
IPCMessageUtils.h
Differential Revision: https://phabricator.services.mozilla.com/D94459
This is done via an ifdef in the ARIAMap. Provisions, however, are there to simply remove the ifdef and if clauses from here and the test file to enable this on other platforms once alert double-speaking and other unwanted side effects are fixed on said platforms.
Differential Revision: https://phabricator.services.mozilla.com/D97584