Commit Graph

765953 Commits

Author SHA1 Message Date
Nika Layzell
aa9b1db7d6 Bug 1650089 - Part 3: Rework DocumentChannel-triggered process switches to support null principals, r=annyG,kmag
This is a large refactoring of the DocumentChannel process switch codepath,
with the end goal of being better able to support future process switch
requirements such as dynamic isolation on android, as well as the immediate
requirement of null principal handling.

The major changes include:
1. The logic is in C++ and has less failure cases, meaning it should be harder
   for us to error out unexpectedly and not process switch.
2. Process selection decisions are more explicit, and tend to rely less on
   state such as the current remoteType when possible. This makes reasoning
   about where a specific load will complete easier.
3. Additional checks are made after a "WebContent" behavior is selected to
   ensure that if an existing document in the same BCG is found, the load will
   finish in the required content process. This should make dynamic checks such
   as Android's logged-in site isolation easier to implement.
4. ProcessIsolation logging is split out from DocumentChannel so that it's
   easier to log just the information related to process selection when
   debugging.
5. Null result principal precursors are considered when performing process
   selection.

Other uses of E10SUtils for process selection have not yet been migrated to the
new design as they have slightly different requirements. This will be done in
follow-up bugs.

Differential Revision: https://phabricator.services.mozilla.com/D120673
2021-08-10 14:31:17 +00:00
Nika Layzell
0ebcf6961e Bug 1650089 - Part 2: Track which ContentParent is used to create a DocumentLoadListener, r=annyG,kmag
There are races which are more common after these patches where an implicit
about:blank load races with a speculative parent process load's process switch.
In this situation, bad behaviour can result as we process a navigation started
by a process which we process-switched away from. By tracking the explicit
ContentParent which is making the DocumentLoadListener request, we can catch
situations like this and avoid navigations being started from the wrong
processes.

Differential Revision: https://phabricator.services.mozilla.com/D120672
2021-08-10 14:31:16 +00:00
Nika Layzell
a50cefe2cf Bug 1650089 - Part 1: Add a remoteTypeOverride option for about:blank loads triggered by chrome, r=annyG,kmag
After the changes in this bug, about:blank loads triggered by chrome will
finish in a "web" content process, as they have an untrusted null principal
without a precursor. In a few places throughout the codebase, however, we
perform about:blank loads with the explicit expectation that they do not change
processes. This new remoteTypeOverride option allows the intended final process
to be explicitly specified in this situation.

For security & simplicity reasons, this new attribute is limited to only be
usable on system-principal triggered loads of about:blank in toplevel browsing
contexts.

Differential Revision: https://phabricator.services.mozilla.com/D120671
2021-08-10 14:31:16 +00:00
Emilio Cobos Álvarez
59692ca913 Bug 1724907 - Don't use system-ui as a fallback generic. r=jfkthame
As it's usually not very useful. I don't know how easily we can add a
reliable test for this, let me know if you come up with an idea to do
that.

Differential Revision: https://phabricator.services.mozilla.com/D122222
2021-08-10 14:19:04 +00:00
Nicolas Silva
9cfa0db31b Bug 1722316 - Add UseCounter telemetry for various svg filters. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D120850
2021-08-10 14:14:37 +00:00
lyavor
0ff3599ca4 Bug 1723996 - Refactor HSTS Check in NS_ShouldSecureUpgrade. r=ckerschb,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D121733
2021-08-10 14:00:22 +00:00
Jan Varga
fc6c77e407 Bug 1724377 - QM: Replace nsresult with QMResult in InvalidateCache; r=jari
Differential Revision: https://phabricator.services.mozilla.com/D121947
2021-08-10 13:59:05 +00:00
Jan Varga
d017e0a42a Bug 1724897 - QM: Introduce QM_TO_RESULT sub-macro; r=jari
Differential Revision: https://phabricator.services.mozilla.com/D122208
2021-08-10 13:59:05 +00:00
Jan Varga
4ad6f0533e Bug 1724895 - QM: Introduce type alias for Result<Ok, QMResult>; r=jari
This patch introduces a new type alias OkOrErr for Result<Ok, QMResult> and also converts some existing occurencies of Result<Ok, QMResult> to OkOrErr.

Differential Revision: https://phabricator.services.mozilla.com/D122206
2021-08-10 13:59:04 +00:00
Jamie Nicol
0537af1fe9 Bug 1719345 - Don't invalidate render targets after use on PowerVR. r=gfx-reviewers,jrmuizel
On PowerVR devices we have seen reports of red lines and shapes
appearing randomly on the screen. What is happening is that clip masks
are being rendered in to the RGBA8 texture atlases that were the
previous pass' target, rather than the current R8 render target. Red
shapes therefore appear on top of the cached items in the RGBA texture
atlases, and parts of these subsequently get rendered to picture cache
tiles then the screen.

