mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-09 17:44:56 +09:00
LibWeb: Start tracking elapsed time when a resource is loaded
This commit is contained in:
parent
1d4be9ca33
commit
bca8707e15
Notes:
sideshowbarker
2024-07-18 04:08:03 +09:00
Author: https://github.com/bgianfo
Commit: bca8707e15
Pull-request: https://github.com/SerenityOS/serenity/pull/9991
Reviewed-by: https://github.com/awesomekling
7 changed files with 17 additions and 9 deletions
|
@ -137,7 +137,7 @@ bool FrameLoader::parse_document(DOM::Document& document, const ByteBuffer& data
|
|||
return false;
|
||||
}
|
||||
|
||||
bool FrameLoader::load(const LoadRequest& request, Type type)
|
||||
bool FrameLoader::load(LoadRequest& request, Type type)
|
||||
{
|
||||
if (!request.is_valid()) {
|
||||
load_error_page(request.url(), "Invalid request");
|
||||
|
|
|
@ -27,7 +27,7 @@ public:
|
|||
~FrameLoader();
|
||||
|
||||
bool load(const URL&, Type);
|
||||
bool load(const LoadRequest&, Type);
|
||||
bool load(LoadRequest&, Type);
|
||||
|
||||
void load_html(const StringView&, const URL&);
|
||||
|
||||
|
|
|
@ -8,7 +8,9 @@
|
|||
|
||||
#include <AK/ByteBuffer.h>
|
||||
#include <AK/HashMap.h>
|
||||
#include <AK/Time.h>
|
||||
#include <AK/URL.h>
|
||||
#include <LibCore/ElapsedTimer.h>
|
||||
#include <LibWeb/Forward.h>
|
||||
|
||||
namespace Web {
|
||||
|
@ -32,6 +34,9 @@ public:
|
|||
const ByteBuffer& body() const { return m_body; }
|
||||
void set_body(const ByteBuffer& body) { m_body = body; }
|
||||
|
||||
void start_timer() { m_load_timer.start(); };
|
||||
Time load_time() const { return m_load_timer.elapsed_time(); }
|
||||
|
||||
unsigned hash() const
|
||||
{
|
||||
auto body_hash = string_hash((const char*)m_body.data(), m_body.size());
|
||||
|
@ -64,6 +69,7 @@ private:
|
|||
String m_method { "GET" };
|
||||
HashMap<String, String> m_headers;
|
||||
ByteBuffer m_body;
|
||||
Core::ElapsedTimer m_load_timer;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include <AK/Base64.h>
|
||||
#include <AK/Debug.h>
|
||||
#include <AK/JsonObject.h>
|
||||
#include <LibCore/ElapsedTimer.h>
|
||||
#include <LibCore/EventLoop.h>
|
||||
#include <LibCore/File.h>
|
||||
#include <LibProtocol/Request.h>
|
||||
|
@ -32,7 +33,7 @@ ResourceLoader::ResourceLoader()
|
|||
{
|
||||
}
|
||||
|
||||
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)
|
||||
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)
|
||||
{
|
||||
Core::EventLoop loop;
|
||||
|
||||
|
@ -53,7 +54,7 @@ void ResourceLoader::load_sync(const LoadRequest& request, Function<void(Readonl
|
|||
|
||||
static HashMap<LoadRequest, NonnullRefPtr<Resource>> s_resource_cache;
|
||||
|
||||
RefPtr<Resource> ResourceLoader::load_resource(Resource::Type type, const LoadRequest& request)
|
||||
RefPtr<Resource> ResourceLoader::load_resource(Resource::Type type, LoadRequest& request)
|
||||
{
|
||||
if (!request.is_valid())
|
||||
return nullptr;
|
||||
|
@ -92,6 +93,7 @@ RefPtr<Resource> ResourceLoader::load_resource(Resource::Type type, const LoadRe
|
|||
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)
|
||||
{
|
||||
auto& url = request.url();
|
||||
request.start_timer();
|
||||
|
||||
if (is_port_blocked(url.port())) {
|
||||
dbgln("ResourceLoader::load: Error: blocked port {} from URL {}", url.port(), url);
|
||||
|
|
|
@ -30,11 +30,11 @@ class ResourceLoader : public Core::Object {
|
|||
public:
|
||||
static ResourceLoader& the();
|
||||
|
||||
RefPtr<Resource> load_resource(Resource::Type, const LoadRequest&);
|
||||
RefPtr<Resource> load_resource(Resource::Type, LoadRequest&);
|
||||
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
|
||||
Function<void()> on_load_counter_change;
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ void Page::load(const URL& url)
|
|||
top_level_browsing_context().loader().load(url, FrameLoader::Type::Navigation);
|
||||
}
|
||||
|
||||
void Page::load(const LoadRequest& request)
|
||||
void Page::load(LoadRequest& request)
|
||||
{
|
||||
top_level_browsing_context().loader().load(request, FrameLoader::Type::Navigation);
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ public:
|
|||
void set_focused_browsing_context(Badge<EventHandler>, BrowsingContext&);
|
||||
|
||||
void load(const URL&);
|
||||
void load(const LoadRequest&);
|
||||
void load(LoadRequest&);
|
||||
|
||||
void load_html(const StringView&, const URL&);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue