OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/supervised_user/supervised_user_service.h" | 5 #include "chrome/browser/supervised_user/supervised_user_service.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
268 return "Supervised User Service"; | 268 return "Supervised User Service"; |
269 #endif | 269 #endif |
270 } | 270 } |
271 | 271 |
272 bool SupervisedUserService::UserMayLoad(const extensions::Extension* extension, | 272 bool SupervisedUserService::UserMayLoad(const extensions::Extension* extension, |
273 base::string16* error) const { | 273 base::string16* error) const { |
274 base::string16 tmp_error; | 274 base::string16 tmp_error; |
275 if (ExtensionManagementPolicyImpl(extension, &tmp_error)) | 275 if (ExtensionManagementPolicyImpl(extension, &tmp_error)) |
276 return true; | 276 return true; |
277 | 277 |
278 // If the extension is already loaded, we allow it, otherwise we'd unload | |
279 // all existing extensions. | |
280 ExtensionService* extension_service = | |
281 extensions::ExtensionSystem::Get(profile_)->extension_service(); | |
282 | |
283 // |extension_service| can be NULL in a unit test. | |
284 if (extension_service && | |
285 extension_service->GetInstalledExtension(extension->id())) | |
286 return true; | |
287 | |
288 bool was_installed_by_default = extension->was_installed_by_default(); | 278 bool was_installed_by_default = extension->was_installed_by_default(); |
289 bool was_installed_by_custodian = extension->was_installed_by_custodian(); | 279 bool was_installed_by_custodian = extension->was_installed_by_custodian(); |
290 #if defined(OS_CHROMEOS) | 280 #if defined(OS_CHROMEOS) |
291 // On Chrome OS all external sources are controlled by us so it means that | 281 // On Chrome OS all external sources are controlled by us so it means that |
292 // they are "default". Method was_installed_by_default returns false because | 282 // they are "default". Method was_installed_by_default returns false because |
293 // extensions creation flags are ignored in case of default extensions with | 283 // extensions creation flags are ignored in case of default extensions with |
294 // update URL(the flags aren't passed to OnExternalExtensionUpdateUrlFound). | 284 // update URL(the flags aren't passed to OnExternalExtensionUpdateUrlFound). |
295 // TODO(dpolukhin): remove this Chrome OS specific code as soon as creation | 285 // TODO(dpolukhin): remove this Chrome OS specific code as soon as creation |
296 // flags are not ignored. | 286 // flags are not ignored. |
297 was_installed_by_default = | 287 was_installed_by_default = |
298 extensions::Manifest::IsExternalLocation(extension->location()); | 288 extensions::Manifest::IsExternalLocation(extension->location()); |
299 #endif | 289 #endif |
300 if (extension->location() == extensions::Manifest::COMPONENT || | 290 if (extensions::Manifest::IsComponentLocation(extension->location()) || |
301 was_installed_by_default || | 291 was_installed_by_default || |
302 was_installed_by_custodian) { | 292 was_installed_by_custodian) { |
303 return true; | 293 return true; |
304 } | 294 } |
305 | 295 |
306 if (error) | 296 if (error) |
307 *error = tmp_error; | 297 *error = tmp_error; |
308 return false; | 298 return false; |
309 } | 299 } |
310 | 300 |
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
765 | 755 |
766 void SupervisedUserService::OnBrowserSetLastActive(Browser* browser) { | 756 void SupervisedUserService::OnBrowserSetLastActive(Browser* browser) { |
767 bool profile_became_active = profile_->IsSameProfile(browser->profile()); | 757 bool profile_became_active = profile_->IsSameProfile(browser->profile()); |
768 if (!is_profile_active_ && profile_became_active) | 758 if (!is_profile_active_ && profile_became_active) |
769 content::RecordAction(UserMetricsAction("ManagedUsers_OpenProfile")); | 759 content::RecordAction(UserMetricsAction("ManagedUsers_OpenProfile")); |
770 else if (is_profile_active_ && !profile_became_active) | 760 else if (is_profile_active_ && !profile_became_active) |
771 content::RecordAction(UserMetricsAction("ManagedUsers_SwitchProfile")); | 761 content::RecordAction(UserMetricsAction("ManagedUsers_SwitchProfile")); |
772 | 762 |
773 is_profile_active_ = profile_became_active; | 763 is_profile_active_ = profile_became_active; |
774 } | 764 } |
OLD | NEW |