GHOST_WINDOWS will be used to satisfy Quantum release criteria. As such, we
need release-channel collection.
Near as I can tell the memory manager works just as well in Release as in
pre-release, so this should be all that's necessary.
MozReview-Commit-ID: 1iLJhlgKoVQ
--HG--
extra : rebase_source : f5ae38b0693734c03278c1c0dde9e3b835d6a4b9
Without this change, browser_update.js "resets" a preference that it never
changed to a different value, which leaks through to future tests. This was
introduced in a8fcca075fde, and appears to be a simple mistake since that change
removes a setup/teardown pref change pair, but the prefs it changes are two
different ones!
This leaked pref change leads to test failures when special powers and mochitest
are installed as non-temporary addons.
MozReview-Commit-ID: 2jx3fB1iZMx
--HG--
extra : rebase_source : 35394dda16814d80116854bd40c00c95f30d34e2
In addition to updating webrender and webrender_traits, this patch:
- bumps the euclid dependency in webrender_bindings to match webrender
- updates the Cargo.lock files and re-vendors third-party rust packages
- updates the push_yuv_image callers due to an API change in WR cset a4b9e25.
Implement privacy.network.peerConnectionEnabled to allow WebExtensions to enable and disable RTCPeerConnections (aka WebRTC).
MozReview-Commit-ID: 5zGotQNwsko
--HG--
extra : rebase_source : 3543efa9fdbd7689581b3ffd3507cf2b4fee284d
Allow the use of the subsection render not just for the environment data.
It could help future developer to display subsection for another special
ping data. Also it will help with the redesign of the UI.
MozReview-Commit-ID: DHoS7Zw7IyC
--HG--
extra : rebase_source : a6ca4c0218c5b73c4c3e383886c9e94ec3f7f93d
GenericTable expect an array of array as data where KeyValueTable used to expect an object.
Use explodeObject() to process an object so it can be used by GenericTable.
MozReview-Commit-ID: 6hxxFwF2KXg
--HG--
extra : rebase_source : 29b2636eeea2f980182e5127f1e3f98630188e10
Both provide the same functionality so we only need to keep one of them.
MozReview-Commit-ID: AOiiRiFr1fD
--HG--
extra : rebase_source : 8e3b8d3f80c320f4a40fa4b5ba383fc323d15806
Most of the sections were already in their own object. This fixes the one that are not.
MozReview-Commit-ID: 92lAtwYwbDl
--HG--
extra : rebase_source : 8f1ad8d7e5fe18958858130bde8eb542782ad61a
Introduce the replacement of KeyValueTable by GenericTable.
Both provide the same feature so we only need one.
MozReview-Commit-ID: AyWKPkrlX64
--HG--
extra : rebase_source : 20547cab0a53f2e122f0cebdcac3eb3f24eedde1
Several years ago there was a single zip file for all test files. Clients
would only extract the files they needed. Thus, zip was a reasonable
archive format because it allowed direct access to members without
having to decompress the entirety of the stream.
We have since split up that monolithic archive into separate,
domain-specific archives. e.g. 1 archive for mochitests and one
for xpcshell tests. This drastically cut down on network I/O
required on testers because they only fetched archives/data that
was relevant. It also enabled parallel generation of test archives,
we shaved dozens of seconds off builds due to compression being
a long pole.
Despite the architectural changes to test archive management, we
still used zip files. This is not ideal because we no longer access
specific files in test archives and thus don't care about single/partial
member access performance.
This commit implements support for generating tar.gz test archives.
And it switches the web-platform archive to a tar.gz file.
The performance implications for archive generation are significant:
before: 48,321,250 bytes; 6.05s
after: 31,844,267 bytes; 4.57s
The size is reduced because we have a single compression context
so data from 1 file can benefit compression in a subsequent file.
CPU usage is reduced because the compressor has to work less with
1 context than it does with N. While I didn't measure it, decompression
performance should also be improved for the same reasons. And of course
network I/O will be reduced.
mozharness consumers use a generic method for handling unarchiving.
This method automagically handles multiple file extensions. So as long
as downstream consumers aren't hard coding ".zip" this change should
"just work."
MozReview-Commit-ID: LQa5MIHLsms
--HG--
extra : rebase_source : 100092c2f2ff609362a724fff60f46dd6e49c94e
extra : intermediate-source : d10f5ccd882b965fcad39914f7c3c930d1301a41
extra : source : a0e257e346ccf3c1db332ec5903241f4eeb9a7ee
Most consumers of `GetBookmarkIdsForURI` already don't need tags, the only
consumer which does (`TaggingService`) has been changed to use a separate
database query.
MozReview-Commit-ID: LabjaA6Q0GF
--HG--
extra : rebase_source : e13dc730a53b5b46ca1766bf896112aa65aa00af
This was found by Coverity Scan (CID 1409773, 1409774).
MozReview-Commit-ID: LA7oPMobbie
--HG--
extra : rebase_source : 0ca4245e445f0b0da0073cee7b5ee95c621af75f
Also removes some dead code.
A lot of the code in ExtensionUtils.jsm is not needed in all processes, and a
lot of the rest isn't needed until extension code runs. Most of it winds up
being loaded into all processes way earlier than necessary.
MozReview-Commit-ID: CMRjCPOjRF2
--HG--
extra : rebase_source : 37718eaf05a22b8ccb95f633cf7454bd7975cdce
Capture each media stream's length (as provided, otherwise as actually
downloaded), to gauge whether keeping media in memory would have a significant
impact.
MozReview-Commit-ID: 4yUQrbgLcGG
--HG--
extra : rebase_source : bed0ea1d58f864463926478b0f8ea59e7084c4af
Due to recent changes to tabbrowser focus behavior, now the "focus" event to the location bar
happens before the "TabSelect" event. On "focus" we would like to open the location bar popup,
but detaching the controller would immediately close it. Thus we don't want "TabSelect" to
detach the controller just to reset its internal state. Moreover, this should be cheaper.
MozReview-Commit-ID: 5NZ1TTI9NFW
--HG--
extra : rebase_source : 48e5e755c304f3963f328da06ca300e98304f38d
The datepicker is showing incorrect year-month header in some time zones, which
is similar to Bug 1331608. It's now fixed by setting the DateTimeFormat timeZone
to UTC. Also done the same thing to the year display for consistency.
MozReview-Commit-ID: LGghmPfYQ5j
--HG--
extra : rebase_source : f1b512d36f46e1f77537d2a5371f45dec72b625e
A pdb file name that differs from a dll file name prevents us from dumping
symbols for the gtest xul on Windows. This name differed to accommodate
fix_stack_using_bpsyms.py failing in the presence of two xul.sym files, which
has since been fixed.
MozReview-Commit-ID: I5pA5HjMeRe
--HG--
extra : rebase_source : 7f683687de5f5541a67df8a0f3b4ea65d65f2ac6
Backed out changeset 916250167bc8
Backed out changeset c2a286511a6c
Backed out changeset 9cc319bef82d
Backed out changeset 29443725aebb
--HG--
extra : histedit_source : 76915ec4b96c97ee6bd4896769158490442aedce%2C0face0f9fe6eb85dd4ba8b3603bf948e0ce99d7f
This patch uses the functionality introduced in bug 1366711 to launch the
pingsender without showing its console window nor a mouse throbber. This also
reverts the pingsender into a console application.
MozReview-Commit-ID: BTcqAkR9UKB
--HG--
extra : rebase_source : bf982d54a5a82c660ab980025498a624730520bf
The whitelisting function thisTestLeaksUncaughtRejectionsAndShouldBeFixed was replaced by expectUncaughtRejection, and existing calls did not take effect anymore.
MozReview-Commit-ID: 3uOxkgWYWEz
--HG--
extra : rebase_source : 5a10a3ebbfe0ce2a801330041f95447c313a9a70
extra : source : 6f0394b523a66dab444b8551deb8f3c6c81d8f31
The browser-chrome test suite now detects and reports unhandled rejections of native Promises, in addition to those created by Promise.jsm. The whitelisting mechanism is updated to use primarily the PromiseTestUtils.expectUncaughtRejection function. Tests will fail if a rejection that is not whitelisted occurs, or if a whitelisted rejection does not occur anymore.
MozReview-Commit-ID: 1beGB5GG8Ty
--HG--
extra : rebase_source : 64395c5fdf25deebd60dfbf2cf5df3cbf7ca8abb
extra : amend_source : 0a3f13419c050662680f2bd110d724b3bf991732
extra : source : 8d53be05afc59519c5ce8cfae96d284a972fda71
This adds a new coarse-grained whitelisting function, whose usage should be kept to a minimum but is necessary because many mochitests have cleanup issues on shutdown.
The module now handles cases that only happen in mochitests, where rejections can occur in contexts that are unloaded and more than one test file can be executed sequentially in the same process.
MozReview-Commit-ID: 8xejMxoSBzf
--HG--
extra : rebase_source : 67219bd686d43199ab10652e6ee1fda8ee1a2d1a
extra : source : 22e7144f857ce6a49764375f1e5ddf3e1ead7a96
The whitelisting function thisTestLeaksUncaughtRejectionsAndShouldBeFixed was replaced by expectUncaughtRejection, and existing calls did not take effect anymore.
MozReview-Commit-ID: 3uOxkgWYWEz
--HG--
extra : rebase_source : 3a7720091180a770b32b595f8094c0d20170166d
The browser-chrome test suite now detects and reports unhandled rejections of native Promises, in addition to those created by Promise.jsm. The whitelisting mechanism is updated to use primarily the PromiseTestUtils.expectUncaughtRejection function. Tests will fail if a rejection that is not whitelisted occurs, or if a whitelisted rejection does not occur anymore.
MozReview-Commit-ID: 1beGB5GG8Ty
--HG--
extra : rebase_source : 59e5b84cb431f3ca28287d30a3da8fbea1363ec5
This adds a new coarse-grained whitelisting function, whose usage should be kept to a minimum but is necessary because many mochitests have cleanup issues on shutdown.
The module now handles cases that only happen in mochitests, where rejections can occur in contexts that are unloaded and more than one test file can be executed sequentially in the same process.
MozReview-Commit-ID: 8xejMxoSBzf
--HG--
extra : rebase_source : de5fa91a5e9769c7ca42fc2c00ea54f169a3e12b
Currently we can't differentiate between when a badge is shown
and a doorhanger is shown. This creates an additional problem
where if the badge progresses into a doorhanger after a window of
time has passed, it registers as two notifications shown, when
logically it is one. This splits out badges and doorhangers to
remedy that.
MozReview-Commit-ID: CTTaWDG1tah
--HG--
extra : rebase_source : 2b13b703ac4e12caa040138dadd2875df76ff61a
These methods do not appear to be used.
When JSM global sharing is enabled, these methods contaminate the
global Function.prototype, which breaks Marionette object
serialization.
MozReview-Commit-ID: CAfJ2FCkhlK
--HG--
extra : rebase_source : 38acb4616ee14283d0f67e1b2144972c7d139f84
Added "TELEMETRY_PENDING_LOAD_MS" & "TELEMETRY_ARCHIVE_LOAD_MS" as exponential histograms.
Added the functionality to save in these histograms the time it takes to load pending/archived pings respectively.
Added the file |test_TelemetryStorage.js| with tests for the added functionality.
This is the equivalent of MOZ_INSTALL_TRACKING, but for MMA (Mobile
Marketing Automation) using the Leanplum SDK.
To test this locally, add lines like:
export MOZ_ANDROID_MMA=1
ac_add_options --with-adjust-sdk-keyfile=/path/to/adjust-sdk-developer.token
MOZ_ANDROID_MMA depends on MOZ_NATIVE_DEVICES and MOZ_ANDROID_GCM,
since Leanplum requires Google Play Services library that those flags
are a proxy for and enable, respectiviely.
We want to enable MOZ_ANDROID_MMA in Nightly, but only for
MOZILLA_OFFICIAL builds. Since MOZILLA_OFFICIAL is still defined in
old-configure.in, we can't interrogate it in
mobile/android/moz.configure, and therefore we enable using the
automation mozconfigs.
MozReview-Commit-ID: 1tiToeyH5Hx
--HG--
extra : rebase_source : f85706c5a0911c7d2edc109d8c47ecc1c1bc6ffc
With these changes the latest update in updates.xml is always the latest update in progress even before applying the update. This makes it so that after a successful update the code in nsBrowserContentHandler.js will always get the correct custom update property.
This patch will make TelemetryEnvironment wait for the
"browser-search-service" topic with "init-complete" before attempting
to query search data.
MozReview-Commit-ID: C0i608eYHmU
--HG--
extra : rebase_source : fb46c8b0b597776350bf15cc9a641665691d874a
geckodriver fails to cross-compile on the TaskCluster x86_64 VMs to
Linux i686. This patch disables building on that platform, and I have
filed https://bugzilla.mozilla.org/show_bug.cgi?id=1367519 to follow up
on this.
MozReview-Commit-ID: 7GEx2Oog2fS
--HG--
extra : rebase_source : ed722e066a4de1e4bd73c32ba98aed8916c34fd2
One of the Rust crates that is built as part of geckodriver's dependency
chain uses a build script to compile some C code.
Because mozbuild does not yet pass the compiler wrapper down to where
the gcc crate can find it, we need to avoid building on geckodriver when
this is the case.
When compiling the browser for the rooting hazard analysis build (labelled
H on Treeherder), the MOZ_HAZARD environment variable will be set and
available to moz.build descriptions.
MozReview-Commit-ID: GprFKtvXvOE
--HG--
extra : rebase_source : f45aa5d8c86673c8287371efcfa703755c2b2073
geckodriver is the Mozilla implementation of the WebDriver remote
control interface for Gecko, and provides an HTTPD proxy that
translates the WebDriver protocol to Marionette.
Building this as part of the Firefox build will allow us to run
WPT WebDriver tests to verify our implementation of Marionette and
geckodriver. It also makes it less painful to make changes across
projects.
This change will cause the geckodriver program to be built as part
of regular Firefox builds, except on macOS and Android, and when artifact
builds are enabled.
RUST_PROGRAMS in cross-compile environments cause the wrong linker to
be used. When this bug is fixed, we should be able to enable building
of geckodriver on macOS. This work is tracked in:
https://bugzilla.mozilla.org/show_bug.cgi?id=1329737
On Android, we may one to build a binary for the host system to use
(x86_64), instead of an ARM binary for the emulator.
MozReview-Commit-ID: FG5tmPv4iut
--HG--
extra : rebase_source : 091728fd2582458325689fc6e3d8b317428802d8
Several years ago there was a single zip file for all test files. Clients
would only extract the files they needed. Thus, zip was a reasonable
archive format because it allowed direct access to members without
having to decompress the entirety of the stream.
We have since split up that monolithic archive into separate,
domain-specific archives. e.g. 1 archive for mochitests and one
for xpcshell tests. This drastically cut down on network I/O
required on testers because they only fetched archives/data that
was relevant. It also enabled parallel generation of test archives,
we shaved dozens of seconds off builds due to compression being
a long pole.
Despite the architectural changes to test archive management, we
still used zip files. This is not ideal because we no longer access
specific files in test archives and thus don't care about single/partial
member access performance.
This commit implements support for generating tar.gz test archives.
And it switches the web-platform archive to a tar.gz file.
The performance implications for archive generation are significant:
before: 48,321,250 bytes; 6.05s
after: 31,844,267 bytes; 4.57s
The size is reduced because we have a single compression context
so data from 1 file can benefit compression in a subsequent file.
CPU usage is reduced because the compressor has to work less with
1 context than it does with N. While I didn't measure it, decompression
performance should also be improved for the same reasons. And of course
network I/O will be reduced.
mozharness consumers use a generic method for handling unarchiving.
This method automagically handles multiple file extensions. So as long
as downstream consumers aren't hard coding ".zip" this change should
"just work."
MozReview-Commit-ID: LQa5MIHLsms
--HG--
extra : rebase_source : cd029cdbbcccc1d16f03d63a5f1fdf60be5db4fd
extra : source : a0e257e346ccf3c1db332ec5903241f4eeb9a7ee
This changes the behaviour of ExtensionSettingsStore so that attempting to remove a setting that was not previously set does
not throw an exception. This allows things like privacy.network.webRTCIPHandlingPolicy.clear() to be called without having
previously called privacy.network.webRTCIPHandlingPolicy.set().
MozReview-Commit-ID: FFCOFHk5lhb
--HG--
extra : rebase_source : a493b50145729a5388acbe1ace948f41de9762aa
Instead of opening and closing the favicons database at every startup to check whether
it's corrupt, just use the ATTACH DATABASE query result to achieve that.
Also avoid replacing places.sqlite in case of non-fatal errors during the connection
initialization.
MozReview-Commit-ID: 4VW3dtoSH07
--HG--
extra : rebase_source : 9732c0ea59579f1f1e64cfaab7ef7497212e8531
This additionally changes exit() calls with |return VALUE| so
that we are sure to call the destructors and valgrind doesn't complain.
Moreover, this disables the 'new-profile' ping when Firefox is ran
on valgrind.
MozReview-Commit-ID: BlGE9w6yGCL
--HG--
extra : rebase_source : d21b7404ac8dba6f3664f0f8d375429a0dec0ee4