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

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, 12 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/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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698