From 618697ef1373f623980d7b21b7026414730e1c88 Mon Sep 17 00:00:00 2001 From: Luke Wilde Date: Wed, 26 Feb 2025 15:02:49 +0000 Subject: [PATCH] LibWeb: Make reference to global in report timing steps non-const Marking a resource timing entry requires calling non-const methods on the global object to append to the performance buffer. --- Libraries/LibWeb/Fetch/Fetching/Fetching.cpp | 2 +- Libraries/LibWeb/Fetch/Infrastructure/FetchController.cpp | 4 ++-- Libraries/LibWeb/Fetch/Infrastructure/FetchController.h | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Libraries/LibWeb/Fetch/Fetching/Fetching.cpp b/Libraries/LibWeb/Fetch/Fetching/Fetching.cpp index 3faab7b50b6..5d3991e33c7 100644 --- a/Libraries/LibWeb/Fetch/Fetching/Fetching.cpp +++ b/Libraries/LibWeb/Fetch/Fetching/Fetching.cpp @@ -644,7 +644,7 @@ void fetch_response_handover(JS::Realm& realm, Infrastructure::FetchParams const fetch_params.controller()->set_full_timing_info(fetch_params.timing_info()); // 3. Set fetchParams’s controller’s report timing steps to the following steps given a global object global: - fetch_params.controller()->set_report_timing_steps([&vm, &response, &fetch_params, timing_info, unsafe_end_time](JS::Object const& global) mutable { + fetch_params.controller()->set_report_timing_steps([&vm, &response, &fetch_params, timing_info, unsafe_end_time](JS::Object& global) mutable { // 1. If fetchParams’s request’s URL’s scheme is not an HTTP(S) scheme, then return. if (!Infrastructure::is_http_or_https_scheme(fetch_params.request()->url().scheme())) return; diff --git a/Libraries/LibWeb/Fetch/Infrastructure/FetchController.cpp b/Libraries/LibWeb/Fetch/Infrastructure/FetchController.cpp index 7cc5d56e7de..5b3622ce9fb 100644 --- a/Libraries/LibWeb/Fetch/Infrastructure/FetchController.cpp +++ b/Libraries/LibWeb/Fetch/Infrastructure/FetchController.cpp @@ -32,7 +32,7 @@ void FetchController::visit_edges(JS::Cell::Visitor& visitor) visitor.visit(m_fetch_params); } -void FetchController::set_report_timing_steps(Function report_timing_steps) +void FetchController::set_report_timing_steps(Function report_timing_steps) { m_report_timing_steps = GC::create_function(vm().heap(), move(report_timing_steps)); } @@ -43,7 +43,7 @@ void FetchController::set_next_manual_redirect_steps(Function next_manua } // https://fetch.spec.whatwg.org/#finalize-and-report-timing -void FetchController::report_timing(JS::Object const& global) const +void FetchController::report_timing(JS::Object& global) const { // 1. Assert: this’s report timing steps is not null. VERIFY(m_report_timing_steps); diff --git a/Libraries/LibWeb/Fetch/Infrastructure/FetchController.h b/Libraries/LibWeb/Fetch/Infrastructure/FetchController.h index 3506789a75e..20e39ba80eb 100644 --- a/Libraries/LibWeb/Fetch/Infrastructure/FetchController.h +++ b/Libraries/LibWeb/Fetch/Infrastructure/FetchController.h @@ -35,12 +35,12 @@ public: [[nodiscard]] static GC::Ref create(JS::VM&); void set_full_timing_info(GC::Ref full_timing_info) { m_full_timing_info = full_timing_info; } - void set_report_timing_steps(Function report_timing_steps); + void set_report_timing_steps(Function report_timing_steps); void set_next_manual_redirect_steps(Function next_manual_redirect_steps); [[nodiscard]] State state() const { return m_state; } - void report_timing(JS::Object const&) const; + void report_timing(JS::Object&) const; void process_next_manual_redirect() const; [[nodiscard]] GC::Ref extract_full_timing_info() const; void abort(JS::Realm&, Optional); @@ -73,7 +73,7 @@ private: // https://fetch.spec.whatwg.org/#fetch-controller-report-timing-steps // report timing steps (default null) // Null or an algorithm accepting a global object. - GC::Ptr> m_report_timing_steps; + GC::Ptr> m_report_timing_steps; // https://fetch.spec.whatwg.org/#fetch-controller-report-timing-steps // serialized abort reason (default null)