Commit 28091394 authored by Nicolas Pena's avatar Nicolas Pena Committed by Commit Bot

Add static strings for PerformanceEntry types

This CL adds static strings for the various PerformanceEntry types by using
the the make_names template. This removes the need for thread-safe copies.

Bug: 852050
Change-Id: Ie37d3022c25bb354d335edebbc08e78de0ccbd7a
Reviewed-on: https://chromium-review.googlesource.com/1187377Reviewed-by: default avatarJeremy Roman <jbroman@chromium.org>
Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585864}
parent c1b544a8
...@@ -1327,6 +1327,11 @@ make_names("make_core_generated_input_mode_names") { ...@@ -1327,6 +1327,11 @@ make_names("make_core_generated_input_mode_names") {
output_dir = blink_core_output_dir output_dir = blink_core_output_dir
} }
make_names("make_core_generated_performance_entry_names") {
in_files = [ "timing/performance_entry_names.json5" ]
output_dir = blink_core_output_dir
}
# make_qualified_names --------------------------------------------------------- # make_qualified_names ---------------------------------------------------------
make_qualified_names("make_core_generated_math_ml_names") { make_qualified_names("make_core_generated_math_ml_names") {
...@@ -1587,6 +1592,7 @@ targets_generating_sources = [ ...@@ -1587,6 +1592,7 @@ targets_generating_sources = [
":make_core_generated_math_ml_names", ":make_core_generated_math_ml_names",
":make_core_generated_media_feature_names", ":make_core_generated_media_feature_names",
":make_core_generated_media_type_names", ":make_core_generated_media_type_names",
":make_core_generated_performance_entry_names",
":make_core_generated_origin_trials", ":make_core_generated_origin_trials",
":make_core_generated_style_property_shorthand", ":make_core_generated_style_property_shorthand",
":make_core_generated_svg_names", ":make_core_generated_svg_names",
......
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
#include "third_party/blink/renderer/core/input_type_names.h" #include "third_party/blink/renderer/core/input_type_names.h"
#include "third_party/blink/renderer/core/mathml_names.h" #include "third_party/blink/renderer/core/mathml_names.h"
#include "third_party/blink/renderer/core/media_type_names.h" #include "third_party/blink/renderer/core/media_type_names.h"
#include "third_party/blink/renderer/core/performance_entry_names.h"
#include "third_party/blink/renderer/core/svg_names.h" #include "third_party/blink/renderer/core/svg_names.h"
#include "third_party/blink/renderer/core/workers/worker_thread.h" #include "third_party/blink/renderer/core/workers/worker_thread.h"
#include "third_party/blink/renderer/core/xlink_names.h" #include "third_party/blink/renderer/core/xlink_names.h"
...@@ -104,7 +105,8 @@ void CoreInitializer::Initialize() { ...@@ -104,7 +105,8 @@ void CoreInitializer::Initialize() {
InputModeNames::InputModeNamesCount + InputModeNames::InputModeNamesCount +
InputTypeNames::InputTypeNamesCount + InputTypeNames::InputTypeNamesCount +
MediaFeatureNames::MediaFeatureNamesCount + MediaFeatureNames::MediaFeatureNamesCount +
MediaTypeNames::MediaTypeNamesCount; MediaTypeNames::MediaTypeNamesCount +
PerformanceEntryNames::PerformanceEntryNamesCount;
StringImpl::ReserveStaticStringsCapacityForSize( StringImpl::ReserveStaticStringsCapacityForSize(
kCoreStaticStringsCount + StringImpl::AllStaticStrings().size()); kCoreStaticStringsCount + StringImpl::AllStaticStrings().size());
...@@ -130,6 +132,7 @@ void CoreInitializer::Initialize() { ...@@ -130,6 +132,7 @@ void CoreInitializer::Initialize() {
InputTypeNames::init(); InputTypeNames::init();
MediaFeatureNames::init(); MediaFeatureNames::init();
MediaTypeNames::init(); MediaTypeNames::init();
PerformanceEntryNames::init();
MediaQueryEvaluator::Init(); MediaQueryEvaluator::Init();
CSSParserTokenRange::InitStaticEOFToken(); CSSParserTokenRange::InitStaticEOFToken();
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "base/atomic_sequence_num.h" #include "base/atomic_sequence_num.h"
#include "third_party/blink/renderer/bindings/core/v8/script_value.h" #include "third_party/blink/renderer/bindings/core/v8/script_value.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h" #include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h"
#include "third_party/blink/renderer/core/performance_entry_names.h"
namespace blink { namespace blink {
...@@ -58,89 +59,25 @@ DOMHighResTimeStamp PerformanceEntry::duration() const { ...@@ -58,89 +59,25 @@ DOMHighResTimeStamp PerformanceEntry::duration() const {
return duration_; return duration_;
} }
const AtomicString& PerformanceEntry::EventKeyword() {
DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<AtomicString>, event, ());
if (!event.IsSet())
*event = "event";
return *event;
}
const AtomicString& PerformanceEntry::FirstInputKeyword() {
DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<AtomicString>, firstInput, ());
if (!firstInput.IsSet())
*firstInput = "firstInput";
return *firstInput;
}
const AtomicString& PerformanceEntry::LongtaskKeyword() {
DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<AtomicString>, longtask, ());
if (!longtask.IsSet())
*longtask = "longtask";
return *longtask;
}
const AtomicString& PerformanceEntry::MarkKeyword() {
DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<AtomicString>, mark, ());
if (!mark.IsSet())
*mark = "mark";
return *mark;
}
const AtomicString& PerformanceEntry::MeasureKeyword() {
DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<AtomicString>, measure, ());
if (!measure.IsSet())
*measure = "measure";
return *measure;
}
const AtomicString& PerformanceEntry::NavigationKeyword() {
DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<AtomicString>, navigation, ());
if (!navigation.IsSet())
*navigation = "navigation";
return *navigation;
}
const AtomicString& PerformanceEntry::PaintKeyword() {
DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<AtomicString>, paint, ());
if (!paint.IsSet())
*paint = "paint";
return *paint;
}
const AtomicString& PerformanceEntry::ResourceKeyword() {
DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<AtomicString>, resource, ());
if (!resource.IsSet())
*resource = "resource";
return *resource;
}
const AtomicString& PerformanceEntry::TaskattributionKeyword() {
DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<AtomicString>, taskattribution,
());
if (!taskattribution.IsSet())
*taskattribution = "taskattribution";
return *taskattribution;
}
PerformanceEntry::EntryType PerformanceEntry::ToEntryTypeEnum( PerformanceEntry::EntryType PerformanceEntry::ToEntryTypeEnum(
const AtomicString& entry_type) { const AtomicString& entry_type) {
if (entry_type == LongtaskKeyword()) if (entry_type == PerformanceEntryNames::longtask)
return kLongTask; return kLongTask;
if (entry_type == MarkKeyword()) if (entry_type == PerformanceEntryNames::mark)
return kMark; return kMark;
if (entry_type == MeasureKeyword()) if (entry_type == PerformanceEntryNames::measure)
return kMeasure; return kMeasure;
if (entry_type == ResourceKeyword()) if (entry_type == PerformanceEntryNames::resource)
return kResource; return kResource;
if (entry_type == NavigationKeyword()) if (entry_type == PerformanceEntryNames::navigation)
return kNavigation; return kNavigation;
if (entry_type == TaskattributionKeyword()) if (entry_type == PerformanceEntryNames::taskattribution)
return kTaskAttribution; return kTaskAttribution;
if (entry_type == PaintKeyword()) if (entry_type == PerformanceEntryNames::paint)
return kPaint; return kPaint;
if (entry_type == EventKeyword()) if (entry_type == PerformanceEntryNames::event)
return kEvent; return kEvent;
if (entry_type == FirstInputKeyword()) if (entry_type == PerformanceEntryNames::firstInput)
return kFirstInput; return kFirstInput;
return kInvalid; return kInvalid;
} }
......
...@@ -89,15 +89,6 @@ class CORE_EXPORT PerformanceEntry : public ScriptWrappable { ...@@ -89,15 +89,6 @@ class CORE_EXPORT PerformanceEntry : public ScriptWrappable {
return a->startTime() < b->startTime(); return a->startTime() < b->startTime();
} }
static const AtomicString& EventKeyword();
static const AtomicString& FirstInputKeyword();
static const AtomicString& LongtaskKeyword();
static const AtomicString& MarkKeyword();
static const AtomicString& MeasureKeyword();
static const AtomicString& NavigationKeyword();
static const AtomicString& PaintKeyword();
static const AtomicString& ResourceKeyword();
static const AtomicString& TaskattributionKeyword();
static PerformanceEntry::EntryType ToEntryTypeEnum( static PerformanceEntry::EntryType ToEntryTypeEnum(
const AtomicString& entry_type); const AtomicString& entry_type);
......
{
metadata: {
namespace: "PerformanceEntry",
export: "CORE_EXPORT",
},
data: [
"event",
"firstInput",
"longtask",
"mark",
"measure",
"navigation",
"paint",
"resource",
"taskattribution",
],
}
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "third_party/blink/renderer/core/timing/performance_event_timing.h" #include "third_party/blink/renderer/core/timing/performance_event_timing.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h" #include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h"
#include "third_party/blink/renderer/core/performance_entry_names.h"
namespace blink { namespace blink {
...@@ -18,16 +19,16 @@ PerformanceEventTiming* PerformanceEventTiming::Create( ...@@ -18,16 +19,16 @@ PerformanceEventTiming* PerformanceEventTiming::Create(
// TODO(npm): enable this DCHECK once https://crbug.com/852846 is fixed. // TODO(npm): enable this DCHECK once https://crbug.com/852846 is fixed.
// DCHECK_LE(start_time, processing_start); // DCHECK_LE(start_time, processing_start);
DCHECK_LE(processing_start, processing_end); DCHECK_LE(processing_start, processing_end);
return new PerformanceEventTiming( return new PerformanceEventTiming(event_type, PerformanceEntryNames::event,
event_type, PerformanceEntry::EventKeyword(), start_time, start_time, processing_start,
processing_start, processing_end, cancelable); processing_end, cancelable);
} }
// static // static
PerformanceEventTiming* PerformanceEventTiming::CreateFirstInputTiming( PerformanceEventTiming* PerformanceEventTiming::CreateFirstInputTiming(
PerformanceEventTiming* entry) { PerformanceEventTiming* entry) {
PerformanceEventTiming* first_input = new PerformanceEventTiming( PerformanceEventTiming* first_input = new PerformanceEventTiming(
entry->name(), PerformanceEntry::FirstInputKeyword(), entry->startTime(), entry->name(), PerformanceEntryNames::firstInput, entry->startTime(),
entry->processingStart(), entry->processingEnd(), entry->cancelable()); entry->processingStart(), entry->processingEnd(), entry->cancelable());
first_input->SetDuration(entry->duration()); first_input->SetDuration(entry->duration());
return first_input; return first_input;
...@@ -49,7 +50,7 @@ PerformanceEventTiming::PerformanceEventTiming( ...@@ -49,7 +50,7 @@ PerformanceEventTiming::PerformanceEventTiming(
PerformanceEventTiming::~PerformanceEventTiming() = default; PerformanceEventTiming::~PerformanceEventTiming() = default;
PerformanceEntryType PerformanceEventTiming::EntryTypeEnum() const { PerformanceEntryType PerformanceEventTiming::EntryTypeEnum() const {
return entry_type_ == PerformanceEntry::EventKeyword() return entry_type_ == PerformanceEntryNames::event
? PerformanceEntry::EntryType::kEvent ? PerformanceEntry::EntryType::kEvent
: PerformanceEntry::EntryType::kFirstInput; : PerformanceEntry::EntryType::kFirstInput;
} }
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h" #include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h"
#include "third_party/blink/renderer/core/frame/dom_window.h" #include "third_party/blink/renderer/core/frame/dom_window.h"
#include "third_party/blink/renderer/core/performance_entry_names.h"
#include "third_party/blink/renderer/core/timing/sub_task_attribution.h" #include "third_party/blink/renderer/core/timing/sub_task_attribution.h"
#include "third_party/blink/renderer/core/timing/task_attribution_timing.h" #include "third_party/blink/renderer/core/timing/task_attribution_timing.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
...@@ -56,7 +57,7 @@ PerformanceLongTaskTiming::PerformanceLongTaskTiming( ...@@ -56,7 +57,7 @@ PerformanceLongTaskTiming::PerformanceLongTaskTiming(
PerformanceLongTaskTiming::~PerformanceLongTaskTiming() = default; PerformanceLongTaskTiming::~PerformanceLongTaskTiming() = default;
AtomicString PerformanceLongTaskTiming::entryType() const { AtomicString PerformanceLongTaskTiming::entryType() const {
return PerformanceEntry::LongtaskKeyword(); return PerformanceEntryNames::longtask;
} }
PerformanceEntryType PerformanceLongTaskTiming::EntryTypeEnum() const { PerformanceEntryType PerformanceLongTaskTiming::EntryTypeEnum() const {
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "third_party/blink/renderer/bindings/core/v8/script_value.h" #include "third_party/blink/renderer/bindings/core/v8/script_value.h"
#include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h" #include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h"
#include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_factory.h" #include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_factory.h"
#include "third_party/blink/renderer/core/performance_entry_names.h"
namespace blink { namespace blink {
...@@ -22,7 +23,7 @@ PerformanceMark::PerformanceMark(ScriptState* script_state, ...@@ -22,7 +23,7 @@ PerformanceMark::PerformanceMark(ScriptState* script_state,
} }
AtomicString PerformanceMark::entryType() const { AtomicString PerformanceMark::entryType() const {
return PerformanceEntry::MarkKeyword(); return PerformanceEntryNames::mark;
} }
PerformanceEntryType PerformanceMark::EntryTypeEnum() const { PerformanceEntryType PerformanceMark::EntryTypeEnum() const {
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "third_party/blink/renderer/bindings/core/v8/script_value.h" #include "third_party/blink/renderer/bindings/core/v8/script_value.h"
#include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h" #include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h"
#include "third_party/blink/renderer/core/performance_entry_names.h"
namespace blink { namespace blink {
...@@ -30,7 +31,7 @@ ScriptValue PerformanceMeasure::detail(ScriptState* script_state) const { ...@@ -30,7 +31,7 @@ ScriptValue PerformanceMeasure::detail(ScriptState* script_state) const {
} }
AtomicString PerformanceMeasure::entryType() const { AtomicString PerformanceMeasure::entryType() const {
return PerformanceEntry::MeasureKeyword(); return PerformanceEntryNames::measure;
} }
PerformanceEntryType PerformanceMeasure::EntryTypeEnum() const { PerformanceEntryType PerformanceMeasure::EntryTypeEnum() const {
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/loader/document_load_timing.h" #include "third_party/blink/renderer/core/loader/document_load_timing.h"
#include "third_party/blink/renderer/core/loader/document_loader.h" #include "third_party/blink/renderer/core/loader/document_loader.h"
#include "third_party/blink/renderer/core/performance_entry_names.h"
#include "third_party/blink/renderer/core/timing/performance.h" #include "third_party/blink/renderer/core/timing/performance.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_timing_info.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_timing_info.h"
...@@ -35,7 +36,7 @@ PerformanceNavigationTiming::PerformanceNavigationTiming( ...@@ -35,7 +36,7 @@ PerformanceNavigationTiming::PerformanceNavigationTiming(
PerformanceNavigationTiming::~PerformanceNavigationTiming() = default; PerformanceNavigationTiming::~PerformanceNavigationTiming() = default;
AtomicString PerformanceNavigationTiming::entryType() const { AtomicString PerformanceNavigationTiming::entryType() const {
return PerformanceEntry::NavigationKeyword(); return PerformanceEntryNames::navigation;
} }
PerformanceEntryType PerformanceNavigationTiming::EntryTypeEnum() const { PerformanceEntryType PerformanceNavigationTiming::EntryTypeEnum() const {
...@@ -118,7 +119,7 @@ AtomicString PerformanceNavigationTiming::GetNavigationType( ...@@ -118,7 +119,7 @@ AtomicString PerformanceNavigationTiming::GetNavigationType(
} }
AtomicString PerformanceNavigationTiming::initiatorType() const { AtomicString PerformanceNavigationTiming::initiatorType() const {
return PerformanceEntry::NavigationKeyword(); return PerformanceEntryNames::navigation;
} }
bool PerformanceNavigationTiming::GetAllowRedirectDetails() const { bool PerformanceNavigationTiming::GetAllowRedirectDetails() const {
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "third_party/blink/renderer/core/timing/performance_paint_timing.h" #include "third_party/blink/renderer/core/timing/performance_paint_timing.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h" #include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h"
#include "third_party/blink/renderer/core/performance_entry_names.h"
namespace blink { namespace blink {
...@@ -38,7 +39,7 @@ PerformancePaintTiming::PerformancePaintTiming(PaintType type, ...@@ -38,7 +39,7 @@ PerformancePaintTiming::PerformancePaintTiming(PaintType type,
PerformancePaintTiming::~PerformancePaintTiming() = default; PerformancePaintTiming::~PerformancePaintTiming() = default;
AtomicString PerformancePaintTiming::entryType() const { AtomicString PerformancePaintTiming::entryType() const {
return PerformanceEntry::PaintKeyword(); return PerformanceEntryNames::paint;
} }
PerformanceEntryType PerformancePaintTiming::EntryTypeEnum() const { PerformanceEntryType PerformancePaintTiming::EntryTypeEnum() const {
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "third_party/blink/public/platform/web_resource_timing_info.h" #include "third_party/blink/public/platform/web_resource_timing_info.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h" #include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h"
#include "third_party/blink/renderer/core/performance_entry_names.h"
#include "third_party/blink/renderer/core/timing/performance.h" #include "third_party/blink/renderer/core/timing/performance.h"
#include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h" #include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_request.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
...@@ -87,7 +88,7 @@ PerformanceResourceTiming::PerformanceResourceTiming( ...@@ -87,7 +88,7 @@ PerformanceResourceTiming::PerformanceResourceTiming(
PerformanceResourceTiming::~PerformanceResourceTiming() = default; PerformanceResourceTiming::~PerformanceResourceTiming() = default;
AtomicString PerformanceResourceTiming::entryType() const { AtomicString PerformanceResourceTiming::entryType() const {
return PerformanceEntry::ResourceKeyword(); return PerformanceEntryNames::resource;
} }
PerformanceEntryType PerformanceResourceTiming::EntryTypeEnum() const { PerformanceEntryType PerformanceResourceTiming::EntryTypeEnum() const {
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h" #include "third_party/blink/renderer/bindings/core/v8/v8_object_builder.h"
#include "third_party/blink/renderer/core/frame/dom_window.h" #include "third_party/blink/renderer/core/frame/dom_window.h"
#include "third_party/blink/renderer/core/performance_entry_names.h"
namespace blink { namespace blink {
...@@ -27,7 +28,7 @@ TaskAttributionTiming::TaskAttributionTiming(const AtomicString& name, ...@@ -27,7 +28,7 @@ TaskAttributionTiming::TaskAttributionTiming(const AtomicString& name,
TaskAttributionTiming::~TaskAttributionTiming() = default; TaskAttributionTiming::~TaskAttributionTiming() = default;
AtomicString TaskAttributionTiming::entryType() const { AtomicString TaskAttributionTiming::entryType() const {
return PerformanceEntry::TaskattributionKeyword(); return PerformanceEntryNames::taskattribution;
} }
PerformanceEntryType TaskAttributionTiming::EntryTypeEnum() const { PerformanceEntryType TaskAttributionTiming::EntryTypeEnum() const {
......
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