Commit Graph

234 Commits

Author SHA1 Message Date
Jon Coppeard
0fb9274ac3 Bug 1342012 - Fix error message that covers all import() failures that don't throw a JS exception r=jandem 2019-01-03 10:06:00 +00:00
Jon Coppeard
bdcf798047 Bug 1342012 - Also associate classic scripts from the bytecode cache r=smaug 2019-01-03 10:06:00 +00:00
Jon Coppeard
f12538ad6b Bug 1342012 - Allow dynamic import in cases where there's no referencing script or module r=smaug 2018-12-06 16:52:18 -05:00
Jon Coppeard
3bf8514600 Bug 1342012 - Make load request element optional r=smaug 2018-12-06 16:52:18 -05:00
Jon Coppeard
0d30659e5f Bug 1342012 - Support import from timeout handlers by associating the initiating script with the compiled JSScript r=smaug 2018-12-06 16:52:18 -05:00
Jon Coppeard
2ff479b8d2 Bug 1342012 - Support dynamic import from classic scripts by creating ClassicScript objects and associating them with the compiled JSScriptsr r=smaug 2018-12-06 16:52:17 -05:00
Jon Coppeard
accbd30ca2 Bug 1342012 - Refactor nsJSUtils::ExecutionContext to separate compilation and execution steps and allow extraction of compiled JSScript r=nbp r=smaug 2018-12-06 16:52:16 -05:00
Jon Coppeard
30b5587e3d Bug 1342012 - Rename ModuleScript source files to LoadedScript r=smaug 2018-12-06 16:52:16 -05:00
Jon Coppeard
6e8ed561b5 Bug 1342012 - Initial browser support for dynamic import from module scripts r=smaug 2018-12-06 16:52:15 -05:00
Ehsan Akhgari
5b90a278b7 Bug 1510817 - Don't doubly warn when we can't load a script due to tracking protection; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D14861
2018-12-18 15:19:02 +00:00
Jean-Yves Avenard
aab188dd98 Bug 1512456 - P8. Use GenericNonExclusivePromise where needed. r=gerald,alwu
Those MozPromises are shared and must be made non-exclusive

Differential Revision: https://phabricator.services.mozilla.com/D14032
2018-12-11 10:47:01 +00:00
Sylvestre Ledru
e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Jeff Walden
bbdfc94aae Bug 1510007 - Move JSFreeOp's definition to js/public/MemoryFunctions.h, and make jsapi.h not #include that header. r=sfink 2018-11-21 18:11:15 -08:00
Brian Hackett
4dab0e7d06 Bug 1505935 Part 5 - Remove unnecessary NoteContentParse call, r=froydnj. 2018-11-10 15:28:50 -10:00
Thomas Nguyen
60ca74e33c Bug 1460920 - Part 2 : Support referrerpolicy attribute in script HTMLScriptElement r=hsivonen
The patch adds the support of referrerpolicy attribute in script element
and take the attribute into account when loading script.

Differential Revision: https://phabricator.services.mozilla.com/D11637
2018-11-13 14:33:02 +00:00
Jeff Walden
28b00b916d Bug 1485800 - Rename SourceBufferHolder to SourceText, and add a <typename Unit> template parameter to it so it can hold putative UTF-8 or UTF-16 source text. r=tcampbell, r=fitzgen 2018-11-08 18:42:48 -08:00
Jeff Walden
bea599041d Bug 1503086 - Initialize all SourceBufferHolders with a fallible function that in all cases assumes ownership of given-ownership data. r=tcampbell, r=bz, r=mrbkap on some finicky worker code lightly touched here 2018-10-23 12:27:16 -07:00
Kris Maglione
87a66e6f27 Bug 1356412: Part 2 - Remove script loader path mangling from DOM code. r=bz
As in part 1, this no longer serves any purpose.

This patch also removes the otherwise unused WrappersEnabled() method, which
was similarly only useful before we had compartment-based security isolation.
Its functionality is now handled by compartment flags.

Differential Revision: https://phabricator.services.mozilla.com/D10796
2018-11-02 16:15:26 -07:00
Andrea Marchesini
57bd031744 Bug 1498510 - Move nsICSPEventListener out of CSP object, r=ckerschb 2018-10-23 08:17:13 +02:00
Valentin Gosu
c5da4687a9 Bug 1487100 - Allow calling nsICacheInfoChannel.preferAlternativeDataType(altDataType, contentType) multiple times r=michal,luke
This patch changes the way we set and handle the preferred alternate data type.
It is no longer just one choice, but a set of preferences, each conditional
on the contentType of the resource.

For example:
  var cc = chan.QueryInterface(Ci.nsICacheInfoChannel);
  cc.preferAlternativeDataType("js-bytecode", "text/javascript");
  cc.preferAlternativeDataType("ammended-text", "text/plain");
  cc.preferAlternativeDataType("something-else", "");

