Commit graph

784 commits

Author SHA1 Message Date
criss
0ecd4a450b Backed out 6 changesets (bug 1732161) for causing linux base toolchains bustages. CLOSED TREE
Backed out changeset 766a1bc74001 (bug 1732161)
Backed out changeset aed63de28354 (bug 1732161)
Backed out changeset 98eaff0d5124 (bug 1732161)
Backed out changeset 76c21ec8ffb6 (bug 1732161)
Backed out changeset 49dcac272f05 (bug 1732161)
Backed out changeset 67d81f8f413e (bug 1732161)
2021-10-14 05:38:08 +03:00
Steve Fink
0457cf4744 Bug 1732161 - Track CCReason for all cycle collections (replacing ccType) r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D126395
2021-10-13 22:32:59 +00:00
Narcis Beleuzu
a92083a114 Backed out 6 changesets (bug 1732161) for build bustages on nsCycleCollectionParticipant.h CLOSED TREE
Backed out changeset 7271b938e71a (bug 1732161)
Backed out changeset d24b8450b7ed (bug 1732161)
Backed out changeset fb1838a152f2 (bug 1732161)
Backed out changeset 84787a58a428 (bug 1732161)
Backed out changeset 6acb82c0ac3c (bug 1732161)
Backed out changeset 50d17b172185 (bug 1732161)
2021-10-12 07:13:13 +03:00
Steve Fink
8db934daff Bug 1732161 - Track CCReason for all cycle collections (replacing ccType) r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D126395
2021-10-11 21:39:08 +00:00
Butkovits Atila
2ff5314530 Backed out 6 changesets (bug 1732161) for causing assertion failures in CCGCScheduler.h. CLOSED TREE
Backed out changeset 88dbe1a7478c (bug 1732161)
Backed out changeset a5a2c9c53340 (bug 1732161)
Backed out changeset d83b36b92051 (bug 1732161)
Backed out changeset b339e54078d7 (bug 1732161)
Backed out changeset 0cbf901cab8b (bug 1732161)
Backed out changeset b3e894d590d9 (bug 1732161)
2021-10-05 03:47:08 +03:00
Steve Fink
7e1eb8957d Bug 1732161 - Track CCReason for all cycle collections (replacing ccType) r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D126395
2021-10-04 23:06:08 +00:00
Olli Pettay
fba105d5de Bug 1714228, clear worker refs even if the Worker never runs, r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D125614
2021-09-16 14:11:34 +00:00
Matthew Gaudet
1c22a97031 Bug 1728802 - Remove overly paranoid guarding of class static block preference to allow riding the trains r=arai
Differential Revision: https://phabricator.services.mozilla.com/D124465
2021-09-03 16:54:12 +00:00
Andi-Bogdan Postelnicu
9945b94835 Bug 1519636 - Reformat recent changes to the Google coding style. r=emilio
Updated with clang-format version 12.0.1 (taskcluster-dNZqCRqWRTqa6cZxPKxh7Q)

Differential Revision: https://phabricator.services.mozilla.com/D122814
2021-08-23 09:30:23 +00:00
Yulia Startsev
84e1ae58eb Bug 1725621 - Remove Top Level Await preference and associated code; r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D122586
2021-08-17 13:08:00 +00:00
Jon Coppeard
3ae7384840 Bug 1725584 - Add browser prefs for more GC parameters r=smaug
Depends on D122600

Differential Revision: https://phabricator.services.mozilla.com/D122601
2021-08-13 13:58:25 +00:00
Olli Pettay
5beba99004 Bug 1724777, optimize suppressed MicroTask handling, r=mccr8
The test is in theory racy, but trying to limit the cases when it might behave badly
by running it on opt desktop builds only. Without the patch the 'period' check takes over 400ms locally and with the
patch 1-3ms.

The changes are just trying to optimize execution, not change the behavior.
Use of SuppressedMicroTasks is perhaps a bit odd, but it helps keeping
SavedMicroTaskQueue and similar code simple.

