From 07821ef49e43192ef8e4d1052ca12b4bd8580193 Mon Sep 17 00:00:00 2001 From: Felipe Erias Date: Tue, 4 Feb 2025 17:10:34 +0900 Subject: [PATCH] Open tabs in background by default This change restores the behaviour of opening new tabs in the background by default. This functionality had been changed when the new tabs bar was implemented. The reason was that opening a tab in the background leaves it in an uninitialized state until the user clicks on that tab, and this made it difficult to keep the tabs bar updated in real time. We will use the domain name as the title of background tabs until the user clicks on them (this was empty previously). --- .../igalia/wolvic/browser/engine/SessionStore.java | 4 ++++ .../com/igalia/wolvic/ui/views/TabsBarItem.java | 11 +++++++++-- .../wolvic/ui/widgets/menus/ContextMenuWidget.java | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/common/shared/com/igalia/wolvic/browser/engine/SessionStore.java b/app/src/common/shared/com/igalia/wolvic/browser/engine/SessionStore.java index 6010e799d2..52c5087bb3 100644 --- a/app/src/common/shared/com/igalia/wolvic/browser/engine/SessionStore.java +++ b/app/src/common/shared/com/igalia/wolvic/browser/engine/SessionStore.java @@ -192,6 +192,10 @@ private Session addSession(@NonNull Session aSession) { mStoreSubscription.resume(); } + for (SessionChangeListener listener : mSessionChangeListeners) { + listener.onSessionAdded(aSession); + } + return aSession; } diff --git a/app/src/common/shared/com/igalia/wolvic/ui/views/TabsBarItem.java b/app/src/common/shared/com/igalia/wolvic/ui/views/TabsBarItem.java index a38022d5d7..197b36f625 100644 --- a/app/src/common/shared/com/igalia/wolvic/ui/views/TabsBarItem.java +++ b/app/src/common/shared/com/igalia/wolvic/ui/views/TabsBarItem.java @@ -20,6 +20,7 @@ import com.igalia.wolvic.browser.engine.SessionStore; import com.igalia.wolvic.ui.widgets.WidgetManagerDelegate; import com.igalia.wolvic.ui.widgets.WindowWidget; +import com.igalia.wolvic.utils.StringUtils; import com.igalia.wolvic.utils.UrlUtils; import java.util.Objects; @@ -99,8 +100,14 @@ public void attachToSession(@Nullable Session aSession) { mSession.addNavigationListener(this); mSession.addSessionChangeListener(this); - mTitle.setText(mSession.getCurrentTitle()); - mSubtitle.setText(UrlUtils.stripProtocol(mSession.getCurrentUri())); + String title = mSession.getCurrentTitle(); + String uri = mSession.getCurrentUri(); + if (StringUtils.isEmpty(title)) { + title = UrlUtils.stripCommonSubdomains(UrlUtils.getHost(uri)); + } + mTitle.setText(title); + mSubtitle.setText(UrlUtils.stripProtocol(uri)); + SessionStore.get().getBrowserIcons().loadIntoView( mFavicon, mSession.getCurrentUri(), IconRequest.Size.DEFAULT); diff --git a/app/src/common/shared/com/igalia/wolvic/ui/widgets/menus/ContextMenuWidget.java b/app/src/common/shared/com/igalia/wolvic/ui/widgets/menus/ContextMenuWidget.java index 14feee618b..4d875f1032 100644 --- a/app/src/common/shared/com/igalia/wolvic/ui/widgets/menus/ContextMenuWidget.java +++ b/app/src/common/shared/com/igalia/wolvic/ui/widgets/menus/ContextMenuWidget.java @@ -101,7 +101,7 @@ public void setContextElement(WSession.ContentDelegate.ContextElement aContextEl // Open link in a new tab mItems.add(new MenuWidget.MenuItem(getContext().getString(R.string.context_menu_open_link_new_tab_1), 0, () -> { if (!StringUtils.isEmpty(aContextElement.linkUri)) { - widgetManager.openNewTabForeground(aContextElement.linkUri); + widgetManager.openNewTab(aContextElement.linkUri); TelemetryService.Tabs.openedCounter(TelemetryService.Tabs.TabSource.CONTEXT_MENU); } onDismiss();