[cr145][Android] Refactor MultiWindowUtils#closeWindow(instanceId) -> closeWindows(List<InstanceId>)
Chromium changes: https://chromium.googlesource.com/chromium/src/+/9eab1379c2ec6297c9d582ad90547ae712934e22 commit 9eab1379c2ec6297c9d582ad90547ae712934e22 Author: Zhe Li <zheliooo@google.com> Date: Thu Dec 18 11:11:19 2025 -0800 [RWM][RecentlyClosed] Clear all inactive windows in addition to tab entries - Refactor #closeWindow(instanceId) -> closeWindows(List<InstanceId>) to align with other closeTab impl and to avoid instanceStateObserver#onInstanceClosed() Invoked multiple times when removing multiple windows. Demo: https://drive.google.com/file/d/1WCRDoJ23bFnRss-k0atyn-cT1DgsZ2TO/view?usp=sharing OBSOLETE_HISTOGRAM[Android.MultiWindowMode.CloseWindow.AppSource]=Replaced by Android.MultiWindowMode.CloseWindow.AppSource2 Bug: 444680605 Change-Id: Ibbcaa1559bb8ec555b9f5add03a9dc4fe2d7a7d2 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7261791 Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org> Commit-Queue: Zhe Li <zheliooo@google.com> Cr-Commit-Position: refs/heads/main@{#1560697}
This commit is contained in:
+4
-1
@@ -29,6 +29,7 @@ import org.chromium.components.browser_ui.widget.MenuOrKeyboardActionController;
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
import org.chromium.ui.modaldialog.ModalDialogManager;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@@ -75,7 +76,9 @@ class BraveMultiInstanceManagerApi31 extends MultiInstanceManagerApi31 {
|
||||
TabModelSelector selector =
|
||||
TabWindowManagerSingleton.getInstance().getTabModelSelectorById(mInstanceId);
|
||||
if (selector != null && selector.getTotalTabCount() == 0) {
|
||||
closeWindow(mInstanceId, CloseWindowAppSource.NO_TABS_IN_WINDOW);
|
||||
closeWindows(
|
||||
Collections.singletonList(mInstanceId),
|
||||
CloseWindowAppSource.NO_TABS_IN_WINDOW);
|
||||
}
|
||||
if (MultiWindowUtils.getInstanceCountWithFallback(PersistedInstanceType.ACTIVE) == 1) {
|
||||
BraveMultiWindowUtils.updateEnableMultiWindows(false);
|
||||
|
||||
@@ -18,6 +18,7 @@ import org.chromium.chrome.browser.multiwindow.MultiInstanceManager.PersistedIns
|
||||
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@NullMarked
|
||||
@@ -107,8 +108,9 @@ public class BraveMultiWindowUtils extends MultiWindowUtils {
|
||||
multiInstanceManagerApi31.getInstanceInfo(PersistedInstanceType.ANY);
|
||||
if (allInstances != null && allInstances.size() > 1) {
|
||||
for (int i = 1; i < allInstances.size(); i++) {
|
||||
multiInstanceManagerApi31.closeWindow(
|
||||
allInstances.get(i).instanceId, allInstances.get(i).taskId);
|
||||
multiInstanceManagerApi31.closeWindows(
|
||||
Collections.singletonList(allInstances.get(i).instanceId),
|
||||
allInstances.get(i).taskId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user