summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/ui/webui/extensions
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/chrome/browser/ui/webui/extensions
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-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.cc52
-rw-r--r--chromium/chrome/browser/ui/webui/extensions/extensions_ui.cc4
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);