Commit Graph

814 Commits

Author SHA1 Message Date
Yoshi Cheng-Hao Huang
9c6c739c71 Bug 1778289 - Part 10: Update comments for 'register an import map'. r=jonco,yulia
Differential Revision: https://phabricator.services.mozilla.com/D152877
2022-10-07 13:56:26 +00:00
Yoshi Cheng-Hao Huang
c4e2765ba0 Bug 1778289 - Part 9: Bail out early if adding an import map is disallowed. r=jonco,yulia
If an adding import map is disallowed, we bail out early to prevent creating a
ScriptLoadRequest.

Differential Revision: https://phabricator.services.mozilla.com/D152876
2022-10-07 13:56:26 +00:00
Yoshi Cheng-Hao Huang
0035fa8650 Bug 1778289 - Part 6: Update comments for external import maps. r=jonco,yulia
Differential Revision: https://phabricator.services.mozilla.com/D152873
2022-10-07 13:56:25 +00:00
Yoshi Cheng-Hao Huang
7277165281 Bug 1778289 - Part 4: Don't call onerror if parsing import maps fails. r=jonco,yulia
script's result will be an import map parse result, which will never be
null.

See explanation from https://github.com/WICG/import-maps/issues/279

Differential Revision: https://phabricator.services.mozilla.com/D152871
2022-10-07 13:56:24 +00:00
Yoshi Cheng-Hao Huang
9129165da5 Bug 1778289 - Part 2: Rename to 'import maps allowed' and add 'disallow import maps'. r=jonco,yulia
Rename 'acquiring import maps' to 'import maps allowed'.

Old:
https://wicg.github.io/import-maps/#document-acquiring-import-maps

New:
https://whatpr.org/html/8075/webappapis.html#import-maps-allowed

And add 'disallow further import maps':
https://whatpr.org/html/8075/webappapis.html#disallow-further-import-maps

Differential Revision: https://phabricator.services.mozilla.com/D152869
2022-10-07 13:56:23 +00:00
Andreea Pavel
59d5688509 Backed out changeset 7cfadef6f30f (bug 1790765) for causing bug 1791309 2022-09-20 09:16:58 +03:00
Jon Coppeard
b2d0457dd0 Bug 1790765 - Replace superstitious comment in ScriptLoader::MaybeMoveToLoadedList with release assertion r=smaug
An initial try is green with this change.

Differential Revision: https://phabricator.services.mozilla.com/D157304
2022-09-15 09:14:59 +00:00
Jon Coppeard
b33e676c20 Bug 1788532 - Block dynamic module load processing during sync XHR r=smaug
The problem is that synchronous XMLHttpRequest requests can spin the event loop
and cause us to process dynamic module loads (by calling
JS::FinishDynamicModuleImport) when we are already inside JS::ModuleEvaluate.
The module algorithms assume that they are not reentrant.

The patch changes dyammic module load processing to happen in the same way as
async script loads (of both classic scripts and modules), which are blocked
during sync XHR by Document::SuppressEventHandling calling
ScriptLoader::AddExecuteBlocker.

Differential Revision: https://phabricator.services.mozilla.com/D157218
2022-09-15 09:14:11 +00:00
Ted Campbell
b2f8c853e2 Bug 1788977 - Share stencil-instantiate code in JSExecutionContext. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D156339
2022-09-06 12:01:36 +00:00
Tooru Fujisawa
37bf07bb94 Bug 1787529 - Align the conditions in ScriptLoadContext::MaybeCancelOffThreadScript to ScriptLoader::AttemptAsyncScriptCompile. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D155740
2022-08-31 22:38:21 +00:00
Bryan Thrall
e14eb038c7 Bug 1768679 - Expose cache fetch count as uint32_t r=dragana,necko-reviewers
The value is stored as uint32_t, and there doesn't seem to be a need to convert
it to int.

