Keep deferred extension trust state consistent

This commit is contained in:
Frank Song committed 2026-08-07 06:03:09 +08:00
1 parent 693fbad5dc
commit 8298bc37fa
2 files changed
+4 -1

No files matched your search

+2 -1
View File
@@ -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,
+2
View File
@@ -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);