Add `MockSound` to replace nsISound in test. Allow us to track play
calls by additional exposed `played` array.
Add `resetSound` to FinderSound module, this is mainly for tests to
clear the internal gSound cache and ensure MockSound can mock it.
Differential Revision: https://phabricator.services.mozilla.com/D215306
Introduce another state `_lastNotFoundString` to trace search string
length. Avoid to break original `_findFailedString` logic. Also note
this `_updateControlState` can be called multiple times after single
input in search field thus not as simple as other findbars.
Differential Revision: https://phabricator.services.mozilla.com/D215196
The "not found" sound was initially implemented in cpp, then reworked
again in FinderParent (mjs) during fission migration.
Now completely move the implemention to JS as a new module. Make it
easier to be integrated by find controllers, also reduce typeaheadfind's
unnecessary responsibility.
To be clear, the `FinderParent.sys.mjs` affects the general findbar in
web pages, while `Finder.sys.mjs` affects non-remote pages e.g., chrome
pages like about:about (previously handled by nsTypeAheadFind.cpp).
Differential Revision: https://phabricator.services.mozilla.com/D215195
For some reason passing an opaque wrapper from the worker thread isn't an issue for Date.getTime, while it breaks RegExp.toString.
So that, in workers, RegExp with overloaded toString method won't be properly logged and will still have an object inspector,
but with an empty label.
Differential Revision: https://phabricator.services.mozilla.com/D223763
This helps various actors retrieve the global object:
- a Window for any WindowGlobal targets,
- a Sandbox for content process targets,
- a Worker global scope for worker targets,
- a Sandbox for the web extension content script targets (to be added soon).
Differential Revision: https://phabricator.services.mozilla.com/D223762
Allows Wasm DebuggerFrame to be suspended/resumed.
Disables ASAN for StackPointerInfo for better testing.
Depends on D214001
Differential Revision: https://phabricator.services.mozilla.com/D218246
Those declarations are already ignored on the server, as custom property
declaration can't have compatibility issues.
On pages with lots of CSS variables, we were still paying the price of
iterating over those and sending them through RDP, which could be costly.
Differential Revision: https://phabricator.services.mozilla.com/D224472
Currently, running running `./mach vendor python --upgrade` will not do
anything different, because all dependencies are pinned. In later
patches, we can unpin dependencies and that will make any future runs
with `--upgrade` added pull the newest versions from PyPi that are
universally compatible.
Differential Revision: https://phabricator.services.mozilla.com/D223430
- Added argument "--add", which allows a user to specify a dependency to add via the command line, rather than editing the 'pyproject.toml' directly.
- Added argument "--remove", which is the opposite of add, with slightly different syntax (This does not require the "==<major.minor.patch>" portion of a dependency.
(The above arguments are both features of uv, and we're essentially just passing them through from `mach` to `uv`)
- Added a hash of the lockfile, so that if you run './mach vendor python', but the lockfile has not changed, there's nothing to do, so the rest of vendoring is skipped.
- Added "--force" to force a vendor, which essentially just skips the lockfile hashing steps, and always forces a vendor, regardless of the change status.
Differential Revision: https://phabricator.services.mozilla.com/D222993
The dependency resolution in 'poetry' was 'lowest', the default
dependency resolution in 'uv' is 'highest'. This means when we vendor,
we will vendor the newest/highest version possible of all transitive
dependencies that are universally/cross-platform compatible.
We could change from the default of 'highest', but I think this is
better. Various packages have been upgraded, and some have been
removed/replaced by others, and that's why there's various changes in
the <site>.txt files.
Differential Revision: https://phabricator.services.mozilla.com/D222992
The vendoring steps are the same. Instead of using 'poetry' to handle
dependency resolution and creating a lock file, we now use 'uv'. That
lock file is then used to create a cross-platform 'requirements.txt'
file by 'uv'.
How the 'requirements.txt' file is consumed by 'pip' to download the
dependencies is unchanged.
Differential Revision: https://phabricator.services.mozilla.com/D222989
- different sidebar button icons for expanded, collapsed sidebar states
- move sidebar-button to beginning of navbar strip, to the left of back button
- update tests to reflect new sidebar button positioning
- add hover animation to button
Differential Revision: https://phabricator.services.mozilla.com/D223406
This avoids using `JSString::ensureLinearString()` in multiple places, so the
methods can all be changed to be infallible.
Differential Revision: https://phabricator.services.mozilla.com/D223568
Still not done with the "Normative: Remove calendars and time zones" spec PR. The
constructors also no longer call `ToCalendarValue` or `ToTemporalTimeZone`.
Differential Revision: https://phabricator.services.mozilla.com/D223553
The object allocations in `PrepareTemporalFields` and `PreparePartialTemporalFields`
are no longer necessary, because user-defined calendars can no longer add custom
field names. This allows to use stack-allocated `TemporalFields` everywhere.
Later spec proposal changes will refactor `PrepareTemporalFields` again, but let's
remove the `JSObject` allocations first. (This patch also adds a couple of fixme
notes which will get resolved in later spec proposal changes.)
Differential Revision: https://phabricator.services.mozilla.com/D223552
All field names are now spec-internal names, which allows to replace the vector
with an enumset. This is faster and we no longer have to worry about keep the
sort order when appending new entries.
Differential Revision: https://phabricator.services.mozilla.com/D223551