This appears to be due a bug with glInvalidateFramebuffer. We call
this function once we have finished using a render target for the
frame (ie we have rendered all items which need a clip mask). But
presumably, due to the asynchronicity of OpenGL, the draw calls to
render the clip masks to the render target are in fact still pending
at this point. Perhaps the driver incorrectly recycles the render
target's memory too early, and as a result the masks get written to
the wrong texture.

This patch therefore omits the calls to glInvalidateFramebuffer on
PowerVR devices. While this bug has been hard to reproduce reliably,
it appears to solve the issue.

Differential Revision: https://phabricator.services.mozilla.com/D122221
2021-08-10 13:52:21 +00:00
Dave Townsend
7750ff39f3 Bug 1724917: Avoid work when the selector has been destroyed. r=harry
Differential Revision: https://phabricator.services.mozilla.com/D122216
2021-08-10 13:47:55 +00:00
Dave Townsend
64e984d86f Bug 1724910: Use https test urls. r=harry
Without this this test fails when HTTPS-first mode is enabled.

Differential Revision: https://phabricator.services.mozilla.com/D122215
2021-08-10 13:47:36 +00:00
Jonathan Kew
1f7af5607b Bug 1724795 - Fix leak in cairo-cff-subset (patch from https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/192, already merged upstream). r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D122201
2021-08-10 13:41:34 +00:00
André Bargull
682c52a924 Bug 1724913 - Part 3: Update test262 test exclusions. r=mgaudet
Depends on D122226

Differential Revision: https://phabricator.services.mozilla.com/D122227
2021-08-10 13:39:38 +00:00
André Bargull
21c56f32ca Bug 1724913 - Part 2: Update test262. r=mgaudet
Depends on D122220

Differential Revision: https://phabricator.services.mozilla.com/D122226
2021-08-10 13:39:36 +00:00
André Bargull
a65531cb05 Bug 1724913 - Part 1: Update list of unsupported features. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D122220
2021-08-10 13:39:35 +00:00
Tooru Fujisawa
b841c14175 Bug 1723457 - Bump jsparagus version for bug 1722002. r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D122228
2021-08-10 13:08:02 +00:00
Lars T Hansen
4607b0e1be Bug 1724375 - Clean up SSE flags override code. r=jandem
The SSE flags override must be sure to reset the SSE flags first, for
reasons already stated in the code.  But if multiple flags are present
the semantics of the flag overrides is a little opaque.  We clean this
up.

Cleanup turns out to be not straightforward due to an existing latent
bug: in the presence of parallel compiles and SSE flags overrides the
flag computations can become racy.  We fix this here by forcing an
early computation of the flags and verifying that the flags are
computed before we spawn multiple threads.

There is a minor semantic change here in that the most restrictive
setting is now kept, while previously the last setting was kept, and
this was (given the structure of the calling code) always the least
restrictive setting.  In practical terms this should not matter, and
if it does we can fix fallout later.

Differential Revision: https://phabricator.services.mozilla.com/D121953
2021-08-10 12:48:39 +00:00
Frederik Braun
9294e89efa Bug 1723998 - Refactor jshacks detection and adapt for use in system principal telemetry r=ckerschb,tjr
Differential Revision: https://phabricator.services.mozilla.com/D121838
2021-08-10 12:41:02 +00:00
Rob Wu
6d4afa244f Bug 1723198 - Don't delete user.js in remotexpcshelltests.py + tests r=jmaher
The new tests in testing/xpcshell/example/ cover the following scenarios:

- Local AND remote xpcshell tests. In contrast, modifications to
  selftest.py in bug 1635227 only covered runxpcshelltests.

- `prefs=` inheritance from ancestor manifests as implemented by
  https://hg.mozilla.org/mozilla-central/rev/ac51a01611dc

- Per-file `prefs` setters (used in bug 1638099).

- Multiple prefs and comments per `prefs` line.

Differential Revision: https://phabricator.services.mozilla.com/D121632
2021-08-10 12:14:05 +00:00
Rob Wu
dbf28212c1 Bug 1723536 - Clear generated user.js before start of xpcshell test r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D121631
2021-08-10 12:14:04 +00:00
Rob Wu
2b1fb1c638 Bug 1716307 - Only run test_SocketScalars when there's a socket process r=janerik
Differential Revision: https://phabricator.services.mozilla.com/D122012
2021-08-10 12:14:04 +00:00
Sebastian Hengst
c15160eba4 Bug 1724715 - set mathml/relations/css-styling/color-00X.html as passing on Windows code coverage. a=perma-pass DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D122219
2021-08-10 12:11:03 +00:00
Greg Tatum
e7657ad036 Bug 1719550 - Remove nsCollation; r=platform-i18n-reviewers,nordzilla
All the call sites now use mozilla::intl::Collator

