From 6fb2be96bf631fcf7ed9067badc3df33575ea835 Mon Sep 17 00:00:00 2001 From: Tomasz Strejczek Date: Thu, 19 Jun 2025 21:05:42 +0200 Subject: [PATCH] Everywhere: Replace DateTime::to_string() with UnixDateTime::to_string() Replace LibCore::DateTime::to_string() with AK::UnixDateTime::to_string(). Remove unncessary #include . --- Libraries/LibCrypto/Certificate/Certificate.cpp | 1 - Libraries/LibDNS/Resolver.h | 8 ++++---- Libraries/LibJS/Runtime/DateConstructor.cpp | 1 - Libraries/LibJS/Runtime/DatePrototype.cpp | 1 - Libraries/LibWeb/Cookie/Cookie.cpp | 5 +---- Libraries/LibWeb/DOM/Document.cpp | 12 +++++++++--- Libraries/LibWeb/DOM/Document.h | 3 +-- Libraries/LibWeb/HTML/HTMLInputElement.cpp | 5 ++--- Libraries/LibWeb/Loader/GeneratedPagesLoader.cpp | 3 +-- Libraries/LibWeb/Loader/ResourceLoader.cpp | 5 ++--- Libraries/LibWeb/WebDriver/Client.cpp | 4 ++-- Libraries/LibWebView/CookieJar.h | 1 - Libraries/LibWebView/ViewImplementation.cpp | 6 +++--- 13 files changed, 25 insertions(+), 30 deletions(-) diff --git a/Libraries/LibCrypto/Certificate/Certificate.cpp b/Libraries/LibCrypto/Certificate/Certificate.cpp index 30cafeacd43..20e96df5555 100644 --- a/Libraries/LibCrypto/Certificate/Certificate.cpp +++ b/Libraries/LibCrypto/Certificate/Certificate.cpp @@ -7,7 +7,6 @@ #include #include -#include #include #include #include diff --git a/Libraries/LibDNS/Resolver.h b/Libraries/LibDNS/Resolver.h index 3729f3ff42c..82b43cda1d3 100644 --- a/Libraries/LibDNS/Resolver.h +++ b/Libraries/LibDNS/Resolver.h @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include @@ -83,7 +83,7 @@ public: if (!m_valid) return; - auto now = Core::DateTime::now(); + auto now = AK::UnixDateTime::now(); for (size_t i = 0; i < m_cached_records.size();) { auto& record = m_cached_records[i]; if (record.expiration.has_value() && record.expiration.value() < now) { @@ -103,7 +103,7 @@ public: void add_record(Messages::ResourceRecord record) { m_valid = true; - auto expiration = record.ttl > 0 ? Optional(Core::DateTime::from_timestamp(Core::DateTime::now().timestamp() + record.ttl)) : OptionalNone(); + auto expiration = record.ttl > 0 ? Optional(AK::UnixDateTime::now() + AK::Duration::from_seconds(record.ttl)) : OptionalNone(); m_cached_records.append({ move(record), move(expiration) }); } @@ -186,7 +186,7 @@ private: struct RecordWithExpiration { Messages::ResourceRecord record; - Optional expiration; + Optional expiration; }; Vector m_cached_records; diff --git a/Libraries/LibJS/Runtime/DateConstructor.cpp b/Libraries/LibJS/Runtime/DateConstructor.cpp index 75467c71542..6192818f95d 100644 --- a/Libraries/LibJS/Runtime/DateConstructor.cpp +++ b/Libraries/LibJS/Runtime/DateConstructor.cpp @@ -9,7 +9,6 @@ */ #include -#include #include #include #include diff --git a/Libraries/LibJS/Runtime/DatePrototype.cpp b/Libraries/LibJS/Runtime/DatePrototype.cpp index c0fcd983326..a6ffb51d75f 100644 --- a/Libraries/LibJS/Runtime/DatePrototype.cpp +++ b/Libraries/LibJS/Runtime/DatePrototype.cpp @@ -11,7 +11,6 @@ #include #include #include -#include #include #include #include diff --git a/Libraries/LibWeb/Cookie/Cookie.cpp b/Libraries/LibWeb/Cookie/Cookie.cpp index 1ce37447202..acd2f91e533 100644 --- a/Libraries/LibWeb/Cookie/Cookie.cpp +++ b/Libraries/LibWeb/Cookie/Cookie.cpp @@ -6,7 +6,6 @@ */ #include "Cookie.h" -#include #include #include @@ -14,9 +13,7 @@ namespace Web::Cookie { static String time_to_string(UnixDateTime const& time) { - // FIXME: This roundabout formatting should not be necessary; it also loses precision. - auto local_time = Core::DateTime::from_timestamp(time.seconds_since_epoch()); - return MUST(local_time.to_string("%Y-%m-%d %H:%M:%S %Z"sv)); + return MUST(time.to_string("%Y-%m-%d %H:%M:%S %Z"sv)); } String Cookie::creation_time_to_string() const diff --git a/Libraries/LibWeb/DOM/Document.cpp b/Libraries/LibWeb/DOM/Document.cpp index 9a3788bed09..e4a3eef931d 100644 --- a/Libraries/LibWeb/DOM/Document.cpp +++ b/Libraries/LibWeb/DOM/Document.cpp @@ -15,7 +15,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -373,8 +375,12 @@ WebIDL::ExceptionOr> Document::create_and_initialize(Type type document->m_window = window; // NOTE: Non-standard: Pull out the Last-Modified header for use in the lastModified property. - if (auto maybe_last_modified = navigation_params.response->header_list()->get("Last-Modified"sv.bytes()); maybe_last_modified.has_value()) - document->m_last_modified = Core::DateTime::parse("%a, %d %b %Y %H:%M:%S %Z"sv, maybe_last_modified.value()); + if (auto maybe_last_modified = navigation_params.response->header_list()->get("Last-Modified"sv.bytes()); maybe_last_modified.has_value()) { + auto last_modified_datetime = Core::DateTime::parse("%a, %d %b %Y %H:%M:%S %Z"sv, maybe_last_modified.value()); + document->m_last_modified = last_modified_datetime.has_value() + ? AK::UnixDateTime::from_seconds_since_epoch(last_modified_datetime.value().timestamp()) + : Optional(); + } // NOTE: Non-standard: Pull out the Content-Language header to determine the document's language. if (auto maybe_http_content_language = navigation_params.response->header_list()->get("Content-Language"sv.bytes()); maybe_http_content_language.has_value()) { @@ -3070,7 +3076,7 @@ String Document::last_modified() const if (m_last_modified.has_value()) return MUST(m_last_modified.value().to_string(format_string)); - return MUST(Core::DateTime::now().to_string(format_string)); + return MUST(AK::UnixDateTime::now().to_string(format_string)); } Page& Document::page() diff --git a/Libraries/LibWeb/DOM/Document.h b/Libraries/LibWeb/DOM/Document.h index 792abef7235..cc68e4d97af 100644 --- a/Libraries/LibWeb/DOM/Document.h +++ b/Libraries/LibWeb/DOM/Document.h @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include @@ -1201,7 +1200,7 @@ private: ShadowRoot::DocumentShadowRootList m_shadow_roots; - Optional m_last_modified; + Optional m_last_modified; u64 m_dom_tree_version { 0 }; u64 m_character_data_version { 0 }; diff --git a/Libraries/LibWeb/HTML/HTMLInputElement.cpp b/Libraries/LibWeb/HTML/HTMLInputElement.cpp index 46bf0889129..243c5340f3d 100644 --- a/Libraries/LibWeb/HTML/HTMLInputElement.cpp +++ b/Libraries/LibWeb/HTML/HTMLInputElement.cpp @@ -11,7 +11,6 @@ * SPDX-License-Identifier: BSD-2-Clause */ -#include #include #include #include @@ -2326,8 +2325,8 @@ static String convert_number_to_date_string(double input) // The algorithm to convert a number to a string, given a number input, is as follows: Return a valid // date string that represents the date that, in UTC, is current input milliseconds after midnight UTC // on the morning of 1970-01-01 (the time represented by the value "1970-01-01T00:00:00.0Z"). - auto date = Core::DateTime::from_timestamp(input / 1000.); - return MUST(date.to_string("%Y-%m-%d"sv, Core::DateTime::LocalTime::No)); + auto date = AK::UnixDateTime::from_seconds_since_epoch(input / 1000.); + return MUST(date.to_string("%Y-%m-%d"sv)); } // https://html.spec.whatwg.org/multipage/input.html#time-state-(type=time):concept-input-value-number-string diff --git a/Libraries/LibWeb/Loader/GeneratedPagesLoader.cpp b/Libraries/LibWeb/Loader/GeneratedPagesLoader.cpp index d256b698037..5420b22f0ae 100644 --- a/Libraries/LibWeb/Loader/GeneratedPagesLoader.cpp +++ b/Libraries/LibWeb/Loader/GeneratedPagesLoader.cpp @@ -7,7 +7,6 @@ #include #include #include -#include #include #include #include @@ -65,7 +64,7 @@ ErrorOr load_file_directory_page(URL::URL const& url) contents.appendff("", is_directory ? "folder" : "file"); contents.appendff("{} ", path, name); contents.appendff("{:10} ", is_directory ? "-"_string : human_readable_size(st.st_size)); - contents.appendff("{}", Core::DateTime::from_timestamp(st.st_mtime).to_byte_string()); + contents.appendff("{}", AK::UnixDateTime::from_seconds_since_epoch(st.st_mtime).to_byte_string()); contents.append("\n"sv); } } diff --git a/Libraries/LibWeb/Loader/ResourceLoader.cpp b/Libraries/LibWeb/Loader/ResourceLoader.cpp index e90c55245e7..f4456fd58eb 100644 --- a/Libraries/LibWeb/Loader/ResourceLoader.cpp +++ b/Libraries/LibWeb/Loader/ResourceLoader.cpp @@ -6,7 +6,6 @@ */ #include -#include #include #include #include @@ -146,8 +145,8 @@ static HTTP::HeaderMap response_headers_for_file(StringView path, Optional #include #include -#include +#include #include #include @@ -354,7 +354,7 @@ ErrorOr Client::send_error_response(HTTP::HttpReques void Client::log_response(HTTP::HttpRequest const& request, unsigned code) { - outln("{} :: {:03d} :: {} {}", Core::DateTime::now().to_byte_string(), code, request.method_name(), request.resource()); + outln("{} :: {:03d} :: {} {}", AK::UnixDateTime::now().to_byte_string(), code, request.method_name(), request.resource()); } } diff --git a/Libraries/LibWebView/CookieJar.h b/Libraries/LibWebView/CookieJar.h index 112105d6560..e51c5a04b98 100644 --- a/Libraries/LibWebView/CookieJar.h +++ b/Libraries/LibWebView/CookieJar.h @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include diff --git a/Libraries/LibWebView/ViewImplementation.cpp b/Libraries/LibWebView/ViewImplementation.cpp index 6636535c32d..02b4ba751ac 100644 --- a/Libraries/LibWebView/ViewImplementation.cpp +++ b/Libraries/LibWebView/ViewImplementation.cpp @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include @@ -678,7 +678,7 @@ static ErrorOr save_screenshot(Gfx::Bitmap const* bitmap) if (!bitmap) return Error::from_string_literal("Failed to take a screenshot"); - auto file = Core::DateTime::now().to_byte_string("screenshot-%Y-%m-%d-%H-%M-%S.png"sv); + auto file = AK::UnixDateTime::now().to_byte_string("screenshot-%Y-%m-%d-%H-%M-%S.png"sv); auto path = TRY(Application::the().path_for_downloaded_file(file)); auto encoded = TRY(Gfx::PNGWriter::encode(*bitmap)); @@ -778,7 +778,7 @@ ErrorOr ViewImplementation::dump_gc_graph() auto gc_graph_json = TRY(promise->await()); LexicalPath path { Core::StandardPaths::tempfile_directory() }; - path = path.append(TRY(Core::DateTime::now().to_string("gc-graph-%Y-%m-%d-%H-%M-%S.json"sv))); + path = path.append(TRY(AK::UnixDateTime::now().to_string("gc-graph-%Y-%m-%d-%H-%M-%S.json"sv))); auto dump_file = TRY(Core::File::open(path.string(), Core::File::OpenMode::Write)); TRY(dump_file->write_until_depleted(gc_graph_json.bytes()));