Chromium Code Reviews| Index: chrome/browser/download/download_danger_prompt.cc |
| diff --git a/chrome/browser/download/download_danger_prompt.cc b/chrome/browser/download/download_danger_prompt.cc |
| index 4ec23bcc5304612a9b40624391a2df7e68b20c76..13d623b064bfdcc10fd524f0adcd9ecfad9ad38a 100644 |
| --- a/chrome/browser/download/download_danger_prompt.cc |
| +++ b/chrome/browser/download/download_danger_prompt.cc |
| @@ -9,6 +9,7 @@ |
| #include "chrome/browser/chrome_notification_types.h" |
| #include "chrome/browser/download/chrome_download_manager_delegate.h" |
| #include "chrome/browser/download/download_stats.h" |
| +#include "chrome/browser/extensions/api/experience_sampling_private/experience_sampling.h" |
| #include "chrome/browser/ui/tab_modal_confirm_dialog.h" |
| #include "chrome/browser/ui/tab_modal_confirm_dialog_delegate.h" |
| #include "content/public/browser/download_danger_type.h" |
| @@ -17,6 +18,8 @@ |
| #include "grit/generated_resources.h" |
| #include "ui/base/l10n/l10n_util.h" |
| +using extensions::ExperienceSamplingEvent; |
| + |
| namespace { |
| // TODO(wittman): Create a native web contents modal dialog implementation of |
| @@ -56,6 +59,8 @@ class DownloadDangerPromptImpl : public DownloadDangerPrompt, |
| bool show_context_; |
| OnDone done_; |
| + scoped_ptr<ExperienceSamplingEvent> sampling_event_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(DownloadDangerPromptImpl); |
| }; |
| @@ -71,6 +76,14 @@ DownloadDangerPromptImpl::DownloadDangerPromptImpl( |
| DCHECK(!done_.is_null()); |
| download_->AddObserver(this); |
| RecordOpenedDangerousConfirmDialog(download_->GetDangerType()); |
| + |
| + // ExperienceSampling: A malicious download warning is being shown to the |
| + // user, so we start a new SamplingEvent and track it. |
| + sampling_event_.reset(new ExperienceSamplingEvent( |
| + ExperienceSamplingEvent::kDownloadDangerPrompt, |
| + download->GetURL(), |
| + download->GetReferrerUrl(), |
| + download->GetBrowserContext())); |
| } |
| DownloadDangerPromptImpl::~DownloadDangerPromptImpl() { |
| @@ -203,14 +216,20 @@ base::string16 DownloadDangerPromptImpl::GetCancelButtonTitle() { |
| } |
| void DownloadDangerPromptImpl::OnAccepted() { |
| + // ExperienceSampling: User proceeded through the warning. |
| + sampling_event_->CreateUserDecisionEvent(ExperienceSamplingEvent::kProceed); |
| RunDone(ACCEPT); |
| } |
| void DownloadDangerPromptImpl::OnCanceled() { |
| + // ExperienceSampling: User canceled the warning. |
| + sampling_event_->CreateUserDecisionEvent(ExperienceSamplingEvent::kDeny); |
| RunDone(CANCEL); |
| } |
| void DownloadDangerPromptImpl::OnClosed() { |
| + // ExperienceSampling: User canceled the warning. |
| + sampling_event_->CreateUserDecisionEvent(ExperienceSamplingEvent::kDeny); |
|
asanka
2014/08/15 15:53:32
DISMISS means that the user navigated away from th
Chris Thompson
2014/08/15 16:05:28
My manual testing before showed that "Cancel" in t
|
| RunDone(DISMISS); |
| } |