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

Unified 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 5 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/management/chrome_management_api_delegate.cc
diff --git a/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc b/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc
index 2ee92b5bcb9b3897252258bdb69d4ffa6954607a..2181bfc1bdf9cd3f45782abd063141b1da51f7b8 100644
--- a/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc
+++ b/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc
@@ -41,38 +41,45 @@
namespace {
class ManagementSetEnabledFunctionInstallPromptDelegate
- : public ExtensionInstallPrompt::Delegate,
- public extensions::InstallPromptDelegate {
+ : public extensions::InstallPromptDelegate {
public:
ManagementSetEnabledFunctionInstallPromptDelegate(
- extensions::ManagementSetEnabledFunction* function,
- const extensions::Extension* extension)
- : function_(function) {
- install_prompt_.reset(
- new ExtensionInstallPrompt(function->GetSenderWebContents()));
+ content::WebContents* web_contents,
+ content::BrowserContext* browser_context,
+ const extensions::Extension* extension,
+ const base::Callback<void(bool)>& callback)
+ : install_prompt_(new ExtensionInstallPrompt(web_contents)),
+ callback_(callback),
+ weak_factory_(this) {
+ 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!
ExtensionInstallPrompt::PromptType type =
ExtensionInstallPrompt::GetReEnablePromptTypeForExtension(
- function->browser_context(), extension);
+ browser_context, extension);
install_prompt_->ShowDialog(
- this, extension, nullptr,
+ base::Bind(&ManagementSetEnabledFunctionInstallPromptDelegate::
+ OnInstallPromptDone,
+ weak_factory_.GetWeakPtr()),
+ extension, nullptr,
make_scoped_ptr(new ExtensionInstallPrompt::Prompt(type)),
ExtensionInstallPrompt::GetDefaultShowDialogCallback());
}
~ManagementSetEnabledFunctionInstallPromptDelegate() override {}
- protected:
- // ExtensionInstallPrompt::Delegate.
- void InstallUIProceed() override { function_->InstallUIProceed(); }
- void InstallUIAbort(bool user_initiated) override {
- function_->InstallUIAbort(user_initiated);
+ private:
+ void OnInstallPromptDone(ExtensionInstallPrompt::Result result) {
+ callback_.Run(result == ExtensionInstallPrompt::Result::ACCEPTED);
}
- private:
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.
// Used for prompting to re-enable items with permissions escalation updates.
scoped_ptr<ExtensionInstallPrompt> install_prompt_;
+ base::Callback<void(bool)> callback_;
+
+ base::WeakPtrFactory<ManagementSetEnabledFunctionInstallPromptDelegate>
+ weak_factory_;
+
DISALLOW_COPY_AND_ASSIGN(ManagementSetEnabledFunctionInstallPromptDelegate);
};
@@ -209,11 +216,13 @@ void ChromeManagementAPIDelegate::
scoped_ptr<extensions::InstallPromptDelegate>
ChromeManagementAPIDelegate::SetEnabledFunctionDelegate(
- extensions::ManagementSetEnabledFunction* function,
- const extensions::Extension* extension) const {
+ content::WebContents* web_contents,
+ content::BrowserContext* browser_context,
+ const extensions::Extension* extension,
+ const base::Callback<void(bool)>& callback) const {
return scoped_ptr<ManagementSetEnabledFunctionInstallPromptDelegate>(
- new ManagementSetEnabledFunctionInstallPromptDelegate(function,
- extension));
+ new ManagementSetEnabledFunctionInstallPromptDelegate(
+ web_contents, browser_context, extension, callback));
}
scoped_ptr<extensions::RequirementsChecker>

Powered by Google App Engine
This is Rietveld 408576698