This is a very first iteration of about:processes, so that people who actually need the tool can start using it immediately and provide feedback.
Differential Revision: https://phabricator.services.mozilla.com/D72617
This gets rid for the need of a number of local packages (mostly related
to Gtk+3). One exception is that we now need a 32-bits version of the
xz-utils package, some -dev package depends on it, and that dependency
can't be fulfilled in the 32-bits image because we already have the
64-bits backport installed, which conflicts with it (we need both
32-bits and 64-bits package to be at the same version when installed).
The system binutils fails to link clang-7 for some reason, so we now use
our toolchain binutils instead, like we already do for newer versions of
clang.
The debian-packages docker image now needs an explicit installation of
git, because it's not pulled in via the recommends of some other
package.
For some reason, snapshot.debian.org doesn't contain the jessie-backports
archive at the same location as others, and only has a few snapshots of
the archive.
Differential Revision: https://phabricator.services.mozilla.com/D73784
These elements handle focus on their own. They're right now not
having outlines because they specify background-color, which disables
theming, but that is about to change.
Differential Revision: https://phabricator.services.mozilla.com/D73855
When building in some configurations of rustc (e.g. i386 without SSE), building Firefox fails with, among other things:
```
error[E0428]: the name `U1024` is defined multiple times
```
This comes from the typenum library. The issue was fixed in 14a3322d10, so all it takes is an upgrade of the crate.
Differential Revision: https://phabricator.services.mozilla.com/D74005
This seems to come from bug 618907, which seems to be a hack-around code
that went away in bug 1595435.
If we open a window on mousedown such as it gains focus before this code
runs, we just steal the focus from it, which is undesired.
Also remove the test for bug 799299. It doesn't work anyways if the
browser is remote (this test only runs on non-e10s mode), and this
unifies the behavior with e10s and with content (see attached test-case,
which doesn't change behavior with and without my patch).
Differential Revision: https://phabricator.services.mozilla.com/D73901
Events are timestamped to millisecond precision only, so we need to trim
down our clock source a bit.
This also renames the previously used function to make it more clear
(even though an "instant" doesn't really have a unit, so our analogy is
breaking down)
Differential Revision: https://phabricator.services.mozilla.com/D73793
This is a very first iteration of about:processes, so that people who actually need the tool can start using it immediately and provide feedback.
Differential Revision: https://phabricator.services.mozilla.com/D72617
Having all logic for an IC site in WarpBuilder::buildIC will make it easier to
make future changes (like bailing out for cold Baseline ICs). It also enforces
all ICs are handled consistently and it de-duplicates code for JSOps that use
the same CacheKind.
This patch also adds transpiler support for some JSOps (In, InstanceOf, etc) and
we now assert the transpiler (buildIC) is called with the right number of inputs
(based on the CacheKind).
Differential Revision: https://phabricator.services.mozilla.com/D73811
This adds a struct for the nursery cell header and uses it for string and big int allocation. It's in gc/Heap.h because it will eventually used by Cell.h which doesn't include Nursery.h.
Differential Revision: https://phabricator.services.mozilla.com/D73862
This factors out advancing to the next chunk and writing the nursery canary from the main allocation function and also uses alignas for making sure the canary is aligned.
Differential Revision: https://phabricator.services.mozilla.com/D73861
Changing isEvalAllowed to default to false in nightly builds.
As a ride-along, we adjust how we get the script filename
for telemetry, to get better results.
Differential Revision: https://phabricator.services.mozilla.com/D72644
This gets rid for the need of a number of local packages (mostly related
to Gtk+3). One exception is that we now need a 32-bits version of the
xz-utils package, some -dev package depends on it, and that dependency
can't be fulfilled in the 32-bits image because we already have the
64-bits backport installed, which conflicts with it (we need both
32-bits and 64-bits package to be at the same version when installed).
The system binutils fails to link clang-7 for some reason, so we now use
our toolchain binutils instead, like we already do for newer versions of
clang.
The debian-packages docker image now needs an explicit installation of
git, because it's not pulled in via the recommends of some other
package.
For some reason, snapshot.debian.org doesn't contain the jessie-backports
archive at the same location as others, and only has a few snapshots of
the archive.
Differential Revision: https://phabricator.services.mozilla.com/D73784
The device's CPU architecture is not exposed in Gecko's (or Chrome's or Safari's) User-Agent string, but it can be read by JavaScript via the navigator.oscpu and navigator.platform APIs.
CPU architecture telemetry for Fenix users as of May 2020:
80.4% arm64-v8a (aarch64)
17.2% armeabi-v7a (armv7)
2.4% x86?
https://sql.telemetry.mozilla.org/queries/64381#164300
CPU architecture telemetry for Fennec users as of May 2020:
64.57% arm64-v8a (aarch64)
34.24% armeabi-v7a (armv7)
0.99% x86
0.20% x86_64
https://sql.telemetry.mozilla.org/queries/68742
Depends on D73592
Differential Revision: https://phabricator.services.mozilla.com/D73593
The most common Android versions among Fennec users as of May 2020 are:
32.02% Android 9 Pie (API 28)
19.41% Android 10 (API 29)
9.28% Android 8.0 Oreo (API 26)
8.99% Android 7.0 Nougat (API 24)
8.24% Android 8.1 Oreo (API 27)
https://sql.telemetry.mozilla.org/queries/57140
The most common Android versions overall as of April 2020 are:
37.40% Android 9 Pie (API 28)
16.12% Android 10 (API 29)
11.29% Android 8.1 Oreo (API 27)
7.37% Android 8.0 Oreo (API 26)
6.24% Android 7.0 Nougat (API 24)
...
https://gs.statcounter.com/android-version-market-share/mobile-tablet/worldwide/#monthly-201903-202004
Android 10 is the latest version and is steadily converting Android 9 users, but I think we should spoof Android 9 because it's still the most common version and will likely remain so until the end of 2020.
Depends on D73591
Differential Revision: https://phabricator.services.mozilla.com/D73592
While we're going to rebuild all the Debian-based docker images, we
might as well add one corrective thing that is going to be required
later on, and would require another rebuild, while doing it now would
skip that.
On Debian 10, the python3 distutils module is in a separate package,
python3-distutils, which didn't exist in previous Debian releases,
because back then the distutils module was part of the python3 package.
Fortunately, the python3-distutils-extra package existed on all the
Debian versions we use and depends on the distutils module, so it is a
convenient way to have the python3-distutils package pulled in without
altering the list of packages to install based on the Debian version.
Differential Revision: https://phabricator.services.mozilla.com/D73785
This gets rid for the need of a number of local packages (mostly related
to Gtk+3). One exception is that we now need a 32-bits version of the
xz-utils package, some -dev package depends on it, and that dependency
can't be fulfilled in the 32-bits image because we already have the
64-bits backport installed, which conflicts with it (we need both
32-bits and 64-bits package to be at the same version when installed).
The system binutils fails to link clang-7 for some reason, so we now use
our toolchain binutils instead, like we already do for newer versions of
clang.
The debian-packages docker image now needs an explicit installation of
git, because it's not pulled in via the recommends of some other
package.
For some reason, snapshot.debian.org doesn't contain the jessie-backports
archive at the same location as others, and only has a few snapshots of
the archive.
Differential Revision: https://phabricator.services.mozilla.com/D73784
Combined with the upcoming upgrade of the build environment to Debian 8,
which is also going to upgrade the Gtk+3 requirement to 3.14, of the
major Linux distros Firefox currently supports running on, this removes
runtime support for:
- Fedora 20 and earlier (EOLed in 2015),
- OpenSUSE 13.1 and earlier (EOLed in 2016),
- Debian 7 (EOLed in 2018),
- Ubuntu 14.04 (EOLed in 2019).
Some of them might actually be supported in practice because the Gtk+3
requirement might be more relaxed than 3.14, but figuring that out is not
worth the effort.
Differential Revision: https://phabricator.services.mozilla.com/D73783
We currently check that the binaries we ship are not using symbol
versions of system libraries that would not be available on some older
systems. In some cases, however, we may get dependencies on newer symbol
versions in the form of weak symbols, that are checked for at runtime.
This happens with __cxa_thread_atexit_impl when building against a glibc
newer than 2.18, and the supporting code in Rust libstd actually checks
at runtime whether the weak symbol is resolved before using it.
Differential Revision: https://phabricator.services.mozilla.com/D73782