Chromium Code Reviews| 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/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/browser/extensions/bookmark_app_helper.h" | 9 #include "chrome/browser/extensions/bookmark_app_helper.h" |
| 10 #include "chrome/browser/extensions/chrome_extension_function_details.h" | 10 #include "chrome/browser/extensions/chrome_extension_function_details.h" |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 34 #include "extensions/browser/api/management/management_api_constants.h" | 34 #include "extensions/browser/api/management/management_api_constants.h" |
| 35 #include "extensions/browser/extension_prefs.h" | 35 #include "extensions/browser/extension_prefs.h" |
| 36 #include "extensions/browser/extension_registry.h" | 36 #include "extensions/browser/extension_registry.h" |
| 37 #include "extensions/browser/extension_system.h" | 37 #include "extensions/browser/extension_system.h" |
| 38 #include "extensions/common/constants.h" | 38 #include "extensions/common/constants.h" |
| 39 #include "extensions/common/extension.h" | 39 #include "extensions/common/extension.h" |
| 40 | 40 |
| 41 namespace { | 41 namespace { |
| 42 | 42 |
| 43 class ManagementSetEnabledFunctionInstallPromptDelegate | 43 class ManagementSetEnabledFunctionInstallPromptDelegate |
| 44 : public ExtensionInstallPrompt::Delegate, | 44 : public extensions::InstallPromptDelegate { |
| 45 public extensions::InstallPromptDelegate { | |
| 46 public: | 45 public: |
| 47 ManagementSetEnabledFunctionInstallPromptDelegate( | 46 ManagementSetEnabledFunctionInstallPromptDelegate( |
| 48 extensions::ManagementSetEnabledFunction* function, | 47 content::WebContents* web_contents, |
| 49 const extensions::Extension* extension) | 48 content::BrowserContext* browser_context, |
| 50 : function_(function) { | 49 const extensions::Extension* extension, |
| 51 install_prompt_.reset( | 50 const base::Callback<void(bool)>& callback) |
| 52 new ExtensionInstallPrompt(function->GetSenderWebContents())); | 51 : install_prompt_(new ExtensionInstallPrompt(web_contents)), |
| 52 callback_(callback), | |
| 53 weak_factory_(this) { | |
| 54 install_prompt_.reset(new ExtensionInstallPrompt(web_contents)); | |
|
asargent_no_longer_on_chrome
2015/12/31 00:45:56
nit: looks like you're initializing install_prompt
Devlin
2016/01/04 22:59:22
Whoops, thanks!
| |
| 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 callback_.Run(result == ExtensionInstallPrompt::Result::ACCEPTED); |
| 66 void InstallUIAbort(bool user_initiated) override { | |
| 67 function_->InstallUIAbort(user_initiated); | |
| 68 } | 71 } |
| 69 | 72 |
| 70 private: | |
| 71 extensions::ManagementSetEnabledFunction* function_; | 73 extensions::ManagementSetEnabledFunction* function_; |
|
asargent_no_longer_on_chrome
2015/12/31 00:45:56
Can you get rid of function_? Looks like we aren't
Devlin
2016/01/04 22:59:22
Done.
| |
| 72 | 74 |
| 73 // Used for prompting to re-enable items with permissions escalation updates. | 75 // Used for prompting to re-enable items with permissions escalation updates. |
| 74 scoped_ptr<ExtensionInstallPrompt> install_prompt_; | 76 scoped_ptr<ExtensionInstallPrompt> install_prompt_; |
| 75 | 77 |
| 78 base::Callback<void(bool)> callback_; | |
| 79 | |
| 80 base::WeakPtrFactory<ManagementSetEnabledFunctionInstallPromptDelegate> | |
| 81 weak_factory_; | |
| 82 | |
| 76 DISALLOW_COPY_AND_ASSIGN(ManagementSetEnabledFunctionInstallPromptDelegate); | 83 DISALLOW_COPY_AND_ASSIGN(ManagementSetEnabledFunctionInstallPromptDelegate); |
| 77 }; | 84 }; |
| 78 | 85 |
| 79 class ManagementUninstallFunctionUninstallDialogDelegate | 86 class ManagementUninstallFunctionUninstallDialogDelegate |
| 80 : public extensions::ExtensionUninstallDialog::Delegate, | 87 : public extensions::ExtensionUninstallDialog::Delegate, |
| 81 public extensions::UninstallDialogDelegate { | 88 public extensions::UninstallDialogDelegate { |
| 82 public: | 89 public: |
| 83 ManagementUninstallFunctionUninstallDialogDelegate( | 90 ManagementUninstallFunctionUninstallDialogDelegate( |
| 84 extensions::ManagementUninstallFunctionBase* function, | 91 extensions::ManagementUninstallFunctionBase* function, |
| 85 const extensions::Extension* target_extension, | 92 const extensions::Extension* target_extension, |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 202 OnParseSuccess, | 209 OnParseSuccess, |
| 203 function), | 210 function), |
| 204 base::Bind( | 211 base::Bind( |
| 205 &extensions::ManagementGetPermissionWarningsByManifestFunction:: | 212 &extensions::ManagementGetPermissionWarningsByManifestFunction:: |
| 206 OnParseFailure, | 213 OnParseFailure, |
| 207 function)); | 214 function)); |
| 208 } | 215 } |
| 209 | 216 |
| 210 scoped_ptr<extensions::InstallPromptDelegate> | 217 scoped_ptr<extensions::InstallPromptDelegate> |
| 211 ChromeManagementAPIDelegate::SetEnabledFunctionDelegate( | 218 ChromeManagementAPIDelegate::SetEnabledFunctionDelegate( |
| 212 extensions::ManagementSetEnabledFunction* function, | 219 content::WebContents* web_contents, |
| 213 const extensions::Extension* extension) const { | 220 content::BrowserContext* browser_context, |
| 221 const extensions::Extension* extension, | |
| 222 const base::Callback<void(bool)>& callback) const { | |
| 214 return scoped_ptr<ManagementSetEnabledFunctionInstallPromptDelegate>( | 223 return scoped_ptr<ManagementSetEnabledFunctionInstallPromptDelegate>( |
| 215 new ManagementSetEnabledFunctionInstallPromptDelegate(function, | 224 new ManagementSetEnabledFunctionInstallPromptDelegate( |
| 216 extension)); | 225 web_contents, browser_context, extension, callback)); |
| 217 } | 226 } |
| 218 | 227 |
| 219 scoped_ptr<extensions::RequirementsChecker> | 228 scoped_ptr<extensions::RequirementsChecker> |
| 220 ChromeManagementAPIDelegate::CreateRequirementsChecker() const { | 229 ChromeManagementAPIDelegate::CreateRequirementsChecker() const { |
| 221 return make_scoped_ptr(new extensions::ChromeRequirementsChecker()); | 230 return make_scoped_ptr(new extensions::ChromeRequirementsChecker()); |
| 222 } | 231 } |
| 223 | 232 |
| 224 scoped_ptr<extensions::UninstallDialogDelegate> | 233 scoped_ptr<extensions::UninstallDialogDelegate> |
| 225 ChromeManagementAPIDelegate::UninstallFunctionDelegate( | 234 ChromeManagementAPIDelegate::UninstallFunctionDelegate( |
| 226 extensions::ManagementUninstallFunctionBase* function, | 235 extensions::ManagementUninstallFunctionBase* function, |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 325 | 334 |
| 326 GURL ChromeManagementAPIDelegate::GetIconURL( | 335 GURL ChromeManagementAPIDelegate::GetIconURL( |
| 327 const extensions::Extension* extension, | 336 const extensions::Extension* extension, |
| 328 int icon_size, | 337 int icon_size, |
| 329 ExtensionIconSet::MatchType match, | 338 ExtensionIconSet::MatchType match, |
| 330 bool grayscale, | 339 bool grayscale, |
| 331 bool* exists) const { | 340 bool* exists) const { |
| 332 return extensions::ExtensionIconSource::GetIconURL(extension, icon_size, | 341 return extensions::ExtensionIconSource::GetIconURL(extension, icon_size, |
| 333 match, grayscale, exists); | 342 match, grayscale, exists); |
| 334 } | 343 } |
| OLD | NEW |