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

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

Issue 1010953002: [Extensions] Add support for reporting abuse on extension uninstallation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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_uninstall_dialog_view.cc
diff --git a/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view.cc b/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view.cc
index 847bcc775c9297b85f497656a1878386f074b849..b064cc739dbe65427d596de76ff0d65f902aa74b 100644
--- a/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view.cc
+++ b/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view.cc
@@ -17,6 +17,7 @@
#include "ui/base/l10n/l10n_util.h"
#include "ui/compositor/compositor.h"
#include "ui/compositor/layer.h"
+#include "ui/views/controls/button/checkbox.h"
#include "ui/views/controls/image_view.h"
#include "ui/views/controls/label.h"
#include "ui/views/layout/layout_constants.h"
@@ -46,7 +47,7 @@ class ExtensionUninstallDialogViews
void DialogDelegateDestroyed() { view_ = NULL; }
// Forwards the accept and cancels to the delegate.
- void ExtensionUninstallAccepted();
+ void ExtensionUninstallAccepted(bool handle_report_abuse);
void ExtensionUninstallCanceled();
private:
@@ -79,6 +80,7 @@ class ExtensionUninstallDialogDelegateView : public views::DialogDelegateView {
private:
// views::DialogDelegate:
+ views::View* CreateExtraView() override;
base::string16 GetDialogButtonLabel(ui::DialogButton button) const override;
int GetDefaultDialogButton() const override {
// Default to accept when triggered via chrome://extensions page.
@@ -102,6 +104,7 @@ class ExtensionUninstallDialogDelegateView : public views::DialogDelegateView {
views::ImageView* icon_;
views::Label* heading_;
bool triggered_by_extension_;
+ views::Checkbox* report_abuse_checkbox_;
DISALLOW_COPY_AND_ASSIGN(ExtensionUninstallDialogDelegateView);
};
@@ -136,10 +139,13 @@ void ExtensionUninstallDialogViews::Show() {
constrained_window::CreateBrowserModalDialogViews(view_, parent_)->Show();
}
-void ExtensionUninstallDialogViews::ExtensionUninstallAccepted() {
+void ExtensionUninstallDialogViews::ExtensionUninstallAccepted(
+ bool report_abuse_checked) {
// The widget gets destroyed when the dialog is accepted.
view_->DialogDestroyed();
view_ = NULL;
+ if (report_abuse_checked)
+ HandleReportAbuse();
delegate_->ExtensionUninstallAccepted();
}
@@ -156,7 +162,8 @@ ExtensionUninstallDialogDelegateView::ExtensionUninstallDialogDelegateView(
const extensions::Extension* triggering_extension,
gfx::ImageSkia* image)
: dialog_(dialog_view),
- triggered_by_extension_(triggering_extension != NULL) {
+ triggered_by_extension_(triggering_extension != NULL),
+ report_abuse_checkbox_(nullptr) {
// Scale down to icon size, but allow smaller icons (don't scale up).
gfx::Size size(image->width(), image->height());
if (size.width() > kIconSize || size.height() > kIconSize)
@@ -184,6 +191,14 @@ ExtensionUninstallDialogDelegateView::~ExtensionUninstallDialogDelegateView() {
dialog_->DialogDelegateDestroyed();
}
+views::View* ExtensionUninstallDialogDelegateView::CreateExtraView() {
+ if (dialog_->ShouldShowReportAbuseCheckbox()) {
+ report_abuse_checkbox_ = new views::Checkbox(
+ l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_UNINSTALL_REPORT_ABUSE));
+ }
+ return report_abuse_checkbox_;
+}
+
base::string16 ExtensionUninstallDialogDelegateView::GetDialogButtonLabel(
ui::DialogButton button) const {
return l10n_util::GetStringUTF16((button == ui::DIALOG_BUTTON_OK) ?
@@ -191,8 +206,10 @@ base::string16 ExtensionUninstallDialogDelegateView::GetDialogButtonLabel(
}
bool ExtensionUninstallDialogDelegateView::Accept() {
- if (dialog_)
- dialog_->ExtensionUninstallAccepted();
+ if (dialog_) {
+ dialog_->ExtensionUninstallAccepted(
+ report_abuse_checkbox_ && report_abuse_checkbox_->checked());
+ }
return true;
}

Powered by Google App Engine
This is Rietveld 408576698