Commit Graph

645 Commits

Author SHA1 Message Date
Cristina Horotan
dd34759a5e Backed out changeset b288a387f790 (bug 1425310) for causing Reflection related failures. CLOSED TREE 2023-04-21 18:37:11 +03:00
Em Zhan
f2b0b368b5 Bug 1425310 - Implement modulepreload for link rel. r=yulia,smaug,jonco
Does perform the optional step of fetching descendants and linking:
https://html.spec.whatwg.org/multipage/webappapis.html#fetching-scripts:fetch-the-descendants-of-and-link-a-module-script-2

Differential Revision: https://phabricator.services.mozilla.com/D172368
2023-04-21 14:32:30 +00:00
Cosmin Sabou
b5ca03ae2b Backed out changeset be054669251a (bug 1425310) for causing browser-chrome leaks on nsStringBuffer. 2023-04-14 13:26:56 +03:00
Em Zhan
f27f99384d Bug 1425310 - Implement modulepreload for link rel. r=yulia,smaug,jonco
Does perform the optional step of fetching descendants and linking:
https://html.spec.whatwg.org/multipage/webappapis.html#fetching-scripts:fetch-the-descendants-of-and-link-a-module-script-2

Differential Revision: https://phabricator.services.mozilla.com/D172368
2023-04-14 08:09:49 +00:00
Sean Feng
f5713606fe Bug 1804086 - Allow classic script hint to be passed from content to parent r=smaug,necko-reviewers,kershaw
This is needed for doing content decoding for ORB.

Differential Revision: https://phabricator.services.mozilla.com/D172490
2023-03-22 14:21:39 +00:00
Noemi Erli
aa2f00d1d7 Backed out 3 changesets (bug 1804086) for causing failures in JSValidatorChild.cpp CLOSED TREE
Backed out changeset 12a40a80a975 (bug 1804086)
Backed out changeset 1bea9ea5e20d (bug 1804086)
Backed out changeset 00feb14e7824 (bug 1804086)
2023-03-22 03:33:43 +02:00
Sean Feng
aad4806b0f Bug 1804086 - Allow classic script hint to be passed from content to parent r=smaug,necko-reviewers,kershaw
This is needed for doing content decoding for ORB.

Differential Revision: https://phabricator.services.mozilla.com/D172490
2023-03-21 22:55:08 +00:00
Nicolas Chevobbe
ca27b73307 Bug 1815937 - Set ScriptLoadContext column number for inline scripts. r=smaug,devtools-reviewers,ochameau.
Differential Revision: https://phabricator.services.mozilla.com/D170580
2023-03-21 17:27:48 +00:00
Marian-Vasile Laza
18596c5555 Backed out 3 changesets (bug 1823335, bug 1815937, bug 1823399) for devtools failures on browser_dbg-features-breakable-positions.js. CLOSED TREE
Backed out changeset f931921c97f2 (bug 1823399)
Backed out changeset 077d67ccc0d5 (bug 1823335)
Backed out changeset 103bf8d93883 (bug 1815937)
2023-03-21 00:01:11 +02:00
Nicolas Chevobbe
f8b904ca99 Bug 1815937 - Set ScriptLoadContext column number for inline scripts. r=smaug,devtools-reviewers,ochameau.
Differential Revision: https://phabricator.services.mozilla.com/D170580
2023-03-20 19:25:19 +00:00
Cristina Horotan
6b278004f2 Backed out 2 changesets (bug 1815937) for causing wpt failures at blockeduri-inline.html CLOSED TREE
Backed out changeset 668971329051 (bug 1815937)
Backed out changeset a4a3430c9bab (bug 1815937)
2023-03-17 15:52:33 +02:00
Nicolas Chevobbe
d2a278a7e0 Bug 1815937 - Set ScriptLoadContext column number for inline scripts. r=smaug,devtools-reviewers,ochameau.
Differential Revision: https://phabricator.services.mozilla.com/D170580
2023-03-17 08:03:07 +00:00
Yoshi Cheng-Hao Huang
96bf97c3bf Bug 1815180 : Dump error message when import maps aren't allowed. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D169185
2023-02-08 12:22:04 +00:00
Jon Coppeard
49e375acd8 Bug 1813494 - Part 1: Common up code to cancel and remove all load requests r=smaug
Cancellation happend in ParsingComplete() and Destroy() but was inconsistent in
which kinds of requests were cancelled and which were cancelled and removed.
This makes one method that cancels and removes everything and uses it in both
places.