When loaded from the cache, the available alt-data type will be checked against
"js-bytecode" if the contentType is "text/javascript", "ammended-text" if the contentType is "text/plain" or "something-else" for all contentTypes.
Note that the alt-data type could be "something-else" even if the contentType is "text/javascript".

The preferences are saved as an nsTArray<mozilla::Tuple<nsCString, nsCString>>.

Differential Revision: https://phabricator.services.mozilla.com/D8071
2018-10-17 13:58:30 +00:00
Dorel Luca
c3aaaf326f Backed out 2 changesets (bug 1487100) for XPCShell failures in netwerk/test/unit_ipc/test_alt-data_simple_wrap.js
Backed out changeset 7f9d03c29a6f (bug 1487100)
Backed out changeset dd1c31ea78c2 (bug 1487100)
2018-10-18 05:51:42 +03:00
Valentin Gosu
6c76c8f00e Bug 1487100 - Allow calling nsICacheInfoChannel.preferAlternativeDataType(altDataType, contentType) multiple times r=michal,luke
This patch changes the way we set and handle the preferred alternate data type.
It is no longer just one choice, but a set of preferences, each conditional
on the contentType of the resource.

For example:
  var cc = chan.QueryInterface(Ci.nsICacheInfoChannel);
  cc.preferAlternativeDataType("js-bytecode", "text/javascript");
  cc.preferAlternativeDataType("ammended-text", "text/plain");
  cc.preferAlternativeDataType("something-else", "");

When loaded from the cache, the available alt-data type will be checked against
"js-bytecode" if the contentType is "text/javascript", "ammended-text" if the contentType is "text/plain" or "something-else" for all contentTypes.
Note that the alt-data type could be "something-else" even if the contentType is "text/javascript".

The preferences are saved as an nsTArray<mozilla::Tuple<nsCString, nsCString>>.

