| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/download/download_feedback_dialog_view.h" | 5 #include "chrome/browser/ui/views/download/download_feedback_dialog_view.h" |
| 6 | 6 |
| 7 #include "base/metrics/histogram_macros.h" | 7 #include "base/metrics/histogram_macros.h" |
| 8 #include "base/supports_user_data.h" | 8 #include "base/supports_user_data.h" |
| 9 #include "chrome/browser/platform_util.h" | 9 #include "chrome/browser/platform_util.h" |
| 10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| 11 #include "chrome/common/pref_names.h" | 11 #include "chrome/common/pref_names.h" |
| 12 #include "chrome/grit/chromium_strings.h" | 12 #include "chrome/grit/chromium_strings.h" |
| 13 #include "chrome/grit/generated_resources.h" | 13 #include "chrome/grit/generated_resources.h" |
| 14 #include "components/constrained_window/constrained_window_views.h" | 14 #include "components/constrained_window/constrained_window_views.h" |
| 15 #include "components/prefs/pref_service.h" | 15 #include "components/prefs/pref_service.h" |
| 16 #include "components/safe_browsing_db/safe_browsing_prefs.h" |
| 16 #include "components/strings/grit/components_strings.h" | 17 #include "components/strings/grit/components_strings.h" |
| 17 #include "content/public/browser/page_navigator.h" | 18 #include "content/public/browser/page_navigator.h" |
| 18 #include "ui/base/l10n/l10n_util.h" | 19 #include "ui/base/l10n/l10n_util.h" |
| 19 #include "ui/views/controls/link.h" | 20 #include "ui/views/controls/link.h" |
| 20 #include "ui/views/controls/message_box_view.h" | 21 #include "ui/views/controls/message_box_view.h" |
| 21 #include "ui/views/widget/widget.h" | 22 #include "ui/views/widget/widget.h" |
| 22 | 23 |
| 23 using content::OpenURLParams; | 24 using content::OpenURLParams; |
| 24 | 25 |
| 25 namespace { | 26 namespace { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 39 } // namespace | 40 } // namespace |
| 40 | 41 |
| 41 // static | 42 // static |
| 42 void DownloadFeedbackDialogView::Show( | 43 void DownloadFeedbackDialogView::Show( |
| 43 gfx::NativeWindow parent_window, | 44 gfx::NativeWindow parent_window, |
| 44 Profile* profile, | 45 Profile* profile, |
| 45 content::PageNavigator* navigator, | 46 content::PageNavigator* navigator, |
| 46 const UserDecisionCallback& callback) { | 47 const UserDecisionCallback& callback) { |
| 47 // This dialog should only be shown if it hasn't been shown before. | 48 // This dialog should only be shown if it hasn't been shown before. |
| 48 DCHECK(!profile->GetPrefs()->HasPrefPath( | 49 DCHECK(!profile->GetPrefs()->HasPrefPath( |
| 49 prefs::kSafeBrowsingExtendedReportingEnabled)); | 50 safe_browsing::GetExtendedReportingPrefName())); |
| 50 | 51 |
| 51 // Only one dialog should be shown at a time, so check to see if another one | 52 // Only one dialog should be shown at a time, so check to see if another one |
| 52 // is open. If another one is open, treat this parallel call as if reporting | 53 // is open. If another one is open, treat this parallel call as if reporting |
| 53 // is disabled (to be conservative). | 54 // is disabled (to be conservative). |
| 54 DialogStatusData* data = | 55 DialogStatusData* data = |
| 55 static_cast<DialogStatusData*>(profile->GetUserData(kDialogStatusKey)); | 56 static_cast<DialogStatusData*>(profile->GetUserData(kDialogStatusKey)); |
| 56 if (data == NULL) { | 57 if (data == NULL) { |
| 57 data = new DialogStatusData(); | 58 data = new DialogStatusData(); |
| 58 profile->SetUserData(kDialogStatusKey, data); | 59 profile->SetUserData(kDialogStatusKey, data); |
| 59 } | 60 } |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 return ui::DIALOG_BUTTON_CANCEL; | 95 return ui::DIALOG_BUTTON_CANCEL; |
| 95 } | 96 } |
| 96 | 97 |
| 97 base::string16 DownloadFeedbackDialogView::GetDialogButtonLabel( | 98 base::string16 DownloadFeedbackDialogView::GetDialogButtonLabel( |
| 98 ui::DialogButton button) const { | 99 ui::DialogButton button) const { |
| 99 return (button == ui::DIALOG_BUTTON_OK) ? | 100 return (button == ui::DIALOG_BUTTON_OK) ? |
| 100 ok_button_text_ : cancel_button_text_; | 101 ok_button_text_ : cancel_button_text_; |
| 101 } | 102 } |
| 102 | 103 |
| 103 bool DownloadFeedbackDialogView::OnButtonClicked(bool accepted) { | 104 bool DownloadFeedbackDialogView::OnButtonClicked(bool accepted) { |
| 104 profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingExtendedReportingEnabled, | 105 profile_->GetPrefs()->SetBoolean( |
| 105 accepted); | 106 safe_browsing::GetExtendedReportingPrefName(), accepted); |
| 106 DialogStatusData* data = | 107 DialogStatusData* data = |
| 107 static_cast<DialogStatusData*>(profile_->GetUserData(kDialogStatusKey)); | 108 static_cast<DialogStatusData*>(profile_->GetUserData(kDialogStatusKey)); |
| 108 DCHECK(data); | 109 DCHECK(data); |
| 109 data->set_currently_shown(false); | 110 data->set_currently_shown(false); |
| 110 | 111 |
| 111 UMA_HISTOGRAM_BOOLEAN("Download.FeedbackDialogEnabled", accepted); | 112 UMA_HISTOGRAM_BOOLEAN("Download.FeedbackDialogEnabled", accepted); |
| 112 | 113 |
| 113 callback_.Run(accepted); | 114 callback_.Run(accepted); |
| 114 return true; | 115 return true; |
| 115 } | 116 } |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 WindowOpenDisposition disposition = | 156 WindowOpenDisposition disposition = |
| 156 ui::DispositionFromEventFlags(event_flags); | 157 ui::DispositionFromEventFlags(event_flags); |
| 157 content::OpenURLParams params( | 158 content::OpenURLParams params( |
| 158 GURL(l10n_util::GetStringUTF8(IDS_SAFE_BROWSING_PRIVACY_POLICY_URL)), | 159 GURL(l10n_util::GetStringUTF8(IDS_SAFE_BROWSING_PRIVACY_POLICY_URL)), |
| 159 content::Referrer(), disposition == WindowOpenDisposition::CURRENT_TAB | 160 content::Referrer(), disposition == WindowOpenDisposition::CURRENT_TAB |
| 160 ? WindowOpenDisposition::NEW_FOREGROUND_TAB | 161 ? WindowOpenDisposition::NEW_FOREGROUND_TAB |
| 161 : disposition, | 162 : disposition, |
| 162 ui::PAGE_TRANSITION_LINK, false); | 163 ui::PAGE_TRANSITION_LINK, false); |
| 163 navigator_->OpenURL(params); | 164 navigator_->OpenURL(params); |
| 164 } | 165 } |
| OLD | NEW |