Index: chrome/browser/android/preferences/pref_service_bridge.cc |
diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/browser/android/preferences/pref_service_bridge.cc |
index 1648ab1187c5a89c07fb8b2e265b98157d8e6499..63ed56913d8835df02877a8fc1be02c7d9098bd4 100644 |
--- a/chrome/browser/android/preferences/pref_service_bridge.cc |
+++ b/chrome/browser/android/preferences/pref_service_bridge.cc |
@@ -132,6 +132,15 @@ PrefService* GetPrefService() { |
return GetOriginalProfile()->GetPrefs(); |
} |
+browsing_data::ClearBrowsingDataPreferenceType ToPrefType(jint pref_type) { |
+ DCHECK_GE(pref_type, 0); |
+ DCHECK_LT(pref_type, |
+ static_cast<int>( |
+ browsing_data::ClearBrowsingDataPreferenceType::NUM_TYPES)); |
+ |
+ return static_cast<browsing_data::ClearBrowsingDataPreferenceType>(pref_type); |
+} |
+ |
} // namespace |
// ---------------------------------------------------------------------------- |
@@ -539,7 +548,8 @@ class ClearBrowsingDataObserver : public BrowsingDataRemover::Observer { |
static jboolean GetBrowsingDataDeletionPreference( |
JNIEnv* env, |
const JavaParamRef<jobject>& obj, |
- jint data_type) { |
+ jint data_type, |
+ jint pref_type) { |
DCHECK_GE(data_type, 0); |
DCHECK_LT(data_type, browsing_data::NUM_TYPES); |
@@ -549,44 +559,48 @@ static jboolean GetBrowsingDataDeletionPreference( |
// data types for consistency. |
std::string pref; |
if (!browsing_data::GetDeletionPreferenceFromDataType( |
- static_cast<browsing_data::BrowsingDataType>(data_type), &pref)) { |
+ static_cast<browsing_data::BrowsingDataType>(data_type), |
+ ToPrefType(pref_type), &pref)) { |
return false; |
} |
return GetOriginalProfile()->GetPrefs()->GetBoolean(pref); |
} |
-static void SetBrowsingDataDeletionPreference( |
- JNIEnv* env, |
- const JavaParamRef<jobject>& obj, |
- jint data_type, |
- jboolean value) { |
+static void SetBrowsingDataDeletionPreference(JNIEnv* env, |
+ const JavaParamRef<jobject>& obj, |
+ jint data_type, |
+ jint pref_type, |
+ jboolean value) { |
DCHECK_GE(data_type, 0); |
DCHECK_LT(data_type, browsing_data::NUM_TYPES); |
std::string pref; |
if (!browsing_data::GetDeletionPreferenceFromDataType( |
- static_cast<browsing_data::BrowsingDataType>(data_type), &pref)) { |
+ static_cast<browsing_data::BrowsingDataType>(data_type), |
+ ToPrefType(pref_type), &pref)) { |
return; |
} |
GetOriginalProfile()->GetPrefs()->SetBoolean(pref, value); |
} |
-static jint GetBrowsingDataDeletionTimePeriod( |
- JNIEnv* env, |
- const JavaParamRef<jobject>& obj) { |
- return GetPrefService()->GetInteger(browsing_data::prefs::kDeleteTimePeriod); |
+static jint GetBrowsingDataDeletionTimePeriod(JNIEnv* env, |
+ const JavaParamRef<jobject>& obj, |
+ jint pref_type) { |
+ return GetPrefService()->GetInteger( |
+ browsing_data::GetTimePeriodPreferenceName(ToPrefType(pref_type))); |
} |
-static void SetBrowsingDataDeletionTimePeriod( |
- JNIEnv* env, |
- const JavaParamRef<jobject>& obj, |
- jint time_period) { |
+static void SetBrowsingDataDeletionTimePeriod(JNIEnv* env, |
+ const JavaParamRef<jobject>& obj, |
+ jint pref_type, |
+ jint time_period) { |
DCHECK_GE(time_period, 0); |
DCHECK_LE(time_period, browsing_data::TIME_PERIOD_LAST); |
- GetPrefService()->SetInteger(browsing_data::prefs::kDeleteTimePeriod, |
- time_period); |
+ GetPrefService()->SetInteger( |
+ browsing_data::GetTimePeriodPreferenceName(ToPrefType(pref_type)), |
+ time_period); |
} |
static jint GetLastClearBrowsingDataTab(JNIEnv* env, |
@@ -604,6 +618,11 @@ static void SetLastClearBrowsingDataTab(JNIEnv* env, |
tab_index); |
} |
+static void MigrateBrowsingDataPreferences(JNIEnv* env, |
+ const JavaParamRef<jobject>& obj) { |
+ browsing_data::MigratePreferencesToBasic(GetOriginalProfile()->GetPrefs()); |
+} |
+ |
static void ClearBrowsingData( |
JNIEnv* env, |
const JavaParamRef<jobject>& obj, |