Some tests dynamically add elements to the DOM.
Since accessibility updates occur in refresh driver ticks, the Accessible often wasn't created yet when WebDriver requested it, causing intermittent WPT failures.
See the code comments for an explanation of how this works.
Differential Revision: https://phabricator.services.mozilla.com/D175972
Dev Tools is primarily targeted at web developers.
Web developers are most comfortable with ARIA roles, rather than Gecko internal role strings.
This is especially true for landmarks, which map to a single landmark role in Gecko, but most Dev Tools users expect separate ARIA roles: main, navigation, etc.
We fall back to a Gecko role string for roles which can't be mapped to ARIA; e.g. iframe.
Differential Revision: https://phabricator.services.mozilla.com/D175585
We will soon call LandmarkRole from a new function which returns an nsStaticAtom.
LandmarkRole always returns static atoms anyway, so formalize this.
Differential Revision: https://phabricator.services.mozilla.com/D175582
The unpainted non-client region leaves a white bar at the bottom of the window when maximized on Win11 with auto-hidden taskbar. This region is where a user can mouse-over to expose the taskbar. Painting it black eliminates the row of white pixels and fixes problems with exposing the hidden taskbar. Windows 10 usually (correctly) paints a sliver of the taskbar in this region with or without this patch. However, it also has similar (but more complex) failing edge cases discussed in the bug.
Additionally, bug 758280 used 1px for the autohidden region size but the real size is 2px so we switch to that here.
Differential Revision: https://phabricator.services.mozilla.com/D148834
Since Windows 8, ABM_GETAUTOHIDEBAREX has provided a way to identify if/where the system taskbar is hidden, even in multi-monitor setups. This adds a function to easily fetch that information.
Differential Revision: https://phabricator.services.mozilla.com/D148833
This adds the file design-tokens.css which hosts our
tier 1 and tier 2 design tokens. Components can use these
to define their own tier 3 tokens.
Differential Revision: https://phabricator.services.mozilla.com/D164507
The underlying Android-Gradle plugin bug has been addressed, so we no
longer see the issue, and therefore we don't need this complicated
"library set generation ID" workaround at all!
Differential Revision: https://phabricator.services.mozilla.com/D175167
This commit removes a good deal of complexity around how
`assets/omni.ja` and `libs/*` are packaged into the Android GeckoView
project and ultimately AAR and APK files.
Historically there was a delicate arrangement that had both the
omnijar and the native libraries in Android assets, the latter so
they could be compressed and read by Gecko's own loader
implementation. As GeckoView (and Android itself!) matured, the
arrangement was normalized: now Gecko libraries are regular Android
libraries with no compression and special loading. This is why we had
levels of indirection around `syncOmnijarFromDistDir` and
`syncLibsFromDistDir`: we needed fine-grained mappings from locations
to locations. These delicate mappings are no longer needed and the
whole process can be simplified in the manner of this patch.
By declaring the Android sourcesets (close to) statically, the updated
Android-Gradle plugin version 7.3.0 no longer "misses" content changes
in the relevant directories.
We continue to need the `withGeckoBinaries` product flavours to
support non-builds like linting and generating documentation.
Differential Revision: https://phabricator.services.mozilla.com/D161510
This change adds support for exposure based experiments by allowing
a Nimbus variable/pref to specify the urlbar provider that should
trigger an exposure event as well as a secondary boolean variable/pref
that controls the visibility of the exposed result. The exposure should
be registered when a result 'can be added' but may or may not be shown
based on the value of the `displayExposureProvider` variable.
* Add exposure event to metrics.yaml
* Add new Nimbus variable (`exposureProvider`) to specify the urlbar
providers that should trigger exposure events .
* Add new Nimbus variable (`displayExposureProvider`) that controls the visibility
of the provider results that matched the `exposureProvider` variable.
Differential Revision: https://phabricator.services.mozilla.com/D174209
This adds the file design-tokens.css which hosts our
tier 1 and tier 2 design tokens. Components can use these
to define their own tier 3 tokens.
Differential Revision: https://phabricator.services.mozilla.com/D164507
cs -> 35dbb167d7b9bcde8e3c2385e653299edd78f8ed
fi -> 73b5b16016a825e20e5289ad464dd21d13410fe6
gn -> 310fba0e6a3c29692967558a9c0ee5acd28f8553
ka -> 79e0c0772e882a1853f6a6ff795da04b7ac428a5
lo -> be985e6c8a686a0c5bf8ea17989a41637ea9a3dd
oc -> 33842a10271d04504f478912b9218965facc079a
sat -> 0ca71c7ddd48d7dc902734032fc212b5efa644a3
sk -> f3397b2d046779980bf2ff297aea21ec35928f4e
skr -> d73b67a538c5a3ae5300560cd718af7c7f47cf3e
sr -> 11247401f9636370bcbab519e560784989573700
tr -> 4c5b96466ac9be23121d8ef96570296397560257
With these changes, it's no longer necessary to store the normalSize on
the window, since we never check it, nor check for resize events. This
also removes the flaky timeouts, and replaces them with an executeSoon.
For some of the fullscreen tests, the number of calls to enter and exit
fullscreen are not matched. Since that count is essential for the checks
of whether or not the screen is in the expected fullscreen, this defines a
method that can force the count to a specific value. This is used in some
of the fullscreen tests to get the expected results.
Differential Revision: https://phabricator.services.mozilla.com/D172852
Split the parsing and validation of the types section in two iterations.
First, parse and validate the types. Then, check the subtyping relationships
in a second iteration, this avoid dealing with not yet loaded supertypes.
Differential Revision: https://phabricator.services.mozilla.com/D175698
We have seen reports that various websites, including twitter, perform
poorly on older Adreno devices due, to backdrop filter. We previously
encountered similar on Mali-G710 devices in bug 1809738, and it
appeared to be due to having to copy the contents of large
framebuffers--required to render the backdrop filter--to and from the
GPU's tile memory. On Mali we were able to avoid this penalty by
ensuring we performed an unscissored clear immediately after binding
the framebuffer, allowing the driver to omit initalizing the contents
of tile memory prior to rendering.
It's plausible that older Adreno drivers are not clever enough to be
able to make this optimization. However, there exists an extension
QCOM_tiled_rendering, which allows us to explicitly tell the driver
which subregion of a render target we are rendering too, and whether
it must be pre-initilized or post-resolved.
This patch makes use of this extension when rendering to color and
picture cache targets. In both cases we supply the region that is
being rendered and must only resolve the color attachment back to main
memory. In most cases we can additionally avoid initializing tile
memory prior to rendering, with the exception being in
draw_color_target() when we do not perform an initial clear, in which
case we must initialize the color attachment.
This results in a significant performance improvement on twitter when
tested on a Nexus 5 (Adreno 330) device.
Differential Revision: https://phabricator.services.mozilla.com/D176154
Previously, function subtyping was only checking the invariance.
Now, return types are covariant and arguments are contravariant.
Differential Revision: https://phabricator.services.mozilla.com/D175697