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

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: merge 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 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 170 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
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<PermissionRequest> request_ptr(new PermissionRequestImpl( 179 std::unique_ptr<PermissionRequest> request_ptr(new PermissionRequestImpl(
180 requesting_origin, permission_type_, profile_, 180 requesting_origin, permission_type_, user_gesture, profile_,
181 base::Bind(&PermissionContextBase::PermissionDecided, 181 base::Bind(&PermissionContextBase::PermissionDecided,
182 weak_factory_.GetWeakPtr(), id, requesting_origin, 182 weak_factory_.GetWeakPtr(), id, requesting_origin,
183 embedding_origin, callback), 183 embedding_origin, user_gesture, callback),
184 base::Bind(&PermissionContextBase::CleanUpRequest, 184 base::Bind(&PermissionContextBase::CleanUpRequest,
185 weak_factory_.GetWeakPtr(), id))); 185 weak_factory_.GetWeakPtr(), id)));
186 PermissionRequest* request = request_ptr.get(); 186 PermissionRequest* request = request_ptr.get();
187 187
188 bool inserted = 188 bool inserted =
189 pending_requests_.add(id.ToString(), std::move(request_ptr)).second; 189 pending_requests_.add(id.ToString(), std::move(request_ptr)).second;
190 DCHECK(inserted) << "Duplicate id " << id.ToString(); 190 DCHECK(inserted) << "Duplicate id " << id.ToString();
191 permission_request_manager->AddRequest(request); 191 permission_request_manager->AddRequest(request);
192 #else 192 #else
193 // TODO(stefanocs): Pass |user_gesture| to CreateInfoBarRequest to record
194 // permission actions in infobar.
193 GetQueueController()->CreateInfoBarRequest( 195 GetQueueController()->CreateInfoBarRequest(
194 id, requesting_origin, embedding_origin, 196 id, requesting_origin, embedding_origin,
195 base::Bind(&PermissionContextBase::PermissionDecided, 197 base::Bind(&PermissionContextBase::PermissionDecided,
196 weak_factory_.GetWeakPtr(), id, requesting_origin, 198 weak_factory_.GetWeakPtr(), id, requesting_origin,
197 embedding_origin, callback, 199 embedding_origin, user_gesture, callback,
198 // the queue controller takes care of persisting the 200 // the queue controller takes care of persisting the
199 // permission 201 // permission
200 false)); 202 false));
201 #endif 203 #endif
202 } 204 }
203 205
204 void PermissionContextBase::PermissionDecided( 206 void PermissionContextBase::PermissionDecided(
205 const PermissionRequestID& id, 207 const PermissionRequestID& id,
206 const GURL& requesting_origin, 208 const GURL& requesting_origin,
207 const GURL& embedding_origin, 209 const GURL& embedding_origin,
210 bool user_gesture,
208 const BrowserPermissionCallback& callback, 211 const BrowserPermissionCallback& callback,
209 bool persist, 212 bool persist,
210 ContentSetting content_setting) { 213 ContentSetting content_setting) {
211 #if !defined(OS_ANDROID) 214 #if !defined(OS_ANDROID)
212 // Infobar persistence and its related UMA is tracked on the infobar 215 // Infobar persistence and its related UMA is tracked on the infobar
213 // controller directly. 216 // controller directly.
214 if (persist) { 217 if (persist) {
215 DCHECK(content_setting == CONTENT_SETTING_ALLOW || 218 DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
216 content_setting == CONTENT_SETTING_BLOCK); 219 content_setting == CONTENT_SETTING_BLOCK);
217 if (content_setting == CONTENT_SETTING_ALLOW) 220 if (content_setting == CONTENT_SETTING_ALLOW) {
218 PermissionUmaUtil::PermissionGranted(permission_type_, requesting_origin, 221 PermissionUmaUtil::PermissionGranted(permission_type_, user_gesture,
219 profile_); 222 requesting_origin, profile_);
220 else 223 } else {
221 PermissionUmaUtil::PermissionDenied(permission_type_, requesting_origin, 224 PermissionUmaUtil::PermissionDenied(permission_type_, user_gesture,
222 profile_); 225 requesting_origin, profile_);
226 }
223 } else { 227 } else {
224 DCHECK_EQ(content_setting, CONTENT_SETTING_DEFAULT); 228 DCHECK_EQ(content_setting, CONTENT_SETTING_DEFAULT);
225 PermissionUmaUtil::PermissionDismissed(permission_type_, requesting_origin, 229 PermissionUmaUtil::PermissionDismissed(permission_type_, user_gesture,
226 profile_); 230 requesting_origin, profile_);
227 } 231 }
228 #endif 232 #endif
229 233
230 NotifyPermissionSet(id, requesting_origin, embedding_origin, callback, 234 NotifyPermissionSet(id, requesting_origin, embedding_origin, callback,
231 persist, content_setting); 235 persist, content_setting);
232 } 236 }
233 237
234 #if defined(OS_ANDROID) 238 #if defined(OS_ANDROID)
235 PermissionQueueController* PermissionContextBase::GetQueueController() { 239 PermissionQueueController* PermissionContextBase::GetQueueController() {
236 return permission_queue_controller_.get(); 240 return permission_queue_controller_.get();
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 content_setting); 290 content_setting);
287 } 291 }
288 292
289 bool PermissionContextBase::IsPermissionKillSwitchOn() const { 293 bool PermissionContextBase::IsPermissionKillSwitchOn() const {
290 const std::string param = variations::GetVariationParamValue( 294 const std::string param = variations::GetVariationParamValue(
291 kPermissionsKillSwitchFieldStudy, 295 kPermissionsKillSwitchFieldStudy,
292 PermissionUtil::GetPermissionString(permission_type_)); 296 PermissionUtil::GetPermissionString(permission_type_));
293 297
294 return param == kPermissionsKillSwitchBlockedValue; 298 return param == kPermissionsKillSwitchBlockedValue;
295 } 299 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698