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

Unified Diff: chrome/browser/ui/views/extensions/extension_install_dialog_view.cc

Issue 2716353003: [Extensions UI] Initially disabled OK button for extension install prompts. (Closed)
Patch Set: Fixing grammar in comments. Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
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)

Powered by Google App Engine
This is Rietveld 408576698