[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:
Artem Samoilenko
2026-01-29 13:40:57 -05:00
committed by Max Karolinskiy
parent bf36c2a520
commit 45154aa725
2 changed files with 8 additions and 3 deletions
@@ -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);
}
}
}