Commit Graph

765916 Commits

Author SHA1 Message Date
Andrei Oprea
9ac6da2477 Bug 1724688 - Fix browser_asrouter_cfr.js mochitest that references non existent icon r=Mardak
Differential Revision: https://phabricator.services.mozilla.com/D122100
2021-08-10 11:17:18 +00:00
Gijs Kruitbosch
d968b94b5f Bug 1724718 - fix various trivial dead references in product code, r=mossop
Differential Revision: https://phabricator.services.mozilla.com/D122162
2021-08-10 11:04:11 +00:00
André Bargull
2bad6afeaa Bug 1723155 - Part 12: Remove always false condition from emitBrandCheck(). r=mgaudet
If `isFieldInit()` returns `true`, the first `if`-statement is taken, so it must
be `false` in the `else` block.

Depends on D121746

Differential Revision: https://phabricator.services.mozilla.com/D121747
2021-08-10 10:05:05 +00:00
André Bargull
4e65eb3ab2 Bug 1723155 - Part 11: Always assert the property key is a private name in CheckPrivateFieldOperation. r=mgaudet
And remove some commented out debugging code.

Depends on D121745

Differential Revision: https://phabricator.services.mozilla.com/D121746
2021-08-10 10:05:04 +00:00
André Bargull
0890c035b4 Bug 1723155 - Part 10: Cleanup BytecodeCompilation header. r=mgaudet
While removing unnecessary `mozilla::Maybe` in the last part, I've noticed that
this header has many unused or unnecessary includes.

Depends on D121743

Differential Revision: https://phabricator.services.mozilla.com/D121745
2021-08-10 10:05:04 +00:00
André Bargull
0eb0b624ee Bug 1723155 - Part 9: Remove Maybe around source positions. r=mgaudet
Source positions used `mozilla::Maybe<uint32_t>` for BinAST, but with BinAST
removed, we can now change this back to use `uint32_t`.

Depends on D121742

Differential Revision: https://phabricator.services.mozilla.com/D121743
2021-08-10 10:05:03 +00:00
André Bargull
f34eadccab Bug 1723155 - Part 8: Add NewPrivateName opcode. r=mgaudet
Fix this TODO by adding a new opcode `JSOp::NewPrivateName`.

Depends on D121741

Differential Revision: https://phabricator.services.mozilla.com/D121742
2021-08-10 10:05:03 +00:00
André Bargull
7eec2fb171 Bug 1723155 - Part 7: Reset internal state when emitting private non-static methods. r=mgaudet
This change is necessary to ensure the correct home-object can be found.

Depends on D121740

Differential Revision: https://phabricator.services.mozilla.com/D121741
2021-08-10 10:05:03 +00:00
André Bargull
13cea81416 Bug 1723155 - Part 6: Install static private getter on the constructor. r=mgaudet
We could optimise this case by not popping `CTOR` from the stack in
`emitPrivateStaticMethod`, but that requires more changes in `PropertyEmitter`.

Depends on D121739

Differential Revision: https://phabricator.services.mozilla.com/D121740
2021-08-10 10:05:02 +00:00
André Bargull
3d73b6fcdf Bug 1723155 - Part 5: Private static methods aren't writable. r=mgaudet
<https://tc39.es/ecma262/#sec-privateset>, step 4 requires to throw a TypeError.

Depends on D121738

Differential Revision: https://phabricator.services.mozilla.com/D121739
2021-08-10 10:05:01 +00:00
André Bargull
4b64e28556 Bug 1723155 - Part 4: Fix some stack comments. r=mgaudet
`CTOR` is always present when emitting classes.

Depends on D121737

Differential Revision: https://phabricator.services.mozilla.com/D121738
2021-08-10 10:05:01 +00:00
André Bargull
52f9d6e54e Bug 1723155 - Part 3: Split private names from computed names handling. r=mgaudet
Split private names in preparation for the next parts.

Depends on D121736

Differential Revision: https://phabricator.services.mozilla.com/D121737
2021-08-10 10:05:00 +00:00
André Bargull
ba8318d649 Bug 1723155 - Part 2: EmitterScope::lookupPrivate() is infallible. r=mgaudet
Drive-by change:
This method is no longer fallible, so we can change the return type to `void`.

Depends on D121735

Differential Revision: https://phabricator.services.mozilla.com/D121736
2021-08-10 10:05:00 +00:00
André Bargull
443834a6b8 Bug 1723155 - Part 1: Disallow installing the private brand more than once. r=mgaudet
Similar to private fields, we must throw an error on attempts to install the
private brand multiple times.

Differential Revision: https://phabricator.services.mozilla.com/D121735
2021-08-10 10:04:59 +00:00
André Bargull
88e50d0f6c Bug 1341265 - Part 22: Assert the hash is correctly computed. r=iain
Assert the inline hash computation is correct.

Differential Revision: https://phabricator.services.mozilla.com/D122069
2021-08-10 09:55:26 +00:00
André Bargull
7c48e3ebdc Bug 1341265 - Part 21: Optimise Map.prototype.get in Warp. r=iain
And inline `Map.prototype.get` in Warp.

Differential Revision: https://phabricator.services.mozilla.com/D118987
2021-08-10 09:55:26 +00:00
André Bargull
fb99f41a28 Bug 1341265 - Part 20: Optimise Map.prototype.get in CacheIR. r=iain
Similar to the optimisations for `Map.prototype.has`, also inline
`Map.prototype.get` in CacheIR.

Depends on D118985

Differential Revision: https://phabricator.services.mozilla.com/D118986
2021-08-10 09:55:26 +00:00
André Bargull
00546d6344 Bug 1341265 - Part 19: Optimise Map.prototype.has in Warp. r=iain
And inline `Map.prototype.has` in Warp.

Differential Revision: https://phabricator.services.mozilla.com/D118985
2021-08-10 09:55:25 +00:00
André Bargull
54af09a302 Bug 1341265 - Part 18: Optimise Map.prototype.has in CacheIR. r=iain
Similar to the optimisations for `Set.prototype.has`, also inline
`Map.prototype.has` in CacheIR.

Depends on D118983

Differential Revision: https://phabricator.services.mozilla.com/D118984
2021-08-10 09:55:25 +00:00
André Bargull
e51e375aa4 Bug 1341265 - Part 17: Optimise Set.prototype.has for values in Warp. r=iain
Inline the complete hash operation even for value types when the code is hot
enough to be Warp-compiled. (Except on 32-bit platforms, because we can't
compute the hash of objects inline, cf. the previous part.)

Differential Revision: https://phabricator.services.mozilla.com/D118983
2021-08-10 09:55:24 +00:00
André Bargull
74ba271ab6 Bug 1341265 - Part 16: Optimise Set.prototype.has for objects in Warp. r=iain
Similar to part 11, optimise the hash lookup for objects.

`MHashObject` can't be moved, because the hash value depends on the object's
address, which can change when the object is moved by the GC.

Differential Revision: https://phabricator.services.mozilla.com/D118982
2021-08-10 09:55:24 +00:00
André Bargull
4f58a257ff Bug 1341265 - Part 15: Optimise Set.prototype.has for BigInts in Warp. r=iain
Similar to part 10, optimise the hash lookup for BigInts.

Differential Revision: https://phabricator.services.mozilla.com/D118981
2021-08-10 09:55:23 +00:00
André Bargull
c568bfe347 Bug 1341265 - Part 14: Optimise Set.prototype.has for symbols in Warp. r=iain
Similar to part 9, optimise the hash lookup for symbols.

Differential Revision: https://phabricator.services.mozilla.com/D118980
2021-08-10 09:55:23 +00:00
André Bargull
4f3fbc3578 Bug 1341265 - Part 13: Optimise Set.prototype.has for strings in Warp. r=iain
Similar to part 8, optimise the hash lookup for strings.

Differential Revision: https://phabricator.services.mozilla.com/D118979
2021-08-10 09:55:23 +00:00
André Bargull
c95408a4c4 Bug 1341265 - Part 12: Optimise Set.prototype.has for non-GC things in Warp. r=iain
Similar to part 7, optimise the hash lookup for non-GC things.

Differential Revision: https://phabricator.services.mozilla.com/D118978
2021-08-10 09:55:22 +00:00
André Bargull
dca8370c53 Bug 1341265 - Part 11: Optimise Set.prototype.has for objects in CacheIR. r=iain
Inline `Set.prototype.has` in CacheIR when called with objects.

Implementing `MacroAssembler::hashObject()` on 32-bit platforms is difficult,
because it uses 64-bit operations, so we either have to allocate twice as much
registers for `Register64` or alternatively spill the values on the stack. For
now just punt and only support this optimisation on 64-bit platforms.

Differential Revision: https://phabricator.services.mozilla.com/D118977
2021-08-10 09:55:22 +00:00
André Bargull
d78d215605 Bug 1341265 - Part 10: Optimise Set.prototype.has for BigInts in CacheIR. r=iain
Inline `Set.prototype.has` in CacheIR when called with BigInts.

Differential Revision: https://phabricator.services.mozilla.com/D118976
2021-08-10 09:55:21 +00:00
André Bargull
32c20b45e9 Bug 1341265 - Part 9: Optimise Set.prototype.has for symbols in CacheIR. r=iain
Inline `Set.prototype.has` in CacheIR when called with symbols.

Differential Revision: https://phabricator.services.mozilla.com/D118975
2021-08-10 09:55:21 +00:00
André Bargull
2a992f197b Bug 1341265 - Part 8: Optimise Set.prototype.has for strings in CacheIR. r=iain
Inline `Set.prototype.has` in CacheIR when called with strings.

