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") {
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_core_generated_math_ml_names") {
......@@ -1587,6 +1592,7 @@ targets_generating_sources = [
":make_core_generated_math_ml_names",
":make_core_generated_media_feature_names",
":make_core_generated_media_type_names",
":make_core_generated_performance_entry_names",
":make_core_generated_origin_trials",
":make_core_generated_style_property_shorthand",
":make_core_generated_svg_names",
......
......@@ -49,6 +49,7 @@
#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/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/workers/worker_thread.h"
#include "third_party/blink/renderer/core/xlink_names.h"
......@@ -104,7 +105,8 @@ void CoreInitializer::Initialize() {
InputModeNames::InputModeNamesCount +
InputTypeNames::InputTypeNamesCount +
MediaFeatureNames::MediaFeatureNamesCount +
MediaTypeNames::MediaTypeNamesCount;
MediaTypeNames::MediaTypeNamesCount +
PerformanceEntryNames::PerformanceEntryNamesCount;
StringImpl::ReserveStaticStringsCapacityForSize(
kCoreStaticStringsCount + StringImpl::AllStaticStrings().size());
......@@ -130,6 +132,7 @@ void CoreInitializer::Initialize() {
InputTypeNames::init();
MediaFeatureNames::init();
MediaTypeNames::init();
PerformanceEntryNames::init();
MediaQueryEvaluator::Init();
CSSParserTokenRange::InitStaticEOFToken();
......
......@@ -33,6 +33,7 @@
#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/v8_object_builder.h"
#include "third_party/blink/renderer/core/performance_entry_names.h"
namespace blink {
......@@ -58,89 +59,25 @@ DOMHighResTimeStamp PerformanceEntry::duration() const {
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(
const AtomicString& entry_type) {
if (entry_type == LongtaskKeyword())
if (entry_type == PerformanceEntryNames::longtask)
return kLongTask;
if (entry_type == MarkKeyword())
if (entry_type == PerformanceEntryNames::mark)
return kMark;
if (entry_type == MeasureKeyword())
if (entry_type == PerformanceEntryNames::measure)
return kMeasure;
if (entry_type == ResourceKeyword())
if (entry_type == PerformanceEntryNames::resource)
return kResource;
if (entry_type == NavigationKeyword())
if (entry_type == PerformanceEntryNames::navigation)
return kNavigation;
if (entry_type == TaskattributionKeyword())
if (entry_type == PerformanceEntryNames::taskattribution)
return kTaskAttribution;
if (entry_type == PaintKeyword())
if (entry_type == PerformanceEntryNames::paint)
return kPaint;
if (entry_type == EventKeyword())
if (entry_type == PerformanceEntryNames::event)
return kEvent;
if (entry_type == FirstInputKeyword())
if (entry_type == PerformanceEntryNames::firstInput)
return kFirstInput;
return kInvalid;
}
......
......@@ -89,15 +89,6 @@ class CORE_EXPORT PerformanceEntry : public ScriptWrappable {
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(
const AtomicString& entry_type);
......
{
metadata: {
namespace: "PerformanceEntry",
export: "CORE_EXPORT",
},
data: [
"event",
"firstInput",
"longtask",
"mark",
"measure",
"navigation",
"paint",
"resource",
"taskattribution",
],
}
......@@ -5,6 +5,7 @@
#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/core/performance_entry_names.h"
namespace blink {
......@@ -18,16 +19,16 @@ PerformanceEventTiming* PerformanceEventTiming::Create(
// TODO(npm): enable this DCHECK once https://crbug.com/852846 is fixed.
// DCHECK_LE(start_time, processing_start);
DCHECK_LE(processing_start, processing_end);
return new PerformanceEventTiming(
event_type, PerformanceEntry::EventKeyword(), start_time,
processing_start, processing_end, cancelable);
return new PerformanceEventTiming(event_type, PerformanceEntryNames::event,
start_time, processing_start,
processing_end, cancelable);
}
// static
PerformanceEventTiming* PerformanceEventTiming::CreateFirstInputTiming(
PerformanceEventTiming* entry) {
PerformanceEventTiming* first_input = new PerformanceEventTiming(
entry->name(), PerformanceEntry::FirstInputKeyword(), entry->startTime(),
entry->name(), PerformanceEntryNames::firstInput, entry->startTime(),
entry->processingStart(), entry->processingEnd(), entry->cancelable());
first_input->SetDuration(entry->duration());
return first_input;
......@@ -49,7 +50,7 @@ PerformanceEventTiming::PerformanceEventTiming(
PerformanceEventTiming::~PerformanceEventTiming() = default;
PerformanceEntryType PerformanceEventTiming::EntryTypeEnum() const {
return entry_type_ == PerformanceEntry::EventKeyword()
return entry_type_ == PerformanceEntryNames::event
? PerformanceEntry::EntryType::kEvent
: PerformanceEntry::EntryType::kFirstInput;
}
......
......@@ -6,6 +6,7 @@
#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/performance_entry_names.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/platform/runtime_enabled_features.h"
......@@ -56,7 +57,7 @@ PerformanceLongTaskTiming::PerformanceLongTaskTiming(
PerformanceLongTaskTiming::~PerformanceLongTaskTiming() = default;
AtomicString PerformanceLongTaskTiming::entryType() const {
return PerformanceEntry::LongtaskKeyword();
return PerformanceEntryNames::longtask;
}
PerformanceEntryType PerformanceLongTaskTiming::EntryTypeEnum() const {
......
......@@ -6,6 +6,7 @@
#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_factory.h"
#include "third_party/blink/renderer/core/performance_entry_names.h"
namespace blink {
......@@ -22,7 +23,7 @@ PerformanceMark::PerformanceMark(ScriptState* script_state,
}
AtomicString PerformanceMark::entryType() const {
return PerformanceEntry::MarkKeyword();
return PerformanceEntryNames::mark;
}
PerformanceEntryType PerformanceMark::EntryTypeEnum() const {
......
......@@ -6,6 +6,7 @@
#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/core/performance_entry_names.h"
namespace blink {
......@@ -30,7 +31,7 @@ ScriptValue PerformanceMeasure::detail(ScriptState* script_state) const {
}
AtomicString PerformanceMeasure::entryType() const {
return PerformanceEntry::MeasureKeyword();
return PerformanceEntryNames::measure;
}
PerformanceEntryType PerformanceMeasure::EntryTypeEnum() const {
......
......@@ -11,6 +11,7 @@
#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_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/platform/loader/fetch/resource_timing_info.h"
......@@ -35,7 +36,7 @@ PerformanceNavigationTiming::PerformanceNavigationTiming(
PerformanceNavigationTiming::~PerformanceNavigationTiming() = default;
AtomicString PerformanceNavigationTiming::entryType() const {
return PerformanceEntry::NavigationKeyword();
return PerformanceEntryNames::navigation;
}
PerformanceEntryType PerformanceNavigationTiming::EntryTypeEnum() const {
......@@ -118,7 +119,7 @@ AtomicString PerformanceNavigationTiming::GetNavigationType(
}
AtomicString PerformanceNavigationTiming::initiatorType() const {
return PerformanceEntry::NavigationKeyword();
return PerformanceEntryNames::navigation;
}
bool PerformanceNavigationTiming::GetAllowRedirectDetails() const {
......
......@@ -5,6 +5,7 @@
#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/core/performance_entry_names.h"
namespace blink {
......@@ -38,7 +39,7 @@ PerformancePaintTiming::PerformancePaintTiming(PaintType type,
PerformancePaintTiming::~PerformancePaintTiming() = default;
AtomicString PerformancePaintTiming::entryType() const {
return PerformanceEntry::PaintKeyword();
return PerformanceEntryNames::paint;
}
PerformanceEntryType PerformancePaintTiming::EntryTypeEnum() const {
......
......@@ -33,6 +33,7 @@
#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/core/performance_entry_names.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/resource_request.h"
......@@ -87,7 +88,7 @@ PerformanceResourceTiming::PerformanceResourceTiming(
PerformanceResourceTiming::~PerformanceResourceTiming() = default;
AtomicString PerformanceResourceTiming::entryType() const {
return PerformanceEntry::ResourceKeyword();
return PerformanceEntryNames::resource;
}
PerformanceEntryType PerformanceResourceTiming::EntryTypeEnum() const {
......
......@@ -6,6 +6,7 @@
#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/performance_entry_names.h"
namespace blink {
......@@ -27,7 +28,7 @@ TaskAttributionTiming::TaskAttributionTiming(const AtomicString& name,
TaskAttributionTiming::~TaskAttributionTiming() = default;
AtomicString TaskAttributionTiming::entryType() const {
return PerformanceEntry::TaskattributionKeyword();
return PerformanceEntryNames::taskattribution;
}
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