The Chromium IPC histogram code used the StatisticsRecorder object for storage.
This is keyed by histogram name, which doesn't match our storage reality anymore.
Instead we use a name to refer to a set of histogram instances that record data from different processes, as well as separating session and subsession data.
Consequently we need to rewrite this storage, which means StatisticsRecorder is not used anymore.
MozReview-Commit-ID: 1LC7YubpKaD
When we turn on the pref security.data_uri.unique_opaque_origin, this
test failed because data: URI is treated as cross origin. So I replace
the data: URI as a seperate xul.
The DownloadList object now provides batch notifications directly, in preparation for linking front-end views to other types of download lists without having to use the DownloadsData indirection.
MozReview-Commit-ID: FOTz1YwGRE1
--HG--
extra : rebase_source : df2d50d50c45a98e257caaa6efa9d0da2fa79237
extra : source : 278858e3d78b5e371f865adac043d07b770f1d3f
Introducing a destructuring assignement in the Bug 1378759 caused the
search throw an exception. The code was tested only in certain
circumstances where the bug wasn't triggered.
MozReview-Commit-ID: EWkKJhxMIuy
--HG--
extra : rebase_source : 6b892d1362e4c5956a0f888d93611a89c64d4e0c
Measure the time how long the cursor is hovering before opening the unselected
tab. If the tab didn't be opened, the data won't be recorded.
MozReview-Commit-ID: 4oTj0RzJhG
--HG--
extra : rebase_source : 7706df672012027a0def84674e83ea7afd7ee50f
Only send the msg "Browser:UnselectedTabHover" when someone requests for the
msg, it can reduce non-necessary communication.
MozReview-Commit-ID: 2mBUMB4AMVo
--HG--
extra : rebase_source : d7a5103e2713735fdd0f65c7de381b219f4cce26
This msg is used to notify the status whether the cursor is hovering over the
unselected tab or not.
It's used for the media's feature, resuming the background video decoding.
MozReview-Commit-ID: GuAyLNdH10c
--HG--
extra : rebase_source : 4419dfda8f7f2c7224244b19341ec4987a66fdbe
The animations on the pocket-button and library-button are disabled if they are not in the nav-bar due to issues with getting overflow:hidden and position:absolute to work the same way outside of #nav-bar. This is on file as bug 1382894.
MozReview-Commit-ID: Lq20GuocMkg
--HG--
extra : rebase_source : 216557e4bbb265c222b104f2314ac7a0e00fe459
We were missing a possible status in the list for the downloaded
topic. This should be all that we need to get the notification to
show up.
MozReview-Commit-ID: EQSccrdv30Y
--HG--
extra : rebase_source : cc620f08549fb099a82fd1fb4b4aee1c6a124e2f
Added changes to testcase.py for change server root
Added testvar to pass server_root from command line of telemetry-harness to testcase class.
Added argument.py and runner.py to implement MarionetteHarness in the test job
Changed test name in manifest.ini
MozReview-Commit-ID: 4XpBvq6Skz6
--HG--
extra : rebase_source : ab3f9d8ce95186fb9fba0eda0c4624eed837f298
In order to get Firefox to work with multiple built-in languages, we want
to bundle the same file in desktop as we do in fennec - res/multilocale.json
MozReview-Commit-ID: BY1cMYd0q8Q
--HG--
extra : rebase_source : 4bc95d0055a98869481324654d9e91bdf0734894
Display the entire ping instead of just the payload
MozReview-Commit-ID: JnNk2AjvTvC
--HG--
extra : rebase_source : f5f5eb329f4eafb5762fa12fa9a1724d9a730790
Also better integrate the process selector to the new design.
MozReview-Commit-ID: 8YV6dYPFZvA
--HG--
extra : rebase_source : 4a25bda87a9b2ad5f4fc7054070b1f7f101a47bd
Reduce the size of the sidebar to let more space available for the
actual content.
MozReview-Commit-ID: 5z1zwxC8Ys1
--HG--
extra : rebase_source : aef10ffd4223c52cd3858ea099cdb9abacab83a9
We are pushing out a new Widevine CDM version, so we need to update the CDM
downloader to download the new version if the GMP AUS server is down.
Note that the existing code won't download a CDM/GMP using the fallback path if
a CDM/GMP is not already installed.
MozReview-Commit-ID: 6eF4QupkU77
--HG--
extra : rebase_source : ce0aafd4e3e07cfc1fc96fb5523ca69b0dddbac9
Implements a title property on the Window object, and allows for a titlePreface to be set
both via windows.create and via windows.update.
MozReview-Commit-ID: CaWwPN0utzs
--HG--
extra : rebase_source : 20d4310063bc37fccb1a1fe68b5d67ec2cc0e433
Wait for content script to be loaded before sending a message to it.
MozReview-Commit-ID: ENsMbdjLuVx
--HG--
extra : rebase_source : d0f56ce5b08bc0882c6a54b9aa02f8a36a27719b
Also, one unused include of nsIProgrammingLanguage, which is unrelated.
MozReview-Commit-ID: LJf2NSwmaYG
--HG--
extra : rebase_source : 63dfca9185535dbfa695cf2f383d81a14ce423c0
There are two race conditions that happen on startup because we read an
install.rdf with a DOM parser before addons have a chance to run. The current
code caches the first value that it computes, meaning that if it runs before
e10srollout does, it will cache the default values for its channel (off on
Beta and Release). This patch fixes the races by never caching the value of
the MultiprocessBlockPolicy (which is fine, it's only ever called in two
places) and by letting e10srollout tell BrowserTabsRemote to update its cached
value.
MozReview-Commit-ID: HsUIrPzqwl0
--HG--
extra : rebase_source : f3d12f43e8c7150d60e94f186de8b68188736dc4
* Toggle animate=false attribute on arrow panels when toolkit.cosmeticAnimations.enabled is false
* Use preferences-service component to lookup the pref in the arrowpanel binding
* Disable this pref during tests to remove a source of instability and timing-based test failures in chrome/UI tests.
* Enable cosmeticAnimations for tests which depend on existing behavior
MozReview-Commit-ID: IvA2ySPPmeJ
--HG--
extra : rebase_source : 4ed74175107b2cf831b698361f0a2a9b1bd72113
Added 5 second wait for telemetry to reinitialize.
MozReview-Commit-ID: 7R2QnQQUfKq
--HG--
extra : rebase_source : 7892da8a6739acac589ca039c21f6e4746854359
Divide the current height by two to improve the readability.
Change the colors so that they match the firefox color palette.
Also prevent the label of histogram's bar to overlap.
MozReview-Commit-ID: 5FLgFXk94ng
--HG--
extra : rebase_source : e090b4c5ae787b51c2b1b054e6f7b99d00bc2311
Divide the current height by two to improve the readability.
Change the colors so that they match the firefox color palette.
Also prevent the label of histogram's bar to overlap.
MozReview-Commit-ID: 5FLgFXk94ng
--HG--
extra : rebase_source : 59374f2bd4a6c95744409c6278f7e5efcb50ea02
The NetUtils sync I/O shows up in the profile logs, so we want to switch the
function that loads `update.locale` file to be async.
MozReview-Commit-ID: AEYKiivsNl0
--HG--
extra : rebase_source : 3784a3d40d48e81df41d10eb92b35e1656a0305b
This patch adds TelemetryController.testShutdown() calls to the tests that
were not calling it, relying on TelemetryController.testReset() to do the
full shutdown/restart cycle. Without the shutdown, the telemetry scheduler
was generating rougue daily pings at undesired times.
Allows to set browser.urlbar.maxHistoricalSearchSuggestions to fetch a given number of
historical search suggestions.
Allots to set browser.urlbar.matchBuckets to change the location bar mixup of results.
The system is based on an array of buckets, each bucket is an array containing the type
of the match accepted by the bucket (MATCHTYPE) and the number of available slots in the bucket.
At every new match insertion, addMatch() loops all the buckets to find the first
compatible and available slot.
Note that the pref format may change in the future, we plan to add an id to each bucket and
frecency may change from an absolute to a relative value.
MozReview-Commit-ID: 5j7esakF5bu
--HG--
extra : rebase_source : e6470d1fe0015664935628bef069a7684052c0d5
In order to identify how HTTP OMT is used in user environment, I add a telemetry HTTP_CHILD_OMT_STATS
to record the success and fail reason for each HttpChannelChild.
- "success": OMT request is accepted and the target thread is not main thread.
- "successMainThread": OMT request is accepted but the target thread is still main thread.
- "failListener": OMT request is rejected by the direct listener of this channel.
- "failListenerChain": OMT request is rejected by one of the listener in the listener chain.
- "notRequested": HTTP OMT is not requested by the channel owner.
MozReview-Commit-ID: 1Gif1oteOOh
--HG--
extra : rebase_source : a46ea42f8d5cb58071dd9d31416423522f3e7c67
Create AccumulateCategoricalKeyed() to specify both key and value for the categorical histogram,
sinc AccumulateCategorical() only support non-keyed histogram.
MozReview-Commit-ID: qYMnL9P6Ik
--HG--
extra : rebase_source : 446543601e9234da25d292018d8a6e8a7ac7ba22
MozReview-Commit-ID: KmpBdrLmVNK
Also added a hasSetting method to ExtensionSettingsStore to check whether a particular extension has a
setting stored for a particulay key.
--HG--
extra : rebase_source : 659b42d941baa96c14a22ac0f114175ae12f7f91
Install crash reporter's panic hook in child processes (and also delay the main
process installation until we know crash reporter is enabled).
When collecting child crash annotations, read the Rust panic message if it
exists.
MozReview-Commit-ID: Gfp2E8IHjw8
--HG--
extra : rebase_source : 9e261f399e7c54fc262a1500cf2514ddd1012406
This is similar to bug 1301751, where something in rust seems to trigger errors
running dsymutil to generate debug symbols in OSX. We can set debuginfo=1 for
these builds as a temporary workaround for now, while we work on a more
permanent solution in rust and/or dsymutil. debuginfo=1 still gives us enough
info for stack traces, although without line info. debuginfo=2 would be useful
for debugging, but is irrelevant to crash reports.
MozReview-Commit-ID: DdA00GzVfWg
--HG--
extra : amend_source : 47d3573042098194a07f9b473e4a02c86a1eba7c
Telemetry requires information that we read from the XPI database and
it blocks shutdown until it gets that information. Now that we're no
longer loading the XPI database during startup, create a safety net here
and load the database if it isn't already loaded when shutdown begins.
MozReview-Commit-ID: LkoNn7wusxN
--HG--
extra : rebase_source : c9621ebbf5beb9de55e9e9e6217bedc7053b7d25
blob URIs are sent through unfiltered and data URIs are hashed in
the same way as Chrome does.
Also, we used to bail on the first invalid URL we encountered. We now
keep going, checking the other URLs in the chain and eventually doing
the remote lookup.
--HG--
extra : rebase_source : a4ddaae973e931be4e10af46660ea1f7aed11887
Reading the extension permissions DB at startup takes several hundred
milliseconds, largely from the overhead of initializing OS.File. We can avoid
that somewhat by using the stream APIs to read the files, and beginning the
read very early. But the eager initialization gets complicated, and we still
add extra IO to startup.
After this change, the permissions JSON file still remains the primary source
of truth, but the state as of the last session is cached in the volatile
extension startup cache to decrease the overhead of reading it at startup.
MozReview-Commit-ID: HGDt5kSsdzX
--HG--
extra : rebase_source : 511b9a03619f70c3e601a5e1b5985bf3d5efa21f
For unpacked extensions, loading the locales list adds an appreciable delay to
startup time. For packed extension, the overhead is much lower, but still best
avoided.
MozReview-Commit-ID: 6kicOU78fpZ
--HG--
extra : rebase_source : fe88cdd42071c5b7a883b2cad97679381aa5c074
IndexedDB helped where we needed to decrease main thread CPU, but it also took
so long to inialize during startup (over 500ms on a fast machine) that it
delayed extension startup more than was acceptable.
Using a structured clone flat file solves the same issues that IndexedDB did,
but with much less startup overhead.
MozReview-Commit-ID: 1Of7uxKCfkg
--HG--
extra : rebase_source : f2f7f9f852d40d547d43da4804a6bb7be00fdded
This gives us performance wins in sevaral areas:
- Creating a structured clone blob of storage data directly from the source
compartment allows us to avoid X-ray and JSON serialization overhead when
storing new values.
- Storing the intermediate StructuredCloneBlob, rather than JSON values,
in-memory saves us additional JSON and structured clone overhead when
passing the values to listeners and API callers, and saves us a fair amount
of memory to boot.
- Serializing storage values before sending them over a message manager allows
us to deserialize them directly into an extension scope on the other side,
saving us a lot of additional structured clone overhead and intermediate
garbage generation.
- Using JSONFile.jsm for storage lets us consolidate multiple storage file
write operations, rather than performing a separate JSON serialization for
each individual storage write.
- Additionally, this paves the way for us to transition to IndexedDB as a
storage backend, with full support for arbitrary structured-clone-compatible
data structures.
MozReview-Commit-ID: JiRE7EFMYxn
--HG--
extra : rebase_source : caed13b099e7cb05de8d516761e32298a7a81ee5
extra : source : 42d3c1599af53b047d7ccd6b1c92ab08975284d7
Thanks to Manish for help in reflecting this idiomatically in rust.
MozReview-Commit-ID: 8tB7vsc5yxc
--HG--
extra : transplant_source : F%87%16%82.P%BD%F3%B1%A4%19%BA%F0%3DQ%F6%ED%BD%95%60
This gives us performance wins in sevaral areas:
- Creating a structured clone blob of storage data directly from the source
compartment allows us to avoid X-ray and JSON serialization overhead when
storing new values.
- Storing the intermediate StructuredCloneBlob, rather than JSON values,
in-memory saves us additional JSON and structured clone overhead when
passing the values to listeners and API callers, and saves us a fair amount
of memory to boot.
- Serializing storage values before sending them over a message manager allows
us to deserialize them directly into an extension scope on the other side,
saving us a lot of additional structured clone overhead and intermediate
garbage generation.
- Using JSONFile.jsm for storage lets us consolidate multiple storage file
write operations, rather than performing a separate JSON serialization for
each individual storage write.
- Additionally, this paves the way for us to transition to IndexedDB as a
storage backend, with full support for arbitrary structured-clone-compatible
data structures.
MozReview-Commit-ID: JiRE7EFMYxn
--HG--
extra : rebase_source : 04a5681c604c5d2acd781b7ce4f66a757465071a
We were prefix-matching the rust srcdir when hyperlinking
symbols, but then appending the relative source path to
the top level repo url, resulting in broken links.
Instead, link to the srcdir url at github.
MozReview-Commit-ID: 33tSMM96Vie
--HG--
extra : rebase_source : 13d5638d4029e40077c0ba8de34a64d3ff9e92be
This patch introduces an new environment variable called MOZ_RESET_PROFILE_MIGRATE_SESSION. Only when MOZ_RESET_PROFILE_MIGRATE_SESSION is set then Firefox profile migrator would migrate the old profile session data.
MozReview-Commit-ID: 5XNBSPzx9AR
--HG--
extra : rebase_source : 5ce482c2038192a43f5e7b3201dadc439d9f8273
Crash reporter installs a special Rust panic hook to grab the panic reason.
However, we still want to call the default hook as well, so that we still print
the reason and backtrace to the console.
MozReview-Commit-ID: JlCamBPb51X
--HG--
extra : rebase_source : c973cd782ae1e9c93d207de9174cc6871d3e301c
We've had trouble with crashes and hangs on macOS with
libclang builds from tooltool, so for local developer
builds we prefer the homebrew or macports packages
installed by `mach bootstrap`.
However, we were searching ~/.mozbuild before the homebrew
directory, resulting using the wrong libclang when developers
had run `mach bootstrap` before the switch, or anyone who
had used `mach artifact toolchain` on macOS.
MozReview-Commit-ID: JpLBDNthG6e
--HG--
extra : rebase_source : cca6f2772fd16425bd9b75cdfb4c7b60e4da577f