Currently using the pricinpal of InternalRequest to create the channel for NavigationPreload.
However, it is not a correct principal and makes NavigationPreload stop with channel security checking.
Instead of using the principal of InternalRequest, this patch uses the loadingPrincipal of InterceptedHttpChannel to create the channel.
Differential Revision: https://phabricator.services.mozilla.com/D137594
Depends on D137691
We check the environment variable MOZ_DISABLE_NONLOCAL_CONNECTIONS instead of:
- checking Cu.isInAutomation: Cu.isInAutomation implies MOZ_DISABLE_NONLOCAL_CONNECTIONS. All scenarios where isInAutomation was true will still behave the same
- checking an xpcshell specific env variable called XPCSHELL_TEST_PROFILE_DIR. This variable is set for all xpcshell tests from https://searchfox.org/mozilla-central/source/testing/xpcshell/runxpcshelltests.py#495 . XPCShell tests also set MOZ_DISABLE_NONLOCAL_CONNECTIONS in the same file slightly earlier
This allows to never force the real firefox settings URL in environments which crash upon network connections.
Such environments usually override this URL with another preference and should be allowed to use it in all channels.
Differential Revision: https://phabricator.services.mozilla.com/D137982
The backtracking allocator's debug printing of live ranges, bundles and passes
is hard to read and occasionally misleading. This patch has the following
goals:
* make printing of instruction-point ranges, live ranges and bundles less
cluttered
* enable consistent printing of fixed-register constraints in LUse and
LDefinition
* give LiveBundles identities of the form `LB<number>` in what is printed
* be clearer and generally more elegant about when regalloc passes begin and
end
There are no functional changes, and for non-JS_JITSPEW builds, no storage
changes.
Changes in detail (may not be exhaustive):
* Instruction-point ranges were previously printed as
`[first_index, last_index+1)`, except when printing LIR, where the format
`first_index,last_index` is used. Both are replaced with
`first_index-last_index`.
* For live range and live bundle printing, the set of use points is enclosed
in `{` and `}` so as to make it easier to see where the range ends.
* For live range use/def points, the index is printed first, followed by `_`.
If a def has an associated fixed assignment, that is now printed too.
* For LIR `MoveGroup`s, the destinations are now printed on the left. That
fixes an inconsistency in LIR printing wherein "normal" nodes had
destinations on the left but `MoveGroup`s had destinations on the right.
* LUse policy printing has been changed to be less mysterious:
- "register": `r` changed to `R`
- "fixed": `r<reg>` changed to `F:reg`
- "any": `r?` (which is misleading, since it includes stack)
changed to `A`
- "keepalive": `*` changed to `KA`
- "recovered_input": `**` changed to `RI`
* To make LiveBundle creation/splitting easier to follow, LiveBundles now have
a zero-based integer index associated with them. This gives them identities
in the debug output. Also, the spillParent of each bundle is shown, so as to
expose the spill-parent/child relationships:
```
LB4(parent=LB2 v1 3-3 { 3_def:F:rdi })
LB5(parent=LB2 v1 6-7 { 7_v1:F:rax })
LB2(parent=none v1 4-7 { })
```
* There is some new debug printing in fn `ResolveControlFlow`.
* The initial live ranges (prior to grouping) and initial live bundles (after
grouping) are printed differently, to make it obvious that these things are
different C++ types. Function `dumpVregs` has accordingly been split into
`dumpLiveRangesByVReg` and `dumpLiveRangesByBundle`.
* Some finessing of blank lines to make the boundaries between passes clear.
Finally, in `AllocationIntegrityState::checkIntegrity`, there is an existing
assertion which checks that no definition has multiple conflicting
assignments. This patch also adds printing to assist diagnosis of such
failures. It is guarded by both JS_JITSPEW and IONFLAGS=regalloc.
Differential Revision: https://phabricator.services.mozilla.com/D137509
This recovers the general improvements to bounds checking against known table
sizes, which is good to have for code density anyway.
Differential Revision: https://phabricator.services.mozilla.com/D137844
This applies the null-pointer-check bug fix that ensures we test the entire
pointer, not just the lower 32 bits. This patch had to be adapted to account
for different register usage conventions.
Differential Revision: https://phabricator.services.mozilla.com/D137841
Cherry-pick a number of fixes from bug 1742053 part 1, chiefly
renamings, nodiscard annotations, and comments. Also keep the changes
that distinguish import calls from indirect calls, because we will
need these later.
Abandons a couple of shorthands that were used only once and the flag
on the table that tracks whether it is not private, since we won't
need that.
Import grammar fixes from parts 3 and 6.
Import nodiscard annotations from part 7.
Differential Revision: https://phabricator.services.mozilla.com/D137839