Chromium Code Reviews| Index: chrome/browser/extensions/extension_install_prompt.cc |
| diff --git a/chrome/browser/extensions/extension_install_prompt.cc b/chrome/browser/extensions/extension_install_prompt.cc |
| index dec1aa54f3b756b3d1ba147b74b8179e6c912cf0..8ab04ea7524da8527ed0fea85a20d6dad8184784 100644 |
| --- a/chrome/browser/extensions/extension_install_prompt.cc |
| +++ b/chrome/browser/extensions/extension_install_prompt.cc |
| @@ -16,6 +16,7 @@ |
| #include "chrome/browser/extensions/bundle_installer.h" |
| #include "chrome/browser/extensions/extension_install_ui.h" |
| #include "chrome/browser/extensions/extension_util.h" |
| +#include "chrome/browser/extensions/permissions_updater.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_window.h" |
| @@ -543,6 +544,8 @@ void ExtensionInstallPrompt::ConfirmBundleInstall( |
| const PermissionSet* permissions) { |
| DCHECK(ui_loop_ == base::MessageLoop::current()); |
| bundle_ = bundle; |
| + // |bundle|'s extensions have already had their permissions initialized at |
| + // this point, so withheld permissions will not show up in the prompt. |
| permissions_ = permissions; |
| delegate_ = bundle; |
| prompt_ = new Prompt(BUNDLE_INSTALL_PROMPT); |
| @@ -557,6 +560,10 @@ void ExtensionInstallPrompt::ConfirmStandaloneInstall( |
| scoped_refptr<Prompt> prompt) { |
| DCHECK(ui_loop_ == base::MessageLoop::current()); |
| extension_ = extension; |
| + // Initialize permissions so that withheld permissions don't end up in the |
| + // install prompt. |
| + extensions::PermissionsUpdater(install_ui_->profile()).InitializePermissions( |
| + extension_); |
|
not at google - send to devlin
2014/08/28 03:17:32
A weirdness here is that even though this is a dum
gpdavis
2014/08/28 17:41:48
Ping :)
What if we just add a flag to InitializeP
not at google - send to devlin
2014/08/28 18:28:02
Yes! That's the best solution I came up with as we
|
| permissions_ = extension->permissions_data()->active_permissions(); |
| delegate_ = delegate; |
| prompt_ = prompt; |
| @@ -583,6 +590,10 @@ void ExtensionInstallPrompt::ConfirmInstall( |
| const ShowDialogCallback& show_dialog_callback) { |
| DCHECK(ui_loop_ == base::MessageLoop::current()); |
| extension_ = extension; |
| + // Initialize permissions so that withheld permissions don't end up in the |
| + // install prompt. |
| + extensions::PermissionsUpdater(install_ui_->profile()).InitializePermissions( |
| + extension_); |
| permissions_ = extension->permissions_data()->active_permissions(); |
| delegate_ = delegate; |
| prompt_ = new Prompt(INSTALL_PROMPT); |