Chromium Code Reviews| Index: extensions/renderer/dispatcher.cc |
| diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc |
| index fe1cff9c125c395142fc73e8489cfdee47110f17..4866252c122bdee8c2f4ab78ab11daac6eede7bd 100644 |
| --- a/extensions/renderer/dispatcher.cc |
| +++ b/extensions/renderer/dispatcher.cc |
| @@ -934,6 +934,8 @@ bool Dispatcher::OnControlMessageReceived(const IPC::Message& message) { |
| IPC_MESSAGE_HANDLER(ExtensionMsg_TransferBlobs, OnTransferBlobs) |
| IPC_MESSAGE_HANDLER(ExtensionMsg_Unloaded, OnUnloaded) |
| IPC_MESSAGE_HANDLER(ExtensionMsg_UpdatePermissions, OnUpdatePermissions) |
| + IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateDefaultPolicyHostRestrictions, |
| + OnUpdateDefaultPolicyHostRestrictions) |
| IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateTabSpecificPermissions, |
| OnUpdateTabSpecificPermissions) |
| IPC_MESSAGE_HANDLER(ExtensionMsg_ClearTabSpecificPermissions, |
| @@ -1063,7 +1065,6 @@ void Dispatcher::OnLoaded( |
| extension_load_errors_[param.id] = error; |
| continue; |
| } |
| - |
| RendererExtensionRegistry* extension_registry = |
| RendererExtensionRegistry::Get(); |
| // TODO(kalman): This test is deliberately not a CHECK (though I wish it |
| @@ -1080,12 +1081,18 @@ void Dispatcher::OnLoaded( |
| // consider making this a release CHECK. |
| NOTREACHED(); |
| } |
| + if (!param.uses_default_policy_blocked_allowed_hosts) { |
| + extension->permissions_data()->SetPolicyHostRestrictions( |
| + param.policy_blocked_hosts, param.policy_allowed_hosts); |
| + } |
| + extension->permissions_data()->SetUsesDefaultHostRestrictions( |
|
Devlin
2017/04/03 15:52:23
see comment in extension_service.cc
nrpeter
2017/04/03 22:35:48
Done.
|
| + param.uses_default_policy_blocked_allowed_hosts); |
| } |
| // Update the available bindings for all contexts. These may have changed if |
| // an externally_connectable extension was loaded that can connect to an |
| // open webpage. |
| - UpdateBindings(""); |
| + UpdateBindings(std::string()); |
| } |
| void Dispatcher::OnMessageInvoke(const std::string& extension_id, |
| @@ -1187,6 +1194,13 @@ void Dispatcher::OnUnloaded(const std::string& id) { |
| // extension's URL just won't match anything anymore. |
| } |
| +void Dispatcher::OnUpdateDefaultPolicyHostRestrictions( |
| + const ExtensionMsg_UpdateDefaultPolicyHostRestrictions_Params& params) { |
| + PermissionsData::SetDefaultPolicyHostRestrictions( |
| + params.default_policy_blocked_hosts, params.default_policy_allowed_hosts); |
| + UpdateBindings(std::string()); |
| +} |
| + |
| void Dispatcher::OnUpdatePermissions( |
| const ExtensionMsg_UpdatePermissions_Params& params) { |
| const Extension* extension = |
| @@ -1206,6 +1220,12 @@ void Dispatcher::OnUpdatePermissions( |
| extension->permissions_data()->SetPermissions(std::move(active), |
| std::move(withheld)); |
| + if (!params.uses_default_policy_host_restrictions) { |
| + extension->permissions_data()->SetPolicyHostRestrictions( |
| + params.policy_blocked_hosts, params.policy_allowed_hosts); |
| + } |
| + extension->permissions_data()->SetUsesDefaultHostRestrictions( |
|
Devlin
2017/04/03 15:52:23
see comment in extension_service.cc
nrpeter
2017/04/03 22:35:48
Done.
|
| + params.uses_default_policy_host_restrictions); |
| UpdateBindings(extension->id()); |
| } |