summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/Bindings
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Libraries/LibWeb/Bindings')
-rw-r--r--Userland/Libraries/LibWeb/Bindings/LocationObject.cpp9
-rw-r--r--Userland/Libraries/LibWeb/Bindings/LocationObject.h2
2 files changed, 11 insertions, 0 deletions
diff --git a/Userland/Libraries/LibWeb/Bindings/LocationObject.cpp b/Userland/Libraries/LibWeb/Bindings/LocationObject.cpp
index 7f08327e5e..8e32bef5e8 100644
--- a/Userland/Libraries/LibWeb/Bindings/LocationObject.cpp
+++ b/Userland/Libraries/LibWeb/Bindings/LocationObject.cpp
@@ -56,6 +56,15 @@ DOM::Document const* LocationObject::relevant_document() const
return browsing_context ? browsing_context->active_document() : nullptr;
}
+// https://html.spec.whatwg.org/multipage/history.html#concept-location-url
+AK::URL LocationObject::url() const
+{
+ // A Location object has an associated url, which is this Location object's relevant Document's URL,
+ // if this Location object's relevant Document is non-null, and about:blank otherwise.
+ auto const* relevant_document = this->relevant_document();
+ return relevant_document ? relevant_document->url() : "about:blank"sv;
+}
+
// https://html.spec.whatwg.org/multipage/history.html#dom-location-href
JS_DEFINE_NATIVE_FUNCTION(LocationObject::href_getter)
{
diff --git a/Userland/Libraries/LibWeb/Bindings/LocationObject.h b/Userland/Libraries/LibWeb/Bindings/LocationObject.h
index 9f7282d942..18a16e1a8d 100644
--- a/Userland/Libraries/LibWeb/Bindings/LocationObject.h
+++ b/Userland/Libraries/LibWeb/Bindings/LocationObject.h
@@ -7,6 +7,7 @@
#pragma once
+#include <AK/URL.h>
#include <LibJS/Runtime/Completion.h>
#include <LibJS/Runtime/Object.h>
#include <LibWeb/Forward.h>
@@ -31,6 +32,7 @@ public:
private:
DOM::Document const* relevant_document() const;
+ AK::URL url() const;
JS_DECLARE_NATIVE_FUNCTION(reload);
JS_DECLARE_NATIVE_FUNCTION(replace);