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

Side by Side Diff: chrome/browser/android/preferences/website_preference_bridge.cc

Issue 1819773002: Use GURLs instead of patterns for SetContentSetting() in WebsitePreferenceBridge (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix bug Created 4 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/android/preferences/website_preference_bridge.h" 5 #include "chrome/browser/android/preferences/website_preference_bridge.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/android/scoped_java_ref.h" 9 #include "base/android/scoped_java_ref.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 GURL embedder_url(ConvertJavaStringToUTF8(env, embedder)); 124 GURL embedder_url(ConvertJavaStringToUTF8(env, embedder));
125 ContentSetting setting = 125 ContentSetting setting =
126 GetHostContentSettingsMap(is_incognito) 126 GetHostContentSettingsMap(is_incognito)
127 ->GetContentSetting(url, embedder_url, content_type, std::string()); 127 ->GetContentSetting(url, embedder_url, content_type, std::string());
128 return setting; 128 return setting;
129 } 129 }
130 130
131 void SetSettingForOrigin(JNIEnv* env, 131 void SetSettingForOrigin(JNIEnv* env,
132 ContentSettingsType content_type, 132 ContentSettingsType content_type,
133 jstring origin, 133 jstring origin,
134 ContentSettingsPattern secondary_pattern, 134 jstring embedder,
135 ContentSetting setting, 135 ContentSetting setting,
136 jboolean is_incognito) { 136 jboolean is_incognito) {
137 GURL url(ConvertJavaStringToUTF8(env, origin)); 137 GURL origin_url(ConvertJavaStringToUTF8(env, origin));
138 GURL embedder_url(ConvertJavaStringToUTF8(env, embedder));
138 GetHostContentSettingsMap(is_incognito) 139 GetHostContentSettingsMap(is_incognito)
139 ->SetContentSetting(ContentSettingsPattern::FromURLNoWildcard(url), 140 ->SetContentSettingDefaultScope(origin_url, embedder_url, content_type,
140 secondary_pattern, content_type, std::string(), 141 std::string(), setting);
141 setting);
142 WebSiteSettingsUmaUtil::LogPermissionChange(content_type, setting); 142 WebSiteSettingsUmaUtil::LogPermissionChange(content_type, setting);
143 } 143 }
144 144
145 } // anonymous namespace 145 } // anonymous namespace
146 146
147 static void GetFullscreenOrigins(JNIEnv* env, 147 static void GetFullscreenOrigins(JNIEnv* env,
148 const JavaParamRef<jclass>& clazz, 148 const JavaParamRef<jclass>& clazz,
149 const JavaParamRef<jobject>& list, 149 const JavaParamRef<jobject>& list,
150 jboolean managedOnly) { 150 jboolean managedOnly) {
151 GetOrigins(env, CONTENT_SETTINGS_TYPE_FULLSCREEN, 151 GetOrigins(env, CONTENT_SETTINGS_TYPE_FULLSCREEN,
152 &Java_WebsitePreferenceBridge_insertFullscreenInfoIntoList, list, 152 &Java_WebsitePreferenceBridge_insertFullscreenInfoIntoList, list,
153 managedOnly); 153 managedOnly);
154 } 154 }
155 155
156 static jint GetFullscreenSettingForOrigin(JNIEnv* env, 156 static jint GetFullscreenSettingForOrigin(JNIEnv* env,
157 const JavaParamRef<jclass>& clazz, 157 const JavaParamRef<jclass>& clazz,
158 const JavaParamRef<jstring>& origin, 158 const JavaParamRef<jstring>& origin,
159 const JavaParamRef<jstring>& embedder, 159 const JavaParamRef<jstring>& embedder,
160 jboolean is_incognito) { 160 jboolean is_incognito) {
161 return GetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_FULLSCREEN, origin, 161 return GetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_FULLSCREEN, origin,
162 embedder, is_incognito); 162 embedder, is_incognito);
163 } 163 }
164 164
165 static void SetFullscreenSettingForOrigin(JNIEnv* env, 165 static void SetFullscreenSettingForOrigin(JNIEnv* env,
166 const JavaParamRef<jclass>& clazz, 166 const JavaParamRef<jclass>& clazz,
167 const JavaParamRef<jstring>& origin, 167 const JavaParamRef<jstring>& origin,
168 const JavaParamRef<jstring>& embedder, 168 const JavaParamRef<jstring>& embedder,
169 jint value, 169 jint value,
170 jboolean is_incognito) { 170 jboolean is_incognito) {
171 GURL embedder_url(ConvertJavaStringToUTF8(env, embedder)); 171 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_FULLSCREEN, origin, embedder,
172 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_FULLSCREEN, origin, 172 (ContentSetting)value, is_incognito);
173 ContentSettingsPattern::FromURLNoWildcard(embedder_url),
174 (ContentSetting) value, is_incognito);
175 } 173 }
176 174
177 static void GetGeolocationOrigins(JNIEnv* env, 175 static void GetGeolocationOrigins(JNIEnv* env,
178 const JavaParamRef<jclass>& clazz, 176 const JavaParamRef<jclass>& clazz,
179 const JavaParamRef<jobject>& list, 177 const JavaParamRef<jobject>& list,
180 jboolean managedOnly) { 178 jboolean managedOnly) {
181 GetOrigins(env, CONTENT_SETTINGS_TYPE_GEOLOCATION, 179 GetOrigins(env, CONTENT_SETTINGS_TYPE_GEOLOCATION,
182 &Java_WebsitePreferenceBridge_insertGeolocationInfoIntoList, list, 180 &Java_WebsitePreferenceBridge_insertGeolocationInfoIntoList, list,
183 managedOnly); 181 managedOnly);
184 } 182 }
185 183
186 static jint GetGeolocationSettingForOrigin( 184 static jint GetGeolocationSettingForOrigin(
187 JNIEnv* env, 185 JNIEnv* env,
188 const JavaParamRef<jclass>& clazz, 186 const JavaParamRef<jclass>& clazz,
189 const JavaParamRef<jstring>& origin, 187 const JavaParamRef<jstring>& origin,
190 const JavaParamRef<jstring>& embedder, 188 const JavaParamRef<jstring>& embedder,
191 jboolean is_incognito) { 189 jboolean is_incognito) {
192 return GetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_GEOLOCATION, origin, 190 return GetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_GEOLOCATION, origin,
193 embedder, is_incognito); 191 embedder, is_incognito);
194 } 192 }
195 193
196 static void SetGeolocationSettingForOrigin( 194 static void SetGeolocationSettingForOrigin(
197 JNIEnv* env, 195 JNIEnv* env,
198 const JavaParamRef<jclass>& clazz, 196 const JavaParamRef<jclass>& clazz,
199 const JavaParamRef<jstring>& origin, 197 const JavaParamRef<jstring>& origin,
200 const JavaParamRef<jstring>& embedder, 198 const JavaParamRef<jstring>& embedder,
201 jint value, 199 jint value,
202 jboolean is_incognito) { 200 jboolean is_incognito) {
203 GURL embedder_url(ConvertJavaStringToUTF8(env, embedder)); 201 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_GEOLOCATION, origin, embedder,
204 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_GEOLOCATION, origin, 202 (ContentSetting)value, is_incognito);
205 ContentSettingsPattern::FromURLNoWildcard(embedder_url),
206 (ContentSetting) value, is_incognito);
207 } 203 }
208 204
209 static void GetKeygenOrigins(JNIEnv* env, 205 static void GetKeygenOrigins(JNIEnv* env,
210 const JavaParamRef<jclass>& clazz, 206 const JavaParamRef<jclass>& clazz,
211 const JavaParamRef<jobject>& list) { 207 const JavaParamRef<jobject>& list) {
212 GetOrigins(env, CONTENT_SETTINGS_TYPE_KEYGEN, 208 GetOrigins(env, CONTENT_SETTINGS_TYPE_KEYGEN,
213 &Java_WebsitePreferenceBridge_insertKeygenInfoIntoList, list, 209 &Java_WebsitePreferenceBridge_insertKeygenInfoIntoList, list,
214 false); 210 false);
215 } 211 }
216 212
217 static jint GetKeygenSettingForOrigin(JNIEnv* env, 213 static jint GetKeygenSettingForOrigin(JNIEnv* env,
218 const JavaParamRef<jclass>& clazz, 214 const JavaParamRef<jclass>& clazz,
219 const JavaParamRef<jstring>& origin, 215 const JavaParamRef<jstring>& origin,
220 const JavaParamRef<jstring>& embedder, 216 const JavaParamRef<jstring>& embedder,
221 jboolean is_incognito) { 217 jboolean is_incognito) {
222 return GetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_KEYGEN, origin, 218 return GetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_KEYGEN, origin,
223 embedder, is_incognito); 219 embedder, is_incognito);
224 } 220 }
225 221
226 static void SetKeygenSettingForOrigin(JNIEnv* env, 222 static void SetKeygenSettingForOrigin(JNIEnv* env,
227 const JavaParamRef<jclass>& clazz, 223 const JavaParamRef<jclass>& clazz,
228 const JavaParamRef<jstring>& origin, 224 const JavaParamRef<jstring>& origin,
229 const JavaParamRef<jstring>& embedder, 225 const JavaParamRef<jstring>& embedder,
230 jint value, 226 jint value,
231 jboolean is_incognito) { 227 jboolean is_incognito) {
232 GURL embedder_url(ConvertJavaStringToUTF8(env, embedder)); 228 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_KEYGEN, origin, NULL,
svaldez 2016/03/22 16:05:24 Should this be NULL, possibly add a comment?
Bernhard Bauer 2016/03/22 16:11:58 And in any case it should be nullptr, not NULL.
lshang 2016/03/23 01:46:12 Done. I changed it to nullptr, and it indicates th
lshang 2016/03/23 01:46:12 Done.
Bernhard Bauer 2016/03/23 14:12:15 The biggest issue I have with nullptr specifically
233 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_KEYGEN, origin, 229 (ContentSetting)value, is_incognito);
Bernhard Bauer 2016/03/22 16:11:58 Ooh, also we should use static_cast<ContentSetting
lshang 2016/03/23 01:46:12 Done.
234 ContentSettingsPattern::FromURLNoWildcard(embedder_url),
235 (ContentSetting) value, is_incognito);
236 } 230 }
237 231
238 static jboolean GetKeygenBlocked(JNIEnv* env, 232 static jboolean GetKeygenBlocked(JNIEnv* env,
239 const JavaParamRef<jclass>& clazz, 233 const JavaParamRef<jclass>& clazz,
240 const JavaParamRef<jobject>& java_web_contents) { 234 const JavaParamRef<jobject>& java_web_contents) {
241 content::WebContents* web_contents = 235 content::WebContents* web_contents =
242 content::WebContents::FromJavaWebContents(java_web_contents); 236 content::WebContents::FromJavaWebContents(java_web_contents);
243 return TabSpecificContentSettings::FromWebContents( 237 return TabSpecificContentSettings::FromWebContents(
244 web_contents)->IsContentBlocked(CONTENT_SETTINGS_TYPE_KEYGEN); 238 web_contents)->IsContentBlocked(CONTENT_SETTINGS_TYPE_KEYGEN);
245 } 239 }
(...skipping 13 matching lines...) Expand all
259 return GetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MIDI_SYSEX, origin, 253 return GetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MIDI_SYSEX, origin,
260 embedder, is_incognito); 254 embedder, is_incognito);
261 } 255 }
262 256
263 static void SetMidiSettingForOrigin(JNIEnv* env, 257 static void SetMidiSettingForOrigin(JNIEnv* env,
264 const JavaParamRef<jclass>& clazz, 258 const JavaParamRef<jclass>& clazz,
265 const JavaParamRef<jstring>& origin, 259 const JavaParamRef<jstring>& origin,
266 const JavaParamRef<jstring>& embedder, 260 const JavaParamRef<jstring>& embedder,
267 jint value, 261 jint value,
268 jboolean is_incognito) { 262 jboolean is_incognito) {
269 GURL embedder_url(ConvertJavaStringToUTF8(env, embedder)); 263 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MIDI_SYSEX, origin, embedder,
270 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MIDI_SYSEX, origin, 264 (ContentSetting)value, is_incognito);
271 ContentSettingsPattern::FromURLNoWildcard(embedder_url),
272 (ContentSetting) value, is_incognito);
273 } 265 }
274 266
275 static void GetProtectedMediaIdentifierOrigins( 267 static void GetProtectedMediaIdentifierOrigins(
276 JNIEnv* env, 268 JNIEnv* env,
277 const JavaParamRef<jclass>& clazz, 269 const JavaParamRef<jclass>& clazz,
278 const JavaParamRef<jobject>& list) { 270 const JavaParamRef<jobject>& list) {
279 GetOrigins( 271 GetOrigins(
280 env, CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, 272 env, CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER,
281 &Java_WebsitePreferenceBridge_insertProtectedMediaIdentifierInfoIntoList, 273 &Java_WebsitePreferenceBridge_insertProtectedMediaIdentifierInfoIntoList,
282 list, false); 274 list, false);
(...skipping 10 matching lines...) Expand all
293 origin, embedder, is_incognito); 285 origin, embedder, is_incognito);
294 } 286 }
295 287
296 static void SetProtectedMediaIdentifierSettingForOrigin( 288 static void SetProtectedMediaIdentifierSettingForOrigin(
297 JNIEnv* env, 289 JNIEnv* env,
298 const JavaParamRef<jclass>& clazz, 290 const JavaParamRef<jclass>& clazz,
299 const JavaParamRef<jstring>& origin, 291 const JavaParamRef<jstring>& origin,
300 const JavaParamRef<jstring>& embedder, 292 const JavaParamRef<jstring>& embedder,
301 jint value, 293 jint value,
302 jboolean is_incognito) { 294 jboolean is_incognito) {
303 GURL embedder_url(ConvertJavaStringToUTF8(env, embedder));
304 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, 295 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER,
305 origin, 296 origin, embedder, (ContentSetting)value, is_incognito);
306 ContentSettingsPattern::FromURLNoWildcard(embedder_url),
307 (ContentSetting) value, is_incognito);
308 } 297 }
309 298
310 static void GetNotificationOrigins(JNIEnv* env, 299 static void GetNotificationOrigins(JNIEnv* env,
311 const JavaParamRef<jclass>& clazz, 300 const JavaParamRef<jclass>& clazz,
312 const JavaParamRef<jobject>& list) { 301 const JavaParamRef<jobject>& list) {
313 GetOrigins(env, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, 302 GetOrigins(env, CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
314 &Java_WebsitePreferenceBridge_insertNotificationIntoList, list, 303 &Java_WebsitePreferenceBridge_insertNotificationIntoList, list,
315 false); 304 false);
316 } 305 }
317 306
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 return GetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, 379 return GetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA,
391 origin, embedder, is_incognito); 380 origin, embedder, is_incognito);
392 } 381 }
393 382
394 static void SetMicrophoneSettingForOrigin(JNIEnv* env, 383 static void SetMicrophoneSettingForOrigin(JNIEnv* env,
395 const JavaParamRef<jclass>& clazz, 384 const JavaParamRef<jclass>& clazz,
396 const JavaParamRef<jstring>& origin, 385 const JavaParamRef<jstring>& origin,
397 const JavaParamRef<jstring>& embedder, 386 const JavaParamRef<jstring>& embedder,
398 jint value, 387 jint value,
399 jboolean is_incognito) { 388 jboolean is_incognito) {
400 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, origin, 389 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, origin, NULL,
401 ContentSettingsPattern::Wildcard(), 390 (ContentSetting)value, is_incognito);
402 (ContentSetting) value, is_incognito);
403 } 391 }
404 392
405 static void SetCameraSettingForOrigin(JNIEnv* env, 393 static void SetCameraSettingForOrigin(JNIEnv* env,
406 const JavaParamRef<jclass>& clazz, 394 const JavaParamRef<jclass>& clazz,
407 const JavaParamRef<jstring>& origin, 395 const JavaParamRef<jstring>& origin,
408 const JavaParamRef<jstring>& embedder, 396 const JavaParamRef<jstring>& embedder,
409 jint value, 397 jint value,
410 jboolean is_incognito) { 398 jboolean is_incognito) {
411 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, origin, 399 SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, origin,
412 ContentSettingsPattern::Wildcard(), 400 NULL, (ContentSetting)value, is_incognito);
413 (ContentSetting) value, is_incognito);
414 } 401 }
415 402
416 static scoped_refptr<content_settings::CookieSettings> GetCookieSettings() { 403 static scoped_refptr<content_settings::CookieSettings> GetCookieSettings() {
417 // A single cookie setting applies to both incognito and non-incognito. 404 // A single cookie setting applies to both incognito and non-incognito.
418 Profile* profile = ProfileManager::GetActiveUserProfile(); 405 Profile* profile = ProfileManager::GetActiveUserProfile();
419 return CookieSettingsFactory::GetForProfile(profile); 406 return CookieSettingsFactory::GetForProfile(profile);
420 } 407 }
421 408
422 static void GetCookieOrigins(JNIEnv* env, 409 static void GetCookieOrigins(JNIEnv* env,
423 const JavaParamRef<jclass>& clazz, 410 const JavaParamRef<jclass>& clazz,
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 GURL url(ConvertJavaStringToUTF8(env, jorigin)); 751 GURL url(ConvertJavaStringToUTF8(env, jorigin));
765 scoped_refptr<SiteDataDeleteHelper> site_data_deleter( 752 scoped_refptr<SiteDataDeleteHelper> site_data_deleter(
766 new SiteDataDeleteHelper(profile, url)); 753 new SiteDataDeleteHelper(profile, url));
767 site_data_deleter->Run(); 754 site_data_deleter->Run();
768 } 755 }
769 756
770 // Register native methods 757 // Register native methods
771 bool RegisterWebsitePreferenceBridge(JNIEnv* env) { 758 bool RegisterWebsitePreferenceBridge(JNIEnv* env) {
772 return RegisterNativesImpl(env); 759 return RegisterNativesImpl(env);
773 } 760 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698