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
Currently, we need to be able to handle serializing non-JSON-compatible
objects without catastrophically failing to save the storage file. Ideally, we
would ensure this in the ordinary toJSON method. However, that would require
a unnecessary extra calls to JSON.stringify for each object that needs to be
sanitized before returning a JSON-safe value, which is more expensive than we
can afford.
The fallback toJSONSafe method allows us to do this only when necessary, due
to an initial failed JSON serialization.
MozReview-Commit-ID: JXQ001dOGtW
--HG--
extra : rebase_source : ae52bdab81b03bb4c31edbe4b78584fd15c982a3
extra : source : 9c4bf59ab966a8ec17181d85cc1fc4be7450cca3
Currently, we need to be able to handle serializing non-JSON-compatible
objects without catastrophically failing to save the storage file. Ideally, we
would ensure this in the ordinary toJSON method. However, that would require
a unnecessary extra calls to JSON.stringify for each object that needs to be
sanitized before returning a JSON-safe value, which is more expensive than we
can afford.
The fallback toJSONSafe method allows us to do this only when necessary, due
to an initial failed JSON serialization.
MozReview-Commit-ID: JXQ001dOGtW
--HG--
extra : rebase_source : 0b7b388316fdc464b47cdd4f7d8c70bc906a9c27
Changed assertion from using harness class ping variable to local variable in test. That way, popping the ping doesn't affect
outcome of test. Also check that ping is not None.
MozReview-Commit-ID: AEDJmhJHUxv
--HG--
extra : rebase_source : 9b4b8ae01a036788b47941b15f5e3b12ae9030cc
The code that saves the pending browser across an asynchronous
API load was accidentally broken as a result of some overzelous
cleanup. Fix it here.
MozReview-Commit-ID: 3ED95YJAHL2
--HG--
extra : rebase_source : dd0c5a067b3ecaab0af9bbe508bf9d6a99c7269e
Since user-provided values for the e10s prefs won't be loaded
until the profile's prefs.js file is loaded, we need to wait for
this to occur. The simplest way to do this while keeping the
logic neatly inside nsRFPService seemed to be to add an observer,
but another option would be to just directly call _tzset at the
right time during start-up, or add a static method in nsRFPService
doing this that we could call. This would avoid the overhead of an
observer, but since I don't know how significant that overhead
is I just went with the observer for now.
MozReview-Commit-ID: 6yhvwEoADDy
--HG--
extra : rebase_source : fcb6bfe7136993d2a10bee4f707e4a21230fab27
The reason we call _tzset inside DateTime.cpp is to allow the
privacy.resistFingerprinting pref to mask our timezone by setting
the TZ environment variable. Without _tzset, the changes to the
environment variable won't actually change anything. However, if
a process is started with the TZ environment variable set to
something (like "UTC"), then those changes will be active in
that process. Since we're only masking timezone to JS running in
the content process, and since those content processes will be
started by the parent process which has already set its TZ to UTC,
and will copy that variable to its children, we only need to call
_tzset() when the pref changes, and only in the content process,
provided we are on e10s.
MozReview-Commit-ID: CPU99BGDUPj
--HG--
extra : rebase_source : 4cdf6b5e2aebeff34decd11efa62783f2364dd3a
Use a select with 3 optgroup (Today, Yesterday, Older) to sort ping.
MozReview-Commit-ID: 4Imw0cI3zxk
--HG--
extra : rebase_source : b4a877cf757491283d7f5f5dbe1202a6ab4f96b0
"value" here is a PositiveOptionValue, which behaves like a tuple.
Its __eq__ fails if the types of the operands aren't the same. A
string literal isn't a PositiveOptionValue, so the "value == 'build'"
check always fails. This meant that --enable-webrender=build was
always being interpreted as --enable-webrender. Yikes.
MozReview-Commit-ID: 57hWl0VqDmD
--HG--
extra : rebase_source : 44b858a4bbf9002813a16ba29429696005901ccc
Doing this makes various operations more efficient, as we don't have to
allocate, copy strings, and deallocate needlessly. The remaining
instances of nsCString temporaries are in logging code, which didn't
seem worthwhile to deal with here.
Bug 1376893's approach is wrong in various ways:
- It shows the reload button as enabled for about:blank
- The disabled state styling is implemented in browser/themes/shared/toolbarbuttons.inc.css, and could be implemented differently. browser/base/content/browser.css should not depend on theme specifics.
- :not(:-moz-window-inactive) only begins to make sense on Mac, and obviously prevents the fix from taking effect in inactive windows
MozReview-Commit-ID: Dfh6VbirwPe
--HG--
extra : rebase_source : c08ddb408c2316bf957cffeed7ff12ffbb02bd0c
Bug 1376893's approach is wrong in various ways:
- It shows the reload button as enabled for about:blank
- The disabled state styling is implemented in browser/themes/shared/toolbarbuttons.inc.css, and could be implemented differently. browser/base/content/browser.css should not depend on theme specifics.
- :not(:-moz-window-inactive) only begins to make sense on Mac, and obviously prevents the fix from taking effect in inactive windows
MozReview-Commit-ID: CaBLYFKwPgh
--HG--
extra : rebase_source : a9279e74a2a95779ff58e1ace484cbc45cfbe8c6
The Services.tm.mainThread.idleDispatch API was renamed in
https://bugzilla.mozilla.org/show_bug.cgi?id=1368072 to
Services.tm.idleDispatchToMainThread.
MozReview-Commit-ID: CZdH4DQdvNz
--HG--
extra : rebase_source : a2689d2cb30ff597b51615f96c5b3d81fb799f53
Unlike video element, audio has no status overlay to inform users if an
error occurred. Instead of hiding entire media controls, we should keep
it visible in order not confuse users, and see if we can come up with a
better approach such as making the buttons disabled afterwards.
MozReview-Commit-ID: 8YSCxbWwg2O
--HG--
extra : rebase_source : 0da6ce16fe28c7f1d0cbafe0c518f5c2c273abf1
Since Homebrew doesn't automatically place clang and associated binaries
on PATH, we need to do the task ourselves. MacPorts does place the
binaries in PATH, but uses yet another name, so we have to add that to
the search list.
I don't bother to label the runnables in the parent process being fired by
VisitedQuery, as we are not planning to perform scheduling in the parent process
if I remember correctly. It would be possible to label those runnables as well.
This also adds a mSeen boolean to the mObservers array, to fix a race caused
when a link is being registered as an observer between NotifyVisited and
NotifyVisitedForDocument being run.
MozReview-Commit-ID: EosNOu62fEV
It's silly to use prmem.h within Firefox code given that in our configuration
its functions are just wrappers for malloc() et al. (Indeed, in some places we
mix PR_Malloc() with free(), or malloc() with PR_Free().)
This patch removes all uses, except for the places where we need to use
PR_Free() to free something allocated by another NSPR function; in those cases
I've added a comment explaining which function did the allocation.
--HG--
extra : rebase_source : 0f781bca68b5bf3c4c191e09e277dfc8becffa09
This defers the |gatherMemory| telemetry measurement until we're idle. This
measurement should no longer affect CC times.
MozReview-Commit-ID: DMtAo3K59FV
Add the dependency between "MOZ_ENABLE_SKIA_PDF" and "MOZ_TREE_FREETYPE" on Windows:
- let |tree_freetype| returns true if |skia_pdf| returns true on Windows, and
- avoid defining "MOZ_ENABLE_CAIRO_FT" on Windows ("cairo-ft-font.c" includes <dlfcn.h>, which only exists on posix platforms)
MozReview-Commit-ID: 6CWVwzIHL1Q
Update license.html to include PDfium related license notices:
- "Anti-Grain Geometry Public License" for "pdfium/third_party/agg23/"
- "Chromium License" for "pdfium/third_party/base/"
- "lcms License" for "pdfium/third_party/lcms2-2.6/"
- "PDFium License" for "pdfium/"
- acknowledgment of "C++ Big Integer Library" for "pdfium/third_party/bigint/"
MozReview-Commit-ID: 90XRsQObtTy
We should consider step and step base when deciding whether to show second and
millisecond field, since step and step base can affect the valid time intervals,
and the valid intervals may have second/millisecond part.
MozReview-Commit-ID: H4mJvLTvBOM
This animation can be disabled if the toolkit.cosmeticAnimations.enabled pref is set to false.
MozReview-Commit-ID: DtsrI8YflYn
--HG--
extra : rebase_source : 066dc736dc75489bf6ad787811d4ae34f03ed24f
The implementations of browserAction, pageAction, and menu onClick
handlers now stash the current <browser> until we get a reply from
the extension process indicating that the handler has finished running.
We also have to take care to keep that <browser> around even if the
permissions api has to be loaded asynchronously.
MozReview-Commit-ID: BYJaiwdj40u
--HG--
extra : rebase_source : 3d9cba03d2853ef8d71b6c3e3a1fd0aba400b39c
llvm-config on Windows can return a path for the clang binary which does
not end in ".exe", which then causes failures when attempting to check
for the existence of the file. Rather than attempting to simply tack
".exe" onto the file if it's not already there, delegate to
moz.configure's `find_program` function, which will take care of that
case and several others besides.