Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(935)

Unified Diff: chrome/browser/extensions/extension_service.cc

Issue 2499493004: Communicate ExtensionSettings policy to renderers (Closed)
Patch Set: URLPatternSets use shared memory for IPC. Default scope patterns sent once per renderer. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_service.cc
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 4cecaddab3e02cc9e9697c9d3f7a01d4ab746468..1b3141f69b4794f00596197e007ac9e66dbcf8c6 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -866,11 +866,18 @@ void ExtensionService::EnableExtension(const std::string& extension_id) {
const Extension* extension =
registry_->disabled_extensions().GetByID(extension_id);
+ extensions::ExtensionManagement* management =
+ extensions::ExtensionManagementFactory::GetForBrowserContext(profile());
+
ManagementPolicy* policy = system_->management_policy();
if (extension && policy->MustRemainDisabled(extension, nullptr, nullptr)) {
UMA_HISTOGRAM_COUNTS_100("Extensions.EnableDeniedByPolicy", 1);
return;
}
+ extensions::PermissionsUpdater(profile()).SetRuntimeBlockedAllowedHosts(
+ extension, management->GetRuntimeBlockedHosts(extension),
+ management->GetRuntimeAllowedHosts(extension),
+ management->IsDefaultRuntimeBlockedAllowedHosts(extension));
extension_prefs_->SetExtensionEnabled(extension_id);
@@ -1212,6 +1219,16 @@ void ExtensionService::CheckManagementPolicy() {
extensions::ExtensionManagement* management =
extensions::ExtensionManagementFactory::GetForBrowserContext(profile());
+ for (const auto& extension : registry_->enabled_extensions()) {
+ extensions::PermissionsUpdater(profile()).SetRuntimeBlockedAllowedHosts(
+ extension.get(), management->GetRuntimeBlockedHosts(extension.get()),
+ management->GetRuntimeAllowedHosts(extension.get()),
+ management->IsDefaultRuntimeBlockedAllowedHosts(extension.get()));
+ }
+ extensions::PermissionsUpdater(profile())
+ .SetDefaultRuntimeBlockedAllowedHosts(
+ management->GetDefaultRuntimeBlockedHosts(),
+ management->GetDefaultRuntimeAllowedHosts());
// Loop through the disabled extension list, find extensions to re-enable
// automatically. These extensions are exclusive from the |to_disable| and
@@ -1443,6 +1460,13 @@ void ExtensionService::OnLoadedInstalledExtensions() {
if (SharedModuleInfo::IsSharedModule(extension.get()))
to_enable.push_back(extension);
}
+ extensions::ExtensionManagement* management =
+ extensions::ExtensionManagementFactory::GetForBrowserContext(profile());
+ extensions::PermissionsUpdater(profile())
+ .SetDefaultRuntimeBlockedAllowedHosts(
+ management->GetDefaultRuntimeBlockedHosts(),
+ management->GetDefaultRuntimeAllowedHosts());
+
for (const auto& extension : to_enable) {
EnableExtension(extension->id());
}
@@ -1461,6 +1485,14 @@ void ExtensionService::AddExtension(const Extension* extension) {
return;
}
+ extensions::ExtensionManagement* settings =
+ extensions::ExtensionManagementFactory::GetForBrowserContext(profile());
+ CHECK(settings);
zmin 2016/12/22 22:15:39 Do we have to use CHECK() here? What will happened
nrpeter 2017/01/02 19:57:45 I figured that if we aren't properly distributing
zmin 2017/01/03 19:42:16 Looks like there're some CHECK(settings) in extens
Devlin 2017/01/09 23:30:57 ExtensionManagementFactory is a BCKS - the only wa
nrpeter 2017/01/19 01:50:44 Done.
+ extensions::PermissionsUpdater(profile()).SetRuntimeBlockedAllowedHosts(
+ extension, settings->GetRuntimeBlockedHosts(extension),
+ settings->GetRuntimeAllowedHosts(extension),
+ settings->IsDefaultRuntimeBlockedAllowedHosts(extension));
+
bool is_extension_upgrade = false;
bool is_extension_loaded = false;
const Extension* old = GetInstalledExtension(extension->id());
@@ -1870,6 +1902,10 @@ void ExtensionService::OnExtensionManagementSettingsChanged() {
extensions::PermissionsUpdater(profile()).RemovePermissionsUnsafe(
extension.get(), *settings->GetBlockedPermissions(extension.get()));
}
+ /* extensions::PermissionsUpdater(profile()).SetRuntimeBlockedAllowedHosts(
zmin 2016/12/22 22:15:39 Please remove this.
nrpeter 2017/01/19 01:50:44 Done.
+ extension.get(), settings->GetRuntimeBlockedHosts(extension.get()),
+ settings->GetRuntimeAllowedHosts(extension.get()),
+ settings->IsDefaultRuntimeBlockedAllowedHosts(extension.get()));*/
}
CheckManagementPolicy();

Powered by Google App Engine
This is Rietveld 408576698