Chromium Code Reviews| Index: chrome/browser/ui/views/extensions/extension_install_dialog_view.cc |
| diff --git a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc |
| index 4ccf6d36576cb67b477d04dec83f4388c0a3df68..ad6feb256c6676dcde31ccf0aa9e2e8a1c9c958f 100644 |
| --- a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc |
| +++ b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc |
| @@ -51,6 +51,7 @@ |
| #include "ui/views/layout/grid_layout.h" |
| #include "ui/views/layout/layout_constants.h" |
| #include "ui/views/widget/widget.h" |
| +#include "ui/views/window/dialog_client_view.h" |
| using content::OpenURLParams; |
| using content::Referrer; |
| @@ -79,6 +80,9 @@ const int kNoPermissionsLeftColumnWidth = 200; |
| // this case, so make it wider than normal. |
| const int kExternalInstallLeftColumnWidth = 350; |
| +// Time delay to enable the install button after initial display. |
| +int g_install_delay_in_ms = 500; |
| + |
| void AddResourceIcon(const gfx::ImageSkia* skia_image, void* data) { |
| views::View* parent = static_cast<views::View*>(data); |
| views::ImageView* image_view = new views::ImageView(); |
| @@ -172,6 +176,7 @@ ExtensionInstallDialogView::ExtensionInstallDialogView( |
| scroll_view_(NULL), |
| handled_result_(false) { |
| InitView(); |
| + StartTimerToEnableInstall(); |
|
Devlin
2017/03/23 01:25:30
Here, too, just because the dialog is constructed
Ackerman
2017/03/31 22:03:22
Done.
|
| } |
| ExtensionInstallDialogView::~ExtensionInstallDialogView() { |
| @@ -568,6 +573,29 @@ views::View* ExtensionInstallDialogView::CreateExtraView() { |
| return store_link; |
| } |
| +bool ExtensionInstallDialogView::IsDialogButtonEnabled( |
| + ui::DialogButton button) const { |
| + if (button == ui::DIALOG_BUTTON_OK) |
| + return install_enabled_; |
| + return true; |
| +} |
| + |
| +void ExtensionInstallDialogView::StartTimerToEnableInstall() { |
| + timer_.Start(FROM_HERE, |
|
Devlin
2017/03/23 01:25:30
Here too, let's just inline this at the call site.
Ackerman
2017/03/31 22:03:21
Done.
|
| + base::TimeDelta::FromMilliseconds(g_install_delay_in_ms), |
| + base::Bind(&ExtensionInstallDialogView::EnableInstall, |
| + base::Unretained(this))); |
| +} |
| + |
| +void ExtensionInstallDialogView::SetInstallDelayForTesting(int delay_in_ms) { |
| + g_install_delay_in_ms = delay_in_ms; |
| +} |
| + |
| +void ExtensionInstallDialogView::EnableInstall() { |
| + install_enabled_ = true; |
| + GetDialogClientView()->UpdateDialogButtons(); |
| +} |
| + |
| void ExtensionInstallDialogView::UpdateInstallResultHistogram(bool accepted) |
| const { |
| if (prompt_->type() == ExtensionInstallPrompt::INSTALL_PROMPT) |