Changes object flags to an enum class + js::EnumFlags. This improves type safety
and removes references to "base shape flags", so that we can more easily move this
from BaseShape to Shape later on.
Depends on D106900
Differential Revision: https://phabricator.services.mozilla.com/D106901
This is equivalent to JSObject::hasAllFlags now that all objects have a shape again.
Move JSObject::hasAllFlags from JSObject-inl.h to JSObject.h to avoid dependency
issues.
Depends on D106899
Differential Revision: https://phabricator.services.mozilla.com/D106900
The flag is equivalent to checking `unowned_ != nullptr` so do that instead.
Unowned vs Owned BaseShapes will be removed soon but this simplifies the next patch
because now all flags stored in BaseShape are object flags (see OBJECT_FLAG_MASK).
Differential Revision: https://phabricator.services.mozilla.com/D106899
This patch switches us from using the Firefox window reorder to the ffmpeg recorder because of some issues that give bad visual metrics values.
Differential Revision: https://phabricator.services.mozilla.com/D106785
This is a workaround for https://gitlab.gnome.org/GNOME/mutter/-/issues/1658
Wayland compositor sometimes fails to send wl_data_source::cancelled() so we don't get info that the D&D is finished
and it's still marked as active internally which preverts Firefox to do any further D&D operation.
In the patch we detect such scenario and reset internal D&D state.
Differential Revision: https://phabricator.services.mozilla.com/D106266
Inversed logic has been proven to be more difficult to read,
so use the simple positive variant.
Also add a simple sanity check for `WAYLAND_DISPLAY` so if people
set `MOZ_ENABLE_WAYLAND` in a X11 session don't get undesired behavior.
While on it, change a check for `XDG_SESSION_TYPE` to also use
`WAYLAND_DISPLAY`, improving behavior when launching FF from a TTY
or a TTY-launched session (e.g. via `weston-launch`).
`WAYLAND_DISPLAY` and `DISPLAY` are not expected to be set if
no Wayland or X11 server is available, so using them makes us behave
more predictable.
Differential Revision: https://phabricator.services.mozilla.com/D106726
While using -moz-os-version selectors in a shared CSS file isn't ideal, I think it's the best approach here. These selectors will hopefully be temporary, and will be removed when bug 1695280 is fixed. I considered a creating a ruleset like
```
@media (-moz-os-version: windows-win7),
(-moz-os-version: windows-win8) {
#navigator-toolbox:-moz-lwtheme {
background-color: unset;
}
:root:-moz-lwtheme {
background-color: var(--lwt-accent-color);
}
}
```
in browser/themes/windows/browser.css, but I think unsetting the background-color could become a headache if we need to make any other changes to the #navigator-toolbox background. We could also move these background rules to platform-specific stylesheets, but that way they're defined much later in the CSS despite being fairly foundational rules. It would also create more code to remove in bug 1695280.
Differential Revision: https://phabricator.services.mozilla.com/D106670
The "marionette.enabled" preference will be removed because it
should no longer be used to determine if Marionette enabled or not.
As such the enabled / running state can be retrieved via the
nsIMarionette XPCOM service.
Differential Revision: https://phabricator.services.mozilla.com/D106779
The preference was meant to exist only temporarily when
the "navigator.webdriver" property was added by bug 1169290
in Firefox 60.
Differential Revision: https://phabricator.services.mozilla.com/D106778
Triggering the password prompt after the Add-Ons Manager start-up is causing the latter to fail.
I'm not sure if something needs to be unlocked by the password, or if the existence of the prompt is causing some bad interaction, but prompting slightly earlier appears to fix it.
Differential Revision: https://phabricator.services.mozilla.com/D106382
Use internal events which get fired for CSSOM changes, and in Shadow
DOM. This will also allow us to remove mutation events in the future.
Depends on D106273
Differential Revision: https://phabricator.services.mozilla.com/D106274
Non-SHIP bfcache seems to be rather complicated here, since it needs to explicitly store inner windows and what not.
SHIP should be able to handle this in a simpler way.
It is possible that some ordering needs still tweaking.
Differential Revision: https://phabricator.services.mozilla.com/D105360
There are quite a few different logging modules for session history, but while developing
SHIP BFCache, I'd prefer to add some specific one for it. Later we can perhaps
merge various modules to some generic session history related.
SHIPBFCache log module will be used more in the followup patches.
Differential Revision: https://phabricator.services.mozilla.com/D105237
EvictOutOfRangeContentViewers call in SetFrameLoader doesn't do anything in this patch, but will
work with some followups.
Differential Revision: https://phabricator.services.mozilla.com/D105235
The name RemotenessChangeState uses same the convention as the related methods, even though there might
not be a remoteness change happening, only a browsing context switch. But the naming
inconsistency exists there even without any bfcache work.
RemotenessChangeState will be renamed to RemotenessChangeOptions in a followup.
Differential Revision: https://phabricator.services.mozilla.com/D105229
This will prevent growing them when introducing fit-content(<length>).
This can _almost_ be derived, if it wasn't because of the quirky stuff.
I think the macro is probably good enough for now but let me know if you
disagree.
Differential Revision: https://phabricator.services.mozilla.com/D106713
Extend the wasmDis() testing function so that it can disassemble
entire wasm modules and instances in addition to exported functions
from wasm instances.
Change the API of wasmDis() to take an options bag instead of ad-hoc
extra arguments; this allows us to ask for interesting functions to be
disassembled, such as stubs. (More could be done with the options
bag; this is just a start.)
Change some existing test cases that use wasmDis() to use the new API.
Add a test case that tests the operation of the new API.
Differential Revision: https://phabricator.services.mozilla.com/D106592