diff --git a/Ladybird/BrowserWindow.cpp b/Ladybird/BrowserWindow.cpp index 6f9e588398b..35956d8fcac 100644 --- a/Ladybird/BrowserWindow.cpp +++ b/Ladybird/BrowserWindow.cpp @@ -366,6 +366,14 @@ void BrowserWindow::new_tab() }; tab_ptr->focus_location_editor(); + + // This is a hack to make the JS console usable in new windows. + // Note we *don't* load the initial page if we are connected to a WebDriver, as the Set URL command may come in very + // quickly, and become replaced by this load. + if (m_webdriver_content_ipc_path.is_empty()) { + // We make it HistoryNavigation so that the initial page doesn't get added to the history. + tab_ptr->navigate("about:blank", Tab::LoadType::HistoryNavigation); + } } void BrowserWindow::close_tab(int index) diff --git a/Ladybird/Tab.cpp b/Ladybird/Tab.cpp index 49ea20413e7..53ce3845b66 100644 --- a/Ladybird/Tab.cpp +++ b/Ladybird/Tab.cpp @@ -144,17 +144,6 @@ Tab::Tab(BrowserWindow* window, StringView webdriver_content_ipc_path) m_window->showFullScreen(); return Gfx::IntRect { m_window->x(), m_window->y(), m_window->width(), m_window->height() }; }); - - // FIXME: This is a hack to make the JS console usable in new windows. - // Something else should ensure that there's an initial about:blank document loaded in the view. - // We set m_is_history_navigation = true so that the initial about:blank doesn't get added to the history. - // - // Note we *don't* do this if we are connected to a WebDriver, as the Set URL command may come in very - // quickly, and become replaced by this load. - if (webdriver_content_ipc_path.is_empty()) { - m_is_history_navigation = true; - m_view->load("about:blank"sv); - } } void Tab::focus_location_editor() @@ -163,10 +152,11 @@ void Tab::focus_location_editor() m_location_edit->selectAll(); } -void Tab::navigate(QString url) +void Tab::navigate(QString url, LoadType load_type) { if (!url.startsWith("http://", Qt::CaseInsensitive) && !url.startsWith("https://", Qt::CaseInsensitive) && !url.startsWith("file://", Qt::CaseInsensitive) && !url.startsWith("about:", Qt::CaseInsensitive)) url = "http://" + url; + m_is_history_navigation = (load_type == LoadType::HistoryNavigation); view().load(ak_deprecated_string_from_qstring(url)); } diff --git a/Ladybird/Tab.h b/Ladybird/Tab.h index be25953fbaa..da5b70a1efd 100644 --- a/Ladybird/Tab.h +++ b/Ladybird/Tab.h @@ -26,7 +26,11 @@ public: WebContentView& view() { return *m_view; } - void navigate(QString); + enum class LoadType { + Normal, + HistoryNavigation, + }; + void navigate(QString, LoadType = LoadType::Normal); void debug_request(DeprecatedString const& request, DeprecatedString const& argument);