From 84f8c91a6fa12f845ff81a4ece8d68ec331a0217 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 15 Jun 2020 17:55:27 +0200 Subject: [PATCH] LibWeb: Use the URL encoder from AK instead of rolling a custom one --- Libraries/LibWeb/DOM/HTMLFormElement.cpp | 2 +- Libraries/LibWeb/URLEncoder.cpp | 24 ++++-------------------- Libraries/LibWeb/URLEncoder.h | 3 +-- 3 files changed, 6 insertions(+), 23 deletions(-) diff --git a/Libraries/LibWeb/DOM/HTMLFormElement.cpp b/Libraries/LibWeb/DOM/HTMLFormElement.cpp index 5028ac0db3d..397391331a8 100644 --- a/Libraries/LibWeb/DOM/HTMLFormElement.cpp +++ b/Libraries/LibWeb/DOM/HTMLFormElement.cpp @@ -69,7 +69,7 @@ void HTMLFormElement::submit(RefPtr submitter) return IterationDecision::Continue; }); - url.set_query(url_encode(parameters)); + url.set_query(urlencode(parameters)); // FIXME: We shouldn't let the form just do this willy-nilly. document().frame()->page().load(url); diff --git a/Libraries/LibWeb/URLEncoder.cpp b/Libraries/LibWeb/URLEncoder.cpp index e760082fdc2..a6be0174ead 100644 --- a/Libraries/LibWeb/URLEncoder.cpp +++ b/Libraries/LibWeb/URLEncoder.cpp @@ -25,34 +25,18 @@ */ #include +#include #include namespace Web { -String url_encode(const StringView& view) -{ - StringBuilder builder; - - for (char c : view) { - if (c == ' ') { - builder.append('+'); - } else if (c == '*' || c == '-' || c == '.' || (c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || c == '_' || (c >= 'a' && c <= 'z')) { - builder.append(c); - } else { - builder.appendf("%%%02X", c); - } - } - - return builder.to_string(); -} - -String url_encode(const Vector& pairs) +String urlencode(const Vector& pairs) { StringBuilder builder; for (size_t i = 0; i < pairs.size(); ++i) { - builder.append(url_encode(pairs[i].name)); + builder.append(urlencode(pairs[i].name)); builder.append('='); - builder.append(url_encode(pairs[i].value)); + builder.append(urlencode(pairs[i].value)); if (i != pairs.size() - 1) builder.append('&'); } diff --git a/Libraries/LibWeb/URLEncoder.h b/Libraries/LibWeb/URLEncoder.h index 61cb8b34ddc..b12cf2e29db 100644 --- a/Libraries/LibWeb/URLEncoder.h +++ b/Libraries/LibWeb/URLEncoder.h @@ -36,8 +36,7 @@ struct URLQueryParam { String value; }; -String url_encode(const StringView&); -String url_encode(const Vector&); +String urlencode(const Vector&); }