Differential Revision: https://phabricator.services.mozilla.com/D122290
2021-08-12 16:01:08 +00:00
Kagami Sascha Rosylight
a5c1c0a660 Bug 1723050 - Part 33: Replace typedef by using in dom/workers/ r=dom-worker-reviewers,edenchuang
Differential Revision: https://phabricator.services.mozilla.com/D121331
2021-08-11 14:41:34 +00:00
Marian-Vasile Laza
2ecd487a68 Backed out 2 changesets (bug 1723050) for causing build bustages on WorkerNavigator.h. CLOSED TREE
Backed out changeset 0df5cdd9fe17 (bug 1723050)
Backed out changeset db4915198404 (bug 1723050)
2021-08-11 14:14:20 +03:00
Kagami Sascha Rosylight
0672b9f476 Bug 1723050 - Part 33: Replace typedef by using in dom/workers/ r=dom-worker-reviewers,edenchuang
Differential Revision: https://phabricator.services.mozilla.com/D121331
2021-08-11 09:10:25 +00:00
Matthew Gaudet
0c96a16bf6 Bug 1712174 - Add browser preference for class static blocks r=yulia
Differential Revision: https://phabricator.services.mozilla.com/D116875
2021-06-07 14:57:42 +00:00
Matthew Gaudet
e36c58d8fa Bug 1714105 - Enable ergonomic brand checks in workers r=yulia
Differential Revision: https://phabricator.services.mozilla.com/D116745
2021-06-07 14:56:56 +00:00
Nicolas B. Pierron
965cab1dbc Bug 1458339 part 2 - Use shared memory to initialize the JS engine. r=smaug,tcampbell,necko-reviewers
This modification relies on the shared memory implemented in Bug 1698045 and on
the ability to encode and decode self-hosted content from Bug 1668361 to
optimize the JS engine initialization by making the parent process encode the
self-hosted stencil, such that all other runtime initialization would only have
to decode it, including content processes.

Differential Revision: https://phabricator.services.mozilla.com/D110578
2021-05-12 13:57:56 +00:00
Ryan Hunt
f37dc5a46c Bug 1677204 - wasm: Factor out feature gating to declarative macro. r=lth
This commit adds a declarative `JS_FOR_WASM_FEATURES` macro which
expands for every WebAssembly proposal we are gating. Most feature
gating code is refactored to use this macro so that we have one place
we need to change to get the majority of this code working. The only
place that needs to be updated for new features is the browser pref
declaration code, as that cannot use this macro. This is documented
in the new WasmFeatures.h header.

The feature gating logic should work almost identically as before.
The changes are:
 * All browser prefs are moved to StaticPrefList.yaml
 * The code to enable a feature was conditionally compiled to not
   enable the feature at variously stages of the "flag-flow". Now
   the only place that is conditionally compiled to not work is
   in the WasmXFlag functions. This is to make the macro simpler
   and might be able to be reverted if need be.
 * The flag for gc is shortened from gcTypes to gc so that the
   existing usages of the wasmGcEnabled shell function don't have
   to change.

This commit also has the effect of giving function-references/gc/
exception-handling a proper browser pref for enabling the features.

Differential Revision: https://phabricator.services.mozilla.com/D110820
2021-04-09 20:03:51 +00:00
Ryan Hunt
90c8728cc9 Bug 1677204 - wasm: Remove multi-value flag. r=lth
Multi-value has shipped and can remove its feature flag.

Differential Revision: https://phabricator.services.mozilla.com/D110819
2021-04-09 20:03:51 +00:00
Simon Giesecke
613e20d136 Bug 1184468 - Use nsBaseHashtable::Values. r=xpcom-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D108587
2021-03-24 17:56:49 +00:00
Ted Campbell
af67fa6b2f Bug 1698473 - Ensure WASM prefs are read in workers. r=lth
The `dom::workerinternals::LoadContextOptions` must match the
`ReloadPrefsCallback` handler in order for workers to get the pref updates.

This patch add missing wasm_simd_wormhole and wasm_baselinejit options to
workers. This does change web behaviour but we always intended for the
workers to have same behaviour as main-thread for these two features.

Differential Revision: https://phabricator.services.mozilla.com/D108491
2021-03-15 19:23:52 +00:00
Simon Giesecke
0b443059fd Bug 1693306 - Simplify some uses of LookupOrInsertWith by GetOrInsertNew. r=xpcom-reviewers,necko-reviewers,dragana,nika
Differential Revision: https://phabricator.services.mozilla.com/D105479
2021-02-26 09:22:54 +00:00
Simon Giesecke
4f75368dcb Bug 1691913 - Rename nsBaseHashtable::GetOrInsert(With) to LookupOrInsert(With). r=xpcom-reviewers,necko-reviewers,jgilbert,dragana,nika
The functions should be called "Lookup" rather than "Get" because they return
a DataType& (rather than UserDataType).

Differential Revision: https://phabricator.services.mozilla.com/D105472
2021-02-26 09:11:45 +00:00
Simon Giesecke
d2caea36fa Bug 1691894 - Simplify uses of WithEntryHandle that only use OrInsert(With) by using GetOrInsertWith. r=xpcom-reviewers,necko-reviewers,jgilbert,nika
Differential Revision: https://phabricator.services.mozilla.com/D104676
2021-02-22 12:07:46 +00:00
Simon Giesecke
f701c44a5c Bug 1691894 - Fix EntryHandle to only work with DataType rather than wrapping UserDataType. r=xpcom-reviewers,necko-reviewers,nika,jonco,valentin
Differential Revision: https://phabricator.services.mozilla.com/D104810
2021-02-12 15:25:40 +00:00
Simon Giesecke
258f41c8e3 Bug 1688833 - Migrate LookupForAdd to WithEntryHandle in dom/workers. r=janv
Differential Revision: https://phabricator.services.mozilla.com/D104191
2021-02-09 18:19:36 +00:00
Simon Giesecke
6bffb40eae Bug 1687597 - Ensure worker thread is reset before scheduling for deletion. r=dom-workers-and-storage-reviewers,asuth
Differential Revision: https://phabricator.services.mozilla.com/D102439
2021-01-26 09:47:08 +00:00
Tom Schuster
71555984ed Bug 1687063 - Improve error messages when trying to consume a Reponse for WebAssembly. r=lth
Differential Revision: https://phabricator.services.mozilla.com/D102055
2021-01-18 12:16:33 +00:00
Simon Giesecke
1c53236b70 Bug 1679272 - Include ScopeExit.h exactly where used. r=andi
Differential Revision: https://phabricator.services.mozilla.com/D98888
2020-12-07 14:25:59 +00:00
yulia
21b5f80d1d Bug 1519100 - Add flag for experimental Top Level Await feature; r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D97180
2020-12-04 08:52:29 +00:00
Razvan Maries
8cbedc3a4d Backed out 15 changesets (bug 1519100) as per Yulia's request. CLOSED TREE
Backed out changeset 16dc37dadf05 (bug 1519100)
Backed out changeset 019b00c63941 (bug 1519100)
Backed out changeset 1155eecec034 (bug 1519100)
Backed out changeset 53a792431e11 (bug 1519100)
Backed out changeset 55918f941155 (bug 1519100)
Backed out changeset 683743bd0395 (bug 1519100)
Backed out changeset 63d506024693 (bug 1519100)
Backed out changeset 8b5244786634 (bug 1519100)
Backed out changeset 3a0a021acc08 (bug 1519100)
Backed out changeset d5bff6c95feb (bug 1519100)
Backed out changeset bab7e81a6c2c (bug 1519100)
Backed out changeset b521ccd694f8 (bug 1519100)
Backed out changeset 9f559a616909 (bug 1519100)
Backed out changeset 98146209da6f (bug 1519100)
Backed out changeset a3ea6c49dbf7 (bug 1519100)
2020-12-03 20:37:45 +02:00
yulia
517283f821 Bug 1519100 - Add flag for experimental Top Level Await feature; r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D97180
2020-12-03 15:24:22 +00:00
Bogdan Tara
c1b7803fbd Backed out 15 changesets (bug 1519100) for wpt leaks CLOSED TREE
Backed out changeset 7302ebdbaa35 (bug 1519100)
Backed out changeset 5b89081f0f08 (bug 1519100)
Backed out changeset ee02050e3c97 (bug 1519100)
Backed out changeset 47cf4bde107e (bug 1519100)
Backed out changeset bfd96f55a3bd (bug 1519100)
Backed out changeset c9afefd66eb7 (bug 1519100)
Backed out changeset 90b61247d071 (bug 1519100)
Backed out changeset e0250e4cba61 (bug 1519100)
Backed out changeset 5f90543431cb (bug 1519100)
Backed out changeset d7f3440addc7 (bug 1519100)
Backed out changeset 10194540aff0 (bug 1519100)
Backed out changeset 880873b815a4 (bug 1519100)
Backed out changeset d99f0109da7a (bug 1519100)
Backed out changeset c723f6b16b67 (bug 1519100)
Backed out changeset da24af409d92 (bug 1519100)
2020-12-02 21:14:35 +02:00
yulia
521140ab44 Bug 1519100 - Add flag for experimental Top Level Await feature; r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D97180
2020-12-02 12:38:17 +00:00
Lars T Hansen
adf086b335 Bug 1674722 - Fix prefs, switches, and selection for cranelift. r=rhunt
This patch makes cranelift and ion exclusive of each other: enabling
cranelift on a platform will effectively disable Ion on that platform.

