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.