Skip to content

Commit bca8707

Browse files
bgianfoawesomekling
authored andcommitted
LibWeb: Start tracking elapsed time when a resource is loaded
1 parent 1d4be9c commit bca8707

File tree

7 files changed

+17
-9
lines changed

7 files changed

+17
-9
lines changed

Userland/Libraries/LibWeb/Loader/FrameLoader.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ bool FrameLoader::parse_document(DOM::Document& document, const ByteBuffer& data
137137
return false;
138138
}
139139

140-
bool FrameLoader::load(const LoadRequest& request, Type type)
140+
bool FrameLoader::load(LoadRequest& request, Type type)
141141
{
142142
if (!request.is_valid()) {
143143
load_error_page(request.url(), "Invalid request");

Userland/Libraries/LibWeb/Loader/FrameLoader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class FrameLoader final
2727
~FrameLoader();
2828

2929
bool load(const URL&, Type);
30-
bool load(const LoadRequest&, Type);
30+
bool load(LoadRequest&, Type);
3131

3232
void load_html(const StringView&, const URL&);
3333

Userland/Libraries/LibWeb/Loader/LoadRequest.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
#include <AK/ByteBuffer.h>
1010
#include <AK/HashMap.h>
11+
#include <AK/Time.h>
1112
#include <AK/URL.h>
13+
#include <LibCore/ElapsedTimer.h>
1214
#include <LibWeb/Forward.h>
1315

1416
namespace Web {
@@ -32,6 +34,9 @@ class LoadRequest {
3234
const ByteBuffer& body() const { return m_body; }
3335
void set_body(const ByteBuffer& body) { m_body = body; }
3436

37+
void start_timer() { m_load_timer.start(); };
38+
Time load_time() const { return m_load_timer.elapsed_time(); }
39+
3540
unsigned hash() const
3641
{
3742
auto body_hash = string_hash((const char*)m_body.data(), m_body.size());
@@ -64,6 +69,7 @@ class LoadRequest {
6469
String m_method { "GET" };
6570
HashMap<String, String> m_headers;
6671
ByteBuffer m_body;
72+
Core::ElapsedTimer m_load_timer;
6773
};
6874

6975
}

Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <AK/Base64.h>
88
#include <AK/Debug.h>
99
#include <AK/JsonObject.h>
10+
#include <LibCore/ElapsedTimer.h>
1011
#include <LibCore/EventLoop.h>
1112
#include <LibCore/File.h>
1213
#include <LibProtocol/Request.h>
@@ -32,7 +33,7 @@ ResourceLoader::ResourceLoader()
3233
{
3334
}
3435

35-
void ResourceLoader::load_sync(const LoadRequest& request, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback)
36+
void ResourceLoader::load_sync(LoadRequest& request, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback)
3637
{
3738
Core::EventLoop loop;
3839

@@ -53,7 +54,7 @@ void ResourceLoader::load_sync(const LoadRequest& request, Function<void(Readonl
5354

5455
static HashMap<LoadRequest, NonnullRefPtr<Resource>> s_resource_cache;
5556

56-
RefPtr<Resource> ResourceLoader::load_resource(Resource::Type type, const LoadRequest& request)
57+
RefPtr<Resource> ResourceLoader::load_resource(Resource::Type type, LoadRequest& request)
5758
{
5859
if (!request.is_valid())
5960
return nullptr;
@@ -92,6 +93,7 @@ RefPtr<Resource> ResourceLoader::load_resource(Resource::Type type, const LoadRe
9293
void ResourceLoader::load(const LoadRequest& request, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback)
9394
{
9495
auto& url = request.url();
96+
request.start_timer();
9597

9698
if (is_port_blocked(url.port())) {
9799
dbgln("ResourceLoader::load: Error: blocked port {} from URL {}", url.port(), url);

Userland/Libraries/LibWeb/Loader/ResourceLoader.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ class ResourceLoader : public Core::Object {
3030
public:
3131
static ResourceLoader& the();
3232

33-
RefPtr<Resource> load_resource(Resource::Type, const LoadRequest&);
33+
RefPtr<Resource> load_resource(Resource::Type, LoadRequest&);
3434

35-
void load(const LoadRequest&, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback = nullptr);
35+
void load(LoadRequest&, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback = nullptr);
3636
void load(const URL&, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback = nullptr);
37-
void load_sync(const LoadRequest&, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback = nullptr);
37+
void load_sync(LoadRequest&, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback = nullptr);
3838

3939
Function<void()> on_load_counter_change;
4040

Userland/Libraries/LibWeb/Page/Page.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ void Page::load(const URL& url)
3636
top_level_browsing_context().loader().load(url, FrameLoader::Type::Navigation);
3737
}
3838

39-
void Page::load(const LoadRequest& request)
39+
void Page::load(LoadRequest& request)
4040
{
4141
top_level_browsing_context().loader().load(request, FrameLoader::Type::Navigation);
4242
}

Userland/Libraries/LibWeb/Page/Page.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class Page : public Weakable<Page> {
4242
void set_focused_browsing_context(Badge<EventHandler>, BrowsingContext&);
4343

4444
void load(const URL&);
45-
void load(const LoadRequest&);
45+
void load(LoadRequest&);
4646

4747
void load_html(const StringView&, const URL&);
4848

0 commit comments

Comments
 (0)