| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/extension_permissions_api.h" | 5 #include "chrome/browser/extensions/extension_permissions_api.h" |
| 6 | 6 |
| 7 #include "base/json/json_writer.h" | 7 #include "base/json/json_writer.h" |
| 8 #include "base/values.h" | 8 #include "base/values.h" |
| 9 #include "chrome/browser/extensions/extension_event_router.h" | 9 #include "chrome/browser/extensions/extension_event_router.h" |
| 10 #include "chrome/browser/extensions/extension_permissions_api_constants.h" | 10 #include "chrome/browser/extensions/extension_permissions_api_constants.h" |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 } | 194 } |
| 195 | 195 |
| 196 // Notify other APIs or interested parties. | 196 // Notify other APIs or interested parties. |
| 197 UpdatedExtensionPermissionsInfo info = UpdatedExtensionPermissionsInfo( | 197 UpdatedExtensionPermissionsInfo info = UpdatedExtensionPermissionsInfo( |
| 198 extension, changed, reason); | 198 extension, changed, reason); |
| 199 NotificationService::current()->Notify( | 199 NotificationService::current()->Notify( |
| 200 chrome::NOTIFICATION_EXTENSION_PERMISSIONS_UPDATED, | 200 chrome::NOTIFICATION_EXTENSION_PERMISSIONS_UPDATED, |
| 201 Source<Profile>(extension_service_->profile()), | 201 Source<Profile>(extension_service_->profile()), |
| 202 Details<UpdatedExtensionPermissionsInfo>(&info)); | 202 Details<UpdatedExtensionPermissionsInfo>(&info)); |
| 203 | 203 |
| 204 // Trigger the onAdded and onRemoved events in the extension. | |
| 205 DispatchEvent(extension->id(), event_name, changed); | |
| 206 | |
| 207 // Send the new permissions to the renderers. | 204 // Send the new permissions to the renderers. |
| 208 for (RenderProcessHost::iterator i(RenderProcessHost::AllHostsIterator()); | 205 for (RenderProcessHost::iterator i(RenderProcessHost::AllHostsIterator()); |
| 209 !i.IsAtEnd(); i.Advance()) { | 206 !i.IsAtEnd(); i.Advance()) { |
| 210 RenderProcessHost* host = i.GetCurrentValue(); | 207 RenderProcessHost* host = i.GetCurrentValue(); |
| 211 Profile* profile = Profile::FromBrowserContext(host->browser_context()); | 208 Profile* profile = Profile::FromBrowserContext(host->browser_context()); |
| 212 if (extension_service_->profile()->IsSameProfile(profile)) | 209 if (extension_service_->profile()->IsSameProfile(profile)) |
| 213 host->Send(new ExtensionMsg_UpdatePermissions( | 210 host->Send(new ExtensionMsg_UpdatePermissions( |
| 214 static_cast<int>(reason), | 211 static_cast<int>(reason), |
| 215 extension->id(), | 212 extension->id(), |
| 216 changed->apis(), | 213 changed->apis(), |
| 217 changed->explicit_hosts(), | 214 changed->explicit_hosts(), |
| 218 changed->scriptable_hosts())); | 215 changed->scriptable_hosts())); |
| 219 } | 216 } |
| 217 |
| 218 // Trigger the onAdded and onRemoved events in the extension. |
| 219 DispatchEvent(extension->id(), event_name, changed); |
| 220 } | 220 } |
| 221 | 221 |
| 222 bool ContainsPermissionsFunction::RunImpl() { | 222 bool ContainsPermissionsFunction::RunImpl() { |
| 223 DictionaryValue* args = NULL; | 223 DictionaryValue* args = NULL; |
| 224 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &args)); | 224 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &args)); |
| 225 std::string error; | 225 std::string error; |
| 226 if (!args) | 226 if (!args) |
| 227 return false; | 227 return false; |
| 228 | 228 |
| 229 scoped_refptr<ExtensionPermissionSet> permissions; | 229 scoped_refptr<ExtensionPermissionSet> permissions; |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 381 } | 381 } |
| 382 | 382 |
| 383 void RequestPermissionsFunction::InstallUIAbort(bool user_initiated) { | 383 void RequestPermissionsFunction::InstallUIAbort(bool user_initiated) { |
| 384 install_ui_.reset(); | 384 install_ui_.reset(); |
| 385 result_.reset(Value::CreateBooleanValue(false)); | 385 result_.reset(Value::CreateBooleanValue(false)); |
| 386 requested_permissions_ = NULL; | 386 requested_permissions_ = NULL; |
| 387 | 387 |
| 388 SendResponse(true); | 388 SendResponse(true); |
| 389 Release(); | 389 Release(); |
| 390 } | 390 } |
| OLD | NEW |