Index: chrome/browser/ui/views/download/download_danger_prompt_views.cc |
diff --git a/chrome/browser/ui/views/download/download_danger_prompt_views.cc b/chrome/browser/ui/views/download/download_danger_prompt_views.cc |
index 31f1441574edca0e5ad71a37db1fa8b104b03941..6008dc04b7c8220ce6a7aeba441b7d7115169ddc 100644 |
--- a/chrome/browser/ui/views/download/download_danger_prompt_views.cc |
+++ b/chrome/browser/ui/views/download/download_danger_prompt_views.cc |
@@ -5,6 +5,7 @@ |
#include "base/compiler_specific.h" |
#include "chrome/browser/download/download_danger_prompt.h" |
#include "chrome/browser/download/download_stats.h" |
+#include "chrome/browser/extensions/api/experience_sampling_private/experience_sampling.h" |
#include "chrome/browser/ui/views/constrained_window_views.h" |
#include "chrome/grit/chromium_strings.h" |
#include "chrome/grit/generated_resources.h" |
@@ -21,6 +22,8 @@ |
#include "ui/views/window/dialog_client_view.h" |
#include "ui/views/window/dialog_delegate.h" |
+using extensions::ExperienceSamplingEvent; |
+ |
namespace { |
const int kMessageWidth = 320; |
@@ -69,6 +72,8 @@ class DownloadDangerPromptViews : public DownloadDangerPrompt, |
bool show_context_; |
OnDone done_; |
+ scoped_ptr<ExperienceSamplingEvent> sampling_event_; |
+ |
views::View* contents_view_; |
}; |
@@ -117,6 +122,14 @@ DownloadDangerPromptViews::DownloadDangerPromptViews( |
layout->AddView(message_body_label); |
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, |
+ item->GetURL(), |
+ item->GetReferrerUrl(), |
+ item->GetBrowserContext())); |
} |
// DownloadDangerPrompt methods: |
@@ -170,18 +183,24 @@ ui::ModalType DownloadDangerPromptViews::GetModalType() const { |
bool DownloadDangerPromptViews::Cancel() { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
+ // ExperienceSampling: User canceled the warning. |
+ sampling_event_->CreateUserDecisionEvent(ExperienceSamplingEvent::kDeny); |
RunDone(CANCEL); |
return true; |
} |
bool DownloadDangerPromptViews::Accept() { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
+ // ExperienceSampling: User proceeded through the warning. |
+ sampling_event_->CreateUserDecisionEvent(ExperienceSamplingEvent::kProceed); |
RunDone(ACCEPT); |
return true; |
} |
bool DownloadDangerPromptViews::Close() { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
+ // ExperienceSampling: User canceled the warning. |
+ sampling_event_->CreateUserDecisionEvent(ExperienceSamplingEvent::kDeny); |
RunDone(DISMISS); |
return true; |
} |