OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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_service.h" | 5 #include "chrome/browser/extensions/extension_service.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <iterator> | 8 #include <iterator> |
9 #include <set> | 9 #include <set> |
10 | 10 |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 | 71 |
72 #if defined(OS_CHROMEOS) | 72 #if defined(OS_CHROMEOS) |
73 #include "chrome/browser/chromeos/extensions/install_limiter.h" | 73 #include "chrome/browser/chromeos/extensions/install_limiter.h" |
74 #include "webkit/browser/fileapi/file_system_backend.h" | 74 #include "webkit/browser/fileapi/file_system_backend.h" |
75 #include "webkit/browser/fileapi/file_system_context.h" | 75 #include "webkit/browser/fileapi/file_system_context.h" |
76 #endif | 76 #endif |
77 | 77 |
78 using content::BrowserContext; | 78 using content::BrowserContext; |
79 using content::BrowserThread; | 79 using content::BrowserThread; |
80 using content::DevToolsAgentHost; | 80 using content::DevToolsAgentHost; |
| 81 using extensions::ContentVerifierKey; |
81 using extensions::CrxInstaller; | 82 using extensions::CrxInstaller; |
82 using extensions::Extension; | 83 using extensions::Extension; |
83 using extensions::ExtensionIdSet; | 84 using extensions::ExtensionIdSet; |
84 using extensions::ExtensionInfo; | 85 using extensions::ExtensionInfo; |
85 using extensions::ExtensionRegistry; | 86 using extensions::ExtensionRegistry; |
86 using extensions::ExtensionSet; | 87 using extensions::ExtensionSet; |
87 using extensions::FeatureSwitch; | 88 using extensions::FeatureSwitch; |
88 using extensions::InstallVerifier; | 89 using extensions::InstallVerifier; |
89 using extensions::ManagementPolicy; | 90 using extensions::ManagementPolicy; |
90 using extensions::Manifest; | 91 using extensions::Manifest; |
| 92 using extensions::ManifestURL; |
91 using extensions::PermissionMessage; | 93 using extensions::PermissionMessage; |
92 using extensions::PermissionMessages; | 94 using extensions::PermissionMessages; |
93 using extensions::PermissionSet; | 95 using extensions::PermissionSet; |
94 using extensions::SharedModuleInfo; | 96 using extensions::SharedModuleInfo; |
95 using extensions::SharedModuleService; | 97 using extensions::SharedModuleService; |
96 using extensions::UnloadedExtensionInfo; | 98 using extensions::UnloadedExtensionInfo; |
97 | 99 |
98 namespace errors = extensions::manifest_errors; | 100 namespace errors = extensions::manifest_errors; |
99 | 101 |
100 namespace { | 102 namespace { |
(...skipping 2287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2388 continue; | 2390 continue; |
2389 } | 2391 } |
2390 greylist_.Insert(extension); | 2392 greylist_.Insert(extension); |
2391 extension_prefs_->SetExtensionBlacklistState(extension->id(), | 2393 extension_prefs_->SetExtensionBlacklistState(extension->id(), |
2392 state_map.find(*it)->second); | 2394 state_map.find(*it)->second); |
2393 if (registry_->enabled_extensions().Contains(extension->id())) | 2395 if (registry_->enabled_extensions().Contains(extension->id())) |
2394 DisableExtension(*it, extensions::Extension::DISABLE_GREYLIST); | 2396 DisableExtension(*it, extensions::Extension::DISABLE_GREYLIST); |
2395 } | 2397 } |
2396 } | 2398 } |
2397 | 2399 |
2398 void ExtensionService::ContentVerifyFailed(const std::string& extension_id) { | 2400 bool ExtensionService::ShouldBeVerified(const Extension& extension) { |
| 2401 return ((extension.is_extension() || extension.is_legacy_packaged_app()) && |
| 2402 ManifestURL::UpdatesFromGallery(&extension) && |
| 2403 Manifest::IsAutoUpdateableLocation(extension.location())); |
| 2404 return false; |
| 2405 } |
| 2406 |
| 2407 const ContentVerifierKey& ExtensionService::PublicKey() { |
| 2408 static ContentVerifierKey key( |
| 2409 extension_misc::kWebstoreSignaturesPublicKey, |
| 2410 extension_misc::kWebstoreSignaturesPublicKeySize); |
| 2411 return key; |
| 2412 } |
| 2413 |
| 2414 GURL ExtensionService::GetSignatureFetchUrl(const std::string& extension_id, |
| 2415 const base::Version& version) { |
| 2416 return GURL(); |
| 2417 } |
| 2418 |
| 2419 void ExtensionService::VerifyFailed(const std::string& extension_id) { |
2399 DisableExtension(extension_id, Extension::DISABLE_CORRUPTED); | 2420 DisableExtension(extension_id, Extension::DISABLE_CORRUPTED); |
2400 } | 2421 } |
2401 | 2422 |
2402 void ExtensionService::AddUpdateObserver(extensions::UpdateObserver* observer) { | 2423 void ExtensionService::AddUpdateObserver(extensions::UpdateObserver* observer) { |
2403 update_observers_.AddObserver(observer); | 2424 update_observers_.AddObserver(observer); |
2404 } | 2425 } |
2405 | 2426 |
2406 void ExtensionService::RemoveUpdateObserver( | 2427 void ExtensionService::RemoveUpdateObserver( |
2407 extensions::UpdateObserver* observer) { | 2428 extensions::UpdateObserver* observer) { |
2408 update_observers_.RemoveObserver(observer); | 2429 update_observers_.RemoveObserver(observer); |
2409 } | 2430 } |
2410 | 2431 |
2411 // Used only by test code. | 2432 // Used only by test code. |
2412 void ExtensionService::UnloadAllExtensionsInternal() { | 2433 void ExtensionService::UnloadAllExtensionsInternal() { |
2413 profile_->GetExtensionSpecialStoragePolicy()->RevokeRightsForAllExtensions(); | 2434 profile_->GetExtensionSpecialStoragePolicy()->RevokeRightsForAllExtensions(); |
2414 | 2435 |
2415 registry_->ClearAll(); | 2436 registry_->ClearAll(); |
2416 system_->runtime_data()->ClearAll(); | 2437 system_->runtime_data()->ClearAll(); |
2417 | 2438 |
2418 // TODO(erikkay) should there be a notification for this? We can't use | 2439 // TODO(erikkay) should there be a notification for this? We can't use |
2419 // EXTENSION_UNLOADED since that implies that the extension has been disabled | 2440 // EXTENSION_UNLOADED since that implies that the extension has been disabled |
2420 // or uninstalled. | 2441 // or uninstalled. |
2421 } | 2442 } |
OLD | NEW |