There are only 3 places where nsMemory.h is still needed (image/RasterImage.cpp,
gfx/thebes/gfxFT2FontList.cpp, and nsMemory.cpp). Remove the rest.
Differential Revision: https://phabricator.services.mozilla.com/D158213
They can never be implemented by JS.
I'll enforce this later once some XPConnect interfaces have been removed.
[noscript] also doesn't do anything, so I removed it from nsIUDPSocketSyncListener while
I was there.
Differential Revision: https://phabricator.services.mozilla.com/D158135
This is a regression from:
Bug 1494364 - don't prune proxy if all non-direct proxies are disabled
This pref preserves existing behaviour (and regression) but allows users to opt out of this behaviour which might cause slow browsing when the proxies are not responsive.
We might implement a proper fix for this problem in Bug 1791655.
Differential Revision: https://phabricator.services.mozilla.com/D157825
1. Allow to store more than one token per key.
2. Allow to use the token only once. The token will be removed after reading it.
3. Add a gtest.
Differential Revision: https://phabricator.services.mozilla.com/D153605
We enable the sanitizing, which will omit the value in the
content process and trigger event telemetry - but we won't
crash the process.
Differential Revision: https://phabricator.services.mozilla.com/D153318
The font-size math keyword is implemented. It behaves as a font-size: 1em
with the extra fixup due to math-level change (and other legacy MathML
attributes). After that change, the CSS for math-level / font-size: math
is behaving as per the specification, so the math-depth is turned in
nightly.
The adjusting function for font-size: math is modified so that it's
executed only if both font-size: math (otherwise the spec says no scale
should apply) and math-depth (otherwise the scale is 1 and function exists
early anyway) are set on the element. Also checking if the current node
has a scriptsizemultiplier rule applied to use MathML3's scaling is
incorrect. Instead this is changed to check if a non-default
scriptsizemultiplier is set.
Differential Revision: https://phabricator.services.mozilla.com/D91744
This cuts the time spent in CaptureFrame for a buffer size of 3072x1920
from ~80ms to ~22ms for me. It makes it so that we use the IOSurfaces
provided to the CGDisplayStreamCreate handler instead of calling
CGDisplayCreateImage.
It was enable by default in Chromium in 2018 via
09cd5826e7
Differential Revision: https://phabricator.services.mozilla.com/D157273
There is a lot here, and yet it isn't the best test coverage. My testing strategy is to use these as sanity/regression checks until we have enough implemented to use sync'd WPTs.
The tests are all plain mochitests that use example.com as the RP and example.net as the IDP. They set a cookie in the IDP, tell the manifest endpoint what test is coming, then requesting a credential. The manifest endpoint can use the test name provided to point the browser to a particular set of test endpoints (server_X_accounts.sjs and server_X_idtoken.sjs).
This also includes a new preference that is needed to test the API. It bypasses the 120s timeout for all returned promise rejects in the spec. Otherwise testing this would take forever.
Differential Revision: https://phabricator.services.mozilla.com/D155720
I'm looking to implement the FedCM browser API, which hooks into the Credentail Management API.
Just cleaning up a few preference-gates in webidl and adding new preferences to use as gates.
Differential Revision: https://phabricator.services.mozilla.com/D153586
There is a lot here, and yet it isn't the best test coverage. My testing strategy is to use these as sanity/regression checks until we have enough implemented to use sync'd WPTs.
The tests are all plain mochitests that use example.com as the RP and example.net as the IDP. They set a cookie in the IDP, tell the manifest endpoint what test is coming, then requesting a credential. The manifest endpoint can use the test name provided to point the browser to a particular set of test endpoints (server_X_accounts.sjs and server_X_idtoken.sjs).
This also includes a new preference that is needed to test the API. It bypasses the 120s timeout for all returned promise rejects in the spec. Otherwise testing this would take forever.
Differential Revision: https://phabricator.services.mozilla.com/D155720
I'm looking to implement the FedCM browser API, which hooks into the Credentail Management API.
Just cleaning up a few preference-gates in webidl and adding new preferences to use as gates.
Differential Revision: https://phabricator.services.mozilla.com/D153586
There is a lot here, and yet it isn't the best test coverage. My testing strategy is to use these as sanity/regression checks until we have enough implemented to use sync'd WPTs.
The tests are all plain mochitests that use example.com as the RP and example.net as the IDP. They set a cookie in the IDP, tell the manifest endpoint what test is coming, then requesting a credential. The manifest endpoint can use the test name provided to point the browser to a particular set of test endpoints (server_X_accounts.sjs and server_X_idtoken.sjs).
This also includes a new preference that is needed to test the API. It bypasses the 120s timeout for all returned promise rejects in the spec. Otherwise testing this would take forever.
Differential Revision: https://phabricator.services.mozilla.com/D155720
I'm looking to implement the FedCM browser API, which hooks into the Credentail Management API.
Just cleaning up a few preference-gates in webidl and adding new preferences to use as gates.
Differential Revision: https://phabricator.services.mozilla.com/D153586
We enable the sanitizing, which will omit the value in the
content process and trigger event telemetry - but we won't
crash the process.
Differential Revision: https://phabricator.services.mozilla.com/D153318
object-src used to be required because it controls plugins, and we did
not want to load unsafe sources as plugins. With NPAPI plugin support
having been dropped a long time ago, this reason no longer exist.
The requirement for "secure" object-src CSP directive meant that
extensions had to specify a boilerplate object-src if they wanted to
modify script-src.
This patch removes the object-src requirement from extension CSP,
which simplifies the usage and learning curve of CSP usage in
extensions.
With this change, extensions can now load "unsafe" (remote) content
via `<embed>` and `<object>` tags. This relaxation does not reduce
the security because this was already possible with `<iframe>` tags.
Differential Revision: https://phabricator.services.mozilla.com/D156747
Because the number of telemetry events we get back can vary we can't
use the existing Telemetry Test functions, and need to introduce a
new one. It does duplicate some code, but because the functions differ
in a few ways it's not straightforward or clean to refactor it in a shared
way.
Differential Revision: https://phabricator.services.mozilla.com/D155622
It's always true, so remove it.
Add another pref to allow -webkit-line-clamp to work on all blocks
rather than just legacy -webkit-boxes, which seems something we should
try to look into, eventually.
Depends on D155181
Differential Revision: https://phabricator.services.mozilla.com/D155182
In order to perform basic mathvariant transforms (italic, bold, and
bold-italic) on systems that don't provide the proper characters from
the Mathematical Alphanumeric Symbols block, a fallback using font
italic/bold style was implemented in Gecko. Nowadays, several fonts
provide glyphs for these characters and are pre-installed on Desktop:
- Cambria Math (pre-installed on Windows Vista and higher)
- STIX General (pre-installed from OS X Lion to macOS Monterey)
- STIX Two Math (pre-installed on macOS Ventura and higher)
- DejaVu (pre-installed on the most popular Linux distributions)
This commit put the fallback under a preference that is disabled by
default on Desktop. It is still required on Android because the
default fonts are not enough.
Differential Revision: https://phabricator.services.mozilla.com/D156396
This avoids the apparent Core Graphics bug whereby the PDF output it generates will mis-render
when subsequently processed again by Core Graphics (although it renders OK in Adobe products).
Unfortunately, this will regress bug 1772225, so that pdf.js documents will be rasterized when
printed or in Save to PDF output on macOS.
(Setting the pref gfx.cairo_quartz_cg_layer.enabled to true will restore "good" (vector-based)
output, but embedded XObject bitmap images may be mis-scaled.)
Differential Revision: https://phabricator.services.mozilla.com/D156570
This simple approach seems to match quite well what other browsers do. And tryserver results weren't horrible.
I noticed only one test failing because of the change, and it is using synchronous XHR + timers.
Now it is using rAF + sync XHR.
Differential Revision: https://phabricator.services.mozilla.com/D156238
This simple approach seems to match quite well what other browsers do. And tryserver results weren't horrible.
I noticed only one test failing because of the change, and it is using synchronous XHR + timers.
Now it is using rAF + sync XHR.
Differential Revision: https://phabricator.services.mozilla.com/D156238
This pref is for testing purpose, as we already finished implementing
both audio and video playback, so we don't need that anymore.
Differential Revision: https://phabricator.services.mozilla.com/D155032
It improves rasterization and upload times by a lot in almost all of the test cases I can find. The only drawback is that our invalidation granulatiry is the tile so invalidation gets coarser as we increase the tile size.
512 is a bit special because it is the limit above which a different texture upload path is taken, so there will be more risk of performance side effects if/when we decide to make tiles even larger.
Differential Revision: https://phabricator.services.mozilla.com/D155822
It improves rasterization and upload times by a lot in almost all of the test cases I can find. The only drawback is that our invalidation granulatiry is the tile so invalidation gets coarser as we increase the tile size.
512 is a bit special because it is the limit above which a different texture upload path is taken, so there will be more risk of performance side effects if/when we decide to make tiles even larger.
Differential Revision: https://phabricator.services.mozilla.com/D155822
It improves rasterization and upload times by a lot in almost all of the test cases I can find. The only drawback is that our invalidation granulatiry is the tile so invalidation gets coarser as we increase the tile size.
512 is a bit special because it is the limit above which a different texture upload path is taken, so there will be more risk of performance side effects if/when we decide to make tiles even larger.
Differential Revision: https://phabricator.services.mozilla.com/D155822
It improves rasterization and upload times by a lot in almost all of the test cases I can find. The only drawback is that our invalidation granulatiry is the tile so invalidation gets coarser as we increase the tile size.
512 is a bit special because it is the limit above which a different texture upload path is taken, so there will be more risk of performance side effects if/when we decide to make tiles even larger.
Differential Revision: https://phabricator.services.mozilla.com/D155822
In nightly and early beta, we still use 0.5 as the threshold so we can collect more data.
In release, use 0.95 as the threshold
Differential Revision: https://phabricator.services.mozilla.com/D155486
- remove flag and corresponding warning/counter.
- remove attribute from parsers, but keep the atom since it's
used by TreeSanitizer.
- remove tests for mfrac@bevelled, there is a WPT test to check it's
not supported.
- layout/mathml/tests/test_bug975681.html is removed, its tests are
currently (wrongly) all disabled when the flag is off and equivalent
tests for attributes other than bevelled exist in WPT.
Differential Revision: https://phabricator.services.mozilla.com/D154199
- Remove preference, warning and counter.
- Remove tests checking support for it, or replacing with
equivalent 50% and 300% values.
Differential Revision: https://phabricator.services.mozilla.com/D154198
- Remove code for align/denumalign/numalign attributes.
- Remove tests checking support for them.
- Remove warning message and counter.
- numalign/denomalign atoms are not removed, since they
are still used by nsTreeSanitizer.
Differential Revision: https://phabricator.services.mozilla.com/D154197
- Remove script_shift_attributes preference and related test, warning
message and parsing.
- Do not remove subscriptshift/supscripshift atoms, since they are
still needed for nsTreeSanitizer.
Differential Revision: https://phabricator.services.mozilla.com/D154195
There are a couple of current issues/discussions that may lead to a change in the set of supported keywords, so we may want to hold back a little on actually shipping this.
- In https://github.com/w3c/IFT/pull/113, the WebFonts WG proposes several new incremental-* keywords (and maybe implies dropping the currently-defined incremental?)
- In https://github.com/w3c/csswg-drafts/issues/7633, I just proposed renaming the feature-* keywords to features-* (plural) for better readability; I'd like to see a decision on that before we ship this to release.
Differential Revision: https://phabricator.services.mozilla.com/D155458
It turns out that websites break with different reasons when hiding things. At this point we want to stop revising the hack further and instead gather the data about how many websites are currently affected.
Differential Revision: https://phabricator.services.mozilla.com/D154578
The patch implements a CookieBanner JSWindowActor. The CookieBanner
actor will be created when the DOMContentLoaded event files, and try to
detect the cookie banner and click the button to handle it.
Differential Revision: https://phabricator.services.mozilla.com/D154806
There are compat issues with the approach. There are future plans to restore the functionality but only when typing into a text area.
Differential Revision: https://phabricator.services.mozilla.com/D155275
The patch implements a CookieBanner JSWindowActor. The CookieBanner
actor will be created when the DOMContentLoaded event files, and try to
detect the cookie banner and click the button to handle it.
Differential Revision: https://phabricator.services.mozilla.com/D154806
It turns out that websites break with different reasons when hiding things. At this point we want to stop revising the hack further and instead gather the data about how many websites are currently affected.
Differential Revision: https://phabricator.services.mozilla.com/D154578
This also introduce a pref which protect these two attributes:
dom.picture_source_dimension_attributes.enabled.
These two dimension attributes will be mapped to the style of <img> elements
if the <source> element's parent is <picture>. This will be implemented
in the later patch. For now, we just implement the DOM interface.
Differential Revision: https://phabricator.services.mozilla.com/D152585
It turns out that websites break with different reasons when hiding things. At this point we want to stop revising the hack further and instead gather the data about how many websites are currently affected.
Differential Revision: https://phabricator.services.mozilla.com/D154578
The ColorSchemeMode::Preferred change doesn't make a difference (that
is, always use the preferred one), since when we only propagate from
top's embedder the embedder is chrome, which always has the preferred
color-scheme.
Differential Revision: https://phabricator.services.mozilla.com/D154931
Backdrop filter crashes newer Intel drivers on Windows. This patch adds
support to the blocklist infrastructure for backdrop filter, and hooks
this up with the CSS property table.
Differential Revision: https://phabricator.services.mozilla.com/D154950
Fix some tests to:
* Not assume `double` precision.
* Account for recent working group resolution with regards to NaN: https://github.com/w3c/csswg-drafts/issues/7067#issuecomment-1111211295
Not sure I caught all, but normalizing to 0 was already our existing
behavior. This feature needs more work before it can be enabled more
generally, so make it nightly-only, for now.
Also, it's unclear per spec what the serialization for infinity*1s or so
should be. Right now we serialize to <very-big-number>s, which seems
reasonable, but some tests (but not others!) expect different behavior.
I left those untouched for now.
Differential Revision: https://phabricator.services.mozilla.com/D154883
We now have test coverage, so let's do this.
The remaining failures are just about infinity/nan, which is a
completely different feature.
Differential Revision: https://phabricator.services.mozilla.com/D154831
Backdrop filter crashes newer Intel drivers on Windows. This patch adds
support to the blocklist infrastructure for backdrop filter, and hooks
this up with the CSS property table.
Differential Revision: https://phabricator.services.mozilla.com/D154950
It seems that making animation shorthand supports animation-composition may be
very tricky, so it's unlikely to include animation-composition into the
shorthand for now, per spec issue:
https://github.com/w3c/csswg-drafts/issues/6946.
WebKit also supports the longhand only on STP (Safari Technology Preview), so
it should be fine to enable the longhand property only on Firefox Nightly,
for experiemental testing.
Differential Revision: https://phabricator.services.mozilla.com/D154934
Fix some tests to:
* Not assume `double` precision.
* Account for recent working group resolution with regards to NaN: https://github.com/w3c/csswg-drafts/issues/7067#issuecomment-1111211295
Not sure I caught all, but normalizing to 0 was already our existing
behavior. This feature needs more work before it can be enabled more
generally, so make it nightly-only, for now.
Also, it's unclear per spec what the serialization for infinity*1s or so
should be. Right now we serialize to <very-big-number>s, which seems
reasonable, but some tests (but not others!) expect different behavior.
I left those untouched for now.
Differential Revision: https://phabricator.services.mozilla.com/D154883
We now have test coverage, so let's do this.
The remaining failures are just about infinity/nan, which is a
completely different feature.
Differential Revision: https://phabricator.services.mozilla.com/D154831
By making image loading in <embed> and <object> behave more like when
an <iframe> loads an image, we can make sure that the synthetic
document generated is process switched if the image is cross
origin. This is done by making image loading in nsObjectLoadingContent
follow the document loading path.
We also make sure that we pass the image size back to the embedder
element to not get stuck with the intrinsic size.
To avoid named targeting being able to target these synthetic
documents, as well as showing up in `Window.frames` and being counted
in `Window.length`, we keep a filtered list of non-synthetic browsing
contexts for that use-case.
This feature is controlled by two prefs:
* browser.opaqueResponseBlocking.syntheticBrowsingContext
This triggers the creation of synthetic documents for images loaded
in <object> or embed.
* browser.opaqueResponseBlocking.syntheticBrowsingContext.filter
This turns on the filtering of synthetic browsing contexts in named
targeting, `Window.length` and `Window.frames`.
Differential Revision: https://phabricator.services.mozilla.com/D148117
This patch adds the following components:
- nsICookieBannerService: Main service singleton managing the rules and initiating other components.
It's exposed via Services.cookieBanners and can be configured via the cookiebanners.* prefs.
To enable it set "cookiebanners.service.mode" to 1 or 2 and restart the browser.
- nsCookieInjector: Looks up rules and injects cookies for matching top level loads.
- nsICookieBannerListService: Imports and updates the cookie banner rules.
- nsICookieBannerRule: Rules for a given domain.
- nsICookieRule: Part of nsICookieBannerRule. Holds cookie specific rules.
Depends on D153641
Differential Revision: https://phabricator.services.mozilla.com/D153642
Prior to this patch, one would need to manually instantiate a copy of a
string from a preference on the main thread in order to access it in a
threadsafe manner on another thread.
This patch adds support for a `DataMutexString` threadsafe type for
mirror: always type StaticPrefs, and works similarly to the existing
atomic types.
Differential Revision: https://phabricator.services.mozilla.com/D153829
- Remove the preference and corresponding tests.
- nsMathMLmencloseFrame continues to implement the radical notation for
now, since it's still used by nsMathMLmsqrtFrame. Ideally, we should
refactor our code so that msqrt/mroot share the same implementation.
Differential Revision: https://phabricator.services.mozilla.com/D154194
Purge HTTP disk cache using backgroundtasks
Motivation:
In the History settings preferences panel you may choose to
`Clear History when Firefox closes` - which sets the
`privacy.sanitize.sanitizeOnShutdown` pref.
If the `Cache` checkbox is also checked it sets the
`privacy.clearOnShutdown.cache` pref to true.
When both of these prefs are true `CacheObserver::ClearCacheOnShutdown()`
will return true, which will cause Firefox to clear the HTTP disk cache
during shutdown. This will block shutdown for howeverlong this takes. If the
user has a slow disk, or the user is on Windows and something is blocking the
deletion of those files, this will trigger a shutdown hang making Firefox
crash. This leads to a bad user experience as trying to start Firefox again
during this time will show the "Firefox is already running message".
Eventually a crash dump is produced. Bug 1356853 and bug 1682899 are caused
by this specific issue.
In order to avoid these crashes and a bad user experience we have
a few options:
1. Completely disable the disk cache when a user checks this box.
This option will degrade the user's browsing experience.
2. Don't delete the folder at shutdown
Whether we do this by removing the checkbox or simply not respecting
the pref value, users who already have this setting would be surprised
if the cache folder stops being deleted.
3. Use a thread pool to delete the files
While it's likely to speed up the deletion at least a little bit,
this would introduce additional complexity while not completely
fixing the issue. A slow disk will still block shutdown.
4. Delete the cache at shutdown using a separate process
This is likely the best option. It has the advantage of not blocking
shutdown while at the same time maintaining similar properties to the
existing functionality:
- The cache folder is deleted at shutdown.
- Has the same behaviour if Firefox gets killed or crashes for different issues.
- Behaves similarly if the OS is forcefully shutdown during or before we begin to purge.
- Additionaly, because we rename the folder prior to dispatching the background task, if the purging isn't completed we
- don't rebuild the cache from an incomplete folder on next restart
- are able to resume the purging after Firefox startup
A particularly special case is the Windows shutdown.
If the user shuts down windows that will try to close Firefox. If the shutdown
takes too long, the user will see the "Close anyway" button and may click
it thus preventing the cache purge to complete.
When using a background task we have a similar situation, but the button won't
even appear. So after the next Firefox restart we will check if the cache
needs to be purged.
Largely, the new behaviour will be:
- At shutdown we conditionally dispatch a background task to delete the folder
- If creating the process fails (for some reason) we fallback to the old way
of synchronously deleting the folder.
- The task will then try to delete the folder in the background
- If for some reason it fails, we will dispatch a new background task shortly
after Firefox restarts to clean up the old folders.
Differential Revision: https://phabricator.services.mozilla.com/D126339
By making image loading in <embed> and <object> behave more like when
an <iframe> loads an image, we can make sure that the synthetic
document generated is process switched if the image is cross
origin. This is done by making image loading in nsObjectLoadingContent
follow the document loading path.
We also make sure that we pass the image size back to the embedder
element to not get stuck with the intrinsic size.
To avoid named targeting being able to target these synthetic
documents, as well as showing up in `Window.frames` and being counted
in `Window.length`, we keep a filtered list of non-synthetic browsing
contexts for that use-case.
This feature is controlled by two prefs:
* browser.opaqueResponseBlocking.syntheticBrowsingContext
This triggers the creation of synthetic documents for images loaded
in <object> or embed.
* browser.opaqueResponseBlocking.syntheticBrowsingContext.filter
This turns on the filtering of synthetic browsing contexts in named
targeting, `Window.length` and `Window.frames`.
Differential Revision: https://phabricator.services.mozilla.com/D148117
On most ARM devices the integrated GPUs and their drivers are
usually better optimized for GLES than desktop GL. Thus lets
prefer GLES on ARM builds, potentially reducing bug and improving
performance.
In case of v3d this is also needed to turn on HW-WR by default
as we disable it due to the first default GL context not supporting
GL >= 3.0.
Notes:
- Unfortunately we can't straightly use `StaticPrefs` in `glxtest`
- We need to ask for a 2.x context as GLES defaults to 1.x. Asking
for 2.x should, however, should give us a 3.x/4.x one if supported.
Differential Revision: https://phabricator.services.mozilla.com/D154506
We have unshipped these since forever, no point in keeping the pref
around. Move the relevant tests to chrome ref/mochitests.
Differential Revision: https://phabricator.services.mozilla.com/D154152
We have unshipped these since forever, no point in keeping the pref
around. Move the relevant tests to chrome ref/mochitests.
Differential Revision: https://phabricator.services.mozilla.com/D154152
This is my silly mistake. I set reverted value to the prefs and the expectation
of WPTs. We need to enable them in late beta and release and disable them in
early beta and nightly.
Differential Revision: https://phabricator.services.mozilla.com/D153885
`increaseFontSize`, `decreaseFontSize`, `gethtml`, `heading` and `readonly`
commands were disabled for a year in all channels, but no regression reports
have been filed. Therefore, we can delete the commands and the telemetry
probes.
Note that `cmd_getContents` command which is the internal command of `gethtml`
is not used in comm-central too. Therefore, this patch deletes the command
handler, `nsClipboardGetContentsCommand`, and `Command::GetHTML` too.
Differential Revision: https://phabricator.services.mozilla.com/D153720
Otherwise seemingly lightweight but unusual calls like
drawArrays(offset:1.5billion) will try to allocate a very large gpu
buffer, which sometimes takes a very long time.
This is unusual and we shouldn't encourage it, so let's just add a
limit. 10M is 160MB, which is generally big enough but not too big.
Differential Revision: https://phabricator.services.mozilla.com/D153533
Both Chrome and Edge on Windows also move the swipe-to-nav arrow icon, the
distance of move seems to be a fixed value, it doesn't depend on the browser
window size. So we also use a fixed value, 100px here.
Chrome on Mac also moves the icon, but in a slightly different way. The icon is
a semicircle shape, it never leaves the edge of the browser window even if it's
moving during swipe gestures. So we introduce a new preference named
"browser.swipe.navigation-icon-move-distance" to implement platform dependent
swipe-to-nav icon behaviors. As of now the value on platforms other than Windows
is zero so that the icon never moves on the platforms.
Depends on D152951
Differential Revision: https://phabricator.services.mozilla.com/D150433
We want to signal content processes to cancel content JS unconditionally on shutdown.
In the case of parent shutdown this has to happen as early as "quit-application-granted", given that both extensions and session storage shutdown rely on the possibility to interact with content processes (which is not possible when they are inside long running JS).
In addition in the case of a normal child shutdown we cancel content JS execution, too.
For now we put this behind the pref "dom.abort_script_on_child_shutdown" which remains default off.
Depends on D150539
Differential Revision: https://phabricator.services.mozilla.com/D150598
These flags are usually initialized very early on, but because child processes are
pre-allocated and then later specialized for a specific process type, we need to
reset them later. This patch adds a new API for this that has some extra assertions.
Differential Revision: https://phabricator.services.mozilla.com/D152373
We want to signal content processes to cancel content JS unconditionally on shutdown.
In the case of parent shutdown this has to happen as early as "quit-application-granted", given that both extensions and session storage shutdown rely on the possibility to interact with content processes (which is not possible when they are inside long running JS).
In addition in the case of a normal child shutdown we cancel content JS execution, too.
For now we put this behind the pref "dom.abort_script_on_child_shutdown" which remains default off.
Depends on D150539
Differential Revision: https://phabricator.services.mozilla.com/D150598
Both Chrome and Edge on Windows also move the swipe-to-nav arrow icon, the
distance of move seems to be a fixed value, it doesn't depend on the browser
window size. So we also use a fixed value, 100px here.
Chrome on Mac also moves the icon, but in a slightly different way. The icon is
a semicircle shape, it never leaves the edge of the browser window even if it's
moving during swipe gestures. So we introduce a new preference named
"browser.swipe.navigation-icon-move-distance" to implement platform dependent
swipe-to-nav icon behaviors. As of now the value on platforms other than Windows
is zero so that the icon never moves on the platforms.
Differential Revision: https://phabricator.services.mozilla.com/D150433
Video scaling to RGB with VideoProcessor seems to have better quality than Video scaling to YUV with VideoProcessor.
It seems better to disable yuv video overlay on Windows for now.
Differential Revision: https://phabricator.services.mozilla.com/D152534
Implement the new dominant axis locking mode for the apz.axis_lock.mode
preference. When using this mode, we do not use the traditional axis locks.
Instead we only consider the input pan displacement for the axis with
a larger value, zeroing out the displacement on the opposite axis.
Differential Revision: https://phabricator.services.mozilla.com/D152104
There's a large list of dynamic preferences in the ui. tree
but none of them should contain personally identifiable data.
Differential Revision: https://phabricator.services.mozilla.com/D152340
Add a pref for MouseEvent.region since that wasn't un-exposed. No other
browser supports it so we can probably safely remove it, but just in
case.
Differential Revision: https://phabricator.services.mozilla.com/D152274