| 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/extensions/api/management/chrome_management_api_delegat
e.h" | 5 #include "chrome/browser/extensions/api/management/chrome_management_api_delegat
e.h" |
| 6 | 6 |
| 7 #include "base/callback_helpers.h" |
| 7 #include "base/macros.h" | 8 #include "base/macros.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/browser/extensions/bookmark_app_helper.h" | 10 #include "chrome/browser/extensions/bookmark_app_helper.h" |
| 10 #include "chrome/browser/extensions/chrome_extension_function_details.h" | 11 #include "chrome/browser/extensions/chrome_extension_function_details.h" |
| 11 #include "chrome/browser/extensions/chrome_requirements_checker.h" | 12 #include "chrome/browser/extensions/chrome_requirements_checker.h" |
| 12 #include "chrome/browser/extensions/extension_service.h" | 13 #include "chrome/browser/extensions/extension_service.h" |
| 13 #include "chrome/browser/extensions/extension_util.h" | 14 #include "chrome/browser/extensions/extension_util.h" |
| 14 #include "chrome/browser/extensions/launch_util.h" | 15 #include "chrome/browser/extensions/launch_util.h" |
| 15 #include "chrome/browser/favicon/favicon_service_factory.h" | 16 #include "chrome/browser/favicon/favicon_service_factory.h" |
| 16 #include "chrome/browser/profiles/profile.h" | 17 #include "chrome/browser/profiles/profile.h" |
| (...skipping 17 matching lines...) Expand all Loading... |
| 34 #include "extensions/browser/api/management/management_api_constants.h" | 35 #include "extensions/browser/api/management/management_api_constants.h" |
| 35 #include "extensions/browser/extension_prefs.h" | 36 #include "extensions/browser/extension_prefs.h" |
| 36 #include "extensions/browser/extension_registry.h" | 37 #include "extensions/browser/extension_registry.h" |
| 37 #include "extensions/browser/extension_system.h" | 38 #include "extensions/browser/extension_system.h" |
| 38 #include "extensions/common/constants.h" | 39 #include "extensions/common/constants.h" |
| 39 #include "extensions/common/extension.h" | 40 #include "extensions/common/extension.h" |
| 40 | 41 |
| 41 namespace { | 42 namespace { |
| 42 | 43 |
| 43 class ManagementSetEnabledFunctionInstallPromptDelegate | 44 class ManagementSetEnabledFunctionInstallPromptDelegate |
| 44 : public ExtensionInstallPrompt::Delegate, | 45 : public extensions::InstallPromptDelegate { |
| 45 public extensions::InstallPromptDelegate { | |
| 46 public: | 46 public: |
| 47 ManagementSetEnabledFunctionInstallPromptDelegate( | 47 ManagementSetEnabledFunctionInstallPromptDelegate( |
| 48 extensions::ManagementSetEnabledFunction* function, | 48 content::WebContents* web_contents, |
| 49 const extensions::Extension* extension) | 49 content::BrowserContext* browser_context, |
| 50 : function_(function) { | 50 const extensions::Extension* extension, |
| 51 install_prompt_.reset( | 51 const base::Callback<void(bool)>& callback) |
| 52 new ExtensionInstallPrompt(function->GetSenderWebContents())); | 52 : install_prompt_(new ExtensionInstallPrompt(web_contents)), |
| 53 callback_(callback), |
| 54 weak_factory_(this) { |
| 53 ExtensionInstallPrompt::PromptType type = | 55 ExtensionInstallPrompt::PromptType type = |
| 54 ExtensionInstallPrompt::GetReEnablePromptTypeForExtension( | 56 ExtensionInstallPrompt::GetReEnablePromptTypeForExtension( |
| 55 function->browser_context(), extension); | 57 browser_context, extension); |
| 56 install_prompt_->ShowDialog( | 58 install_prompt_->ShowDialog( |
| 57 this, extension, nullptr, | 59 base::Bind(&ManagementSetEnabledFunctionInstallPromptDelegate:: |
| 60 OnInstallPromptDone, |
| 61 weak_factory_.GetWeakPtr()), |
| 62 extension, nullptr, |
| 58 make_scoped_ptr(new ExtensionInstallPrompt::Prompt(type)), | 63 make_scoped_ptr(new ExtensionInstallPrompt::Prompt(type)), |
| 59 ExtensionInstallPrompt::GetDefaultShowDialogCallback()); | 64 ExtensionInstallPrompt::GetDefaultShowDialogCallback()); |
| 60 } | 65 } |
| 61 ~ManagementSetEnabledFunctionInstallPromptDelegate() override {} | 66 ~ManagementSetEnabledFunctionInstallPromptDelegate() override {} |
| 62 | 67 |
| 63 protected: | 68 private: |
| 64 // ExtensionInstallPrompt::Delegate. | 69 void OnInstallPromptDone(ExtensionInstallPrompt::Result result) { |
| 65 void InstallUIProceed() override { function_->InstallUIProceed(); } | 70 base::ResetAndReturn(&callback_).Run( |
| 66 void InstallUIAbort(bool user_initiated) override { | 71 result == ExtensionInstallPrompt::Result::ACCEPTED); |
| 67 function_->InstallUIAbort(user_initiated); | |
| 68 } | 72 } |
| 69 | 73 |
| 70 private: | |
| 71 extensions::ManagementSetEnabledFunction* function_; | |
| 72 | |
| 73 // Used for prompting to re-enable items with permissions escalation updates. | 74 // Used for prompting to re-enable items with permissions escalation updates. |
| 74 scoped_ptr<ExtensionInstallPrompt> install_prompt_; | 75 scoped_ptr<ExtensionInstallPrompt> install_prompt_; |
| 75 | 76 |
| 77 base::Callback<void(bool)> callback_; |
| 78 |
| 79 base::WeakPtrFactory<ManagementSetEnabledFunctionInstallPromptDelegate> |
| 80 weak_factory_; |
| 81 |
| 76 DISALLOW_COPY_AND_ASSIGN(ManagementSetEnabledFunctionInstallPromptDelegate); | 82 DISALLOW_COPY_AND_ASSIGN(ManagementSetEnabledFunctionInstallPromptDelegate); |
| 77 }; | 83 }; |
| 78 | 84 |
| 79 class ManagementUninstallFunctionUninstallDialogDelegate | 85 class ManagementUninstallFunctionUninstallDialogDelegate |
| 80 : public extensions::ExtensionUninstallDialog::Delegate, | 86 : public extensions::ExtensionUninstallDialog::Delegate, |
| 81 public extensions::UninstallDialogDelegate { | 87 public extensions::UninstallDialogDelegate { |
| 82 public: | 88 public: |
| 83 ManagementUninstallFunctionUninstallDialogDelegate( | 89 ManagementUninstallFunctionUninstallDialogDelegate( |
| 84 extensions::ManagementUninstallFunctionBase* function, | 90 extensions::ManagementUninstallFunctionBase* function, |
| 85 const extensions::Extension* target_extension, | 91 const extensions::Extension* target_extension, |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 OnParseSuccess, | 208 OnParseSuccess, |
| 203 function), | 209 function), |
| 204 base::Bind( | 210 base::Bind( |
| 205 &extensions::ManagementGetPermissionWarningsByManifestFunction:: | 211 &extensions::ManagementGetPermissionWarningsByManifestFunction:: |
| 206 OnParseFailure, | 212 OnParseFailure, |
| 207 function)); | 213 function)); |
| 208 } | 214 } |
| 209 | 215 |
| 210 scoped_ptr<extensions::InstallPromptDelegate> | 216 scoped_ptr<extensions::InstallPromptDelegate> |
| 211 ChromeManagementAPIDelegate::SetEnabledFunctionDelegate( | 217 ChromeManagementAPIDelegate::SetEnabledFunctionDelegate( |
| 212 extensions::ManagementSetEnabledFunction* function, | 218 content::WebContents* web_contents, |
| 213 const extensions::Extension* extension) const { | 219 content::BrowserContext* browser_context, |
| 220 const extensions::Extension* extension, |
| 221 const base::Callback<void(bool)>& callback) const { |
| 214 return scoped_ptr<ManagementSetEnabledFunctionInstallPromptDelegate>( | 222 return scoped_ptr<ManagementSetEnabledFunctionInstallPromptDelegate>( |
| 215 new ManagementSetEnabledFunctionInstallPromptDelegate(function, | 223 new ManagementSetEnabledFunctionInstallPromptDelegate( |
| 216 extension)); | 224 web_contents, browser_context, extension, callback)); |
| 217 } | 225 } |
| 218 | 226 |
| 219 scoped_ptr<extensions::RequirementsChecker> | 227 scoped_ptr<extensions::RequirementsChecker> |
| 220 ChromeManagementAPIDelegate::CreateRequirementsChecker() const { | 228 ChromeManagementAPIDelegate::CreateRequirementsChecker() const { |
| 221 return make_scoped_ptr(new extensions::ChromeRequirementsChecker()); | 229 return make_scoped_ptr(new extensions::ChromeRequirementsChecker()); |
| 222 } | 230 } |
| 223 | 231 |
| 224 scoped_ptr<extensions::UninstallDialogDelegate> | 232 scoped_ptr<extensions::UninstallDialogDelegate> |
| 225 ChromeManagementAPIDelegate::UninstallFunctionDelegate( | 233 ChromeManagementAPIDelegate::UninstallFunctionDelegate( |
| 226 extensions::ManagementUninstallFunctionBase* function, | 234 extensions::ManagementUninstallFunctionBase* function, |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 325 | 333 |
| 326 GURL ChromeManagementAPIDelegate::GetIconURL( | 334 GURL ChromeManagementAPIDelegate::GetIconURL( |
| 327 const extensions::Extension* extension, | 335 const extensions::Extension* extension, |
| 328 int icon_size, | 336 int icon_size, |
| 329 ExtensionIconSet::MatchType match, | 337 ExtensionIconSet::MatchType match, |
| 330 bool grayscale, | 338 bool grayscale, |
| 331 bool* exists) const { | 339 bool* exists) const { |
| 332 return extensions::ExtensionIconSource::GetIconURL(extension, icon_size, | 340 return extensions::ExtensionIconSource::GetIconURL(extension, icon_size, |
| 333 match, grayscale, exists); | 341 match, grayscale, exists); |
| 334 } | 342 } |
| OLD | NEW |