This reverts commit 524a1fc191.
Revert "Bug 2020707 - Part 5: Gate speculation rules script support behind a pref. r=dom-core-reviewers,jjaschke"
This reverts commit 11741d18ad.
Revert "Bug 2020707 - Part 4: Unregister speculation rules when their script element is removed. r=dom-core-reviewers,hsivonen"
This reverts commit 5202943dc9.
Revert "Bug 2020707 - Part 3: Report an exception if speculation rules parsing fails. r=dom-core-reviewers,jjaschke"
This reverts commit 70c5aa5425.
Revert "Bug 2020707 - Part 2: Add support for speculationrules script type. r=dom-core-reviewers,jjaschke"
This reverts commit 65b30a350b.
Revert "Bug 2020707 - Part 1: Allow speculation rules to be registered to the document from scripts. r=hsivonen,jjaschke"
This reverts commit 28c7050de9.
Revert "Bug 2020704 - Part 2: Add parser for speculation rule sets. r=hsivonen,jjaschke"
This reverts commit eabb8c6eb3.
Revert "Bug 2020704 - Part 1: Add speculation rules crate. r=dom-core-reviewers,jjaschke"
This reverts commit cd65bed005.
This fixes a race condition in the nytimes awsy test when speculation for link preload scripts is enabled. The same problem exists for async speculation. The element is created while the link preload script is still compiling. This puts the script in the `mLoadingAsyncScripts` list (which is correct). Then when the script is finished compiling, it calls `ProcessOffThreadRequest` which sets the script to ready and then checks if the script is already in a list. Since this script is already in the loading list, it is not processed and the script is left in the `mLoadingAsyncScripts` forever. The fix is to move the script to the `mLoadedAsyncScripts` list if this happens so it can be processed later in ProcessPendingRequests.
Differential Revision: https://phabricator.services.mozilla.com/D303368
This patch moves the BlockingErrorCode table and the
IsClassifierBlockingErrorCode / IsClassifierBlockingEventCode /
GetClassifierBlockingEventCode / ClassifierBlockingErrorCodeToConsoleMessage
helpers from UrlClassifierFeatureFactory into ChannelClassifierUtils so the
latter no longer needs to depend on UrlClassifierFeatureFactory.h.
Differential Revision: https://phabricator.services.mozilla.com/D301722
This patch moves relevant APIs that interact with the channel to a
separate ClassifierChannelUtils class from the URLClassifierCommon.
The ClassifierChannelUtils shares between the UrlClassifier and
the ContentClassifier.
Differential Revision: https://phabricator.services.mozilla.com/D301027
LoadedScript::{IsTextSource,IsSerializedStencil} accessors can return
false once it's converted to cache.
Most of the consumers need the flag to branch on the server response, before
converting to cache.
Add assertions to avoid accidental use.
Differential Revision: https://phabricator.services.mozilla.com/D299926
The subsequent patches will restrict the ScriptLoadRequest's IsTextSource and
IsSerializedStencil accessors usage, so that they can be used only before
they're converted to cached stencil.
This patch rewrites their consumer after that point to directly use the
underlying LoadedScript accessors and methods.
Differential Revision: https://phabricator.services.mozilla.com/D299924
ModuleScript is used only as the place to hold the compilation and evaluation
result of modules, and it's no longer necessary to be a LoadedScript subclass.
This makes all LoadedScript instances GC-free, and the module's LoadedScript
(temporailry renamed to LoadedModuleScript) can directly be stored into the
SharedScriptCache.
The subsequent patches will cleanup the LoadedScript, its subclasses, and
their consumers.
Differential Revision: https://phabricator.services.mozilla.com/D299916
On memory pressure, the stencil held only for the cache should be released.
In that situation, the LoadedScript instances can still be held by
ScriptLoadRequest etc, and thus the LoadedScript instance itself should be kept
alive, while the stencil pointer being released.
Differential Revision: https://phabricator.services.mozilla.com/D294601
The later patches will make the LoadedScript::mStencil specific to the cached
stencil type.
The non-stencil-navigation's disk cache handling is almost same as the
cached stencil, so reuse it.
Differential Revision: https://phabricator.services.mozilla.com/D294598
If the stencil navigation is enabled and the current request's stencil
is not going to be stored into the in-memory cache, we can clear it immediately.
Differential Revision: https://phabricator.services.mozilla.com/D294596
In order to avoid keeping the scripts and modules unnecessarily longer,
the delazification collection should also be stopped after a while.
Differential Revision: https://phabricator.services.mozilla.com/D294595
JS::StartCollectingDelazifications doesn't start collection if the script
contains asm.js, because XDR is not supported.
In order to avoid keeping the script references unnecessarily on the consumer
distinguish the case where the collection isn't started.
Differential Revision: https://phabricator.services.mozilla.com/D294593
In order to stop collecting delazifications, hold any newly-started collections'
scripts and modules.
The later patches will add the code to stop on each situation.
Differential Revision: https://phabricator.services.mozilla.com/D294590
This reverts commit 1e6f986667.
Revert "Bug 2031078 - Part 5: Stop collecting delazifications on memory pressure. r=bthrall"
This reverts commit 52e7376bc2.
Revert "Bug 2031078 - Part 4: Distinguish the call JS::StartCollectingDelazifications on a script with asm.js. r=bthrall"
This reverts commit 62233eb1f0.
Revert "Bug 2031078 - Part 3: Ignore JS::AbortCollectingDelazifications call on not-collecting cases. r=bthrall"
This reverts commit a51e0ee4eb.
Revert "Bug 2031078 - Part 2: Make JS::AbortCollectingDelazifications take raw pointer. r=bthrall"
This reverts commit 285dd9183b.
Revert "Bug 2031078 - Part 1: Hold scripts and modules while collecting delazifications. r=bthrall,mccr8"
This reverts commit 0c81cde149.
In order to avoid keeping the scripts and modules unnecessarily longer,
the delazification collection should also be stopped after a while.
Differential Revision: https://phabricator.services.mozilla.com/D294595
JS::StartCollectingDelazifications doesn't start collection if the script
contains asm.js, because XDR is not supported.
In order to avoid keeping the script references unnecessarily on the consumer
distinguish the case where the collection isn't started.
Differential Revision: https://phabricator.services.mozilla.com/D294593
In order to stop collecting delazifications, hold any newly-started collections'
scripts and modules.
The later patches will add the code to stop on each situation.
Differential Revision: https://phabricator.services.mozilla.com/D294590
Same as base URL, the mReferrerPolicy reflects the server response, and it
need to be retained for the cached case.
The existing consumers use the ScriptFetchInfo field.
Differential Revision: https://phabricator.services.mozilla.com/D294343
The existing consumers of the base URL now use the
ScriptFetchInfo::mBaseURL, and then the LoadedScript::mBaseURL
is renmaed to LoadedScript::mCachedBaseURL, used only by cached stencil case,
to retain the server responses for the subsequent requests.
Differential Revision: https://phabricator.services.mozilla.com/D294342
The subsequent patches will remove the fields from LoadedScript, and then
use the ScriptLoadRequest::mFetchInfo instead.
The LoadedScript variant of ScriptHashKey is no longer necessary.
Differential Revision: https://phabricator.services.mozilla.com/D294340
Replace the all places that stores and uses the script/module private to use
ScriptFetchInfo instead of LoadedScript/ModuleScript, so that the
LoadedScript/ModuleScript can be released earlier.
Differential Revision: https://phabricator.services.mozilla.com/D294339
There are two places that try to put the script private:
* JS::UpdateDebugMetadata, performed conditionally
* LoadedScript::AssociateWithScript, performed unconditionally,
except for conditionally on the script private itself
The former is unnecessary, so that the latter covers all cases.
Differential Revision: https://phabricator.services.mozilla.com/D294338
This reverts commit 260ad06a2e.
Revert "Bug 2031200 - Part 11: Repurpose LoadedScript::mReferrerPolicy for the cached case. r=bthrall"
This reverts commit cedffcba4e.
Revert "Bug 2031200 - Part 10: Repurpose LoadedScript::mBaseURL for the cached case. r=bthrall"
This reverts commit a4fd83ce4d.
Revert "Bug 2031200 - Part 9: Add ScriptLoadRequest::FetchOptions() accessor and remove LoadedScript::mFetchOptions. r=bthrall"
This reverts commit 66bc9492b3.
Revert "Bug 2031200 - Part 8: Remove ScriptHashKey constructor with LoadedScript. r=bthrall"
This reverts commit 5bb4928c8f.
Revert "Bug 2031200 - Part 7: Use ScriptFetchInfo for the script private and module private instead of LoadedScript. r=bthrall,allstarschh,dom-worker-reviewers,asuth"
This reverts commit 0011dfbdcc.
Revert "Bug 2031200 - Part 6: Do not pass private value to JS::UpdateDebugMetadata. r=bthrall"
This reverts commit 0e8a2f1032.
Revert "Bug 2031200 - Part 5: Sync ModuleScript::mForPreload and ScriptFetchInfo::mIsForModulePreload. r=bthrall"
This reverts commit 0f69b1fb94.
Revert "Bug 2031200 - Part 4: Sync LoadedScript::mBaseURL and ScriptFetchInfo::mBaseURL. r=bthrall,dom-worker-reviewers,asuth"
This reverts commit 472f447c9e.
Revert "Bug 2031200 - Part 3: Sync LoadedScript::mReferrerPolicy and ScriptFetchInfo::mReferrerPolicy. r=bthrall"
This reverts commit b5410280f5.
Revert "Bug 2031200 - Part 2: Remove obsolete code to sync the exact same field. r=bthrall"
This reverts commit 2b784b6e6f.
Revert "Bug 2031200 - Part 1: Add ScriptFetchInfo class and ScriptLoadRequest::mFetchInfo field. r=bthrall"
This reverts commit fc8d3b6c48.
Same as base URL, the mReferrerPolicy reflects the server response, and it
need to be retained for the cached case.
The existing consumers use the ScriptFetchInfo field.
Differential Revision: https://phabricator.services.mozilla.com/D294343
The existing consumers of the base URL now use the
ScriptFetchInfo::mBaseURL, and then the LoadedScript::mBaseURL
is renmaed to LoadedScript::mCachedBaseURL, used only by cached stencil case,
to retain the server responses for the subsequent requests.
Differential Revision: https://phabricator.services.mozilla.com/D294342