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

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

Issue 1068223002: Implement Site Settings \ Images category. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Sync and fix merge conflict Created 5 years, 8 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/android/preferences/pref_service_bridge.h" 5 #include "chrome/browser/android/preferences/pref_service_bridge.h"
6 6
7 #include <jni.h> 7 #include <jni.h>
8 8
9 #include "base/android/build_info.h" 9 #include "base/android/build_info.h"
10 #include "base/android/jni_android.h" 10 #include "base/android/jni_android.h"
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 PrefService* GetPrefService() { 145 PrefService* GetPrefService() {
146 return GetOriginalProfile()->GetPrefs(); 146 return GetOriginalProfile()->GetPrefs();
147 } 147 }
148 148
149 } // namespace 149 } // namespace
150 150
151 // ---------------------------------------------------------------------------- 151 // ----------------------------------------------------------------------------
152 // Native JNI methods 152 // Native JNI methods
153 // ---------------------------------------------------------------------------- 153 // ----------------------------------------------------------------------------
154 154
155 static jboolean IsContentSettingManaged(JNIEnv* env, jobject obj,
156 int content_settings_type) {
157 return IsContentSettingManaged(
158 static_cast<ContentSettingsType>(content_settings_type));
159 }
160
161 static jboolean IsContentSettingEnabled(JNIEnv* env, jobject obj,
162 int content_settings_type) {
163 // Before we migrate functions over to this central function, we must verify
164 // that the functionality provided below is correct.
165 DCHECK(content_settings_type == CONTENT_SETTINGS_TYPE_JAVASCRIPT ||
166 content_settings_type == CONTENT_SETTINGS_TYPE_IMAGES ||
167 content_settings_type == CONTENT_SETTINGS_TYPE_POPUPS);
168 ContentSettingsType type =
169 static_cast<ContentSettingsType>(content_settings_type);
170 if (type == CONTENT_SETTINGS_TYPE_JAVASCRIPT ||
171 type == CONTENT_SETTINGS_TYPE_POPUPS)
172 return GetBooleanForContentSetting(type);
173
174 HostContentSettingsMap* content_settings =
175 GetOriginalProfile()->GetHostContentSettingsMap();
176 return content_settings->GetDefaultContentSetting(
177 type, nullptr) == CONTENT_SETTING_ALLOW;
178 }
179
180 static void SetContentSettingEnabled(JNIEnv* env, jobject obj,
181 int content_settings_type, jboolean allow) {
182 // Before we migrate functions over to this central function, we must verify
183 // that the new category supports ALLOW/BLOCK pairs and, if not, handle them.
184 DCHECK(content_settings_type == CONTENT_SETTINGS_TYPE_JAVASCRIPT ||
185 content_settings_type == CONTENT_SETTINGS_TYPE_IMAGES ||
186 content_settings_type == CONTENT_SETTINGS_TYPE_POPUPS);
187 HostContentSettingsMap* host_content_settings_map =
188 GetOriginalProfile()->GetHostContentSettingsMap();
189 host_content_settings_map->SetDefaultContentSetting(
190 static_cast<ContentSettingsType>(content_settings_type),
191 allow ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK);
192 }
193
194 static void SetContentSettingForPattern(JNIEnv* env, jobject obj,
195 int content_settings_type, jstring pattern, int setting) {
196 HostContentSettingsMap* host_content_settings_map =
197 GetOriginalProfile()->GetHostContentSettingsMap();
198 host_content_settings_map->SetContentSetting(
199 ContentSettingsPattern::FromString(ConvertJavaStringToUTF8(env, pattern)),
200 ContentSettingsPattern::Wildcard(),
201 static_cast<ContentSettingsType>(content_settings_type),
202 "",
203 static_cast<ContentSetting>(setting));
204 }
205
206 static void GetContentSettingsExceptions(JNIEnv* env, jobject obj,
207 int content_settings_type, jobject list) {
208 HostContentSettingsMap* host_content_settings_map =
209 GetOriginalProfile()->GetHostContentSettingsMap();
210 ContentSettingsForOneType entries;
211 host_content_settings_map->GetSettingsForOneType(
212 static_cast<ContentSettingsType>(content_settings_type), "", &entries);
213 for (size_t i = 0; i < entries.size(); ++i) {
214 Java_PrefServiceBridge_addContentSettingExceptionToList(
215 env, list,
216 content_settings_type,
217 ConvertUTF8ToJavaString(
218 env, entries[i].primary_pattern.ToString()).obj(),
219 ConvertUTF8ToJavaString(
220 env, GetStringForContentSettingsType(entries[i].setting)).obj(),
221 ConvertUTF8ToJavaString(env, entries[i].source).obj());
222 }
223 }
224
155 static jboolean GetAcceptCookiesEnabled(JNIEnv* env, jobject obj) { 225 static jboolean GetAcceptCookiesEnabled(JNIEnv* env, jobject obj) {
156 return GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_COOKIES); 226 return GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_COOKIES);
157 } 227 }
158 228
159 static jboolean GetAcceptCookiesManaged(JNIEnv* env, jobject obj) { 229 static jboolean GetAcceptCookiesManaged(JNIEnv* env, jobject obj) {
160 return IsContentSettingManaged(CONTENT_SETTINGS_TYPE_COOKIES); 230 return IsContentSettingManaged(CONTENT_SETTINGS_TYPE_COOKIES);
161 } 231 }
162 232
163 static jboolean GetBlockThirdPartyCookiesEnabled(JNIEnv* env, jobject obj) { 233 static jboolean GetBlockThirdPartyCookiesEnabled(JNIEnv* env, jobject obj) {
164 return GetPrefService()->GetBoolean(prefs::kBlockThirdPartyCookies); 234 return GetPrefService()->GetBoolean(prefs::kBlockThirdPartyCookies);
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 static void SetTranslateEnabled(JNIEnv* env, jobject obj, jboolean enabled) { 539 static void SetTranslateEnabled(JNIEnv* env, jobject obj, jboolean enabled) {
470 GetPrefService()->SetBoolean(prefs::kEnableTranslate, enabled); 540 GetPrefService()->SetBoolean(prefs::kEnableTranslate, enabled);
471 } 541 }
472 542
473 static void ResetTranslateDefaults(JNIEnv* env, jobject obj) { 543 static void ResetTranslateDefaults(JNIEnv* env, jobject obj) {
474 scoped_ptr<translate::TranslatePrefs> translate_prefs = 544 scoped_ptr<translate::TranslatePrefs> translate_prefs =
475 ChromeTranslateClient::CreateTranslatePrefs(GetPrefService()); 545 ChromeTranslateClient::CreateTranslatePrefs(GetPrefService());
476 translate_prefs->ResetToDefaults(); 546 translate_prefs->ResetToDefaults();
477 } 547 }
478 548
479 static jboolean GetJavaScriptManaged(JNIEnv* env, jobject obj) {
480 return IsContentSettingManaged(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
481 }
482
483 static void SetJavaScriptEnabled(JNIEnv* env, jobject obj, jboolean enabled) {
484 HostContentSettingsMap* host_content_settings_map =
485 GetOriginalProfile()->GetHostContentSettingsMap();
486 host_content_settings_map->SetDefaultContentSetting(
487 CONTENT_SETTINGS_TYPE_JAVASCRIPT,
488 enabled ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK);
489 }
490
491 static jboolean GetJavaScriptEnabled(JNIEnv* env, jobject obj) {
492 return GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
493 }
494
495 static void MigrateJavascriptPreference(JNIEnv* env, jobject obj) { 549 static void MigrateJavascriptPreference(JNIEnv* env, jobject obj) {
496 const PrefService::Preference* javascript_pref = 550 const PrefService::Preference* javascript_pref =
497 GetPrefService()->FindPreference(prefs::kWebKitJavascriptEnabled); 551 GetPrefService()->FindPreference(prefs::kWebKitJavascriptEnabled);
498 DCHECK(javascript_pref); 552 DCHECK(javascript_pref);
499 553
500 if (!javascript_pref->HasUserSetting()) 554 if (!javascript_pref->HasUserSetting())
501 return; 555 return;
502 556
503 bool javascript_enabled = false; 557 bool javascript_enabled = false;
504 bool retval = javascript_pref->GetValue()->GetAsBoolean(&javascript_enabled); 558 bool retval = javascript_pref->GetValue()->GetAsBoolean(&javascript_enabled);
505 DCHECK(retval); 559 DCHECK(retval);
506 SetJavaScriptEnabled(env, obj, javascript_enabled); 560 SetContentSettingEnabled(env, obj,
561 CONTENT_SETTINGS_TYPE_JAVASCRIPT, javascript_enabled);
507 GetPrefService()->ClearPref(prefs::kWebKitJavascriptEnabled); 562 GetPrefService()->ClearPref(prefs::kWebKitJavascriptEnabled);
508 } 563 }
509 564
510 static void MigrateLocationPreference(JNIEnv* env, jobject obj) { 565 static void MigrateLocationPreference(JNIEnv* env, jobject obj) {
511 const PrefService::Preference* pref = 566 const PrefService::Preference* pref =
512 GetPrefService()->FindPreference(prefs::kGeolocationEnabled); 567 GetPrefService()->FindPreference(prefs::kGeolocationEnabled);
513 if (!pref || !pref->HasUserSetting()) 568 if (!pref || !pref->HasUserSetting())
514 return; 569 return;
515 bool location_enabled = false; 570 bool location_enabled = false;
516 bool retval = pref->GetValue()->GetAsBoolean(&location_enabled); 571 bool retval = pref->GetValue()->GetAsBoolean(&location_enabled);
(...skipping 19 matching lines...) Expand all
536 GetPrefService()->ClearPref(prefs::kProtectedMediaIdentifierEnabled); 591 GetPrefService()->ClearPref(prefs::kProtectedMediaIdentifierEnabled);
537 } 592 }
538 593
539 static void SetPasswordEchoEnabled(JNIEnv* env, 594 static void SetPasswordEchoEnabled(JNIEnv* env,
540 jobject obj, 595 jobject obj,
541 jboolean passwordEchoEnabled) { 596 jboolean passwordEchoEnabled) {
542 GetPrefService()->SetBoolean(prefs::kWebKitPasswordEchoEnabled, 597 GetPrefService()->SetBoolean(prefs::kWebKitPasswordEchoEnabled,
543 passwordEchoEnabled); 598 passwordEchoEnabled);
544 } 599 }
545 600
546 static jboolean GetAllowPopupsEnabled(JNIEnv* env, jobject obj) {
547 return GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_POPUPS);
548 }
549
550 static jboolean GetAllowPopupsManaged(JNIEnv* env, jobject obj) {
551 return IsContentSettingManaged(CONTENT_SETTINGS_TYPE_POPUPS);
552 }
553
554 static void SetAllowPopupsEnabled(JNIEnv* env, jobject obj, jboolean allow) {
555 HostContentSettingsMap* host_content_settings_map =
556 GetOriginalProfile()->GetHostContentSettingsMap();
557 host_content_settings_map->SetDefaultContentSetting(
558 CONTENT_SETTINGS_TYPE_POPUPS,
559 allow ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK);
560 }
561 601
562 static jboolean GetCameraMicEnabled(JNIEnv* env, jobject obj) { 602 static jboolean GetCameraMicEnabled(JNIEnv* env, jobject obj) {
563 return GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) && 603 return GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) &&
564 GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); 604 GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA);
565 } 605 }
566 606
567 static jboolean GetCameraMicUserModifiable(JNIEnv* env, jobject obj) { 607 static jboolean GetCameraMicUserModifiable(JNIEnv* env, jobject obj) {
568 return IsContentSettingUserModifiable( 608 return IsContentSettingUserModifiable(
569 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) && 609 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) &&
570 IsContentSettingUserModifiable( 610 IsContentSettingUserModifiable(
(...skipping 21 matching lines...) Expand all
592 HostContentSettingsMap* host_content_settings_map = 632 HostContentSettingsMap* host_content_settings_map =
593 GetOriginalProfile()->GetHostContentSettingsMap(); 633 GetOriginalProfile()->GetHostContentSettingsMap();
594 host_content_settings_map->SetContentSetting( 634 host_content_settings_map->SetContentSetting(
595 ContentSettingsPattern::FromString(ConvertJavaStringToUTF8(env, pattern)), 635 ContentSettingsPattern::FromString(ConvertJavaStringToUTF8(env, pattern)),
596 ContentSettingsPattern::Wildcard(), 636 ContentSettingsPattern::Wildcard(),
597 CONTENT_SETTINGS_TYPE_JAVASCRIPT, 637 CONTENT_SETTINGS_TYPE_JAVASCRIPT,
598 "", 638 "",
599 static_cast<ContentSetting>(setting)); 639 static_cast<ContentSetting>(setting));
600 } 640 }
601 641
602 static void GetJavaScriptExceptions(JNIEnv* env, jobject obj, jobject list) {
603 HostContentSettingsMap* host_content_settings_map =
604 GetOriginalProfile()->GetHostContentSettingsMap();
605 ContentSettingsForOneType entries;
606 host_content_settings_map->GetSettingsForOneType(
607 CONTENT_SETTINGS_TYPE_JAVASCRIPT, "", &entries);
608 for (size_t i = 0; i < entries.size(); ++i) {
609 Java_PrefServiceBridge_addJavaScriptExceptionToList(
610 env, list,
611 ConvertUTF8ToJavaString(
612 env, entries[i].primary_pattern.ToString()).obj(),
613 ConvertUTF8ToJavaString(
614 env, GetStringForContentSettingsType(entries[i].setting)).obj(),
615 ConvertUTF8ToJavaString(env, entries[i].source).obj());
616 }
617 }
618
619 static void SetPopupException(JNIEnv* env, jobject obj, jstring pattern, 642 static void SetPopupException(JNIEnv* env, jobject obj, jstring pattern,
620 int setting) { 643 int setting) {
621 HostContentSettingsMap* host_content_settings_map = 644 HostContentSettingsMap* host_content_settings_map =
622 GetOriginalProfile()->GetHostContentSettingsMap(); 645 GetOriginalProfile()->GetHostContentSettingsMap();
623 host_content_settings_map->SetContentSetting( 646 host_content_settings_map->SetContentSetting(
624 ContentSettingsPattern::FromString(ConvertJavaStringToUTF8(env, pattern)), 647 ContentSettingsPattern::FromString(ConvertJavaStringToUTF8(env, pattern)),
625 ContentSettingsPattern::Wildcard(), 648 ContentSettingsPattern::Wildcard(),
626 CONTENT_SETTINGS_TYPE_POPUPS, 649 CONTENT_SETTINGS_TYPE_POPUPS,
627 "", 650 "",
628 static_cast<ContentSetting>(setting)); 651 static_cast<ContentSetting>(setting));
629 } 652 }
630 653
631 static void GetPopupExceptions(JNIEnv* env, jobject obj, jobject list) {
632 HostContentSettingsMap* host_content_settings_map =
633 GetOriginalProfile()->GetHostContentSettingsMap();
634 ContentSettingsForOneType entries;
635 host_content_settings_map->GetSettingsForOneType(
636 CONTENT_SETTINGS_TYPE_POPUPS, "", &entries);
637 for (size_t i = 0; i < entries.size(); ++i) {
638 Java_PrefServiceBridge_insertPopupExceptionToList(
639 env, list,
640 ConvertUTF8ToJavaString(
641 env, entries[i].primary_pattern.ToString()).obj(),
642 ConvertUTF8ToJavaString(
643 env, GetStringForContentSettingsType(entries[i].setting)).obj(),
644 ConvertUTF8ToJavaString(env, entries[i].source).obj());
645 }
646 }
647
648 static void SetSearchSuggestEnabled(JNIEnv* env, jobject obj, 654 static void SetSearchSuggestEnabled(JNIEnv* env, jobject obj,
649 jboolean enabled) { 655 jboolean enabled) {
650 GetPrefService()->SetBoolean(prefs::kSearchSuggestEnabled, enabled); 656 GetPrefService()->SetBoolean(prefs::kSearchSuggestEnabled, enabled);
651 } 657 }
652 658
653 static jstring GetContextualSearchPreference(JNIEnv* env, jobject obj) { 659 static jstring GetContextualSearchPreference(JNIEnv* env, jobject obj) {
654 return ConvertUTF8ToJavaString( 660 return ConvertUTF8ToJavaString(
655 env, GetPrefService()->GetString(prefs::kContextualSearchEnabled)). 661 env, GetPrefService()->GetString(prefs::kContextualSearchEnabled)).
656 Release(); 662 Release();
657 } 663 }
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 jobject obj) { 825 jobject obj) {
820 return ConvertUTF8ToJavaString( 826 return ConvertUTF8ToJavaString(
821 env, 827 env,
822 GetPrefService()->GetString( 828 GetPrefService()->GetString(
823 prefs::kSupervisedUserSecondCustodianProfileImageURL)).Release(); 829 prefs::kSupervisedUserSecondCustodianProfileImageURL)).Release();
824 } 830 }
825 831
826 bool RegisterPrefServiceBridge(JNIEnv* env) { 832 bool RegisterPrefServiceBridge(JNIEnv* env) {
827 return RegisterNativesImpl(env); 833 return RegisterNativesImpl(env);
828 } 834 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698