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