diff options
author | Max Wipfli <mail@maxwipfli.ch> | 2021-05-12 10:32:41 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-05-18 21:02:07 +0200 |
commit | 67a9ebc8176e6dff4c3af3bc26ef3de829d87286 (patch) | |
tree | 7d1aee3464e2d5c67a2027878abc45be80e77dfa /Userland/Libraries/LibWeb/DOM | |
parent | a7681dbeea882456915e01a12095429460a0df30 (diff) | |
download | serenity-67a9ebc8176e6dff4c3af3bc26ef3de829d87286.zip |
LibWeb: Change Document's m_encoding to Optional<String>
This modifies the Document class to use Optional<String> for the
encoding. If the encoding is unknown, the Optional will not have a
value. It also implements the has_encoding() and encoding_or_default()
instance methods, the latter of which will return "UTF-8" as a fallback
if no encoding is present.
The usage of Optional<String> instead of the null string is part of an
effort to explicitly indicate that a string could not have a value.
This also modifies the former callers of encoding() to use
encoding_or_default(). Furthermore, the encoding will now only be set if
it is actually known, rather than just guessed by earlier code.
Diffstat (limited to 'Userland/Libraries/LibWeb/DOM')
-rw-r--r-- | Userland/Libraries/LibWeb/DOM/Document.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/Userland/Libraries/LibWeb/DOM/Document.h b/Userland/Libraries/LibWeb/DOM/Document.h index 43195032d7..98b73fe919 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.h +++ b/Userland/Libraries/LibWeb/DOM/Document.h @@ -237,13 +237,15 @@ public: const String& content_type() const { return m_content_type; } void set_content_type(const String& content_type) { m_content_type = content_type; } - const String& encoding() const { return m_encoding; } - void set_encoding(const String& encoding) { m_encoding = encoding; } + bool has_encoding() const { return m_encoding.has_value(); } + const Optional<String>& encoding() const { return m_encoding; } + String encoding_or_default() const { return m_encoding.value_or("UTF-8"); } + void set_encoding(const Optional<String>& encoding) { m_encoding = encoding; } // NOTE: These are intended for the JS bindings - const String& character_set() const { return encoding(); } - const String& charset() const { return encoding(); } - const String& input_encoding() const { return encoding(); } + String character_set() const { return encoding_or_default(); } + String charset() const { return encoding_or_default(); } + String input_encoding() const { return encoding_or_default(); } bool ready_for_post_load_tasks() const { return m_ready_for_post_load_tasks; } void set_ready_for_post_load_tasks(bool ready) { m_ready_for_post_load_tasks = ready; } @@ -327,7 +329,7 @@ private: String m_ready_state { "loading" }; String m_content_type { "application/xml" }; - String m_encoding { "UTF-8" }; + Optional<String> m_encoding; bool m_ready_for_post_load_tasks { false }; |