fix(plugins): guard runtime facade activation (#59412)

* fix(plugins): guard runtime facade activation

* refactor(plugin-sdk): localize facade load policy

* fix(plugin-sdk): narrow facade activation guards

* fix(browser): keep cleanup helpers outside activation guard

* style(browser): apply formatter follow-ups

* chore(changelog): note plugin activation guard regressions

* fix(discord): keep cleanup thread unbinds outside activation guard

* fix(browser): fallback when trash exits non-zero
This commit is contained in:
Vincent Koc
2026-04-02 14:37:12 +09:00
committed by GitHub
parent ed6012eb5b
commit 52a018680d
27 changed files with 509 additions and 57 deletions

View File

@@ -13,13 +13,14 @@ export {
resolveBrowserControlAuth,
resolveProfile,
} from "./browser-config.js";
export { closeTrackedBrowserTabsForSessions, movePathToTrash } from "./browser-maintenance.js";
import {
createLazyFacadeObjectValue,
loadBundledPluginPublicSurfaceModuleSync,
loadActivatedBundledPluginPublicSurfaceModuleSync,
} from "./facade-runtime.js";
function loadFacadeModule(): FacadeModule {
return loadBundledPluginPublicSurfaceModuleSync<FacadeModule>({
return loadActivatedBundledPluginPublicSurfaceModuleSync<FacadeModule>({
dirName: "browser",
artifactBasename: "runtime-api.js",
});
@@ -71,11 +72,6 @@ export const browserTabAction: FacadeModule["browserTabAction"] = ((...args) =>
loadFacadeModule()["browserTabAction"](...args)) as FacadeModule["browserTabAction"];
export const browserTabs: FacadeModule["browserTabs"] = ((...args) =>
loadFacadeModule()["browserTabs"](...args)) as FacadeModule["browserTabs"];
export const closeTrackedBrowserTabsForSessions: FacadeModule["closeTrackedBrowserTabsForSessions"] =
((...args) =>
loadFacadeModule()["closeTrackedBrowserTabsForSessions"](
...args,
)) as FacadeModule["closeTrackedBrowserTabsForSessions"];
export const createBrowserControlContext: FacadeModule["createBrowserControlContext"] = ((
...args
) =>
@@ -139,8 +135,6 @@ export const isPersistentBrowserProfileMutation: FacadeModule["isPersistentBrows
loadFacadeModule()["isPersistentBrowserProfileMutation"](
...args,
)) as FacadeModule["isPersistentBrowserProfileMutation"];
export const movePathToTrash: FacadeModule["movePathToTrash"] = ((...args) =>
loadFacadeModule()["movePathToTrash"](...args)) as FacadeModule["movePathToTrash"];
export const normalizeBrowserFormField: FacadeModule["normalizeBrowserFormField"] = ((...args) =>
loadFacadeModule()["normalizeBrowserFormField"](
...args,