Differential Revision: https://phabricator.services.mozilla.com/D147888
2022-08-04 16:20:17 +00:00
Tom Schuster
200a2a62cb Bug 1529337 - Implement CSP 'script-src-elem' and 'script-src-attr' directives. r=freddyb,webidl,smaug,dveditz
Differential Revision: https://phabricator.services.mozilla.com/D150965
2022-08-01 12:32:58 +00:00
Dianna Smith
8a7c52180a Backed out 1 changesets (bug 1776205) for causing bug 1780426, a=backout
Backed out changeset 84c72c2fbfd6 (bug 1776205)
2022-07-26 14:34:59 -04:00
Dianna Smith
790070fcf5 Backed out 1 changesets (bug 1776668) for causing bug 1780426, a=backout
Backed out changeset f3cd67fc1a50 (bug 1776668)
2022-07-26 14:30:18 -04:00
Nicolas B. Pierron
e5ad55b6b2 Bug 1776668 - ApplyDelazifyStrategy: Skip inline script sooner. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D152091
2022-07-19 10:41:16 +00:00
smolnar
ea9ba4e659 Backed out 2 changesets (bug 1529337) for awaiting decision on implementing other CSP 3 features
Backed out changeset 12cd014c46e8 (bug 1529337)
Backed out changeset f1489d7cf1a1 (bug 1529337)
2022-07-18 11:09:25 +03:00
Tom Schuster
410f913c26 Bug 1529337 - Implement CSP 'script-src-elem' and 'script-src-attr' directives. r=freddyb,webidl,smaug
Differential Revision: https://phabricator.services.mozilla.com/D150965
2022-07-13 10:21:48 +00:00
Nicolas B. Pierron
445474c026 Bug 1776205 - Set the delazify option in all ScriptLoader code paths. r=arai
This patch move the ShouldApplyDelazificationStartegy as well as the
ApplyDelazificationStrategy under FillCompileOptionsForRequest.

As not all delazification strategies are capable of handling modules yet (Bug
1760334), and do not apply to cached-stencil, we have to add extra filters to
prevent ShouldApplyDelazificationStrategy to access custom delazification mode.

Differential Revision: https://phabricator.services.mozilla.com/D150118
2022-07-08 13:19:30 +00:00
Matthew Gaudet
1f9d900b36 Bug 1747059 - Add ShadowRealm module loader support to ScriptLoader r=yulia
Differential Revision: https://phabricator.services.mozilla.com/D147465
2022-06-28 22:04:18 +00:00
criss
7537df846d Backed out changeset a411b158a51e (bug 1776205) for causing ccov failures (bug 1776521) . CLOSED TREE 2022-06-28 11:40:20 +03:00
Csoregi Natalia
d91db2b437 Backed out 9 changesets (bug 1747059, bug 1767525)for causing hazard failures on ShadowRealmGlobalScope.cpp. CLOSED TREE
Backed out changeset ed7aad37f2cf (bug 1747059)
Backed out changeset 40a257fb4788 (bug 1747059)
Backed out changeset f7b049ef3b8c (bug 1747059)
Backed out changeset aad38abc7139 (bug 1747059)
Backed out changeset 8115813e77a5 (bug 1747059)
Backed out changeset e06192e664fd (bug 1747059)
Backed out changeset a198b0893220 (bug 1767525)
Backed out changeset c083f0824619 (bug 1767525)
Backed out changeset 9a3bf794ec6d (bug 1767525)
2022-06-28 02:39:08 +03:00
Matthew Gaudet
3486cbf1f2 Bug 1747059 - Add ShadowRealm module loader support to ScriptLoader r=yulia
Differential Revision: https://phabricator.services.mozilla.com/D147465
2022-06-27 21:17:35 +00:00
Nicolas B. Pierron
42bdc3b833 Bug 1776205 - Set the delazify option in all ScriptLoader code paths. r=arai
This patch move the ShouldApplyDelazificationStartegy as well as the
ApplyDelazificationStrategy under FillCompileOptionsForRequest.

As not all delazification strategies are capable of handling modules yet (Bug
1760334), and do not apply to cached-stencil, we have to add extra filters to
prevent ShouldApplyDelazificationStrategy to access custom delazification mode.

Differential Revision: https://phabricator.services.mozilla.com/D150118
2022-06-24 12:16:04 +00:00
Nicolas B. Pierron
050fe026f7 Bug 1774796 - Add largest-first delazification strategy. r=arai
This patch adds a new off-thread delazification strategy, which adds a bit of
overhead to queue function with a priority order, which put the largest function
as the first functions to be delazified.

The intent of this new strategy is to limit the usage of main-thread
delazification to the smallest function, in case where the main-thread would win
the delazification race.

