Before this patch, getHSTSPreloadList.js would have no more than 250 requests
in flight at any given time. In the past, this limit was 500. After a refactor
that inadvertantly completely removed the limit, it was reduced to 250.
Presumably increasing it to 500 again will not have negative effects and will
allow the script to run faster.
Differential Revision: https://phabricator.services.mozilla.com/D114019
As suggested in the review comments for bug 1526744 (D37758), sha1 is slightly
faster.
Variables with "md5" in their names have been renamed as well.
Differential Revision: https://phabricator.services.mozilla.com/D113681
With bfcacheInParent enabled, frameloader gets replaced on (each?) navigation,
and now a ContentTask script can't listen for "load" events after navigating.
Differential Revision: https://phabricator.services.mozilla.com/D114051
In order to avoid concurrency issues when dumping or to be able to have a ccov report per process, when GCOV_CHILD_PREFIX is set, set child processes' GCOV_PREFIX to GCOV_CHILD_PREFIX + child process PID
Differential Revision: https://phabricator.services.mozilla.com/D114239
This patch moves the alloc kind out of the flags word and places it between the
freespan and the zone. On 64 bit platforms there is 32 bits of padding here
because zone has pointer alignment and the freespan is 32 bits. On 32 bits
platforms this increases the size of the header but there is enough spare that
this doesn't reduce the arena density for any of our alloc kinds.
This also lets us type allocKind appropraitely.
Depends on D114213
Differential Revision: https://phabricator.services.mozilla.com/D114214
Counters can be flushed before init has been called so this patch add a condition in FlushCounters to be sure that everything has been initialized.
Differential Revision: https://phabricator.services.mozilla.com/D110575
This can be disabled by setting the following pref to false:
widget.macos.enable-pre-bigsur-workaround-for-dark-mode-context-menus
Differential Revision: https://phabricator.services.mozilla.com/D114037
This commit implements the extended-constants proposal.
* A new feature flag and pref are added.
* Basic tests are added.
Differential Revision: https://phabricator.services.mozilla.com/D112661
ref.func validates specially.
* In the 'module environment', any function may be the target and using a function
as a target marks it as available to be targeted in the code section.
* The the code section, only functions used in the 'module environment' may
be targeted.
Additionally, any target of ref.func becomes an 'exported function' and will get
a thunk generated for it. The logic for this existed in ModuleGenerator, which
would traverse over all relevant metadata in ModuleEnvironment to find which
functions may be exported. This no longer is trivial, as an InitExpr may
now contain a ref.func instruction encoded in its bytecode vector, instead
of the tagged union that InitExpr was before.
To satisfy all of these requirements, this patch reworks this code.
* A `FuncFlags` enum is added to `FuncDesc` for each function definition.
* `FuncFlags` describes whether a func is exported, eager, and can be
targetted by ref.func.
* Decoding the ModuleEnvironment now updates the flags of functions as
it goes.
* OpIter uses the validation mode to determine whether to check the
func flags for a ref.func, or not.
* ConstExpr::decodeAndValidate updates the flags of functions as it goes.
* ModuleGenerator no longer computes the exported function information
itself, and relies on function flags.
* AsmJS writes to function flags for exported functions specially, as
it previously relied on sharing the exported function code in
ModuleGenerator that has moved to decoding/validation.
Differential Revision: https://phabricator.services.mozilla.com/D112659
This commit rewrites InitExpr so that it supports multiple instructions. This
unlocks the ability to implement the extended-constants proposal, along with
rtt.canon/rtt.sub initializers for the GC proposal.
An InitExpr now contains either a literal value for simple expressions, or
a vector of bytecode to be evaluated later. Decoding an InitExpr now uses OpIter
to iterate over instructions and validate the results. OpIter is tweaked to
support alternate validation rules to support the additional restrictions that
initializer expressions have, such as global.get only working on immutable
imported globals. The exception is ref.func, which has special rules that I
defer to its own commit to follow.
An interpreter loop is added to evaluate the bytecode and yield a wasm::Val.
The loop uses a Decoder directly and assumes that the bytecode has been validated
already. The interpreter is not fast, and I assume it doesn't need to be at
this time.
Much code that assumed InitExp was POD had to be updated. Notably, GlobalDesc's
fields have been reorganized to remove the double nested union to make it
sane to store allocated data in it.
I initially intended for the expanded constant expression support to have
it's own header and implementation file (WasmInitExpr.h, WasmInitExpr.cpp).
I then discovered that InitExpr is involved with a challenging include loop
with WasmTypes.h and settled with a just giving it it's own implementation
file. This is unusual for `wasm/` some I'm open to discussions. In the
longer term, I would like to break up WasmTypes.h.
Differential Revision: https://phabricator.services.mozilla.com/D112658
Drive-by fix to drop preference for reftypes from StaticPrefList.yaml. This is no
longer used now that the reference types feature gating code is gone.
Depends on D112656
Differential Revision: https://phabricator.services.mozilla.com/D112657
Non-essential clean up of OpIter to prepare for being used to decode
and validate constant expressions, in addition to function bodies.
Depends on D112655
Differential Revision: https://phabricator.services.mozilla.com/D112656
Non-essential clean-up to split off functionality for binary parsing out
of validation. This is useful for a future interpreter loop which runs
in a non-validation context, and would only like to deal with a
Decoder.
Differential Revision: https://phabricator.services.mozilla.com/D112654
Improved error messages emitted by JSMSG_TYPED_ARRAY_CONSTRUCT_BOUNDS.Error messages improved to specify the type and cause of error.
Added the test to check the error messages modified matches the expected cases.
Differential Revision: https://phabricator.services.mozilla.com/D113874
The maximum version check has caused more unnecessary failed
builds (for freshly up-to-date devs) than helpful guards against
tough-to-diagnose issues.
Differential Revision: https://phabricator.services.mozilla.com/D113675
A `.arcconfig` may exist in the `.git` directory. Within worktrees,
the `.git` folder isn't at `<topsrcdir>/.git`, so we have to resolve it.
Differential Revision: https://phabricator.services.mozilla.com/D113320
History shows that the test being modified here tries to test crashiness of
what happens from the onblur handler. That the initial focus originally happened
from the HTML parser instead of from a stable state seems unimportant for the
purpose of the test but introduced an opportunity for timing differences between
runs.
Differential Revision: https://phabricator.services.mozilla.com/D114068
During calls to read() and write() for JSAutoStructuredCloneBuffer the
data callbacks and closure are ignored also if none are explicitly
passed.
Use them in such case
Differential Revision: https://phabricator.services.mozilla.com/D114195