diff --git a/static/extension_settings.js b/static/extension_settings.js index 6f74036e..33903241 100644 --- a/static/extension_settings.js +++ b/static/extension_settings.js @@ -232,6 +232,7 @@ function settingsForExtension(id,metadata){ const clean=extensionId(id); const meta=metadata||schemas.get(clean)||{id:clean,name:clean,storage_owned:false,settings_schema:[]}; + const isTrusted=metadata?true:schemas.has(clean); const schema=supportsSettings(meta)?meta.settings_schema:[]; const key=settingsKey(clean); function current(){ @@ -249,7 +250,7 @@ } return { extensionId:clean, - trusted:schemas.has(clean), + trusted:isTrusted, storageOwned:!!meta.storage_owned, supported:supportsSettings(meta), schema, diff --git a/tests/test_extension_settings_runtime.py b/tests/test_extension_settings_runtime.py index ec968d5b..a6cb53f1 100644 --- a/tests/test_extension_settings_runtime.py +++ b/tests/test_extension_settings_runtime.py @@ -243,8 +243,10 @@ def test_hermes_ext_register_runtime_identity_and_reload_lifecycle(): const deferred = window.hermesExt.register('deferred.ext'); assert.ok(deferred); assert.deepStrictEqual(deferred.settings.values, {{enabled: false, mode: 'deferred'}}); + assert.strictEqual(deferred.settings.trusted, true); assert.strictEqual(deferred.storage.set('note', 'deferred-note'), true); assert.strictEqual(deferred.storage.get('note'), 'deferred-note'); + assert.strictEqual(window.hermesExt.settings.forExtension('deferred.ext').trusted, false); assert.strictEqual(window.hermesExt.register('alpha.ext'), alpha); assert.strictEqual(alpha.settings.get('enabled'), true);