diff --git a/Ladybird/AppKit/Application/ApplicationDelegate.mm b/Ladybird/AppKit/Application/ApplicationDelegate.mm index 8b9e8be658b..1c84a9a1d97 100644 --- a/Ladybird/AppKit/Application/ApplicationDelegate.mm +++ b/Ladybird/AppKit/Application/ApplicationDelegate.mm @@ -97,7 +97,10 @@ activateTab:(Web::HTML::ActivateTab)activate_tab { auto* controller = [self createNewTab:activate_tab fromTab:tab]; - [controller loadURL:url.value_or(WebView::Application::chrome_options().new_tab_page_url)]; + + if (url.has_value()) { + [controller loadURL:*url]; + } return controller; } diff --git a/Ladybird/AppKit/UI/LadybirdWebView.h b/Ladybird/AppKit/UI/LadybirdWebView.h index 3b2e17a81e3..24291f212d9 100644 --- a/Ladybird/AppKit/UI/LadybirdWebView.h +++ b/Ladybird/AppKit/UI/LadybirdWebView.h @@ -20,7 +20,7 @@ @protocol LadybirdWebViewObserver -- (String const&)onCreateNewTab:(URL::URL const&)url +- (String const&)onCreateNewTab:(Optional const&)url activateTab:(Web::HTML::ActivateTab)activate_tab; - (String const&)onCreateNewTab:(StringView)html diff --git a/Ladybird/AppKit/UI/LadybirdWebView.mm b/Ladybird/AppKit/UI/LadybirdWebView.mm index 68140b5e262..dc943218e76 100644 --- a/Ladybird/AppKit/UI/LadybirdWebView.mm +++ b/Ladybird/AppKit/UI/LadybirdWebView.mm @@ -323,7 +323,7 @@ static void copy_data_to_clipboard(StringView data, NSPasteboardType pasteboard_ return String {}; } // FIXME: Create a child tab that re-uses the ConnectionFromClient of the parent tab - return [self.observer onCreateNewTab:"about:blank"sv activateTab:activate_tab]; + return [self.observer onCreateNewTab:{} activateTab:activate_tab]; }; m_web_view_bridge->on_request_web_content = [weak_self]() { diff --git a/Ladybird/AppKit/UI/Tab.mm b/Ladybird/AppKit/UI/Tab.mm index 06868eea033..e5233700428 100644 --- a/Ladybird/AppKit/UI/Tab.mm +++ b/Ladybird/AppKit/UI/Tab.mm @@ -268,7 +268,7 @@ static constexpr CGFloat const WINDOW_HEIGHT = 800; #pragma mark - LadybirdWebViewObserver -- (String const&)onCreateNewTab:(URL::URL const&)url +- (String const&)onCreateNewTab:(Optional const&)url activateTab:(Web::HTML::ActivateTab)activate_tab { auto* delegate = (ApplicationDelegate*)[NSApp delegate]; diff --git a/Ladybird/AppKit/UI/TabController.mm b/Ladybird/AppKit/UI/TabController.mm index 21ebe192674..ba93018c830 100644 --- a/Ladybird/AppKit/UI/TabController.mm +++ b/Ladybird/AppKit/UI/TabController.mm @@ -214,7 +214,7 @@ static NSString* const TOOLBAR_TAB_OVERVIEW_IDENTIFIER = @"ToolbarTabOverviewIde self.tab.titlebarAppearsTransparent = NO; - [delegate createNewTab:OptionalNone {} + [delegate createNewTab:WebView::Application::chrome_options().new_tab_page_url fromTab:[self tab] activateTab:Web::HTML::ActivateTab::Yes];