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

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

Issue 2069343002: Pass profile to PermissionUmaUtil::PermissionIgnored (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@add-hooks-to-permission-layer
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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_queue_controller.h" 5 #include "chrome/browser/permissions/permission_queue_controller.h"
6 6
7 #include "chrome/browser/chrome_notification_types.h" 7 #include "chrome/browser/chrome_notification_types.h"
8 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" 8 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
9 #include "chrome/browser/geolocation/geolocation_infobar_delegate_android.h" 9 #include "chrome/browser/geolocation/geolocation_infobar_delegate_android.h"
10 #include "chrome/browser/infobars/infobar_service.h" 10 #include "chrome/browser/infobars/infobar_service.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 } 45 }
46 46
47 } // anonymous namespace 47 } // anonymous namespace
48 48
49 class PermissionQueueController::PendingInfobarRequest { 49 class PermissionQueueController::PendingInfobarRequest {
50 public: 50 public:
51 PendingInfobarRequest(content::PermissionType type, 51 PendingInfobarRequest(content::PermissionType type,
52 const PermissionRequestID& id, 52 const PermissionRequestID& id,
53 const GURL& requesting_frame, 53 const GURL& requesting_frame,
54 const GURL& embedder, 54 const GURL& embedder,
55 Profile* profile,
55 const PermissionDecidedCallback& callback); 56 const PermissionDecidedCallback& callback);
56 ~PendingInfobarRequest(); 57 ~PendingInfobarRequest();
57 58
58 bool IsForPair(const GURL& requesting_frame, 59 bool IsForPair(const GURL& requesting_frame,
59 const GURL& embedder) const; 60 const GURL& embedder) const;
60 61
61 const PermissionRequestID& id() const { return id_; } 62 const PermissionRequestID& id() const { return id_; }
62 const GURL& requesting_frame() const { return requesting_frame_; } 63 const GURL& requesting_frame() const { return requesting_frame_; }
63 bool has_infobar() const { return !!infobar_; } 64 bool has_infobar() const { return !!infobar_; }
64 infobars::InfoBar* infobar() { return infobar_; } 65 infobars::InfoBar* infobar() { return infobar_; }
65 66
66 void RunCallback(ContentSetting content_setting); 67 void RunCallback(ContentSetting content_setting);
67 void CreateInfoBar(PermissionQueueController* controller); 68 void CreateInfoBar(PermissionQueueController* controller);
68 69
69 private: 70 private:
70 content::PermissionType type_; 71 content::PermissionType type_;
71 PermissionRequestID id_; 72 PermissionRequestID id_;
72 GURL requesting_frame_; 73 GURL requesting_frame_;
73 GURL embedder_; 74 GURL embedder_;
75 Profile* profile_;
74 PermissionDecidedCallback callback_; 76 PermissionDecidedCallback callback_;
75 infobars::InfoBar* infobar_; 77 infobars::InfoBar* infobar_;
76 78
77 // Purposefully do not disable copying, as this is stored in STL containers. 79 // Purposefully do not disable copying, as this is stored in STL containers.
78 }; 80 };
79 81
80 PermissionQueueController::PendingInfobarRequest::PendingInfobarRequest( 82 PermissionQueueController::PendingInfobarRequest::PendingInfobarRequest(
81 content::PermissionType type, 83 content::PermissionType type,
82 const PermissionRequestID& id, 84 const PermissionRequestID& id,
83 const GURL& requesting_frame, 85 const GURL& requesting_frame,
84 const GURL& embedder, 86 const GURL& embedder,
87 Profile* profile,
85 const PermissionDecidedCallback& callback) 88 const PermissionDecidedCallback& callback)
86 : type_(type), 89 : type_(type),
87 id_(id), 90 id_(id),
88 requesting_frame_(requesting_frame), 91 requesting_frame_(requesting_frame),
89 embedder_(embedder), 92 embedder_(embedder),
93 profile_(profile),
90 callback_(callback), 94 callback_(callback),
91 infobar_(NULL) {} 95 infobar_(NULL) {}
92 96
93 PermissionQueueController::PendingInfobarRequest::~PendingInfobarRequest() { 97 PermissionQueueController::PendingInfobarRequest::~PendingInfobarRequest() {
94 } 98 }
95 99
96 bool PermissionQueueController::PendingInfobarRequest::IsForPair( 100 bool PermissionQueueController::PendingInfobarRequest::IsForPair(
97 const GURL& requesting_frame, 101 const GURL& requesting_frame,
98 const GURL& embedder) const { 102 const GURL& embedder) const {
99 return (requesting_frame_ == requesting_frame) && (embedder_ == embedder); 103 return (requesting_frame_ == requesting_frame) && (embedder_ == embedder);
(...skipping 12 matching lines...) Expand all
112 // will be destroyed. 116 // will be destroyed.
113 PermissionInfobarDelegate::PermissionSetCallback callback = 117 PermissionInfobarDelegate::PermissionSetCallback callback =
114 base::Bind(&PermissionQueueController::OnPermissionSet, 118 base::Bind(&PermissionQueueController::OnPermissionSet,
115 base::Unretained(controller), 119 base::Unretained(controller),
116 id_, 120 id_,
117 requesting_frame_, 121 requesting_frame_,
118 embedder_); 122 embedder_);
119 switch (type_) { 123 switch (type_) {
120 case content::PermissionType::GEOLOCATION: 124 case content::PermissionType::GEOLOCATION:
121 infobar_ = GeolocationInfoBarDelegateAndroid::Create( 125 infobar_ = GeolocationInfoBarDelegateAndroid::Create(
122 GetInfoBarService(id_), requesting_frame_, callback); 126 GetInfoBarService(id_), requesting_frame_, profile_, callback);
123 break; 127 break;
124 #if defined(ENABLE_NOTIFICATIONS) 128 #if defined(ENABLE_NOTIFICATIONS)
125 case content::PermissionType::NOTIFICATIONS: 129 case content::PermissionType::NOTIFICATIONS:
126 infobar_ = NotificationPermissionInfobarDelegate::Create( 130 infobar_ = NotificationPermissionInfobarDelegate::Create(
127 GetInfoBarService(id_), requesting_frame_, callback); 131 GetInfoBarService(id_), requesting_frame_, profile_, callback);
128 break; 132 break;
129 #endif // ENABLE_NOTIFICATIONS 133 #endif // ENABLE_NOTIFICATIONS
130 case content::PermissionType::MIDI_SYSEX: 134 case content::PermissionType::MIDI_SYSEX:
131 infobar_ = MidiPermissionInfoBarDelegateAndroid::Create( 135 infobar_ = MidiPermissionInfoBarDelegateAndroid::Create(
132 GetInfoBarService(id_), requesting_frame_, callback); 136 GetInfoBarService(id_), requesting_frame_, profile_, callback);
133 break; 137 break;
134 case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER: 138 case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER:
135 infobar_ = ProtectedMediaIdentifierInfoBarDelegateAndroid::Create( 139 infobar_ = ProtectedMediaIdentifierInfoBarDelegateAndroid::Create(
136 GetInfoBarService(id_), requesting_frame_, callback); 140 GetInfoBarService(id_), requesting_frame_, profile_, callback);
137 break; 141 break;
138 default: 142 default:
139 NOTREACHED(); 143 NOTREACHED();
140 break; 144 break;
141 } 145 }
142 } 146 }
143 147
144 PermissionQueueController::PermissionQueueController( 148 PermissionQueueController::PermissionQueueController(
145 Profile* profile, 149 Profile* profile,
146 content::PermissionType permission_type, 150 content::PermissionType permission_type,
(...skipping 15 matching lines...) Expand all
162 const GURL& requesting_frame, 166 const GURL& requesting_frame,
163 const GURL& embedder, 167 const GURL& embedder,
164 const PermissionDecidedCallback& callback) { 168 const PermissionDecidedCallback& callback) {
165 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 169 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
166 170
167 if (requesting_frame.SchemeIs(content::kChromeUIScheme) || 171 if (requesting_frame.SchemeIs(content::kChromeUIScheme) ||
168 embedder.SchemeIs(content::kChromeUIScheme)) 172 embedder.SchemeIs(content::kChromeUIScheme))
169 return; 173 return;
170 174
171 pending_infobar_requests_.push_back(PendingInfobarRequest( 175 pending_infobar_requests_.push_back(PendingInfobarRequest(
172 permission_type_, id, requesting_frame, embedder, callback)); 176 permission_type_, id, requesting_frame, embedder, profile_, callback));
173 if (!AlreadyShowingInfoBarForTab(id)) 177 if (!AlreadyShowingInfoBarForTab(id))
174 ShowQueuedInfoBarForTab(id); 178 ShowQueuedInfoBarForTab(id);
175 } 179 }
176 180
177 void PermissionQueueController::CancelInfoBarRequest( 181 void PermissionQueueController::CancelInfoBarRequest(
178 const PermissionRequestID& id) { 182 const PermissionRequestID& id) {
179 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 183 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
180 184
181 for (PendingInfobarRequests::iterator i(pending_infobar_requests_.begin()); 185 for (PendingInfobarRequests::iterator i(pending_infobar_requests_.begin());
182 i != pending_infobar_requests_.end(); ++i) { 186 i != pending_infobar_requests_.end(); ++i) {
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 } 389 }
386 390
387 ContentSetting content_setting = 391 ContentSetting content_setting =
388 allowed ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK; 392 allowed ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK;
389 393
390 HostContentSettingsMapFactory::GetForProfile(profile_) 394 HostContentSettingsMapFactory::GetForProfile(profile_)
391 ->SetContentSettingDefaultScope( 395 ->SetContentSettingDefaultScope(
392 requesting_frame.GetOrigin(), embedder.GetOrigin(), 396 requesting_frame.GetOrigin(), embedder.GetOrigin(),
393 content_settings_type_, std::string(), content_setting); 397 content_settings_type_, std::string(), content_setting);
394 } 398 }
OLDNEW
« no previous file with comments | « chrome/browser/permissions/permission_infobar_delegate.cc ('k') | chrome/browser/permissions/permission_request_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698