Normalising a string input is a bit annoying, because we have to atomise the
string, which means performing a VM-call. And in contrast to other VM-calls,
we have to continue the CacheIR operation after the call, which means we can't
implement this as a shared method in `CacheIRCompiler`, but instead need to
implement it in `BaselineCacheIRCompiler`. And furthermore we require that
atomising a string won't GC, because we spill the `SetObject` on the stack.

Depends on D118973

Differential Revision: https://phabricator.services.mozilla.com/D118974
2021-08-10 09:55:21 +00:00
André Bargull
829ce6f05d Bug 1341265 - Part 7: Optimise Set.prototype.has for non-GC things in CacheIR. r=iain
Inline `Set.prototype.has` in CacheIR when called with non-GC things.

We have to inline the following steps:
1. Guard the input is a non-GC thing.
2. Normalise the input, i.e. transform doubles to int32 when possible and
   canonicalise NaN values.
3. Hash the input through `mozilla::HashGeneric()`.
4. Perform the hash lookup.


The hash lookup already uses templates and handles BigInts in preparation for
the next parts.

Differential Revision: https://phabricator.services.mozilla.com/D118973
2021-08-10 09:55:20 +00:00
André Bargull
5c18e1b238 Bug 1341265 - Part 6: Optimise Set.prototype.has in CacheIR. r=iain
Use a simple VM-call in CacheIR for now. This approach won't be enough to
close the distance to the competition, because JSC/V8 can inline the complete
hash operation, but already inlining everything in CacheIR seems a bit extreme.

The next parts will inline the hash operation when called with specific types,
because there we can guarantee we won't generate a big blob of assembly in
CacheIR.

Differential Revision: https://phabricator.services.mozilla.com/D118972
2021-08-10 09:55:20 +00:00
André Bargull
66d93ed59c Bug 1341265 - Part 5: Add branch64 for (Address, Register64). r=iain
Add `branch64` with `(Address, Register64)` operands in preparation for a
later patch of this series.

Differential Revision: https://phabricator.services.mozilla.com/D118971
2021-08-10 09:55:19 +00:00
André Bargull
d11f4538bc Bug 1341265 - Part 4: Remove unnecessary restriction for branch64 with Address operand. r=iain
ARM64 and MIPS64 already support this mode. And ARM32 and MIPS32 can simply take
the same approach as x86.

The next part will add another `branch64` method and that method supports
`Condition::Equal`. And instead of adjusting the comment for `branch64` when
`Equal` is or is not supported, it was easier to just support it everywhere.

Differential Revision: https://phabricator.services.mozilla.com/D118970
2021-08-10 09:55:19 +00:00
André Bargull
2afb667220 Bug 1341265 - Part 3: Add MacroAssembler::mul32(Imm32, Register). r=iain
Add `mul32` with an immediate in preparation for a later patch of this series.

Differential Revision: https://phabricator.services.mozilla.com/D118969
2021-08-10 09:55:19 +00:00
André Bargull
b2a8fa6cda Bug 1341265 - Part 2: Add MacroAssembler::equalBigInts(). r=iain
Move BigInt comparison to the MacroAssembler, so we can reuse it in a later
patch of this series.

Differential Revision: https://phabricator.services.mozilla.com/D118968
2021-08-10 09:55:18 +00:00
André Bargull
fc13c8d5c1 Bug 1341265 - Part 1: Remove stale fixme comment. r=iain
Bug 775896 has been fixed, so we can remove the fixme comment.

Differential Revision: https://phabricator.services.mozilla.com/D118967
2021-08-10 09:55:18 +00:00
Benjamin Beurdouche
46e2563077 Bug 1724869 - land NSS 56238350052a UPGRADE_NSS_RELEASE, r=djackson
Differential Revision: https://phabricator.services.mozilla.com/D122202
2021-08-10 09:52:10 +00:00
Gerald Squelart
3095d71dc7 Bug 1716785 - Report the uncapped macOS version in profile.meta.oscpu - r=canaltinova
We are using the OS version as reported in the user agent string, but on macOS the version is capped at 10.15. This patch now reports the real and full OS version.

