Commit d73e6280 authored by Hiroshige Hayashizaki's avatar Hiroshige Hayashizaki Committed by Commit Bot

Add UMA for script scheduling type

Bug: 856922
Change-Id: Ia294d6c2a1b418b9a7f46ab41c574a4eace8c626
Reviewed-on: https://chromium-review.googlesource.com/1116508
Commit-Queue: Hiroshige Hayashizaki <hiroshige@chromium.org>
Reviewed-by: default avatarKouhei Ueno <kouhei@chromium.org>
Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573816}
parent c98446b5
...@@ -47,6 +47,7 @@ ...@@ -47,6 +47,7 @@
#include "third_party/blink/renderer/core/script/script_element_base.h" #include "third_party/blink/renderer/core/script/script_element_base.h"
#include "third_party/blink/renderer/core/script/script_runner.h" #include "third_party/blink/renderer/core/script/script_runner.h"
#include "third_party/blink/renderer/core/svg_names.h" #include "third_party/blink/renderer/core/svg_names.h"
#include "third_party/blink/renderer/platform/histogram.h"
#include "third_party/blink/renderer/platform/loader/fetch/access_control_status.h" #include "third_party/blink/renderer/platform/loader/fetch/access_control_status.h"
#include "third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h" #include "third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h"
...@@ -730,6 +731,11 @@ PendingScript* ScriptLoader::TakePendingScript( ...@@ -730,6 +731,11 @@ PendingScript* ScriptLoader::TakePendingScript(
ScriptSchedulingType scheduling_type) { ScriptSchedulingType scheduling_type) {
CHECK(prepared_pending_script_); CHECK(prepared_pending_script_);
DEFINE_STATIC_LOCAL(
EnumerationHistogram, scheduling_type_histogram,
("Blink.Script.SchedulingType", kLastScriptSchedulingType + 1));
scheduling_type_histogram.Count(static_cast<int>(scheduling_type));
switch (scheduling_type) { switch (scheduling_type) {
case ScriptSchedulingType::kAsync: case ScriptSchedulingType::kAsync:
case ScriptSchedulingType::kInOrder: case ScriptSchedulingType::kInOrder:
......
...@@ -12,6 +12,9 @@ namespace blink { ...@@ -12,6 +12,9 @@ namespace blink {
// In the spec, this is determined which clause of Step 25 of // In the spec, this is determined which clause of Step 25 of
// https://html.spec.whatwg.org/multipage/scripting.html#prepare-a-script // https://html.spec.whatwg.org/multipage/scripting.html#prepare-a-script
// is taken. // is taken.
//
// The enum values are used in histograms and thus do not change existing
// enum values when modifying.
enum class ScriptSchedulingType { enum class ScriptSchedulingType {
// Because the sheduling type is determined slightly after PendingScript // Because the sheduling type is determined slightly after PendingScript
// creation, it is set to kNotSet before ScriptLoader::TakePendingScript() // creation, it is set to kNotSet before ScriptLoader::TakePendingScript()
...@@ -62,6 +65,9 @@ enum class ScriptSchedulingType { ...@@ -62,6 +65,9 @@ enum class ScriptSchedulingType {
kImmediate kImmediate
}; };
static const int kLastScriptSchedulingType =
static_cast<int>(ScriptSchedulingType::kImmediate);
} // namespace blink } // namespace blink
#endif #endif
...@@ -41861,6 +41861,16 @@ Called by update_net_trust_anchors.py.--> ...@@ -41861,6 +41861,16 @@ Called by update_net_trust_anchors.py.-->
<int value="9" label="Rollback: SBER2 absent so SBER1 must be cleared"/> <int value="9" label="Rollback: SBER2 absent so SBER1 must be cleared"/>
</enum> </enum>
<enum name="ScriptSchedulingType">
<int value="0" label="NotSet"/>
<int value="1" label="Defer"/>
<int value="2" label="ParserBlocking"/>
<int value="3" label="ParserBlockingInline"/>
<int value="4" label="InOrder"/>
<int value="5" label="Async"/>
<int value="6" label="Immediate"/>
</enum>
<enum name="ScrollAnchorRestorationStatus"> <enum name="ScrollAnchorRestorationStatus">
<int value="0" label="SUCCESS"/> <int value="0" label="SUCCESS"/>
<int value="1" label="FAILED_NO_MATCHES"/> <int value="1" label="FAILED_NO_MATCHES"/>
...@@ -8493,6 +8493,16 @@ uploading your change for review. ...@@ -8493,6 +8493,16 @@ uploading your change for review.
</summary> </summary>
</histogram> </histogram>
<histogram name="Blink.Script.SchedulingType" enum="ScriptSchedulingType"
expires_after="2018-12-31">
<owner>kouhei@chromium.org</owner>
<owner>hiroshige@chromium.org</owner>
<summary>
Number of script elements for each scheduling type, recorded for each
successful #prepare-a-script.
</summary>
</histogram>
<histogram name="Blink.ScriptValueSerializer.DOMWrapperCount" units="objects"> <histogram name="Blink.ScriptValueSerializer.DOMWrapperCount" units="objects">
<obsolete> <obsolete>
Used to justify distribution of serialized data in the wild, but unlikely to Used to justify distribution of serialized data in the wild, but unlikely to
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