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

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

Issue 2771233002: Remove the wrapper functions content::RecordAction et al (Closed)
Patch Set: Rebased Created 3 years, 9 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_request_manager.h" 5 #include "chrome/browser/permissions/permission_request_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/feature_list.h" 10 #include "base/feature_list.h"
11 #include "base/metrics/user_metrics.h"
11 #include "base/metrics/user_metrics_action.h" 12 #include "base/metrics/user_metrics_action.h"
12 #include "build/build_config.h" 13 #include "build/build_config.h"
13 #include "chrome/browser/permissions/permission_request.h" 14 #include "chrome/browser/permissions/permission_request.h"
14 #include "chrome/browser/permissions/permission_uma_util.h" 15 #include "chrome/browser/permissions/permission_uma_util.h"
15 #include "chrome/browser/ui/permission_bubble/permission_prompt.h" 16 #include "chrome/browser/ui/permission_bubble/permission_prompt.h"
16 #include "chrome/common/chrome_features.h" 17 #include "chrome/common/chrome_features.h"
17 #include "chrome/common/chrome_switches.h" 18 #include "chrome/common/chrome_switches.h"
18 #include "content/public/browser/browser_thread.h" 19 #include "content/public/browser/browser_thread.h"
19 #include "content/public/browser/navigation_handle.h" 20 #include "content/public/browser/navigation_handle.h"
20 #include "content/public/browser/user_metrics.h"
21 #include "url/origin.h" 21 #include "url/origin.h"
22 22
23 namespace { 23 namespace {
24 24
25 class CancelledRequest : public PermissionRequest { 25 class CancelledRequest : public PermissionRequest {
26 public: 26 public:
27 explicit CancelledRequest(PermissionRequest* cancelled) 27 explicit CancelledRequest(PermissionRequest* cancelled)
28 : icon_(cancelled->GetIconId()), 28 : icon_(cancelled->GetIconId()),
29 message_fragment_(cancelled->GetMessageTextFragment()), 29 message_fragment_(cancelled->GetMessageTextFragment()),
30 origin_(cancelled->GetOrigin()) {} 30 origin_(cancelled->GetOrigin()) {}
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 for (PermissionRequest* request : queued_requests_) 93 for (PermissionRequest* request : queued_requests_)
94 request->RequestFinished(); 94 request->RequestFinished();
95 for (PermissionRequest* request : queued_frame_requests_) 95 for (PermissionRequest* request : queued_frame_requests_)
96 request->RequestFinished(); 96 request->RequestFinished();
97 for (const auto& entry : duplicate_requests_) 97 for (const auto& entry : duplicate_requests_)
98 entry.second->RequestFinished(); 98 entry.second->RequestFinished();
99 } 99 }
100 100
101 void PermissionRequestManager::AddRequest(PermissionRequest* request) { 101 void PermissionRequestManager::AddRequest(PermissionRequest* request) {
102 // TODO(tsergeant): change the UMA to no longer mention bubbles. 102 // TODO(tsergeant): change the UMA to no longer mention bubbles.
103 content::RecordAction(base::UserMetricsAction("PermissionBubbleRequest")); 103 base::RecordAction(base::UserMetricsAction("PermissionBubbleRequest"));
104 104
105 // TODO(gbillock): is there a race between an early request on a 105 // TODO(gbillock): is there a race between an early request on a
106 // newly-navigated page and the to-be-cleaned-up requests on the previous 106 // newly-navigated page and the to-be-cleaned-up requests on the previous
107 // page? We should maybe listen to DidStartNavigationToPendingEntry (and 107 // page? We should maybe listen to DidStartNavigationToPendingEntry (and
108 // any other renderer-side nav initiations?). Double-check this for 108 // any other renderer-side nav initiations?). Double-check this for
109 // correct behavior on interstitials -- we probably want to basically queue 109 // correct behavior on interstitials -- we probably want to basically queue
110 // any request for which GetVisibleURL != GetLastCommittedURL. 110 // any request for which GetVisibleURL != GetLastCommittedURL.
111 request_url_ = web_contents()->GetLastCommittedURL(); 111 request_url_ = web_contents()->GetLastCommittedURL();
112 bool is_main_frame = url::Origin(request_url_) 112 bool is_main_frame = url::Origin(request_url_)
113 .IsSameOriginWith(url::Origin(request->GetOrigin())); 113 .IsSameOriginWith(url::Origin(request->GetOrigin()));
114 114
115 // Don't re-add an existing request or one with a duplicate text request. 115 // Don't re-add an existing request or one with a duplicate text request.
116 PermissionRequest* existing_request = GetExistingRequest(request); 116 PermissionRequest* existing_request = GetExistingRequest(request);
117 if (existing_request) { 117 if (existing_request) {
118 // |request| is a duplicate. Add it to |duplicate_requests_| unless it's the 118 // |request| is a duplicate. Add it to |duplicate_requests_| unless it's the
119 // same object as |existing_request| or an existing duplicate. 119 // same object as |existing_request| or an existing duplicate.
120 if (request == existing_request) 120 if (request == existing_request)
121 return; 121 return;
122 auto range = duplicate_requests_.equal_range(existing_request); 122 auto range = duplicate_requests_.equal_range(existing_request);
123 for (auto it = range.first; it != range.second; ++it) { 123 for (auto it = range.first; it != range.second; ++it) {
124 if (request == it->second) 124 if (request == it->second)
125 return; 125 return;
126 } 126 }
127 duplicate_requests_.insert(std::make_pair(existing_request, request)); 127 duplicate_requests_.insert(std::make_pair(existing_request, request));
128 return; 128 return;
129 } 129 }
130 130
131 if (IsBubbleVisible()) { 131 if (IsBubbleVisible()) {
132 if (is_main_frame) { 132 if (is_main_frame) {
133 content::RecordAction( 133 base::RecordAction(
134 base::UserMetricsAction("PermissionBubbleRequestQueued")); 134 base::UserMetricsAction("PermissionBubbleRequestQueued"));
135 queued_requests_.push_back(request); 135 queued_requests_.push_back(request);
136 } else { 136 } else {
137 content::RecordAction( 137 base::RecordAction(
138 base::UserMetricsAction("PermissionBubbleIFrameRequestQueued")); 138 base::UserMetricsAction("PermissionBubbleIFrameRequestQueued"));
139 queued_frame_requests_.push_back(request); 139 queued_frame_requests_.push_back(request);
140 } 140 }
141 return; 141 return;
142 } 142 }
143 143
144 if (is_main_frame) { 144 if (is_main_frame) {
145 requests_.push_back(request); 145 requests_.push_back(request);
146 accept_states_.push_back(true); 146 accept_states_.push_back(true);
147 } else { 147 } else {
148 content::RecordAction( 148 base::RecordAction(
149 base::UserMetricsAction("PermissionBubbleIFrameRequestQueued")); 149 base::UserMetricsAction("PermissionBubbleIFrameRequestQueued"));
150 queued_frame_requests_.push_back(request); 150 queued_frame_requests_.push_back(request);
151 } 151 }
152 152
153 ScheduleShowBubble(); 153 ScheduleShowBubble();
154 } 154 }
155 155
156 void PermissionRequestManager::CancelRequest(PermissionRequest* request) { 156 void PermissionRequestManager::CancelRequest(PermissionRequest* request) {
157 // First look in the queued requests, where we can simply finish the request 157 // First look in the queued requests, where we can simply finish the request
158 // and go on. 158 // and go on.
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 case DENY_ALL: 521 case DENY_ALL:
522 Deny(); 522 Deny();
523 break; 523 break;
524 case DISMISS: 524 case DISMISS:
525 Closing(); 525 Closing();
526 break; 526 break;
527 case NONE: 527 case NONE:
528 NOTREACHED(); 528 NOTREACHED();
529 } 529 }
530 } 530 }
OLDNEW
« no previous file with comments | « chrome/browser/pepper_broker_infobar_delegate.cc ('k') | chrome/browser/plugins/plugin_infobar_delegates.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698