This patch fixes two related issues.
1. The AutoStopwatch uses a stack-allocated `mozilla::Vector` to
communicate with its callback during each compartment switch.
This vector was designed to allow its contents to be stack-allocated
but they turned out to be accidentally heap-allocated.
2. During each tick, the stopwatch fills a vector `recentGroups_`.
This vector always started with minimal capacity and had to grow
repeatedly as groups were added, causing repeated reallocations.
This patch preallocates `recentGroups_` to have the same capacity as the
previous tick. We expect that this should eventually reach a stable size
that closely matches the actual needs of the process.
This patch fixes two related issues.
1. The AutoStopwatch uses a stack-allocated `mozilla::Vector` to
communicate with its callback during each compartment switch.
This vector was designed to allow its contents to be stack-allocated
but they turned out to be accidentally heap-allocated.
2. During each tick, the stopwatch fills a vector `recentGroups_`.
This vector always started with minimal capacity and had to grow
repeatedly as groups were added, causing repeated reallocations.
This patch preallocates `recentGroups_` to have the same capacity as the
previous tick. We expect that this should eventually reach a stable size
that closely matches the actual needs of the process.
Adds a dedicated handler for performance warnings to be logged to
consoles if known performance-impacting methods are called.
Search service init is changed from a deprecation warning to a
performance warning for synchronous init.
This also re-enables the warning for the Basilisk & Co. search service
initialization which was previously removed in [a930a79]
See also the discussion on #916.
This allows the nsIUserinfo component to be disabled with --disable-userinfo in mozconfig
at build time, but leaves it on by default to avoid any compatibility issues in existing
applications.
This allows the nsIUserinfo component to be disabled with --disable-userinfo in mozconfig
at build time, but leaves it on by default to avoid any compatibility issues in existing
applications.
this restores some API that is used by search engine management extensions, and
tells "browser-search-engine-modified"/"engine-changed" signal to save user-defined
search engines to "%PROFILE%/searchplugins", as it did in Good Old Times.
This creates a number of stubs and leaves some surrounding code that may be irrelevant (eg. recorded time stamps, status variables).
Stub resolution/removal should be a follow-up to this.
If a background page thumbnail capture fails (e.g. due to too heavy scripting), we should
write -something- to the thumbnail cache, because otherwise it will try again and again,
which is problematic for bad trap pages, that even if the user has left the page never
to return again, the thumbnail service may still try to capture, and fail.
This resolves the only problem for us in #592.
A hidden preference matching the behavior of "browser.download.manager.alertOnEXEOpen" is kept, but is renamed in order to recover cases where the checkbox was used accidentally.
While there, simplify the `confirmLaunchExecutable` function by converting from promises to async function.
Since Basilisk moved this prompting to toolkit, we also clean up some unused duplicate strings from application/basilisk while we're there.
This resolves#581