diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/chrome/browser/ui/webui/extensions | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/chrome/browser/ui/webui/extensions')
-rw-r--r-- | chromium/chrome/browser/ui/webui/extensions/extensions_internals_source.cc | 52 | ||||
-rw-r--r-- | chromium/chrome/browser/ui/webui/extensions/extensions_ui.cc | 4 |
2 files changed, 54 insertions, 2 deletions
diff --git a/chromium/chrome/browser/ui/webui/extensions/extensions_internals_source.cc b/chromium/chrome/browser/ui/webui/extensions/extensions_internals_source.cc index c60227d8226..e93f7e8c7aa 100644 --- a/chromium/chrome/browser/ui/webui/extensions/extensions_internals_source.cc +++ b/chromium/chrome/browser/ui/webui/extensions/extensions_internals_source.cc @@ -20,8 +20,10 @@ #include "components/prefs/pref_service.h" #include "content/public/browser/browser_thread.h" #include "extensions/browser/activity.h" +#include "extensions/browser/disable_reason.h" #include "extensions/browser/event_listener_map.h" #include "extensions/browser/event_router.h" +#include "extensions/browser/extension_prefs.h" #include "extensions/browser/extension_registry.h" #include "extensions/browser/process_manager.h" #include "extensions/common/manifest_handlers/permissions_parser.h" @@ -121,6 +123,46 @@ base::Value CreationFlagsToList(int creation_flags) { return flags_value; } +base::Value DisableReasonsToList(int disable_reasons) { + base::Value disable_reasons_value(base::Value::Type::LIST); + if (disable_reasons & + extensions::disable_reason::DISABLE_PERMISSIONS_INCREASE) { + disable_reasons_value.Append("DISABLE_PERMISSIONS_INCREASE"); + } + if (disable_reasons & extensions::disable_reason::DISABLE_RELOAD) + disable_reasons_value.Append("DISABLE_RELOAD"); + if (disable_reasons & + extensions::disable_reason::DISABLE_UNSUPPORTED_REQUIREMENT) { + disable_reasons_value.Append("DISABLE_UNSUPPORTED_REQUIREMENT"); + } + if (disable_reasons & extensions::disable_reason::DISABLE_SIDELOAD_WIPEOUT) + disable_reasons_value.Append("DISABLE_SIDELOAD_WIPEOUT"); + if (disable_reasons & extensions::disable_reason::DISABLE_NOT_VERIFIED) + disable_reasons_value.Append("DISABLE_NOT_VERIFIED"); + if (disable_reasons & extensions::disable_reason::DISABLE_GREYLIST) + disable_reasons_value.Append("DISABLE_GREYLIST"); + if (disable_reasons & extensions::disable_reason::DISABLE_CORRUPTED) + disable_reasons_value.Append("DISABLE_CORRUPTED"); + if (disable_reasons & extensions::disable_reason::DISABLE_REMOTE_INSTALL) + disable_reasons_value.Append("DISABLE_REMOTE_INSTALL"); + if (disable_reasons & extensions::disable_reason::DISABLE_EXTERNAL_EXTENSION) + disable_reasons_value.Append("DISABLE_EXTERNAL_EXTENSION"); + if (disable_reasons & + extensions::disable_reason::DISABLE_UPDATE_REQUIRED_BY_POLICY) { + disable_reasons_value.Append("DISABLE_UPDATE_REQUIRED_BY_POLICY"); + } + if (disable_reasons & + extensions::disable_reason::DISABLE_CUSTODIAN_APPROVAL_REQUIRED) { + disable_reasons_value.Append("DISABLE_CUSTODIAN_APPROVAL_REQUIRED"); + } + if (disable_reasons & extensions::disable_reason::DISABLE_BLOCKED_BY_POLICY) + disable_reasons_value.Append("DISABLE_BLOCKED_BY_POLICY"); + if (disable_reasons & + extensions::disable_reason::DISABLE_REMOTELY_FOR_MALWARE) { + disable_reasons_value.Append("DISABLE_REMOTELY_FOR_MALWARE"); + } + return disable_reasons_value; +} // The JSON we generate looks like this: // Note: // - tab_specific permissions can have 0 or more DICT entries with each tab id @@ -133,6 +175,7 @@ base::Value CreationFlagsToList(int creation_flags) { // // [ { // "creation_flags": [ "ALLOW_FILE_ACCESS", "FROM_WEBSTORE" ], +// "disable_reasons": ["DISABLE_USER_ACTION"], // "event_listeners": { // "count": 2, // "events": [ { @@ -190,6 +233,8 @@ base::Value CreationFlagsToList(int creation_flags) { // DICT // "creation_flags": LIST // STRING +// "disable_reasons": LIST +// STRING // "event_listeners": DICT // "count": INT // "listeners": LIST @@ -251,6 +296,7 @@ constexpr base::StringPiece kEventsListenersKey = "event_listeners"; constexpr base::StringPiece kExtraDataKey = "extra_data"; constexpr base::StringPiece kFilterKey = "filter"; constexpr base::StringPiece kInternalsCreationFlagsKey = "creation_flags"; +constexpr base::StringPiece kInternalsDisableReasonsKey = "disable_reasons"; constexpr base::StringPiece kInternalsIdKey = "id"; constexpr base::StringPiece kInternalsNameKey = "name"; constexpr base::StringPiece kInternalsVersionKey = "version"; @@ -389,7 +435,7 @@ void AddEventListenerData(extensions::EventRouter* event_router, base::Value(listener_entry->listener_url().spec())); // Add the filter if one exists. base::Value* const filter = listener_entry->filter(); - if (filter != nullptr) { + if (filter) { listener_data.SetKey(kFilterKey, filter->Clone()); } listeners_list.Append(std::move(listener_data)); @@ -448,6 +494,7 @@ std::string ExtensionsInternalsSource::WriteToString() const { ->GenerateInstalledExtensionsSet(); extensions::ProcessManager* process_manager = extensions::ProcessManager::Get(profile_); + extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile_); base::Value data(base::Value::Type::LIST); for (const auto& extension : *extensions) { base::Value extension_data(base::Value::Type::DICTIONARY); @@ -455,6 +502,9 @@ std::string ExtensionsInternalsSource::WriteToString() const { extension_data.SetKey(kInternalsCreationFlagsKey, CreationFlagsToList(extension->creation_flags())); extension_data.SetKey( + kInternalsDisableReasonsKey, + DisableReasonsToList(prefs->GetDisableReasons(extension->id()))); + extension_data.SetKey( kKeepaliveKey, FormatKeepaliveData(process_manager, extension.get())); extension_data.SetKey(kLocationKey, base::Value(LocationToString(extension->location()))); diff --git a/chromium/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chromium/chrome/browser/ui/webui/extensions/extensions_ui.cc index 2f41efa7f34..0b8e0ffe833 100644 --- a/chromium/chrome/browser/ui/webui/extensions/extensions_ui.cc +++ b/chromium/chrome/browser/ui/webui/extensions/extensions_ui.cc @@ -40,6 +40,7 @@ #include "extensions/common/extension_features.h" #include "extensions/common/extension_urls.h" #include "extensions/grit/extensions_browser_resources.h" +#include "services/network/public/mojom/content_security_policy.mojom.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" #include "ui/base/webui/web_ui_util.h" @@ -382,7 +383,8 @@ ExtensionsUI::ExtensionsUI(content::WebUI* web_ui) // Need to allow <object> elements so that the <extensionoptions> browser // plugin can be loaded within chrome://extensions. - source->OverrideContentSecurityPolicyObjectSrc("object-src 'self';"); + source->OverrideContentSecurityPolicy( + network::mojom::CSPDirectiveName::ObjectSrc, "object-src 'self';"); content::WebUIDataSource::Add(profile, source); |