Differential Revision: https://phabricator.services.mozilla.com/D122063
2021-08-10 09:50:44 +00:00
Tzvika Ofek
f9bb6e7ab1 Bug 1723820 - Add display grid/flex to element's parent instead of element itself. r=flod,fluent-reviewers,jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D122191
2021-08-10 08:08:58 +00:00
Narcis Beleuzu
ca6769529e Backed out 22 changesets (bug 1341265) for bustages on VMFunctions.cpp . CLOSED TREE
Backed out changeset d21b307ccfaf (bug 1341265)
Backed out changeset 182be3b078d9 (bug 1341265)
Backed out changeset 684915d2fc1c (bug 1341265)
Backed out changeset 7b187e896bef (bug 1341265)
Backed out changeset 1f7646c44496 (bug 1341265)
Backed out changeset ed9ca5806dbc (bug 1341265)
Backed out changeset b1db78c1508a (bug 1341265)
Backed out changeset 63d0d4dc2972 (bug 1341265)
Backed out changeset 77d1207af1c0 (bug 1341265)
Backed out changeset d24cb3906dda (bug 1341265)
Backed out changeset 6f1d162738b4 (bug 1341265)
Backed out changeset 186a7d8db816 (bug 1341265)
Backed out changeset e5f6eb92c12c (bug 1341265)
Backed out changeset 46f05b533e75 (bug 1341265)
Backed out changeset 77735582aefb (bug 1341265)
Backed out changeset 3c94f61e57ca (bug 1341265)
Backed out changeset cab9608e9d98 (bug 1341265)
Backed out changeset 08768e69a817 (bug 1341265)
Backed out changeset df7c4fac5dc8 (bug 1341265)
Backed out changeset f1c40722a50e (bug 1341265)
Backed out changeset 2b174465dea5 (bug 1341265)
Backed out changeset 602b65bfb721 (bug 1341265)
2021-08-10 11:27:51 +03:00
Andreas Pehrson
6cb6566663 Bug 1724867 - Allow using IsOnCurrentThread on AbstractThread. r=xpcom-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D112842
2021-08-10 08:04:49 +00:00
Jan-Erik Rediger
123198cf63 Bug 1670261 - GeckoView: Ignore the JNA module. r=agi,firefox-build-system-reviewers,nalexander
Otherwise we end up with `libjnidispatch.so` for all targets in the
final APK, which we don't want.

Depends on D121100

Differential Revision: https://phabricator.services.mozilla.com/D122104
2021-08-10 07:49:09 +00:00
Jan-Erik Rediger
9371a241d6 Bug 1670261 - Split FOG crate into non-Android and Android parts. r=chutten
This doesn't actually initialize FOG on Android yet;
that part will come later.

For now it only separates out everything used on Desktop (full initialization, pref watching, user activity)
from what's necessary on mobile (where Glean is actually controlled by the embedding application, e.g. Fenix)

For desktop this simply moves most code out into a separate module.
For mobile it has a bare minimum init function.

Differential Revision: https://phabricator.services.mozilla.com/D121100
2021-08-10 07:49:09 +00:00
Jan-Erik Rediger
20e5ef2e83 Bug 1670261 - Add Mozilla Maven as a maven repository on CI. r=agi,firefox-build-system-reviewers,mhentges,nalexander
Differential Revision: https://phabricator.services.mozilla.com/D116603
2021-08-10 07:49:08 +00:00
Jan-Erik Rediger
9ff433d96b Bug 1670261 - Ensure the Glean versions in the project match. r=agi,chutten
In GeckoView we need to depend on the same Glean version as the included
Glean Rust crate has.
We _could_ let Gradle read that from Cargo.lock directly,
but that complicates the build.

Instead we manually update both versions to the same
and have Gradle ensure we don't forget that.

Differential Revision: https://phabricator.services.mozilla.com/D116602
2021-08-10 07:49:08 +00:00
Jan-Erik Rediger
b2808bbfce Bug 1670261 - Re-export the Glean Kotlin bindings from GeckoView. r=agi
This also upgrades to Kotlin 1.3.50, which is required to due Glean
requirements. Fenix is already on 1.4, so that's no problem.

We also turn the geckoview_example into a multiDex application.
Otherwise we run into the 64k dex symbols size limit.

Differential Revision: https://phabricator.services.mozilla.com/D116601
2021-08-10 07:49:08 +00:00
Jan-Erik Rediger
a8c5939ae3 Bug 1670261 - Cargo update & mach vendor. r=chutten
Differential Revision: https://phabricator.services.mozilla.com/D121085
2021-08-10 07:49:07 +00:00
Jan-Erik Rediger
1dc3abde95 Bug 1670261 - Upgrade Glean, include glean-ffi and re-export its symbols. r=chutten
Differential Revision: https://phabricator.services.mozilla.com/D121084
2021-08-10 07:49:07 +00:00
André Bargull
a835d2d64b Bug 1341265 - Part 22: Assert the hash is correctly computed. r=iain
Assert the inline hash computation is correct.

Differential Revision: https://phabricator.services.mozilla.com/D122069
2021-08-10 07:45:39 +00:00
André Bargull
332b948049 Bug 1341265 - Part 21: Optimise Map.prototype.get in Warp. r=iain
And inline `Map.prototype.get` in Warp.

Differential Revision: https://phabricator.services.mozilla.com/D118987
2021-08-10 07:45:38 +00:00