OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/renderer/extensions/dispatcher.h" | 5 #include "chrome/renderer/extensions/dispatcher.h" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/debug/alias.h" | 9 #include "base/debug/alias.h" |
10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
(...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
610 port_id, error_message, | 610 port_id, error_message, |
611 NULL); // All render views. | 611 NULL); // All render views. |
612 } | 612 } |
613 | 613 |
614 void Dispatcher::OnLoaded( | 614 void Dispatcher::OnLoaded( |
615 const std::vector<ExtensionMsg_Loaded_Params>& loaded_extensions) { | 615 const std::vector<ExtensionMsg_Loaded_Params>& loaded_extensions) { |
616 std::vector<ExtensionMsg_Loaded_Params>::const_iterator i; | 616 std::vector<ExtensionMsg_Loaded_Params>::const_iterator i; |
617 for (i = loaded_extensions.begin(); i != loaded_extensions.end(); ++i) { | 617 for (i = loaded_extensions.begin(); i != loaded_extensions.end(); ++i) { |
618 std::string error; | 618 std::string error; |
619 scoped_refptr<const Extension> extension = i->ConvertToExtension(&error); | 619 scoped_refptr<const Extension> extension = i->ConvertToExtension(&error); |
620 if (!extension) { | 620 if (!extension.get()) { |
621 extension_load_errors_[i->id] = error; | 621 extension_load_errors_[i->id] = error; |
622 continue; | 622 continue; |
623 } | 623 } |
624 OnLoadedInternal(extension); | 624 OnLoadedInternal(extension); |
625 } | 625 } |
626 } | 626 } |
627 | 627 |
628 void Dispatcher::OnLoadedInternal(scoped_refptr<const Extension> extension) { | 628 void Dispatcher::OnLoadedInternal(scoped_refptr<const Extension> extension) { |
629 extensions_.Insert(extension); | 629 extensions_.Insert(extension); |
630 } | 630 } |
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1265 scoped_refptr<const PermissionSet> delta = | 1265 scoped_refptr<const PermissionSet> delta = |
1266 new PermissionSet(apis, explicit_hosts, scriptable_hosts); | 1266 new PermissionSet(apis, explicit_hosts, scriptable_hosts); |
1267 scoped_refptr<const PermissionSet> old_active = | 1267 scoped_refptr<const PermissionSet> old_active = |
1268 extension->GetActivePermissions(); | 1268 extension->GetActivePermissions(); |
1269 UpdatedExtensionPermissionsInfo::Reason reason = | 1269 UpdatedExtensionPermissionsInfo::Reason reason = |
1270 static_cast<UpdatedExtensionPermissionsInfo::Reason>(reason_id); | 1270 static_cast<UpdatedExtensionPermissionsInfo::Reason>(reason_id); |
1271 | 1271 |
1272 const PermissionSet* new_active = NULL; | 1272 const PermissionSet* new_active = NULL; |
1273 switch (reason) { | 1273 switch (reason) { |
1274 case UpdatedExtensionPermissionsInfo::ADDED: | 1274 case UpdatedExtensionPermissionsInfo::ADDED: |
1275 new_active = PermissionSet::CreateUnion(old_active, delta); | 1275 new_active = PermissionSet::CreateUnion(old_active.get(), delta.get()); |
1276 break; | 1276 break; |
1277 case UpdatedExtensionPermissionsInfo::REMOVED: | 1277 case UpdatedExtensionPermissionsInfo::REMOVED: |
1278 new_active = PermissionSet::CreateDifference(old_active, delta); | 1278 new_active = |
| 1279 PermissionSet::CreateDifference(old_active.get(), delta.get()); |
1279 break; | 1280 break; |
1280 } | 1281 } |
1281 | 1282 |
1282 PermissionsData::SetActivePermissions(extension, new_active); | 1283 PermissionsData::SetActivePermissions(extension, new_active); |
1283 AddOrRemoveOriginPermissions(reason, extension, explicit_hosts); | 1284 AddOrRemoveOriginPermissions(reason, extension, explicit_hosts); |
1284 } | 1285 } |
1285 | 1286 |
1286 void Dispatcher::OnUpdateTabSpecificPermissions( | 1287 void Dispatcher::OnUpdateTabSpecificPermissions( |
1287 int page_id, | 1288 int page_id, |
1288 int tab_id, | 1289 int tab_id, |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1458 std::string error_msg = base::StringPrintf(kMessage, function_name.c_str()); | 1459 std::string error_msg = base::StringPrintf(kMessage, function_name.c_str()); |
1459 v8::ThrowException( | 1460 v8::ThrowException( |
1460 v8::Exception::Error(v8::String::New(error_msg.c_str()))); | 1461 v8::Exception::Error(v8::String::New(error_msg.c_str()))); |
1461 return false; | 1462 return false; |
1462 } | 1463 } |
1463 | 1464 |
1464 return true; | 1465 return true; |
1465 } | 1466 } |
1466 | 1467 |
1467 } // namespace extensions | 1468 } // namespace extensions |
OLD | NEW |