aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/DOMURL.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2023-09-25 16:07:33 -0700
committerGravatar GitHub <noreply@github.com> 2023-09-25 16:07:33 -0700
commit6d842e7dcb80ab75ae52a4cb95d6c94c09266ee0 (patch)
treef5eedec634d0b68a64b185c6575a97ba089d23ee /src/bun.js/bindings/DOMURL.cpp
parent9d9fcbbdeb6803f7bda9690e9ca0e5b1ef123b07 (diff)
downloadbun-6d842e7dcb80ab75ae52a4cb95d6c94c09266ee0.tar.gz
bun-6d842e7dcb80ab75ae52a4cb95d6c94c09266ee0.tar.zst
bun-6d842e7dcb80ab75ae52a4cb95d6c94c09266ee0.zip
Make error message for `new URL(invalid)` better (#6032)
* Make error message for `new URL(invalid)` better Thanks to @karlcow https://github.com/WebKit/WebKit/pull/13802 * redact --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Diffstat (limited to 'src/bun.js/bindings/DOMURL.cpp')
-rw-r--r--src/bun.js/bindings/DOMURL.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/bun.js/bindings/DOMURL.cpp b/src/bun.js/bindings/DOMURL.cpp
index 9b5893a35..b88161a4d 100644
--- a/src/bun.js/bindings/DOMURL.cpp
+++ b/src/bun.js/bindings/DOMURL.cpp
@@ -36,6 +36,14 @@
namespace WebCore {
+static inline String redact(const String& input)
+{
+ if (input.contains("@"_s))
+ return "<redacted>"_s;
+
+ return makeString('"', input, '"');
+}
+
inline DOMURL::DOMURL(URL&& completeURL, const URL& baseURL)
: m_baseURL(baseURL)
, m_url(WTFMove(completeURL))
@@ -58,15 +66,15 @@ ExceptionOr<Ref<DOMURL>> DOMURL::create(const String& url, const URL& base)
ASSERT(base.isValid() || base.isNull());
URL completeURL { base, url };
if (!completeURL.isValid())
- return Exception { TypeError };
+ return Exception { TypeError, makeString(redact(url), " cannot be parsed as a URL.") };
return adoptRef(*new DOMURL(WTFMove(completeURL), base));
}
ExceptionOr<Ref<DOMURL>> DOMURL::create(const String& url, const String& base)
{
- URL baseURL { URL {}, base };
+ URL baseURL { base };
if (!base.isNull() && !baseURL.isValid())
- return Exception { TypeError };
+ return Exception { TypeError, makeString(redact(url), " cannot be parsed as a URL against "_s, redact(base)) };
return create(url, baseURL);
}
@@ -78,8 +86,10 @@ ExceptionOr<Ref<DOMURL>> DOMURL::create(const String& url, const DOMURL& base)
ExceptionOr<void> DOMURL::setHref(const String& url)
{
URL completeURL { URL {}, url };
- if (!completeURL.isValid())
- return Exception { TypeError };
+ if (!completeURL.isValid()) {
+
+ return Exception { TypeError, makeString(redact(url), " cannot be parsed as a URL.") };
+ }
m_url = WTFMove(completeURL);
if (m_searchParams)
m_searchParams->updateFromAssociatedURL();