fix(extensions): render installed controls from trusted state (#5094)
This commit is contained in:
parent
938f721b16
commit
46d91a7c61
3 changed files with 20 additions and 2 deletions
|
|
@ -8200,7 +8200,6 @@ function _extensionSettingsFieldHtml(field,value){
|
|||
|
||||
function _extensionSettingsControls(entry){
|
||||
const id=(entry&&entry.id)||'';
|
||||
const schema=Array.isArray(entry&&entry.settings_schema)?entry.settings_schema:[];
|
||||
const storageOwned=!!(entry&&entry.storage_owned);
|
||||
if(!storageOwned){
|
||||
return '<div class="extension-settings-empty">No extension-owned browser storage permission.</div>';
|
||||
|
|
@ -8209,6 +8208,7 @@ function _extensionSettingsControls(entry){
|
|||
if(!settingsApi||!settingsApi.trusted){
|
||||
return '<div class="extension-settings-empty">Reload WebUI after enabling or installing this extension to edit browser-local settings.</div>';
|
||||
}
|
||||
const schema=Array.isArray(settingsApi&&settingsApi.schema)?settingsApi.schema:[];
|
||||
const values=settingsApi?settingsApi.values:{};
|
||||
const fields=schema.length
|
||||
? schema.map(field=>_extensionSettingsFieldHtml(field,values[field.key])).join('')
|
||||
|
|
|
|||
|
|
@ -230,14 +230,16 @@ def test_extensions_installed_settings_route_through_shared_accessor():
|
|||
bind_block = _between("function _bindExtensionSettingsButtons", "async function loadExtensionsPanel")
|
||||
gallery_block = _between("function _renderExtensionsGallery", "function _bindExtensionGalleryButtons")
|
||||
|
||||
assert "entry&&entry.settings_schema" in settings_block
|
||||
assert "entry&&entry.storage_owned" in settings_block
|
||||
assert "window.HermesExtensionSettings.settingsForExtension(id)" in settings_block
|
||||
assert "settingsApi&&settingsApi.schema" in settings_block
|
||||
assert "settingsApi||!settingsApi.trusted" in settings_block
|
||||
assert "data-extension-settings-save" in settings_block
|
||||
assert "data-extension-settings-reset" in settings_block
|
||||
assert "data-extension-storage-clear" in settings_block
|
||||
assert "Browser-local extension settings" in settings_block
|
||||
assert "Do not store secrets here" in settings_block
|
||||
assert "Reload WebUI after enabling or installing this extension to edit browser-local settings." in settings_block
|
||||
assert "_extensionSettingsControls(entry)" in installed_block
|
||||
assert "window.HermesExtensionSettings.settingsForExtension(id).reset()" in bind_block
|
||||
assert "window.HermesExtensionSettings.storageForExtension(id).clear()" in bind_block
|
||||
|
|
|
|||
|
|
@ -133,6 +133,14 @@ def test_gallery_installed_extension_becomes_runtime_manifest(monkeypatch, tmp_p
|
|||
"enabled": True,
|
||||
"script_urls": ["/extensions/my-ext/assets/app.js"],
|
||||
"stylesheet_urls": ["/extensions/my-ext/assets/app.css"],
|
||||
"extensions": [
|
||||
{
|
||||
"id": "my-ext",
|
||||
"name": "My Extension",
|
||||
"storage_owned": False,
|
||||
"settings_schema": [],
|
||||
}
|
||||
],
|
||||
}
|
||||
status = ext_mod.get_extension_status()
|
||||
assert status["manifest"]["status"] == "gallery_installed"
|
||||
|
|
@ -203,6 +211,14 @@ def test_install_bootstraps_managed_default_root_without_env(monkeypatch, tmp_pa
|
|||
"enabled": True,
|
||||
"script_urls": ["/extensions/plug-ext/app.js"],
|
||||
"stylesheet_urls": [],
|
||||
"extensions": [
|
||||
{
|
||||
"id": "plug-ext",
|
||||
"name": "Plug And Play",
|
||||
"storage_owned": False,
|
||||
"settings_schema": [],
|
||||
}
|
||||
],
|
||||
}
|
||||
status = ext_mod.get_extension_status()
|
||||
assert status["enabled"] is True
|
||||
|
|
|
|||
Loading…
Reference in a new issue