Specifically there's a change at the pref/switch level that does not
go terribly deep:

- the new about:config option is javascript.options.wasm_optimizingjit,
  the old wasm_cranelift and wasm_ionjit are no more
- new values of X in --wasm-compiler=X in the js shell are 'optimizing'
  and 'baseline+optimizing', the old values 'cranelift', 'ion',
  'baseline+ion' and 'baseline+optimizing' are still accepted but only
  when ion or cranelift is available
- we keep the separate prefs internally in the code for ion and cranelift
  but if ENABLE_WASM_CRANELIFT is defined then we never set the ion
  pref to true, and if it is not defined then we never set the cranelift
  pref to true

The trickiest changes are in testWasm.cpp and in the JIT compiler option
processing in jsapi.cpp.

People who will suffer as a result of this are those who are working
on ports of cranelift to new platforms in Firefox.  As of now we have
no such work going on.

In the longer term the exclusive-or situation can be alleviated by a
switch that lets cranelift override ion when cranelift is present and
the switch is on.  Patches welcome.

Differential Revision: https://phabricator.services.mozilla.com/D96059
2020-11-11 09:20:13 +00:00
Jeff Walden
c25f892c77 Bug 1663365 - Move ctypes APIs out of jsfriendapi.h into a new js/public/experimental/CTypes.h header. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D95671
2020-11-07 00:04:26 +00:00
Jeff Walden
b0435c3949 Bug 1663365 - Various stylistic cleanups to ctypes-related functionality in jsfriendapi.h, in advance of a move into a separate header. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D95670
2020-11-07 00:04:18 +00:00
Jeff Walden
c7bc4f2846 Bug 1663365 - Don't include "js/friend/ErrorMessages.h" in jsfriendapi.h. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D95208
2020-10-30 06:33:56 +00:00
Tom Tung
66554ec22d Bug 1655632 - Use the member JSContext getter rather than a global JSContext getter; r=dom-workers-and-storage-reviewers,asuth
The issue here is that we access the WorkerPrivate::mJSContext while dispatching
a micro task runnable to micro task queue. While we are running the worker
script, this should be safe. However, it's possible that process the micro tasks
while clearing the main event queue. And, in this case, the worker is about to
shutdown so the mJSContext has already set to a nullptr.

GetCurrentWorkerThreadJSContext() returns WorkerPrivete::mJSContext. It's set at
the beginning of the WorkerPrivate::DoRunLoop() (which is got from
CycleCollectedJSContext::mJSContext), and it is set to a nullptr at the end of
WorkerPrivate::DoRunLoop(). Thus, the result of
CycleCollectedJSContext::Context() is the same as the result of
GetCurrentWorkerThreadJSContext() before either of the JSContext pointer is set
to a nullptr. So, we should be safe to change the use of the getter function to
Context() here.

Differential Revision: https://phabricator.services.mozilla.com/D87615
2020-10-22 21:52:18 +00:00
Jens Stutte
0780d3cbda Bug 1664386: Avoid any possibility of infinite process hangs due to workers hanging on shutdown and add chrome worker information to reports r=dom-workers-and-storage-reviewers,asuth
- Using MonitorAutoLock/Monitor::Wait with the timeout argument instead of the eternal Wait() in CrashIfHangingRunnable::DispatchAndWait
  - Augment the runnable to use an boolean to track whether or not it has effectively "resolved" with an answer so that we only write to mMsg exactly once. While the call to Wait(timeout) indicates what happened with its CVStatus return, it's necessary to make sure that WorkerRun/Cancel check this value before potentially mutating mMsg in the event they actually do run after the timed wait has given up.
  - Add crash information, if the worker is a Chrome worker and in case add the executed script URL

