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

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

Issue 2671743002: Separate state of basic and advanced tab in CBD dialog (Closed)
Patch Set: add test for policy 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/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 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 content_settings->GetDefaultContentSetting(content_settings_type, &source); 125 content_settings->GetDefaultContentSetting(content_settings_type, &source);
126 HostContentSettingsMap::ProviderType provider = 126 HostContentSettingsMap::ProviderType provider =
127 content_settings->GetProviderTypeFromSource(source); 127 content_settings->GetProviderTypeFromSource(source);
128 return provider >= HostContentSettingsMap::PREF_PROVIDER; 128 return provider >= HostContentSettingsMap::PREF_PROVIDER;
129 } 129 }
130 130
131 PrefService* GetPrefService() { 131 PrefService* GetPrefService() {
132 return GetOriginalProfile()->GetPrefs(); 132 return GetOriginalProfile()->GetPrefs();
133 } 133 }
134 134
135 browsing_data::ClearBrowsingDataTab ToTabEnum(jint clear_browsing_data_tab) {
136 DCHECK_GE(clear_browsing_data_tab, 0);
137 DCHECK_LT(clear_browsing_data_tab,
138 static_cast<int>(browsing_data::ClearBrowsingDataTab::NUM_TYPES));
139
140 return static_cast<browsing_data::ClearBrowsingDataTab>(
141 clear_browsing_data_tab);
142 }
143
135 } // namespace 144 } // namespace
136 145
137 // ---------------------------------------------------------------------------- 146 // ----------------------------------------------------------------------------
138 // Native JNI methods 147 // Native JNI methods
139 // ---------------------------------------------------------------------------- 148 // ----------------------------------------------------------------------------
140 149
141 static jboolean IsContentSettingManaged(JNIEnv* env, 150 static jboolean IsContentSettingManaged(JNIEnv* env,
142 const JavaParamRef<jobject>& obj, 151 const JavaParamRef<jobject>& obj,
143 int content_settings_type) { 152 int content_settings_type) {
144 return IsContentSettingManaged( 153 return IsContentSettingManaged(
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 int task_count_; 541 int task_count_;
533 JavaObjectWeakGlobalRef weak_chrome_native_preferences_; 542 JavaObjectWeakGlobalRef weak_chrome_native_preferences_;
534 ScopedObserver<BrowsingDataRemover, BrowsingDataRemover::Observer> observer_; 543 ScopedObserver<BrowsingDataRemover, BrowsingDataRemover::Observer> observer_;
535 }; 544 };
536 545
537 } // namespace 546 } // namespace
538 547
539 static jboolean GetBrowsingDataDeletionPreference( 548 static jboolean GetBrowsingDataDeletionPreference(
540 JNIEnv* env, 549 JNIEnv* env,
541 const JavaParamRef<jobject>& obj, 550 const JavaParamRef<jobject>& obj,
542 jint data_type) { 551 jint data_type,
552 jint clear_browsing_data_tab) {
543 DCHECK_GE(data_type, 0); 553 DCHECK_GE(data_type, 0);
544 DCHECK_LT(data_type, browsing_data::NUM_TYPES); 554 DCHECK_LT(data_type,
555 static_cast<int>(browsing_data::BrowsingDataType::NUM_TYPES));
545 556
546 // If there is no corresponding preference for this |data_type|, pretend 557 // If there is no corresponding preference for this |data_type|, pretend
547 // that it's set to false. 558 // that it's set to false.
548 // TODO(msramek): Consider defining native-side preferences for all Java UI 559 // TODO(msramek): Consider defining native-side preferences for all Java UI
549 // data types for consistency. 560 // data types for consistency.
550 std::string pref; 561 std::string pref;
551 if (!browsing_data::GetDeletionPreferenceFromDataType( 562 if (!browsing_data::GetDeletionPreferenceFromDataType(
552 static_cast<browsing_data::BrowsingDataType>(data_type), &pref)) { 563 static_cast<browsing_data::BrowsingDataType>(data_type),
564 ToTabEnum(clear_browsing_data_tab), &pref)) {
553 return false; 565 return false;
554 } 566 }
555 567
556 return GetOriginalProfile()->GetPrefs()->GetBoolean(pref); 568 return GetOriginalProfile()->GetPrefs()->GetBoolean(pref);
557 } 569 }
558 570
559 static void SetBrowsingDataDeletionPreference( 571 static void SetBrowsingDataDeletionPreference(JNIEnv* env,
560 JNIEnv* env, 572 const JavaParamRef<jobject>& obj,
561 const JavaParamRef<jobject>& obj, 573 jint data_type,
562 jint data_type, 574 jint clear_browsing_data_tab,
563 jboolean value) { 575 jboolean value) {
564 DCHECK_GE(data_type, 0); 576 DCHECK_GE(data_type, 0);
565 DCHECK_LT(data_type, browsing_data::NUM_TYPES); 577 DCHECK_LT(data_type,
578 static_cast<int>(browsing_data::BrowsingDataType::NUM_TYPES));
566 579
567 std::string pref; 580 std::string pref;
568 if (!browsing_data::GetDeletionPreferenceFromDataType( 581 if (!browsing_data::GetDeletionPreferenceFromDataType(
569 static_cast<browsing_data::BrowsingDataType>(data_type), &pref)) { 582 static_cast<browsing_data::BrowsingDataType>(data_type),
583 ToTabEnum(clear_browsing_data_tab), &pref)) {
570 return; 584 return;
571 } 585 }
572 586
573 GetOriginalProfile()->GetPrefs()->SetBoolean(pref, value); 587 GetOriginalProfile()->GetPrefs()->SetBoolean(pref, value);
574 } 588 }
575 589
576 static jint GetBrowsingDataDeletionTimePeriod( 590 static jint GetBrowsingDataDeletionTimePeriod(JNIEnv* env,
577 JNIEnv* env, 591 const JavaParamRef<jobject>& obj,
578 const JavaParamRef<jobject>& obj) { 592 jint clear_browsing_data_tab) {
579 return GetPrefService()->GetInteger(browsing_data::prefs::kDeleteTimePeriod); 593 return GetPrefService()->GetInteger(
594 browsing_data::GetTimePeriodPreferenceName(
595 ToTabEnum(clear_browsing_data_tab)));
580 } 596 }
581 597
582 static void SetBrowsingDataDeletionTimePeriod( 598 static void SetBrowsingDataDeletionTimePeriod(JNIEnv* env,
583 JNIEnv* env, 599 const JavaParamRef<jobject>& obj,
584 const JavaParamRef<jobject>& obj, 600 jint clear_browsing_data_tab,
585 jint time_period) { 601 jint time_period) {
586 DCHECK_GE(time_period, 0); 602 DCHECK_GE(time_period, 0);
587 DCHECK_LE(time_period, browsing_data::TIME_PERIOD_LAST); 603 DCHECK_LE(time_period,
588 GetPrefService()->SetInteger(browsing_data::prefs::kDeleteTimePeriod, 604 static_cast<int>(browsing_data::TimePeriod::TIME_PERIOD_LAST));
605 GetPrefService()->SetInteger(browsing_data::GetTimePeriodPreferenceName(
606 ToTabEnum(clear_browsing_data_tab)),
589 time_period); 607 time_period);
590 } 608 }
591 609
592 static jint GetLastClearBrowsingDataTab(JNIEnv* env, 610 static jint GetLastClearBrowsingDataTab(JNIEnv* env,
593 const JavaParamRef<jobject>& obj) { 611 const JavaParamRef<jobject>& obj) {
594 return GetPrefService()->GetInteger( 612 return GetPrefService()->GetInteger(
595 browsing_data::prefs::kLastClearBrowsingDataTab); 613 browsing_data::prefs::kLastClearBrowsingDataTab);
596 } 614 }
597 615
598 static void SetLastClearBrowsingDataTab(JNIEnv* env, 616 static void SetLastClearBrowsingDataTab(JNIEnv* env,
599 const JavaParamRef<jobject>& obj, 617 const JavaParamRef<jobject>& obj,
600 jint tab_index) { 618 jint tab_index) {
601 DCHECK_GE(tab_index, 0); 619 DCHECK_GE(tab_index, 0);
602 DCHECK_LT(tab_index, 2); 620 DCHECK_LT(tab_index, 2);
603 GetPrefService()->SetInteger(browsing_data::prefs::kLastClearBrowsingDataTab, 621 GetPrefService()->SetInteger(browsing_data::prefs::kLastClearBrowsingDataTab,
604 tab_index); 622 tab_index);
605 } 623 }
606 624
625 static void MigrateBrowsingDataPreferences(JNIEnv* env,
626 const JavaParamRef<jobject>& obj) {
627 browsing_data::MigratePreferencesToBasic(GetOriginalProfile()->GetPrefs());
Ted C 2017/03/02 22:06:15 Is Android the only place that this method needs t
dullweber 2017/03/03 10:14:19 This method is currently only used from android wh
628 }
629
607 static void ClearBrowsingData( 630 static void ClearBrowsingData(
608 JNIEnv* env, 631 JNIEnv* env,
609 const JavaParamRef<jobject>& obj, 632 const JavaParamRef<jobject>& obj,
610 const JavaParamRef<jintArray>& data_types, 633 const JavaParamRef<jintArray>& data_types,
611 jint time_period, 634 jint time_period,
612 const JavaParamRef<jobjectArray>& jexcluding_domains, 635 const JavaParamRef<jobjectArray>& jexcluding_domains,
613 const JavaParamRef<jintArray>& jexcluding_domain_reasons, 636 const JavaParamRef<jintArray>& jexcluding_domain_reasons,
614 const JavaParamRef<jobjectArray>& jignoring_domains, 637 const JavaParamRef<jobjectArray>& jignoring_domains,
615 const JavaParamRef<jintArray>& jignoring_domain_reasons) { 638 const JavaParamRef<jintArray>& jignoring_domain_reasons) {
616 BrowsingDataRemover* browsing_data_remover = 639 BrowsingDataRemover* browsing_data_remover =
617 BrowsingDataRemoverFactory::GetForBrowserContext(GetOriginalProfile()); 640 BrowsingDataRemoverFactory::GetForBrowserContext(GetOriginalProfile());
618 641
619 std::vector<int> data_types_vector; 642 std::vector<int> data_types_vector;
620 base::android::JavaIntArrayToIntVector(env, data_types, &data_types_vector); 643 base::android::JavaIntArrayToIntVector(env, data_types, &data_types_vector);
621 644
622 int remove_mask = 0; 645 int remove_mask = 0;
623 for (const int data_type : data_types_vector) { 646 for (const int data_type : data_types_vector) {
624 switch (static_cast<browsing_data::BrowsingDataType>(data_type)) { 647 switch (static_cast<browsing_data::BrowsingDataType>(data_type)) {
625 case browsing_data::HISTORY: 648 case browsing_data::BrowsingDataType::HISTORY:
626 remove_mask |= BrowsingDataRemover::REMOVE_HISTORY; 649 remove_mask |= BrowsingDataRemover::REMOVE_HISTORY;
627 break; 650 break;
628 case browsing_data::CACHE: 651 case browsing_data::BrowsingDataType::CACHE:
629 remove_mask |= BrowsingDataRemover::REMOVE_CACHE; 652 remove_mask |= BrowsingDataRemover::REMOVE_CACHE;
630 break; 653 break;
631 case browsing_data::COOKIES: 654 case browsing_data::BrowsingDataType::COOKIES:
632 remove_mask |= BrowsingDataRemover::REMOVE_COOKIES; 655 remove_mask |= BrowsingDataRemover::REMOVE_COOKIES;
633 remove_mask |= BrowsingDataRemover::REMOVE_SITE_DATA; 656 remove_mask |= BrowsingDataRemover::REMOVE_SITE_DATA;
634 break; 657 break;
635 case browsing_data::PASSWORDS: 658 case browsing_data::BrowsingDataType::PASSWORDS:
636 remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS; 659 remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS;
637 break; 660 break;
638 case browsing_data::FORM_DATA: 661 case browsing_data::BrowsingDataType::FORM_DATA:
639 remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA; 662 remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA;
640 break; 663 break;
641 case browsing_data::BOOKMARKS: 664 case browsing_data::BrowsingDataType::BOOKMARKS:
642 // Bookmarks are deleted separately on the Java side. 665 // Bookmarks are deleted separately on the Java side.
643 NOTREACHED(); 666 NOTREACHED();
644 break; 667 break;
645 case browsing_data::NUM_TYPES: 668 case browsing_data::BrowsingDataType::NUM_TYPES:
646 NOTREACHED(); 669 NOTREACHED();
647 } 670 }
648 } 671 }
649 std::vector<std::string> excluding_domains; 672 std::vector<std::string> excluding_domains;
650 std::vector<int32_t> excluding_domain_reasons; 673 std::vector<int32_t> excluding_domain_reasons;
651 std::vector<std::string> ignoring_domains; 674 std::vector<std::string> ignoring_domains;
652 std::vector<int32_t> ignoring_domain_reasons; 675 std::vector<int32_t> ignoring_domain_reasons;
653 base::android::AppendJavaStringArrayToStringVector( 676 base::android::AppendJavaStringArrayToStringVector(
654 env, jexcluding_domains.obj(), &excluding_domains); 677 env, jexcluding_domains.obj(), &excluding_domains);
655 base::android::JavaIntArrayToIntVector(env, jexcluding_domain_reasons.obj(), 678 base::android::JavaIntArrayToIntVector(env, jexcluding_domain_reasons.obj(),
(...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after
1233 .obj(), 1256 .obj(),
1234 out); 1257 out);
1235 } 1258 }
1236 1259
1237 static void SetSupervisedUserId(JNIEnv* env, 1260 static void SetSupervisedUserId(JNIEnv* env,
1238 const JavaParamRef<jobject>& obj, 1261 const JavaParamRef<jobject>& obj,
1239 const JavaParamRef<jstring>& pref) { 1262 const JavaParamRef<jstring>& pref) {
1240 GetPrefService()->SetString(prefs::kSupervisedUserId, 1263 GetPrefService()->SetString(prefs::kSupervisedUserId,
1241 ConvertJavaStringToUTF8(env, pref)); 1264 ConvertJavaStringToUTF8(env, pref));
1242 } 1265 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698