Differential Revision: https://phabricator.services.mozilla.com/D149651
2022-06-20 13:33:49 +00:00
Manuel Bucher
fe159c57a3 Bug 1761242 - Expose computing security flags for early hint preloader r=ckerschb,smaug
Differential Revision: https://phabricator.services.mozilla.com/D144798
2022-06-15 09:59:44 +00:00
Yoshi Cheng-Hao Huang
9cc84fb049 Bug 1773143 - Call SetAcquiringImportMaps(false) when loading inline modules. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D149048
2022-06-14 12:53:18 +00:00
Molnar Sandor
cd7c15e45b Backed out 5 changesets (bug 1761242, bug 1744822, bug 1761252) for causing browser-chrome failures in netwerk/test/browser/browser_103_assets.js CLOSED TREE
Backed out changeset 33cc08eb51b3 (bug 1744822)
Backed out changeset b70697d24e75 (bug 1761252)
Backed out changeset 4a5e10110c6a (bug 1761242)
Backed out changeset 7cda175b833d (bug 1761242)
Backed out changeset 4f5ed111093b (bug 1761242)
2022-06-08 18:56:35 +03:00
Manuel Bucher
77458730d0 Bug 1761242 - Expose computing security flags for early hint preloader r=ckerschb,smaug
Differential Revision: https://phabricator.services.mozilla.com/D144798
2022-06-08 14:33:10 +00:00
Kagami Sascha Rosylight
4d68f1d57d Bug 1769290 - Part 10: Apply mozilla-js-handle-rooted-typedef against remaining dom directories r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D148283
2022-06-05 20:55:00 +00:00
Bryan Thrall
fc29361ac3 Bug 1757833 - Extract methods ScriptBytecodeCompress and ScriptBytecodeDecompress r=nbp
This leaves the code in ScriptLoader and ScriptLoadHandler a lot more readable.

ScriptBytecodeCompressedDataLayout and ScriptBytecodeDataLayout simplify
locating data in the ScriptLoadRequest bytecode buffer when compressing and
decompressing it.

The interface is still error-prone. For example, these classes don't check
that the returned pointers are within the bounds of the buffer.

Differential Revision: https://phabricator.services.mozilla.com/D145011
2022-05-20 18:25:40 +00:00
Bryan Thrall
827cd45046 Bug 1757833 - Compress Stencil bytecode before writing to cache r=nbp
The SRI hash at the beginning of ScriptLoadRequest::mScriptBytecode is left
uncompressed because ScriptLoader::OnIncrementalData() tries to decode it
as soon as enough data is read (instead of waiting until OnStreamComplete()).

ScriptLoader writes the length of the uncompressed bytecode to the buffer
to make it easy for ScriptLoadHandler to allocate an buffer of the right size
to decompress the bytecode.

These changes are based on the bytecode compression implemented for WASM in
dom/fetch/FetchUtil.cpp.

Differential Revision: https://phabricator.services.mozilla.com/D141524
2022-05-20 18:25:40 +00:00
Iulian Moraru
d3b3df8951 Backed out 6 changesets (bug 1757833) for causing multiple crashes with MOZ_Z_inflateInit2_. CLOSED TREE
Backed out changeset 6a7d3034db0a (bug 1757833)
Backed out changeset faa0393886db (bug 1757833)
Backed out changeset 4bffe0cf490e (bug 1757833)
Backed out changeset 189b81cc13fd (bug 1757833)
Backed out changeset a59c66e4fb68 (bug 1757833)
Backed out changeset 2b5d9869fbcb (bug 1757833)
2022-05-19 01:14:05 +03:00
Bryan Thrall
55ed1fd8f6 Bug 1757833 - Extract methods ScriptBytecodeCompress and ScriptBytecodeDecompress r=nbp
This leaves the code in ScriptLoader and ScriptLoadHandler a lot more readable.

ScriptBytecodeCompressedDataLayout and ScriptBytecodeDataLayout simplify
locating data in the ScriptLoadRequest bytecode buffer when compressing and
decompressing it.

The interface is still error-prone. For example, these classes don't check
that the returned pointers are within the bounds of the buffer.