Differential Revision: https://phabricator.services.mozilla.com/D8071
2018-10-17 13:58:30 +00:00
Jon Coppeard
cd96a9ac65 Bug 1482153 - Provide a way of associating a private value with a script or module r=jandem rs=hsivonen 2018-10-16 13:44:12 +01:00
Jeff Walden
b6c6a43521 Bug 1493441 - Allow ScriptSource to store UTF-8 script data in addition to UTF-16 script data (but don't create any UTF-8-backed ScriptSources yet). r=tcampbell 2018-09-29 17:28:31 -04:00
Henri Sivonen
7a2ca209b1 Bug 1495011. r=baku.
MozReview-Commit-ID: 8d7DzFnZx4n

Differential Revision: https://phabricator.services.mozilla.com/D7273
2018-10-08 11:13:52 +03:00
Boris Zbarsky
d00758c05a Bug 1493449. Change the default credentials mode for module scripts from 'omit' to 'same-origin'. r=farre
The tests come directly from
https://github.com/web-platform-tests/wpt/pull/13176 and
https://github.com/web-platform-tests/wpt/pull/13245

Differential Revision: https://phabricator.services.mozilla.com/D7113
2018-10-06 04:49:13 +00:00
Boris Zbarsky
66c2218f00 Bug 1496159. Don't try to load modules from the bytecode cache. r=nbp 2018-10-05 11:30:22 -04:00
Jon Coppeard
3080ac5c33 Backed out changeset ba122021b8b5 (bug 1481196) 2018-10-04 11:50:55 +01:00
Jon Coppeard
6347e29d3c Backed out changeset da82ea6820ee (bug 1482153) 2018-10-04 11:50:55 +01:00
Jeff Walden
c2d1ce9999 Bug 1486577 - Don't #include "js/CompilationAndEvaluation.h" in jsapi.h, minimizing the scope of that header and reducing translation-unit size of anything that needs JSAPI but doesn't need to compile/evaluate JavaScript. r=jandem 2018-08-24 22:51:49 -05:00
Jeff Walden
21f00f0eaf Bug 1486577 - Don't #include js/SourceBufferHolder.h in jsapi.h, and instead require users to do so -- a minor translation-unit size improvement for anyone who never has to use SourceBufferHolder other than by reference. r=jandem 2018-08-24 21:01:58 -05:00
Jon Coppeard
951bf08702 Bug 1469599 - Associate all module scripts in a module graph with DOM elements before execution r=hsivonen 2018-08-22 14:54:17 +01:00
Francois Marier
62dd36e6dc Bug 1482950 - Use the correct 3rdparty check in tracking annotations. r=dimi,Ehsan,mayhemer!,ehsan!
The mIsTrackingResource flag on nsIHttpChannel was split into two separate
flags depending on whether or not the resource is third-party. The correct
flag will be set by the channel classifier. Similarly, a new function was
introduced, GetIsThirdPartyTrackingResource(), for those consumers (like TP)
who only care about third-party trackers.

The existing function, GetIsTracking(), will continue to look at both
first-party and third-party trackers (the behavior since first party
tracking was added to annotations in bug 1476324).

The OverrideTrackingResource() function now allows nsHTMLDocument to
override both mIsFirstPartyTrackingResource and
mIsThirdPartyTrackingResource, but since this function is a little dangerous
and only has a single user, I added an assert to make future callers think
twice about using it to opt out of tracking annotations.

Currently, only the default storage restrictions need to look at first-party
trackers so every other consumer has been moved to
mIsThirdPartyTrackingResource or GetIsThirdPartyTrackingResource().

This effectively reverts the third-party checks added in bug 1476715 and
replaces them with the more complicated check that was added in bug 1108017.
It follows the approach that Ehsan initially suggested in bug 1476715. It
also reverts the changes in the expected values of the tracking annotation
test since these were, in hindsight, a warning about this regression.

Depends on D3722

Differential Revision: https://phabricator.services.mozilla.com/D3723
2018-08-20 23:53:45 +00:00
Jon Coppeard
64359270a7 Bug 1482153 - Replace ModuleObject's host defined field with one on top-level JSScripts r=jandem r=hsivonen 2018-08-13 16:39:11 +01:00
Csoregi Natalia
2e5fc1b670 Backed out 2 changesets (bug 1482153, bug 1469004) for assertion failures at ModuleScript.cpp:59. CLOSED TREE
Backed out changeset 8289b70dc0db (bug 1469004)
Backed out changeset 4129380f8318 (bug 1482153)
2018-08-13 19:37:07 +03:00
Jon Coppeard
c0bb7f5c0c Bug 1482153 - Replace ModuleObject's host defined field with one on top-level JSScripts r=jandem r=hsivonen 2018-08-13 16:39:11 +01:00
Jon Coppeard
2eb4bd067c Bug 1481196 - Compile module scripts to a JSScript like we do for classic scripts r=jandem r=baku 2018-08-08 10:40:03 +01:00
Jon Coppeard
ae54496f36 Bug 1480966 - Make ScriptLoader::GetScriptSource faillible on OOM r=baku 2018-08-08 10:40:03 +01:00
Jon Coppeard
610633c128 Bug 1480720 - Factor out script fetch options from script load request classes r=baku 2018-08-06 10:54:28 +01:00
Jon Coppeard
d75d859219 Bug 1477090 - Only instantiate modules when it's safe to run script r=baku 2018-08-01 11:47:04 +01:00
Jon Coppeard
77b30bab22 Bug 1475228 - Allocate script loader source buffers on the JS heap and pass ownership when compiling r=baku 2018-07-17 14:30:24 +01:00
Jon Coppeard
3b9ca4e9e8 Bug 1475228 - Don't ignore errors returned from ScriptLoader::AttemptAsyncScriptCompile() r=baku 2018-07-17 14:30:23 +01:00
Jon Coppeard
be99ae99cb Bug 1475228 - Refactor ScriptLoader::GetScriptSource() to remove inline data argument r=baku 2018-07-17 14:30:23 +01:00
Jon Coppeard
e99b0bf739 Bug 1475228 - Make asynchronous compile APIs take SourceBufferHolders r=jandem 2018-07-17 14:30:23 +01:00
Andreea Pavel
5c486b2ecc Backed out 8 changesets (bug 1475228) for wpt failures e.g. html/semantics/scripting-1/the-script-element/execution-timing/088.html on a CLOSED TREE
Backed out changeset b2d18ea619ec (bug 1475228)
Backed out changeset 45d3ffe3308e (bug 1475228)
Backed out changeset 02b27f8441be (bug 1475228)
Backed out changeset b82c2cf4b3f1 (bug 1475228)
Backed out changeset 2bc8f24dc3fc (bug 1475228)
Backed out changeset 6104ea971587 (bug 1475228)
Backed out changeset 7c83633262db (bug 1475228)
Backed out changeset 34fb24d52f08 (bug 1475228)
2018-07-30 16:49:02 +03:00
Jon Coppeard
33a252a87a Bug 1475228 - Allocate script loader source buffers on the JS heap and pass ownership when compiling r=baku 2018-07-17 14:30:24 +01:00
Jon Coppeard
b4d5140959 Bug 1475228 - Don't ignore errors returned from ScriptLoader::AttemptAsyncScriptCompile() r=baku 2018-07-17 14:30:23 +01:00
Jon Coppeard
0c0290e986 Bug 1475228 - Refactor ScriptLoader::GetScriptSource() to remove inline data argument r=baku 2018-07-17 14:30:23 +01:00
Jon Coppeard
3a449ea91d Bug 1475228 - Make asynchronous compile APIs take SourceBufferHolders r=jandem 2018-07-17 14:30:23 +01:00
Brian Hackett
547f9e5b35 Bug 1470795 Part 5 - Update content parse users for API movement, r=froydnj. 2018-07-23 21:45:33 +00:00