mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 23:47:45 +00:00
AK+Everywhere: Change URL::path() to serialize_path()
This now defaults to serializing the path with percent decoded segments (which is what all callers expect), but has an option not to. This fixes `file://` URLs with spaces in their paths. The name has been changed to serialize_path() path to make it more clear that this method will generate a new string each call (except for the cannot_be_a_base_url() case). A few callers have then been updated to avoid repeatedly calling this function.
This commit is contained in:
parent
5acd40c525
commit
35612c6a7f
42 changed files with 131 additions and 123 deletions
24
AK/URL.cpp
24
AK/URL.cpp
|
@ -27,18 +27,6 @@ URL::URL(StringView string)
|
|||
}
|
||||
}
|
||||
|
||||
DeprecatedString URL::path() const
|
||||
{
|
||||
if (cannot_be_a_base_url())
|
||||
return paths()[0];
|
||||
StringBuilder builder;
|
||||
for (auto& path : m_paths) {
|
||||
builder.append('/');
|
||||
builder.append(path);
|
||||
}
|
||||
return builder.to_deprecated_string();
|
||||
}
|
||||
|
||||
URL URL::complete_url(StringView relative_url) const
|
||||
{
|
||||
if (!is_valid())
|
||||
|
@ -270,6 +258,18 @@ bool URL::is_special_scheme(StringView scheme)
|
|||
return scheme.is_one_of("ftp", "file", "http", "https", "ws", "wss");
|
||||
}
|
||||
|
||||
DeprecatedString URL::serialize_path(ApplyPercentDecoding apply_percent_decoding) const
|
||||
{
|
||||
if (cannot_be_a_base_url())
|
||||
return m_paths[0];
|
||||
StringBuilder builder;
|
||||
for (auto& path : m_paths) {
|
||||
builder.append('/');
|
||||
builder.append(apply_percent_decoding == ApplyPercentDecoding::Yes ? percent_decode(path) : path);
|
||||
}
|
||||
return builder.to_deprecated_string();
|
||||
}
|
||||
|
||||
DeprecatedString URL::serialize_data_url() const
|
||||
{
|
||||
VERIFY(m_scheme == "data");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue