gecko-dev/toolkit/components/startup/StartupTimeline.cpp
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00

55 lines
1.6 KiB
C++

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "StartupTimeline.h"
#include "mozilla/Telemetry.h"
#include "mozilla/TimeStamp.h"
#include "nsXULAppAPI.h"
namespace mozilla {
TimeStamp StartupTimeline::sStartupTimeline[StartupTimeline::MAX_EVENT_ID];
const char
*StartupTimeline::sStartupTimelineDesc[StartupTimeline::MAX_EVENT_ID] = {
#define mozilla_StartupTimeline_Event(ev, desc) desc,
#include "StartupTimeline.h"
#undef mozilla_StartupTimeline_Event
};
} /* namespace mozilla */
using mozilla::StartupTimeline;
using mozilla::TimeStamp;
/**
* The XRE_StartupTimeline_Record function is to be used by embedding
* applications that can't use mozilla::StartupTimeline::Record() directly.
*
* @param aEvent The event to be recorded, must correspond to an element of the
* mozilla::StartupTimeline::Event enumartion
* @param aWhen The time at which the event happened
*/
void XRE_StartupTimelineRecord(int aEvent, TimeStamp aWhen) {
StartupTimeline::Record((StartupTimeline::Event)aEvent, aWhen);
}
void StartupTimeline::RecordOnce(Event ev) {
if (HasRecord(ev)) {
return;
}
Record(ev);
// Record first paint timestamp as a scalar.
if (ev == FIRST_PAINT) {
bool error = false;
uint32_t firstPaintTime =
(uint32_t)(Get(ev) - TimeStamp::ProcessCreation(&error))
.ToMilliseconds();
if (!error) {
Telemetry::ScalarSet(Telemetry::ScalarID::TIMESTAMPS_FIRST_PAINT,
firstPaintTime);
}
}
}