Commit d05b46dd authored by Kouhei Ueno's avatar Kouhei Ueno Committed by Commit Bot

UseCounter: Count ES6 modules instantiation

This should serve as a better proxy for measuring ES6 modules usage
in the wild.
Before this CL, we relied on kPrepareModuleScript, which only counts
ES6 module usage via <script type=module>, and no other invocation paths.
kInstantiateModuleScript will also cover module usage via dynamic import,
via workers, and others.

Bug: 594639
Change-Id: I5d1690fcfb7ea6ee9eac3beb22a4659a1410c561
Reviewed-on: https://chromium-review.googlesource.com/c/1314011Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarHiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604842}
parent 3d3b764b
...@@ -2064,6 +2064,7 @@ enum WebFeature { ...@@ -2064,6 +2064,7 @@ enum WebFeature {
kV8OptimizedFunctionWithOneShotBytecode = 2612, kV8OptimizedFunctionWithOneShotBytecode = 2612,
kSVGGeometryPropertyHasNonZeroUnitlessValue = 2613, kSVGGeometryPropertyHasNonZeroUnitlessValue = 2613,
kCSSValueAppearanceNoImplementationSkipBorder = 2614, kCSSValueAppearanceNoImplementationSkipBorder = 2614,
kInstantiateModuleScript = 2615,
// Add new features immediately above this line. Don't change assigned // Add new features immediately above this line. Don't change assigned
// numbers of any item, and don't reuse removed slots. // numbers of any item, and don't reuse removed slots.
// Also, run update_use_counter_feature_enum.py in // Also, run update_use_counter_feature_enum.py in
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/frame/use_counter.h"
#include "third_party/blink/renderer/core/loader/modulescript/module_script_fetch_request.h" #include "third_party/blink/renderer/core/loader/modulescript/module_script_fetch_request.h"
#include "third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h" #include "third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h"
#include "third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h" #include "third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h"
...@@ -189,6 +190,9 @@ ModuleImportMeta ModulatorImplBase::HostGetImportMetaProperties( ...@@ -189,6 +190,9 @@ ModuleImportMeta ModulatorImplBase::HostGetImportMetaProperties(
} }
ScriptValue ModulatorImplBase::InstantiateModule(ScriptModule script_module) { ScriptValue ModulatorImplBase::InstantiateModule(ScriptModule script_module) {
UseCounter::Count(GetExecutionContext(),
WebFeature::kInstantiateModuleScript);
ScriptState::Scope scope(script_state_); ScriptState::Scope scope(script_state_);
return script_module.Instantiate(script_state_); return script_module.Instantiate(script_state_);
} }
......
...@@ -20640,6 +20640,7 @@ Called by update_net_error_codes.py.--> ...@@ -20640,6 +20640,7 @@ Called by update_net_error_codes.py.-->
<int value="2612" label="V8OptimizedFunctionWithOneShotBytecode"/> <int value="2612" label="V8OptimizedFunctionWithOneShotBytecode"/>
<int value="2613" label="SVGGeometryPropertyHasNonZeroUnitlessValue"/> <int value="2613" label="SVGGeometryPropertyHasNonZeroUnitlessValue"/>
<int value="2614" label="CSSValueAppearanceNoImplementationSkipBorder"/> <int value="2614" label="CSSValueAppearanceNoImplementationSkipBorder"/>
<int value="2615" label="InstantiateModuleScript"/>
</enum> </enum>
<enum name="FeaturePolicyFeature"> <enum name="FeaturePolicyFeature">
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment