Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(328)

Side by Side Diff: chrome/browser/extensions/api/management/chrome_management_api_delegate.cc

Issue 1534123002: [Extensions] Migrate ExtensionInstallPrompt::Delegate to be a callback (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698