Differential Revision: https://phabricator.services.mozilla.com/D168231
2023-02-07 11:55:50 +00:00
Jon Coppeard
1cd1c1673f Bug 1809861 - Part 3: Reorder off-thread compilation methods r=smaug
This just moves the method definitions so that they appear in roughly in the
order they are executed, to make reading and understanding this easier.

Differential Revision: https://phabricator.services.mozilla.com/D166669
2023-01-17 17:06:51 +00:00
Jon Coppeard
06c2616161 Bug 1809861 - Part 2: Rename off-thread compilation methods to improve consistency r=smaug
This renames the following in an attempt to give consistent names to off-thread
compliation related things:
 - AttemptAsyncScriptCompile -> AttemptOffThreadScriptCompile
 - NotifyOffThreadScriptLoadCompletedRunnable -> OffThreadJobCompleteRunnable
 - OffThreadScriptLoaderCallback -> OffThreadJobCompleteCallback

Differential Revision: https://phabricator.services.mozilla.com/D166668
2023-01-17 17:06:50 +00:00
Jon Coppeard
f23f44668a Bug 1809861 - Part 1: Simplify and clean up off-main thread script compilation r=smaug
The main change in this patch is to prevent access to main-thread objects
while off-thread. This is done by using nsMainThreadPtrHandle to wrap main
thread pointers in the runnable. This prevents access to their targets when
off thread and ensure they are only released on the main thread.

This means that mRunnable is now only accessed on the main thread and so it
doesn't need to be atomic and can be a normal RefPtr. We also don't need to
leak a reference to it in AttemptOffThreadScriptCompile.

This also requires that timing data is moved to the runnable.

Cancellation should always have happened by unlink or destruction of
ScriptLoadContext so handling for that is removed.

Differential Revision: https://phabricator.services.mozilla.com/D166667
2023-01-17 17:06:50 +00:00
Stanca Serban
7f354fd55f Backed out 3 changesets (bug 1809861) for causing bustages in ScriptLoader.cpp. CLOSED TREE
Backed out changeset d8b7cb85d87f (bug 1809861)
Backed out changeset fa4190d9f97e (bug 1809861)
Backed out changeset 15b4b4f318a7 (bug 1809861)
2023-01-17 17:56:26 +02:00
Jon Coppeard
8f035541fd Bug 1809861 - Part 3: Reorder off-thread compilation methods r=smaug
This just moves the method definitions so that they appear in roughly in the
order they are executed, to make reading and understanding this easier.

Differential Revision: https://phabricator.services.mozilla.com/D166669
2023-01-17 14:37:07 +00:00
Jon Coppeard
c9c52a4272 Bug 1809861 - Part 2: Rename off-thread compilation methods to improve consistency r=smaug
This renames the following in an attempt to give consistent names to off-thread
compliation related things:
 - AttemptAsyncScriptCompile -> AttemptOffThreadScriptCompile
 - NotifyOffThreadScriptLoadCompletedRunnable -> OffThreadJobCompleteRunnable
 - OffThreadScriptLoaderCallback -> OffThreadJobCompleteCallback

Differential Revision: https://phabricator.services.mozilla.com/D166668
2023-01-17 14:37:07 +00:00
Jon Coppeard
9a0c1ed5f3 Bug 1809861 - Part 1: Simplify and clean up off-main thread script compilation r=smaug
The main change in this patch is to prevent access to main-thread objects
while off-thread. This is done by using nsMainThreadPtrHandle to wrap main
thread pointers in the runnable. This prevents access to their targets when
off thread and ensure they are only released on the main thread.

