diff --git a/chrome/browser/extensions/api/tabs/tabs_api.cc b/chrome/browser/extensions/api/tabs/tabs_api.cc index 0801bd6cb804a..7884b0ee3767a 100644 --- a/chrome/browser/extensions/api/tabs/tabs_api.cc +++ b/chrome/browser/extensions/api/tabs/tabs_api.cc @@ -468,6 +468,18 @@ int MoveTabToWindow(ExtensionFunction* function, return -1; } +#if !BUILDFLAG(IS_ANDROID) + // Match the guard in WindowsCreateFunction::ValidateTab(): an Isolated Web + // App's tab must never be detached from its dedicated app window. + if (Browser* src = source_window->GetBrowser()) { + if (web_app::AppBrowserController* controller = src->app_controller(); + controller && controller->IsIsolatedWebApp()) { + *error = kWindowCreateCannotMoveIwaTabError; + return -1; + } + } +#endif + TabListInterface* source_tab_list = TabListInterface::From(source_browser); ::tabs::TabInterface* tab = source_tab_list->GetTab(source_index); if (!tab) {