Differential Revision: https://phabricator.services.mozilla.com/D145011
2022-05-18 21:03:48 +00:00
Bryan Thrall
b528dbd218 Bug 1757833 - Compress Stencil bytecode before writing to cache r=nbp
The SRI hash at the beginning of ScriptLoadRequest::mScriptBytecode is left
uncompressed because ScriptLoader::OnIncrementalData() tries to decode it
as soon as enough data is read (instead of waiting until OnStreamComplete()).

ScriptLoader writes the length of the uncompressed bytecode to the buffer
to make it easy for ScriptLoadHandler to allocate an buffer of the right size
to decompress the bytecode.

These changes are based on the bytecode compression implemented for WASM in
dom/fetch/FetchUtil.cpp.

Differential Revision: https://phabricator.services.mozilla.com/D141524
2022-05-18 21:03:47 +00:00
Sebastian Hengst
e33f3602b0 Backed out 6 changesets (bug 1757833) for Linux base toolchains build failure
Backed out changeset c8117edaf054 (bug 1757833)
Backed out changeset a46efd9967d0 (bug 1757833)
Backed out changeset f33955b6a7cc (bug 1757833)
Backed out changeset 71f1afa82581 (bug 1757833)
Backed out changeset 868407dccba9 (bug 1757833)
Backed out changeset 79873d83d02b (bug 1757833)
2022-05-17 19:46:50 +02:00
Bryan Thrall
647c123ffc Bug 1757833 - Extract methods ScriptBytecodeCompress and ScriptBytecodeDecompress r=nbp
This leaves the code in ScriptLoader and ScriptLoadHandler a lot more readable.

ScriptBytecodeCompressedDataLayout and ScriptBytecodeDataLayout simplify
locating data in the ScriptLoadRequest bytecode buffer when compressing and
decompressing it.

The interface is still error-prone. For example, these classes don't check
that the returned pointers are within the bounds of the buffer.

Differential Revision: https://phabricator.services.mozilla.com/D145011
2022-05-17 16:29:03 +00:00
Bryan Thrall
32605f8bc8 Bug 1757833 - Compress Stencil bytecode before writing to cache r=nbp
The SRI hash at the beginning of ScriptLoadRequest::mScriptBytecode is left
uncompressed because ScriptLoader::OnIncrementalData() tries to decode it
as soon as enough data is read (instead of waiting until OnStreamComplete()).

ScriptLoader writes the length of the uncompressed bytecode to the buffer
to make it easy for ScriptLoadHandler to allocate an buffer of the right size
to decompress the bytecode.

These changes are based on the bytecode compression implemented for WASM in
dom/fetch/FetchUtil.cpp.

Differential Revision: https://phabricator.services.mozilla.com/D141524
2022-05-17 16:29:03 +00:00
Nicolas B. Pierron
8b894b8b6d Bug 1756003 part 2 - Compare concurrent and on-demand delazification. r=arai
Adds a delazification mode, which spawn a concurrent depth-first delazification
of all function to fill the stencil cache, to later compare cached results with
stencils produced by on-demand delazification.

The delazification mode also works when being used from a main-thread top-level
compilation, in which case the delazification tasks are created and potentially
blocking the main thread, while the delazification is happening.

This way of doing help comparing on-demand delazification, based on instantiated
stencils with concurrent delazification, based on stencils. Which is a good
mode for fuzzing purposes.

Differential Revision: https://phabricator.services.mozilla.com/D145992
2022-05-17 10:53:04 +00:00
Iulian Moraru
6e8e12c880 Backed out 3 changesets (bug 1756003) for causing multiple thread sanitizer failures. CLOSED TREE
Backed out changeset cf1af3ce0798 (bug 1756003)
Backed out changeset 672e8694ef7d (bug 1756003)
Backed out changeset 3b6f96fb26fa (bug 1756003)
2022-05-14 04:00:29 +03:00
Nicolas B. Pierron
76afd6b691 Bug 1756003 part 2 - Compare concurrent and on-demand delazification. r=arai
Adds a delazification mode, which spawn a concurrent depth-first delazification
of all function to fill the stencil cache, to later compare cached results with
stencils produced by on-demand delazification.

The delazification mode also works when being used from a main-thread top-level
compilation, in which case the delazification tasks are created and potentially
blocking the main thread, while the delazification is happening.

