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

Side by Side Diff: chrome/browser/permissions/permission_context_base.cc

Issue 2153133002: Add gesture type value from desktop prompt to permission report (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@add-user-gesture-to-reporting-part
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 unified diff | Download patch
OLDNEW
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/permissions/permission_context_base.h" 5 #include "chrome/browser/permissions/permission_context_base.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 171
172 #if !defined(OS_ANDROID) 172 #if !defined(OS_ANDROID)
173 PermissionRequestManager* permission_request_manager = 173 PermissionRequestManager* permission_request_manager =
174 PermissionRequestManager::FromWebContents(web_contents); 174 PermissionRequestManager::FromWebContents(web_contents);
175 // TODO(felt): sometimes |permission_request_manager| is null. This check is 175 // TODO(felt): sometimes |permission_request_manager| is null. This check is
176 // meant to prevent crashes. See crbug.com/457091. 176 // meant to prevent crashes. See crbug.com/457091.
177 if (!permission_request_manager) 177 if (!permission_request_manager)
178 return; 178 return;
179 std::unique_ptr<PermissionBubbleRequest> request_ptr( 179 std::unique_ptr<PermissionBubbleRequest> request_ptr(
180 new PermissionBubbleRequestImpl( 180 new PermissionBubbleRequestImpl(
181 requesting_origin, permission_type_, profile_, 181 requesting_origin, permission_type_, user_gesture, profile_,
182 base::Bind(&PermissionContextBase::PermissionDecided, 182 base::Bind(&PermissionContextBase::PermissionDecided,
183 weak_factory_.GetWeakPtr(), id, requesting_origin, 183 weak_factory_.GetWeakPtr(), id, requesting_origin,
184 embedding_origin, callback), 184 embedding_origin, user_gesture, callback),
185 base::Bind(&PermissionContextBase::CleanUpBubble, 185 base::Bind(&PermissionContextBase::CleanUpBubble,
186 weak_factory_.GetWeakPtr(), id))); 186 weak_factory_.GetWeakPtr(), id)));
187 PermissionBubbleRequest* request = request_ptr.get(); 187 PermissionBubbleRequest* request = request_ptr.get();
188 188
189 bool inserted = 189 bool inserted =
190 pending_bubbles_.add(id.ToString(), std::move(request_ptr)).second; 190 pending_bubbles_.add(id.ToString(), std::move(request_ptr)).second;
191 DCHECK(inserted) << "Duplicate id " << id.ToString(); 191 DCHECK(inserted) << "Duplicate id " << id.ToString();
192 permission_request_manager->AddRequest(request); 192 permission_request_manager->AddRequest(request);
193 #else 193 #else
194 // TODO(stefanocs): Pass |user_gesture| to CreateInfoBarRequest to record
195 // permission actions in infobar.
194 GetQueueController()->CreateInfoBarRequest( 196 GetQueueController()->CreateInfoBarRequest(
195 id, requesting_origin, embedding_origin, 197 id, requesting_origin, embedding_origin,
196 base::Bind(&PermissionContextBase::PermissionDecided, 198 base::Bind(&PermissionContextBase::PermissionDecided,
197 weak_factory_.GetWeakPtr(), id, requesting_origin, 199 weak_factory_.GetWeakPtr(), id, requesting_origin,
198 embedding_origin, callback, 200 embedding_origin, user_gesture, callback,
199 // the queue controller takes care of persisting the 201 // the queue controller takes care of persisting the
200 // permission 202 // permission
201 false)); 203 false));
202 #endif 204 #endif
203 } 205 }
204 206
205 void PermissionContextBase::PermissionDecided( 207 void PermissionContextBase::PermissionDecided(
206 const PermissionRequestID& id, 208 const PermissionRequestID& id,
207 const GURL& requesting_origin, 209 const GURL& requesting_origin,
208 const GURL& embedding_origin, 210 const GURL& embedding_origin,
211 bool user_gesture,
209 const BrowserPermissionCallback& callback, 212 const BrowserPermissionCallback& callback,
210 bool persist, 213 bool persist,
211 ContentSetting content_setting) { 214 ContentSetting content_setting) {
212 #if !defined(OS_ANDROID) 215 #if !defined(OS_ANDROID)
213 // Infobar persistence and its related UMA is tracked on the infobar 216 // Infobar persistence and its related UMA is tracked on the infobar
214 // controller directly. 217 // controller directly.
215 if (persist) { 218 if (persist) {
216 DCHECK(content_setting == CONTENT_SETTING_ALLOW || 219 DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
217 content_setting == CONTENT_SETTING_BLOCK); 220 content_setting == CONTENT_SETTING_BLOCK);
218 if (content_setting == CONTENT_SETTING_ALLOW) 221 if (content_setting == CONTENT_SETTING_ALLOW) {
219 PermissionUmaUtil::PermissionGranted(permission_type_, requesting_origin, 222 PermissionUmaUtil::PermissionGranted(permission_type_, user_gesture,
220 profile_); 223 requesting_origin, profile_);
221 else 224 } else {
222 PermissionUmaUtil::PermissionDenied(permission_type_, requesting_origin, 225 PermissionUmaUtil::PermissionDenied(permission_type_, user_gesture,
223 profile_); 226 requesting_origin, profile_);
227 }
224 } else { 228 } else {
225 DCHECK_EQ(content_setting, CONTENT_SETTING_DEFAULT); 229 DCHECK_EQ(content_setting, CONTENT_SETTING_DEFAULT);
226 PermissionUmaUtil::PermissionDismissed(permission_type_, requesting_origin, 230 PermissionUmaUtil::PermissionDismissed(permission_type_, user_gesture,
227 profile_); 231 requesting_origin, profile_);
228 } 232 }
229 #endif 233 #endif
230 234
231 NotifyPermissionSet(id, requesting_origin, embedding_origin, callback, 235 NotifyPermissionSet(id, requesting_origin, embedding_origin, callback,
232 persist, content_setting); 236 persist, content_setting);
233 } 237 }
234 238
235 #if defined(OS_ANDROID) 239 #if defined(OS_ANDROID)
236 PermissionQueueController* PermissionContextBase::GetQueueController() { 240 PermissionQueueController* PermissionContextBase::GetQueueController() {
237 return permission_queue_controller_.get(); 241 return permission_queue_controller_.get();
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 content_setting); 291 content_setting);
288 } 292 }
289 293
290 bool PermissionContextBase::IsPermissionKillSwitchOn() const { 294 bool PermissionContextBase::IsPermissionKillSwitchOn() const {
291 const std::string param = variations::GetVariationParamValue( 295 const std::string param = variations::GetVariationParamValue(
292 kPermissionsKillSwitchFieldStudy, 296 kPermissionsKillSwitchFieldStudy,
293 PermissionUtil::GetPermissionString(permission_type_)); 297 PermissionUtil::GetPermissionString(permission_type_));
294 298
295 return param == kPermissionsKillSwitchBlockedValue; 299 return param == kPermissionsKillSwitchBlockedValue;
296 } 300 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698