This means that mRunnable is now only accessed on the main thread and so it
doesn't need to be atomic and can be a normal RefPtr. We also don't need to
leak a reference to it in AttemptOffThreadScriptCompile.

This also requires that timing data is moved to the runnable.

Cancellation should always have happened by unlink or destruction of
ScriptLoadContext so handling for that is removed.

Differential Revision: https://phabricator.services.mozilla.com/D166667
2023-01-17 14:37:06 +00:00
Yoshi Cheng-Hao Huang
63b04f821e Bug 1808360 - Add error message for external import maps. r=jonco,flod
Differential Revision: https://phabricator.services.mozilla.com/D166028
2023-01-05 14:16:58 +00:00
Manuel Bucher
d8da0082f1 Bug 1771867 - Early Hints Phase 2 - Part 5: Pass early hint preload to script preloader r=necko-reviewers,valentin
Note that modules can't be specified in Link preloads with `rel=preload`,
only in `rel=modulepreload`.  We currently only support `rel=preload` in
early hints. See Bug 1798319 for updates on module preloads.

Differential Revision: https://phabricator.services.mozilla.com/D161175
2022-12-02 16:15:54 +00:00
Csoregi Natalia
51f523d872 Backed out 13 changesets (bug 1771867) for causing CanonicalBrowsingContext crashes. CLOSED TREE
Backed out changeset 120838b58449 (bug 1771867)
Backed out changeset aea7ca0bbd17 (bug 1771867)
Backed out changeset 2fe2afdee09d (bug 1771867)
Backed out changeset 8bdb1f682d22 (bug 1771867)
Backed out changeset a9f3158ed688 (bug 1771867)
Backed out changeset 1177913e1edf (bug 1771867)
Backed out changeset d33ccbbf407d (bug 1771867)
Backed out changeset 110ac12e16f5 (bug 1771867)
Backed out changeset 7f20525f5e94 (bug 1771867)
Backed out changeset b3d65b1aa872 (bug 1771867)
Backed out changeset 7cdf3cef2773 (bug 1771867)
Backed out changeset 5090eae24a5c (bug 1771867)
Backed out changeset f8a03d226c73 (bug 1771867)
2022-12-02 13:44:55 +02:00
Manuel Bucher
0b55f9b232 Bug 1771867 - Early Hints Phase 2 - Part 5: Pass early hint preload to script preloader r=necko-reviewers,valentin
Note that modules can't be specified in Link preloads with `rel=preload`,
only in `rel=modulepreload`.  We currently only support `rel=preload` in
early hints. See Bug 1798319 for updates on module preloads.

Differential Revision: https://phabricator.services.mozilla.com/D161175
2022-12-02 09:45:25 +00:00
Tooru Fujisawa
2f71cc1d38 Bug 1802525 - Do not perform serialization in GiveUpBytecodeEncoding. r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D163424
2022-12-01 09:28:47 +00:00
Adam Vandolder
de848dc97f Bug 1632975 - Run microtask checkpoint before processing script. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D162261
2022-11-17 20:11:23 +00:00
Cristian Tuns
1c2ac70ddb Backed out changeset dd72eb737d96 (bug 1632975) for causing Bug 1800981 CLOSED TREE 2022-11-16 19:15:14 -05:00
Adam Vandolder
488ac43500 Bug 1632975 - Run microtask checkpoint before processing script. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D160988
2022-11-15 20:24:15 +00:00
Tom Schuster
2365bbceed Bug 1797070 - CSP: Add a basic implementation of unsafe-hashes behind a flag. r=freddyb
Differential Revision: https://phabricator.services.mozilla.com/D160046
2022-11-07 17:56:23 +00:00
Yoshi Cheng-Hao Huang
6d98cdb61b Bug 1778289 - Part 12: Update spec links as the PR is merged. r=jonco,yulia
The PR has been merged.
See https://html.spec.whatwg.org/multipage/webappapis.html#import-maps

Differential Revision: https://phabricator.services.mozilla.com/D158828
2022-10-07 13:56:27 +00:00
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