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

Unified Diff: chrome/browser/permissions/permission_queue_controller.cc

Issue 2154033003: Add gesture type value from infobar to permission report (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@add-user-gesture-from-permission-layer-to-permission-report
Patch Set: nit Created 4 years, 5 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/permissions/permission_queue_controller.cc
diff --git a/chrome/browser/permissions/permission_queue_controller.cc b/chrome/browser/permissions/permission_queue_controller.cc
index 3ea8d9fe6340dcee3a7b1eecae1b13d9620ae31a..3382aaadc0e6deedeec7514712f664eb18699061 100644
--- a/chrome/browser/permissions/permission_queue_controller.cc
+++ b/chrome/browser/permissions/permission_queue_controller.cc
@@ -53,6 +53,7 @@ class PermissionQueueController::PendingInfobarRequest {
const PermissionRequestID& id,
const GURL& requesting_frame,
const GURL& embedder,
+ bool user_gesture,
Profile* profile,
const PermissionDecidedCallback& callback);
~PendingInfobarRequest();
@@ -73,6 +74,7 @@ class PermissionQueueController::PendingInfobarRequest {
PermissionRequestID id_;
GURL requesting_frame_;
GURL embedder_;
+ bool user_gesture_;
Profile* profile_;
PermissionDecidedCallback callback_;
infobars::InfoBar* infobar_;
@@ -85,12 +87,14 @@ PermissionQueueController::PendingInfobarRequest::PendingInfobarRequest(
const PermissionRequestID& id,
const GURL& requesting_frame,
const GURL& embedder,
+ bool user_gesture,
Profile* profile,
const PermissionDecidedCallback& callback)
: type_(type),
id_(id),
requesting_frame_(requesting_frame),
embedder_(embedder),
+ user_gesture_(user_gesture),
profile_(profile),
callback_(callback),
infobar_(NULL) {}
@@ -115,30 +119,31 @@ void PermissionQueueController::PendingInfobarRequest::CreateInfoBar(
// is tied to that of the queue controller. Before QueueController
// is destroyed, all requests will be cancelled and so all delegates
// will be destroyed.
- PermissionInfobarDelegate::PermissionSetCallback callback =
- base::Bind(&PermissionQueueController::OnPermissionSet,
- base::Unretained(controller),
- id_,
- requesting_frame_,
- embedder_);
+ PermissionInfobarDelegate::PermissionSetCallback callback = base::Bind(
+ &PermissionQueueController::OnPermissionSet, base::Unretained(controller),
+ id_, requesting_frame_, embedder_, user_gesture_);
switch (type_) {
case content::PermissionType::GEOLOCATION:
infobar_ = GeolocationInfoBarDelegateAndroid::Create(
- GetInfoBarService(id_), requesting_frame_, profile_, callback);
+ GetInfoBarService(id_), requesting_frame_, user_gesture_, profile_,
+ callback);
break;
#if defined(ENABLE_NOTIFICATIONS)
case content::PermissionType::NOTIFICATIONS:
infobar_ = NotificationPermissionInfobarDelegate::Create(
- GetInfoBarService(id_), requesting_frame_, profile_, callback);
+ GetInfoBarService(id_), requesting_frame_, user_gesture_, profile_,
+ callback);
break;
#endif // ENABLE_NOTIFICATIONS
case content::PermissionType::MIDI_SYSEX:
infobar_ = MidiPermissionInfoBarDelegateAndroid::Create(
- GetInfoBarService(id_), requesting_frame_, profile_, callback);
+ GetInfoBarService(id_), requesting_frame_, user_gesture_, profile_,
+ callback);
break;
case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER:
infobar_ = ProtectedMediaIdentifierInfoBarDelegateAndroid::Create(
- GetInfoBarService(id_), requesting_frame_, profile_, callback);
+ GetInfoBarService(id_), requesting_frame_, user_gesture_, profile_,
+ callback);
break;
default:
NOTREACHED();
@@ -166,6 +171,7 @@ void PermissionQueueController::CreateInfoBarRequest(
const PermissionRequestID& id,
const GURL& requesting_frame,
const GURL& embedder,
+ bool user_gesture,
const PermissionDecidedCallback& callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
@@ -173,8 +179,9 @@ void PermissionQueueController::CreateInfoBarRequest(
embedder.SchemeIs(content::kChromeUIScheme))
return;
- pending_infobar_requests_.push_back(PendingInfobarRequest(
- permission_type_, id, requesting_frame, embedder, profile_, callback));
+ pending_infobar_requests_.push_back(
+ PendingInfobarRequest(permission_type_, id, requesting_frame, embedder,
+ user_gesture, profile_, callback));
if (!AlreadyShowingInfoBarForTab(id))
ShowQueuedInfoBarForTab(id);
}
@@ -197,32 +204,31 @@ void PermissionQueueController::CancelInfoBarRequest(
}
}
-void PermissionQueueController::OnPermissionSet(
- const PermissionRequestID& id,
- const GURL& requesting_frame,
- const GURL& embedder,
- bool update_content_setting,
- bool allowed) {
+void PermissionQueueController::OnPermissionSet(const PermissionRequestID& id,
+ const GURL& requesting_frame,
+ const GURL& embedder,
+ bool user_gesture,
+ bool update_content_setting,
+ bool allowed) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
// TODO(miguelg): move the permission persistence to
// PermissionContextBase once all the types are moved there.
- // TODO(stefanocs): Pass the actual |gesture_type| value to PermissionUmaUtil.
+ PermissionRequestGestureType gesture_type =
+ user_gesture ? PermissionRequestGestureType::GESTURE
+ : PermissionRequestGestureType::NO_GESTURE;
if (update_content_setting) {
UpdateContentSetting(requesting_frame, embedder, allowed);
if (allowed) {
- PermissionUmaUtil::PermissionGranted(
- permission_type_, PermissionRequestGestureType::UNKNOWN,
- requesting_frame, profile_);
+ PermissionUmaUtil::PermissionGranted(permission_type_, gesture_type,
+ requesting_frame, profile_);
} else {
- PermissionUmaUtil::PermissionDenied(permission_type_,
- PermissionRequestGestureType::UNKNOWN,
+ PermissionUmaUtil::PermissionDenied(permission_type_, gesture_type,
requesting_frame, profile_);
}
} else {
- PermissionUmaUtil::PermissionDismissed(
- permission_type_, PermissionRequestGestureType::UNKNOWN,
- requesting_frame, profile_);
+ PermissionUmaUtil::PermissionDismissed(permission_type_, gesture_type,
+ requesting_frame, profile_);
}
// Cancel this request first, then notify listeners. TODO(pkasting): Why

Powered by Google App Engine
This is Rietveld 408576698