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/browser/ui/extensions/extension_enable_flow.h" | 5 #include "chrome/browser/ui/extensions/extension_enable_flow.h" |
6 | 6 |
7 #include "chrome/browser/chrome_notification_types.h" | 7 #include "chrome/browser/chrome_notification_types.h" |
8 #include "chrome/browser/extensions/extension_service.h" | 8 #include "chrome/browser/extensions/extension_service.h" |
| 9 #include "chrome/browser/extensions/extension_util.h" |
9 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
10 #include "chrome/browser/ui/extensions/extension_enable_flow_delegate.h" | 11 #include "chrome/browser/ui/extensions/extension_enable_flow_delegate.h" |
11 #include "content/public/browser/notification_details.h" | 12 #include "content/public/browser/notification_details.h" |
12 #include "content/public/browser/notification_source.h" | 13 #include "content/public/browser/notification_source.h" |
13 #include "extensions/browser/extension_prefs.h" | 14 #include "extensions/browser/extension_prefs.h" |
14 #include "extensions/browser/extension_registry.h" | 15 #include "extensions/browser/extension_registry.h" |
15 #include "extensions/browser/extension_system.h" | 16 #include "extensions/browser/extension_system.h" |
16 | 17 |
17 using extensions::Extension; | 18 using extensions::Extension; |
18 | 19 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 | 81 |
81 void ExtensionEnableFlow::CheckPermissionAndMaybePromptUser() { | 82 void ExtensionEnableFlow::CheckPermissionAndMaybePromptUser() { |
82 ExtensionService* service = | 83 ExtensionService* service = |
83 extensions::ExtensionSystem::Get(profile_)->extension_service(); | 84 extensions::ExtensionSystem::Get(profile_)->extension_service(); |
84 const Extension* extension = service->GetExtensionById(extension_id_, true); | 85 const Extension* extension = service->GetExtensionById(extension_id_, true); |
85 if (!extension) { | 86 if (!extension) { |
86 delegate_->ExtensionEnableFlowAborted(false); // |delegate_| may delete us. | 87 delegate_->ExtensionEnableFlowAborted(false); // |delegate_| may delete us. |
87 return; | 88 return; |
88 } | 89 } |
89 | 90 |
| 91 // Supervised users can't re-enable custodian-installed extensions. |
| 92 if (extensions::util::IsExtensionSupervised(extension, profile_)) { |
| 93 delegate_->ExtensionEnableFlowAborted(false); // |delegate_| may delete us. |
| 94 return; |
| 95 } |
| 96 |
90 extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile_); | 97 extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile_); |
91 if (!prefs->DidExtensionEscalatePermissions(extension_id_)) { | 98 if (!prefs->DidExtensionEscalatePermissions(extension_id_)) { |
92 // Enable the extension immediately if its privileges weren't escalated. | 99 // Enable the extension immediately if its privileges weren't escalated. |
93 // This is a no-op if the extension was previously terminated. | 100 // This is a no-op if the extension was previously terminated. |
94 service->EnableExtension(extension_id_); | 101 service->EnableExtension(extension_id_); |
95 | 102 |
96 delegate_->ExtensionEnableFlowFinished(); // |delegate_| may delete us. | 103 delegate_->ExtensionEnableFlowFinished(); // |delegate_| may delete us. |
97 return; | 104 return; |
98 } | 105 } |
99 | 106 |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 } | 169 } |
163 | 170 |
164 service->GrantPermissionsAndEnableExtension(extension); | 171 service->GrantPermissionsAndEnableExtension(extension); |
165 delegate_->ExtensionEnableFlowFinished(); // |delegate_| may delete us. | 172 delegate_->ExtensionEnableFlowFinished(); // |delegate_| may delete us. |
166 } | 173 } |
167 | 174 |
168 void ExtensionEnableFlow::InstallUIAbort(bool user_initiated) { | 175 void ExtensionEnableFlow::InstallUIAbort(bool user_initiated) { |
169 delegate_->ExtensionEnableFlowAborted(user_initiated); | 176 delegate_->ExtensionEnableFlowAborted(user_initiated); |
170 // |delegate_| may delete us. | 177 // |delegate_| may delete us. |
171 } | 178 } |
OLD | NEW |