- Require the blocklist v3 everywhere except on Android,
as Android support will be done in bug 1639050.
On Firefox desktop it is not possible to switch back to blocklist v2.
- The application size (Firefox/Thunderbird) shrinks by 1 MB
because the addons.json dump no longer needs to be packaged.
- Thunderbird will now use blocklist v3 instead of v2.
Doesn't matter because it didn't use the blocklist in practice.
Differential Revision: https://phabricator.services.mozilla.com/D116418
- Require the blocklist v3 everywhere except on Android,
as Android support will be done in bug 1639050.
On Firefox desktop it is not possible to switch back to blocklist v2.
- The application size (Firefox/Thunderbird) shrinks by 1 MB
because the addons.json dump no longer needs to be packaged.
- Thunderbird will now use blocklist v3 instead of v2.
Doesn't matter because it didn't use the blocklist in practice.
Differential Revision: https://phabricator.services.mozilla.com/D116418
This provides feedback to the user, otherwise nothing happens and the user doesn't know if their input was accepted or not. This matches what Chrome does.
We add a new flag for ZoomToRect that only double tap uses. We also need to add the cursor position to the ZoomTarget struct as that is what we will be zooming in on. (CalculateRectToZoomTo has a little bit of refactoring to calculate this point sooner and without an intermediate variable.)
The rest of the patch is some logic in ZoomToRect to decide when to do this, and some math to compute the zoom to rect (which is similar to the zoom out code).
Differential Revision: https://phabricator.services.mozilla.com/D116370
To compile SM to .wasm we need to use clang from wasi-sdk, this patch
allows us to use default clang-12 from mozilla's repo.
We remove usage of rpath-link flag because wasm-ld doesn't support it,
enable single thread model because wasi is single threaded
and finally add <unistd.h> becase it is forbidden to use read/write/lseek
without this header.
Differential Revision: https://phabricator.services.mozilla.com/D116207
As long as the upcoming WebDriver BiDi implementation isn't stable
enough, it will only be enabled for Nighlty builds for now.
Differential Revision: https://phabricator.services.mozilla.com/D116414
With the migration completed, we don't need to keep this pref
around anymore. The profile migration code used to set the pref
value to 0 but since FF 86 the value of the pref didn't matter
as the code would always clamp it to 100. So for consistency
we eliminate that setting of the pref as well.
Depends on D116322
Differential Revision: https://phabricator.services.mozilla.com/D116323
There are performance problems we need to sort out, so let's just turn
off the pref which lets us continue testing without backing out.
Differential Revision: https://phabricator.services.mozilla.com/D116407
After bug 1586236, we use the memory resource notification object to detect a low
memory situation on Windows, which is signaled when the available physical memory
is low. If the available physical memory is low, however, it's possible that there
is still commit space enough for the application to run. In such a situation, we
don't want to make aggressive efforts to reduce memory usage.
This patch makes sure we send the memory pressure event (both New and Ongoing) only
when the available commit space is lower than the threshold value defined by the pref
"browser.low_commit_space_threshold_mb". Its default value is set to 200MB
based on our telemetry data indicating ~60% of OOM crashes with <100MB, ~75% with <300MB.
To use the pref in `nsAvailableMemoryWatcher`, this patch moves the call to
`AvailableMemoryTracker::Init()` to `XRE_mainRun()`. It was in `NS_InitXPCOM`
because the old initialization code hooked APIs and needed to be done while
the process has only one thread (bug 741540). The current `AvailableMemoryTracker`
does not use hooks, so it doesn't have to be initialized that early.
Differential Revision: https://phabricator.services.mozilla.com/D115605
In GTK widget, we dispatch a set of composition events when IME or something
inserts text which is different from typing character or without tying a key.
However, this causes non-cancelable beforeinput event and Chromium on Linux
does not dispatch keyboard events nor composition events in this case, and the
beforeinput event in this case is cancelable.
Therefore, we should take same behavior as on macOS which was implemented by
bug 1520983.
Differential Revision: https://phabricator.services.mozilla.com/D115681
This removes the check from static prefs, mainly since it's hard to check MOZ_JXL in JS side. It can be a bit confusing but generally shouldn't be harmful.
Differential Revision: https://phabricator.services.mozilla.com/D115704
We strip the target query string for top-level http redirects. We will only strip
if the redirect URI is a third-party URI.
Differential Revision: https://phabricator.services.mozilla.com/D114357
We add two prefs in this patch, including
'privacy.query_stripping.enabled' and
'privacy.query_stripping.strip_list'.
The pref 'privacy.query_stripping.enabled' is the general controller of
the URL query string stripping. And the pref
'privacy.query_stripping.strip_list' is the list of the query strings
that should be stripped from the URL.
Differential Revision: https://phabricator.services.mozilla.com/D113841
This patch removes the ability for Firefox profiles to receive dynamic HSTS
preloading information via kinto/remote settings. This feature was implemented
some time ago but was never used. It is being removed to make upcoming changes
easier.
Differential Revision: https://phabricator.services.mozilla.com/D115315
This gives the RegisterFonts thread more time to complete its work, so that
the main thread doesn't have to wait for it in InitFontList.
In the worst case, where the registration thread still hasn't finished
by the time we call gfxPlatformFontList::PlatformFontList() the first time,
it's still no worse than previously, it just reorders some of the work
that has to be done before we can render any content.
Depends on D114863
Differential Revision: https://phabricator.services.mozilla.com/D114865
Like the other browsers, we should stop dispatching a set of composition
events when `insertText:` is called by Emoji picker, accent character
picker of some Western keyboard layouts. Then, corresponding
`beforeinput` event becomes cancelable like the other browsers'.
Differential Revision: https://phabricator.services.mozilla.com/D114827
Like the other browsers, we should stop dispatching a set of composition
events when `insertText:` is called by Emoji picker, accent character
picker of some Western keyboard layouts. Then, corresponding
`beforeinput` event becomes cancelable like the other browsers'.
Differential Revision: https://phabricator.services.mozilla.com/D114827
This gives the RegisterFonts thread more time to complete its work, so that
the main thread doesn't have to wait for it in InitFontList.
In the worst case, where the registration thread still hasn't finished
by the time we call gfxPlatformFontList::PlatformFontList() the first time,
it's still no worse than previously, it just reorders some of the work
that has to be done before we can render any content.
Differential Revision: https://phabricator.services.mozilla.com/D114865
The behavior for non-trusted events matches Safari (Chrome does return
deltaX in that case, which seems pretty bogus, because the sign of the
wheelDelta* is the opposite as the delta* props).
Differential Revision: https://phabricator.services.mozilla.com/D114052
The behavior for non-trusted events matches Safari (Chrome does return
deltaX in that case, which seems pretty bogus, because the sign of the
wheelDelta* is the opposite as the delta* props).
Differential Revision: https://phabricator.services.mozilla.com/D114052
This enables the module that queries OS storage for client certificates when
TLS client authentication is requested by a server. This applies to macOS and
Windows only.
Differential Revision: https://phabricator.services.mozilla.com/D107558
This modification relies on the shared memory implemented in Bug 1698045 and on
the ability to encode and decode self-hosted content from Bug 1668361 to
optimize the JS engine initialization by making the parent process encode the
self-hosted stencil, such that all other runtime initialization would only have
to decode it, including content processes.
Differential Revision: https://phabricator.services.mozilla.com/D110578
We have some settings that we don't handle well if they change
at runtime. Make them mirror:once.
In the case of `wideget.wayland_vsync.enabled`, this was practically
already the case but in a deprecated way. While on it, use the chance to
rename it to `widget.wayland.vsync.enabled` so it matches other
configs.
Differential Revision: https://phabricator.services.mozilla.com/D114664
Originally, we would restart the GPU process a fixed number of attempts
based on the layers.gpu-process.max_restarts pref. With this patch, we
now use this pref to control how many "unstable" restarts we allow. A
restart is "stable" if and only if the process uptime exceeds the pref
layers.gpu-process.stable.min-uptime-ts and if the process renders a
total number of frames exceeding the pref
layers.gpu-process.stable.frame-threshold. This allows users to keep the
GPU process for a lot longer if they are encountering infrequent
crashes. Should the user experience the GPU process crashing quickly
and/or without rendering many frames, we will disable it as before after
a few attempts and move into the parent process.
Differential Revision: https://phabricator.services.mozilla.com/D114531
Because of the way the process priority manager works, a tab switch may alter
priorities like so:
1. User switches from `tab1` to `tab2`;
2. We drop `tab1`'s content process priority;
3. We raise `tab2`'s content process priority;
But if `tab1` and `tab2` live in the same content process, then not only is
the priority adjustment redundant, it gives Android an opportunity to kill
the content process between steps (2) and (3)!
By setting a brief grace period, the priority manager will wait a bit until
dropping priority of `tab1`:
1. User switches from `tab1` to `tab2`;
2. We start the grace period for dropping `tab1`'s priority;
3. We go to raise `tab2`'s priority, but since the content process is already
foreground, this becomes a no-op;
4. Grace period expires for `tab1`, but we see that `tab2` is still using our
content process, so the "drop" becomes a no-op.
Nightly only for now, we'll see how this affects tab kills.
Differential Revision: https://phabricator.services.mozilla.com/D114507
Win32 errors ERROR_DEVICE_HARDWARE_ERROR, ERROR_DEVICE_NOT_CONNECTED, ERROR_DISK_FULL need a mapping.
NS_ERROR_FILE_DISK_FULL is duplicate to NS_ERROR_FILE_NO_DEVICE_SPACE
Drive by: RejectJSPromise lacked some NS_ERROR_* mappings
Differential Revision: https://phabricator.services.mozilla.com/D113974
If a user is able to get D3D11, and Software WebRender hasn't been
forced on (either by the Fission experiment or our pref), then we prefer
D3D11 in late beta and release. This will allow users who start with
D3D11 in the GPU process, to fallback to Software WebRender in the GPU
process.
Differential Revision: https://phabricator.services.mozilla.com/D114286
This can be disabled by setting the following pref to false:
widget.macos.enable-pre-bigsur-workaround-for-dark-mode-context-menus
Differential Revision: https://phabricator.services.mozilla.com/D114037
This commit implements the extended-constants proposal.
* A new feature flag and pref are added.
* Basic tests are added.
Differential Revision: https://phabricator.services.mozilla.com/D112661
Drive-by fix to drop preference for reftypes from StaticPrefList.yaml. This is no
longer used now that the reference types feature gating code is gone.
Depends on D112656
Differential Revision: https://phabricator.services.mozilla.com/D112657
We'll have to pay this startup time penalty eventually for light theme
users as well but, until we do, we can avoid this regression.
Differential Revision: https://phabricator.services.mozilla.com/D114215
Introduce moz.configure, WasmFeatures, and StaticPrefList.yaml
machinery to define a config option for relaxed SIMD
(https://github.com/WebAssembly/relaxed-simd). At the moment, there
are no defined relaxed SIMD opcodes, but a dozen or so are in the
works. This just sets us up for implementing those.
Differential Revision: https://phabricator.services.mozilla.com/D114117
And add code to use the appropriate variant like we do in macOS with
respect-system-appearance (but this still needs more work as noted in
StaticPrefList.yaml).
Still, it cleans up a bunch, and allows to not depend on the content
process boundary to provide light system colors.
Depends on D113542
Differential Revision: https://phabricator.services.mozilla.com/D113543
Win32k Lockdown is getting to the point where we *could* have people in the
community start testing. Let's make it easy for them!
Differential Revision: https://phabricator.services.mozilla.com/D108255
And add code to use the appropriate variant like we do in macOS with
respect-system-appearance (but this still needs more work as noted in
StaticPrefList.yaml).
Still, it cleans up a bunch, and allows to not depend on the content
process boundary to provide light system colors.
Depends on D113542
Differential Revision: https://phabricator.services.mozilla.com/D113543
This will allow detecting the system theme, which allows fixing some of
the blocked bugs.
Note that when using the system theme we will still match light or dark
appropriately, so this shouldn't change behavior just yet.
Differential Revision: https://phabricator.services.mozilla.com/D113516
This test is for documentation purposes. You may run it locally on Windows by removing the skip-if = true from xpcshell.ini
As sharing folders on windows requires elevated priviledges, you will need to execute some commands in a separate cmd.exe instance with Admin priviledges.
Differential Revision: https://phabricator.services.mozilla.com/D113498