diff options
Diffstat (limited to 'Userland/Libraries/LibWeb/HTML')
-rw-r--r-- | Userland/Libraries/LibWeb/HTML/ActivateTab.h | 16 | ||||
-rw-r--r-- | Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp | 4 | ||||
-rw-r--r-- | Userland/Libraries/LibWeb/HTML/BrowsingContext.h | 3 |
3 files changed, 20 insertions, 3 deletions
diff --git a/Userland/Libraries/LibWeb/HTML/ActivateTab.h b/Userland/Libraries/LibWeb/HTML/ActivateTab.h new file mode 100644 index 0000000000..5d6840f4ca --- /dev/null +++ b/Userland/Libraries/LibWeb/HTML/ActivateTab.h @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +namespace Web::HTML { + +enum class ActivateTab { + Yes, + No, +}; + +} diff --git a/Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp b/Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp index affa174a7c..7a530bb46f 100644 --- a/Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp +++ b/Userland/Libraries/LibWeb/HTML/BrowsingContext.cpp @@ -615,7 +615,7 @@ JS::GCPtr<DOM::Node> BrowsingContext::currently_focused_area() } // https://html.spec.whatwg.org/#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name -BrowsingContext::ChosenBrowsingContext BrowsingContext::choose_a_browsing_context(StringView name, bool no_opener) +BrowsingContext::ChosenBrowsingContext BrowsingContext::choose_a_browsing_context(StringView name, bool no_opener, ActivateTab activate_tab) { // The rules for choosing a browsing context, given a browsing context name name, a browsing context current, and // a boolean noopener are as follows: @@ -699,7 +699,7 @@ BrowsingContext::ChosenBrowsingContext BrowsingContext::choose_a_browsing_contex // 3. If noopener is true, then set chosen to the result of creating a new top-level browsing context. if (no_opener) { - auto handle = m_page->client().page_did_request_new_tab(); + auto handle = m_page->client().page_did_request_new_tab(activate_tab); chosen = RemoteBrowsingContext::create_a_new_remote_browsing_context(handle); } diff --git a/Userland/Libraries/LibWeb/HTML/BrowsingContext.h b/Userland/Libraries/LibWeb/HTML/BrowsingContext.h index 3a8c46b768..dd58643135 100644 --- a/Userland/Libraries/LibWeb/HTML/BrowsingContext.h +++ b/Userland/Libraries/LibWeb/HTML/BrowsingContext.h @@ -17,6 +17,7 @@ #include <LibJS/Heap/Cell.h> #include <LibWeb/DOM/Position.h> #include <LibWeb/HTML/AbstractBrowsingContext.h> +#include <LibWeb/HTML/ActivateTab.h> #include <LibWeb/HTML/BrowsingContextContainer.h> #include <LibWeb/HTML/HistoryHandlingBehavior.h> #include <LibWeb/HTML/Origin.h> @@ -171,7 +172,7 @@ public: WindowType window_type; }; - ChosenBrowsingContext choose_a_browsing_context(StringView name, bool no_opener); + ChosenBrowsingContext choose_a_browsing_context(StringView name, bool no_opener, ActivateTab = ActivateTab::Yes); size_t document_tree_child_browsing_context_count() const; |