This way of doing help comparing on-demand delazification, based on instantiated
stencils with concurrent delazification, based on stencils. Which is a good
mode for fuzzing purposes.

Differential Revision: https://phabricator.services.mozilla.com/D145992
2022-05-13 16:41:29 +00:00
Yoshi Cheng-Hao Huang
352888c2d3 Bug 1688879 - Part 8: Assert import maps won't be processed in ScriptLoader::EvaluateScriptElement. r=jonco,yulia
Differential Revision: https://phabricator.services.mozilla.com/D142076
2022-05-05 21:19:03 +00:00
Yoshi Cheng-Hao Huang
9c795af6be Bug 1688879 - Part 7: External import maps aren't supported. r=jonco,yulia
External import maps aren't supported for now.
https://github.com/WICG/import-maps/issues/235

Differential Revision: https://phabricator.services.mozilla.com/D142075
2022-05-05 21:19:03 +00:00
Yoshi Cheng-Hao Huang
065c4b604c Bug 1688879 - Part 6: Acquiring import maps. r=jonco,yulia
Implement https://wicg.github.io/import-maps/#document-acquiring-import-maps

Differential Revision: https://phabricator.services.mozilla.com/D142074
2022-05-05 21:19:02 +00:00
Yoshi Cheng-Hao Huang
d5ac332d96 Bug 1688879 - Part 3: Parse and register an import map. r=jonco,yulia
Implement
https://wicg.github.io/import-maps/#parse-an-import-map-string,
and
https://wicg.github.io/import-maps/#register-an-import-map

Differential Revision: https://phabricator.services.mozilla.com/D142071
2022-05-05 21:19:01 +00:00
Yoshi Cheng-Hao Huang
31656e9e1f Bug 1688879 - Part 2: Add support for import maps in ScriptElement/ScriptLoader/ScriptKind. r=jonco,yulia,smaug
Differential Revision: https://phabricator.services.mozilla.com/D142070
2022-05-05 21:19:01 +00:00
Butkovits Atila
b018b0e4da Backed out 11 changesets (bug 1688879) for causing build bustages. CLOSED TREE
Backed out changeset 350ddd17c7f5 (bug 1688879)
Backed out changeset 27984b95ed20 (bug 1688879)
Backed out changeset 6a5bb063965f (bug 1688879)
Backed out changeset d8edcfdb504b (bug 1688879)
Backed out changeset 77ab231310ec (bug 1688879)
Backed out changeset c2bce95a1aca (bug 1688879)
Backed out changeset f5862572ced8 (bug 1688879)
Backed out changeset 05e0a1bf32fc (bug 1688879)
Backed out changeset adeab05b7419 (bug 1688879)
Backed out changeset 0e60834e17e5 (bug 1688879)
Backed out changeset 877bb4c2ce66 (bug 1688879)
2022-05-05 19:52:05 +03:00
Yoshi Cheng-Hao Huang
a277875e91 Bug 1688879 - Part 8: Assert import maps won't be processed in ScriptLoader::EvaluateScriptElement. r=jonco,yulia
Differential Revision: https://phabricator.services.mozilla.com/D142076
2022-05-05 16:03:18 +00:00
Yoshi Cheng-Hao Huang
0eba06d767 Bug 1688879 - Part 7: External import maps aren't supported. r=jonco,yulia
External import maps aren't supported for now.
https://github.com/WICG/import-maps/issues/235

Differential Revision: https://phabricator.services.mozilla.com/D142075
2022-05-05 16:03:18 +00:00
Yoshi Cheng-Hao Huang
bf610156cd Bug 1688879 - Part 6: Acquiring import maps. r=jonco,yulia
Implement https://wicg.github.io/import-maps/#document-acquiring-import-maps

Differential Revision: https://phabricator.services.mozilla.com/D142074
2022-05-05 16:03:17 +00:00
Yoshi Cheng-Hao Huang
ea9b864f1c Bug 1688879 - Part 3: Parse and register an import map. r=jonco,yulia
Implement
https://wicg.github.io/import-maps/#parse-an-import-map-string,
and
https://wicg.github.io/import-maps/#register-an-import-map

Differential Revision: https://phabricator.services.mozilla.com/D142071
2022-05-05 16:03:16 +00:00