Serenity Operating System
1/*
2 * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <LibWeb/HTML/Window.h>
10
11namespace Web::NavigationTiming {
12
13class PerformanceTiming final : public Bindings::PlatformObject {
14 WEB_PLATFORM_OBJECT(PerformanceTiming, Bindings::PlatformObject);
15
16public:
17 using AllowOwnPtr = TrueType;
18
19 ~PerformanceTiming();
20
21 u64 navigation_start() { return 0; }
22 u64 unload_event_start() { return 0; }
23 u64 unload_event_end() { return 0; }
24 u64 redirect_start() { return 0; }
25 u64 redirect_end() { return 0; }
26 u64 fetch_start() { return 0; }
27 u64 domain_lookup_start() { return 0; }
28 u64 domain_lookup_end() { return 0; }
29 u64 connect_start() { return 0; }
30 u64 connect_end() { return 0; }
31 u64 secure_connection_start() { return 0; }
32 u64 request_start() { return 0; }
33 u64 response_start() { return 0; }
34 u64 response_end() { return 0; }
35 u64 dom_loading() { return 0; }
36 u64 dom_interactive() { return 0; }
37 u64 dom_content_loaded_event_start() { return 0; }
38 u64 dom_content_loaded_event_end() { return 0; }
39 u64 dom_complete() { return 0; }
40 u64 load_event_start() { return 0; }
41 u64 load_event_end() { return 0; }
42
43private:
44 explicit PerformanceTiming(HTML::Window&);
45
46 virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;
47 virtual void visit_edges(Cell::Visitor&) override;
48
49 JS::GCPtr<HTML::Window> m_window;
50};
51
52}