Differential Revision: https://phabricator.services.mozilla.com/D92204
2020-10-07 11:34:02 +00:00
Ryan Hunt
33b1e95109 Bug 1664361 - wasm: Add function-references configuration option and runtime flag. r=lth
This commit adds the boilerplate machinery for the function-references proposal. The
interesting piece is that the GC proposal is moved to require the function-references
proposal to be enabled.

The configuration machinery for features is refactored in this commit to avoid passing
6 different booleans around as parameters to functions.
 * A FeatureArgs struct is added with values for all 'feature' configuration options
   - A feature is defined as an option that affects validation or semantics
   - Essentially everything besides 'debug', 'mode', 'tier'
 * All feature configuration responsibility is removed from CompilerEnvironment
 * ModuleEnvironment is modified to accept a FeatureArgs in addition to a
   CompilerEnvironment
   - The CompilerEnvironment field may eventually be removed, as it's not needed
     within function validation, and is only used by the compilers later

Differential Revision: https://phabricator.services.mozilla.com/D89857
2020-09-28 19:18:48 +00:00
Simon Giesecke
de7bab0f06 Bug 1650145 - Replace all value uses of Empty[C]String by 0-length _ns literals. r=froydnj,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D82325
2020-09-23 15:17:15 +00:00
Tooru Fujisawa
0a00eddff0 Bug 1664182 - Add JS::SetUseOffThreadParseGlobal and js::UseOffThreadParseGlobal, replacing JS::ContextOptions::setUseOffThreadParseGlobal. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D89784
2020-09-10 16:05:39 +00:00
Nathan Froyd
cfb8fb313f Bug 1662251 - stop assigning from NS_Convert* values, mostly; r=sg
This patch was generated by running:

```
perl -p -i \
     -e 's/^(\s+)([a-zA-Z0-9.]+) = NS_ConvertUTF8toUTF16\((.*)\);/\1CopyUTF8toUTF16(\3, \2);/;' \
     -e 's/^(\s+)([a-zA-Z0-9.]+) = NS_ConvertUTF16toUTF8\((.*)\);/\1CopyUTF16toUTF8(\3, \2);/;' \
     $FILE
```

against every .cpp and .h in mozilla-central, and then fixing up the
inevitable errors that happen as a result of matching C++ expressions with
regexes.  The errors fell into three categories:

1. Calling the convert functions with `std::string::c_str()`; these were
   changed to simply pass the string instead, relying on implicit conversion
   to `mozilla::Span`.
2. Calling the convert functions with raw pointers, which is not permitted
   with the copy functions; these were changed to invoke `MakeStringSpan` first.
3. Other miscellaneous errors resulting from over-eager regexes and/or the
   replacement not being type-aware.  These changes were reverted.

Differential Revision: https://phabricator.services.mozilla.com/D88903
2020-09-02 09:54:37 +00:00
Tooru Fujisawa
6eecdba324 Bug 1662140 - Add javascript.options.off_thread_parse_global pref and --no-off-thread-parse-global shell option. r=tcampbell
This adds the preference, JS shell option, and {ContextOptions,CompileOptions} fields,
but the value isn't read and the code always acts as it's set to true.

Differential Revision: https://phabricator.services.mozilla.com/D88922
2020-08-31 23:32:14 +00:00
Adam Vandolder
c9aad0c1b1 Bug 1435826 - Add pref for private methods. r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D86556
2020-08-14 14:11:02 +00:00
Matthew Gaudet
d17334a69d Bug 1655563 - Ensure Private Fields are enabled in workers, following the preference setting r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D85866
2020-08-11 19:12:49 +00:00
Simon Giesecke
202c188ca0 Bug 1652960 - Remove unnecessary includes from Document.h. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D83634
2020-07-15 15:48:53 +00:00
Jon Coppeard
63833c5f28 Bug 1651612 - Run extra garbage collection cycle for idle workers if cycle collection collected anything r=mccr8
This runs an extra GC cycle when a worker goes idle if the cycle collector collected anything. This fixes the test case given (but not the case in the original bug).

Differential Revision: https://phabricator.services.mozilla.com/D82869
2020-07-10 13:55:38 +00:00