You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-07-13 00:10:37 +02:00
Desktop: Fixes #9832: Fix user-installed versions of built-in plugins can't access resources in some cases (#9849)
This commit is contained in:
@ -11,7 +11,10 @@ const logger = Logger.create('defaultPluginsUtils');
|
||||
// Use loadAndRunDefaultPlugins
|
||||
// Exported for testing.
|
||||
export const getDefaultPluginPathsAndSettings = async (
|
||||
defaultPluginsDir: string, defaultPluginsInfo: DefaultPluginsInfo, pluginSettings: PluginSettings,
|
||||
defaultPluginsDir: string,
|
||||
defaultPluginsInfo: DefaultPluginsInfo,
|
||||
pluginSettings: PluginSettings,
|
||||
pluginService: PluginService,
|
||||
) => {
|
||||
const pluginPaths: string[] = [];
|
||||
|
||||
@ -46,6 +49,13 @@ export const getDefaultPluginPathsAndSettings = async (
|
||||
continue;
|
||||
}
|
||||
|
||||
// We skip plugins that are already loaded -- attempting to unpack a different version of a plugin
|
||||
// that has already been loaded causes errors (see #9832).
|
||||
if (pluginService.isPluginLoaded(pluginId)) {
|
||||
logger.info(`Not loading default plugin ${pluginId} -- a plugin with the same ID is already loaded.`);
|
||||
continue;
|
||||
}
|
||||
|
||||
pluginPaths.push(join(defaultPluginsDir, pluginFileName));
|
||||
|
||||
pluginSettings = produce(pluginSettings, (draft: PluginSettings) => {
|
||||
@ -69,7 +79,7 @@ export const loadAndRunDefaultPlugins = async (
|
||||
originalPluginSettings: PluginSettings,
|
||||
): Promise<PluginSettings> => {
|
||||
const { pluginPaths, pluginSettings } = await getDefaultPluginPathsAndSettings(
|
||||
defaultPluginsDir, defaultPluginsInfo, originalPluginSettings,
|
||||
defaultPluginsDir, defaultPluginsInfo, originalPluginSettings, service,
|
||||
) ?? { pluginPaths: [], pluginSettings: originalPluginSettings };
|
||||
|
||||
await service.loadAndRunPlugins(pluginPaths, pluginSettings, { builtIn: true, devMode: false });
|
||||
|
Reference in New Issue
Block a user