Bug 1857841 - pt 3. Add a new page kind named "fresh" r=glandium
[gecko.git] / dom / performance / PerformanceWorker.cpp
blob1c77910a788a81c9c2e288e01a19e320ab54aaaf
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #include "PerformanceWorker.h"
8 #include "mozilla/dom/WorkerScope.h"
9 #include "mozilla/StaticPrefs_dom.h"
11 namespace mozilla::dom {
13 PerformanceWorker::PerformanceWorker(WorkerGlobalScope* aGlobalScope)
14 : Performance(aGlobalScope) {
15 MOZ_ASSERT(aGlobalScope);
16 WorkerPrivate* workerPrivate = GetCurrentThreadWorkerPrivate();
17 MOZ_DIAGNOSTIC_ASSERT(workerPrivate);
18 workerPrivate->AssertIsOnWorkerThread();
21 PerformanceWorker::~PerformanceWorker() {
22 WorkerPrivate* workerPrivate = GetCurrentThreadWorkerPrivate();
23 if (workerPrivate) {
24 workerPrivate->AssertIsOnWorkerThread();
28 void PerformanceWorker::InsertUserEntry(PerformanceEntry* aEntry) {
29 if (StaticPrefs::dom_performance_enable_user_timing_logging()) {
30 nsAutoCString uri;
31 WorkerPrivate* workerPrivate = GetCurrentThreadWorkerPrivate();
32 MOZ_DIAGNOSTIC_ASSERT(workerPrivate);
33 nsCOMPtr<nsIURI> scriptURI = workerPrivate->GetResolvedScriptURI();
34 if (!scriptURI || NS_FAILED(scriptURI->GetHost(uri))) {
35 // If we have no URI, just put in "none".
36 uri.AssignLiteral("none");
38 Performance::LogEntry(aEntry, uri);
40 Performance::InsertUserEntry(aEntry);
43 TimeStamp PerformanceWorker::CreationTimeStamp() const {
44 WorkerPrivate* workerPrivate = GetCurrentThreadWorkerPrivate();
45 MOZ_DIAGNOSTIC_ASSERT(workerPrivate);
46 return workerPrivate->CreationTimeStamp();
49 DOMHighResTimeStamp PerformanceWorker::CreationTime() const {
50 WorkerPrivate* workerPrivate = GetCurrentThreadWorkerPrivate();
51 MOZ_DIAGNOSTIC_ASSERT(workerPrivate);
52 return workerPrivate->CreationTime();
55 uint64_t PerformanceWorker::GetRandomTimelineSeed() {
56 WorkerPrivate* workerPrivate = GetCurrentThreadWorkerPrivate();
57 MOZ_DIAGNOSTIC_ASSERT(workerPrivate);
58 return workerPrivate->GetRandomTimelineSeed();
61 } // namespace mozilla::dom