Differential Revision: https://phabricator.services.mozilla.com/D121435
2021-08-10 11:46:38 +00:00
Greg Tatum
62f050ecec Bug 1719550 - Use Intl.Collator in test_locale_collation.js; r=platform-i18n-reviewers,nordzilla
This now uses JavaScript's standardized Intl.Collator.

Differential Revision: https://phabricator.services.mozilla.com/D121434
2021-08-10 11:46:38 +00:00
Greg Tatum
5fcb44e2d4 Bug 1719550 - Remove unused nsLocaleConstructors.h; r=platform-i18n-reviewers,nordzilla
Differential Revision: https://phabricator.services.mozilla.com/D121433
2021-08-10 11:46:38 +00:00
Greg Tatum
ee5176c26e Bug 1719550 - Unify collator in mozStorageService and SQLCollations; r=platform-i18n-reviewers,nordzilla
Differential Revision: https://phabricator.services.mozilla.com/D121432
2021-08-10 11:46:37 +00:00
Greg Tatum
a7f0aa2461 Bug 1719550 - Unify collator in nsDirectoryIndexStream.cpp; r=platform-i18n-reviewers,necko-reviewers,nordzilla
Differential Revision: https://phabricator.services.mozilla.com/D121431
2021-08-10 11:46:37 +00:00
Greg Tatum
8066c9d047 Bug 1719550 - Unify collator in txXPathResultComparator; r=platform-i18n-reviewers,nordzilla
Differential Revision: https://phabricator.services.mozilla.com/D121430
2021-08-10 11:46:36 +00:00
Greg Tatum
0638fcc46b Bug 1719550 - Unify collator in nsXULSortService and nsXULContentUtils; r=platform-i18n-reviewers,nordzilla
Differential Revision: https://phabricator.services.mozilla.com/D121429
2021-08-10 11:46:36 +00:00
Greg Tatum
80d93057b7 Bug 1719550 - Unify collation in nsNavHistory.cpp; r=platform-i18n-reviewers,nordzilla
This patch swaps out the nsCollation for the mozilla::intl::Collator. Note how
the options bag is now opinionated towards ECMA-402's Intl.Collator.

Differential Revision: https://phabricator.services.mozilla.com/D120526
2021-08-10 11:46:36 +00:00
Greg Tatum
5b6db75fe7 Bug 1719550 - Add a TryCreateComponent to LocaleService; r=platform-i18n-reviewers,nordzilla
This method will allow mozilla::intl components to be initialized in the current
Gecko app's locale.

Differential Revision: https://phabricator.services.mozilla.com/D121428
2021-08-10 11:46:35 +00:00
Greg Tatum
70467b0601 Bug 1719550 - Use mozilla::intl::Collator in the SpiderMonkey; r=anba,platform-i18n-reviewers,nordzilla
This patch attempts to directly wire the Intl.Collator implementation to the
mozilla::intl::Collator::Options bag. The only complexity that wasn't factored
out was the use of the locale keywords, which would invalidate the locale in
the current implementation.

Differential Revision: https://phabricator.services.mozilla.com/D120904
2021-08-10 11:46:35 +00:00
Greg Tatum
1fb2daab2a Bug 1719550 - Add support for BCP 47 extensions to mozilla::intl::Collator; r=platform-i18n-reviewers,nordzilla
SpiderMonkey requires the BCP 47 locale extensions, which involves iterating
over the keywords in ICU, and mapping them to the BCP 47 version. Specifically,
this will change the "phonebook" keyword to "phonebk". This should hopefully
expose a simpler API to SpiderMonkey, the only consumer.

Differential Revision: https://phabricator.services.mozilla.com/D120903
2021-08-10 11:46:34 +00:00
Greg Tatum
0087d035b9 Bug 1719550 - Build an initial unified mozilla::intl::Collator; r=platform-i18n-reviewers,nordzilla
This collator attempts to match the options bag from the Intl.Collator API
from ECMA-402. It is built to be compatible and consistent across both Gecko
code and SpiderMonkey code. Its behavior is designed to match ECMA-402.

Differential Revision: https://phabricator.services.mozilla.com/D120494
2021-08-10 11:46:34 +00:00
Nicklas Boman
cd8acaa740 Bug 1308105 - Replace PL_strpbrk with strpbrk r=xpcom-reviewers,kmag
Differential Revision: https://phabricator.services.mozilla.com/D116933
2021-08-10 11:30:39 +00:00
Luca Greco
3e16d1a31d Bug 1724718 - Abuse Report panel should fallback to extensionGeneric.svg on addons without an iconURL. r=Gijs
Some addons may not include an icon (e.g. static themes addons) and so the abuse report panel should
fallback to the extensionGeneric.svg.

Falling back to the extensionGeneric.svg is also needed to prevent a diagnostic crash triggered by
loading non existing resources while running the abuse report mochitests.

Differential Revision: https://phabricator.services.mozilla.com/D122207
2021-08-10 11:24:07 +00:00
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