Chromium Code Reviews| 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 c18908ba2218e429fcbe42b2674980dfde12c632..01f7fd7fbf7c18647ebeb8fb848a37e435038ae7 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::ClearBrowsingDataTab ToTabEnum(jint clear_browsing_data_tab) { |
| + DCHECK_GE(clear_browsing_data_tab, 0); |
| + DCHECK_LT(clear_browsing_data_tab, |
| + static_cast<int>(browsing_data::ClearBrowsingDataTab::NUM_TYPES)); |
| + |
| + return static_cast<browsing_data::ClearBrowsingDataTab>( |
| + clear_browsing_data_tab); |
| +} |
| + |
| } // namespace |
| // ---------------------------------------------------------------------------- |
| @@ -539,9 +548,11 @@ class ClearBrowsingDataObserver : public BrowsingDataRemover::Observer { |
| static jboolean GetBrowsingDataDeletionPreference( |
| JNIEnv* env, |
| const JavaParamRef<jobject>& obj, |
| - jint data_type) { |
| + jint data_type, |
| + jint clear_browsing_data_tab) { |
| DCHECK_GE(data_type, 0); |
| - DCHECK_LT(data_type, browsing_data::NUM_TYPES); |
| + DCHECK_LT(data_type, |
| + static_cast<int>(browsing_data::BrowsingDataType::NUM_TYPES)); |
| // If there is no corresponding preference for this |data_type|, pretend |
| // that it's set to false. |
| @@ -549,43 +560,50 @@ 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), |
| + ToTabEnum(clear_browsing_data_tab), &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 clear_browsing_data_tab, |
| + jboolean value) { |
| DCHECK_GE(data_type, 0); |
| - DCHECK_LT(data_type, browsing_data::NUM_TYPES); |
| + DCHECK_LT(data_type, |
| + static_cast<int>(browsing_data::BrowsingDataType::NUM_TYPES)); |
| std::string pref; |
| if (!browsing_data::GetDeletionPreferenceFromDataType( |
| - static_cast<browsing_data::BrowsingDataType>(data_type), &pref)) { |
| + static_cast<browsing_data::BrowsingDataType>(data_type), |
| + ToTabEnum(clear_browsing_data_tab), &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 clear_browsing_data_tab) { |
| + return GetPrefService()->GetInteger( |
| + browsing_data::GetTimePeriodPreferenceName( |
| + ToTabEnum(clear_browsing_data_tab))); |
| } |
| -static void SetBrowsingDataDeletionTimePeriod( |
| - JNIEnv* env, |
| - const JavaParamRef<jobject>& obj, |
| - jint time_period) { |
| +static void SetBrowsingDataDeletionTimePeriod(JNIEnv* env, |
| + const JavaParamRef<jobject>& obj, |
| + jint clear_browsing_data_tab, |
| + jint time_period) { |
| DCHECK_GE(time_period, 0); |
| - DCHECK_LE(time_period, browsing_data::TIME_PERIOD_LAST); |
| - GetPrefService()->SetInteger(browsing_data::prefs::kDeleteTimePeriod, |
| + DCHECK_LE(time_period, |
| + static_cast<int>(browsing_data::TimePeriod::TIME_PERIOD_LAST)); |
| + GetPrefService()->SetInteger(browsing_data::GetTimePeriodPreferenceName( |
| + ToTabEnum(clear_browsing_data_tab)), |
| time_period); |
| } |
| @@ -604,6 +622,11 @@ static void SetLastClearBrowsingDataTab(JNIEnv* env, |
| tab_index); |
| } |
| +static void MigrateBrowsingDataPreferences(JNIEnv* env, |
| + const JavaParamRef<jobject>& obj) { |
| + 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
|
| +} |
| + |
| static void ClearBrowsingData( |
| JNIEnv* env, |
| const JavaParamRef<jobject>& obj, |
| @@ -622,27 +645,27 @@ static void ClearBrowsingData( |
| int remove_mask = 0; |
| for (const int data_type : data_types_vector) { |
| switch (static_cast<browsing_data::BrowsingDataType>(data_type)) { |
| - case browsing_data::HISTORY: |
| + case browsing_data::BrowsingDataType::HISTORY: |
| remove_mask |= BrowsingDataRemover::REMOVE_HISTORY; |
| break; |
| - case browsing_data::CACHE: |
| + case browsing_data::BrowsingDataType::CACHE: |
| remove_mask |= BrowsingDataRemover::REMOVE_CACHE; |
| break; |
| - case browsing_data::COOKIES: |
| + case browsing_data::BrowsingDataType::COOKIES: |
| remove_mask |= BrowsingDataRemover::REMOVE_COOKIES; |
| remove_mask |= BrowsingDataRemover::REMOVE_SITE_DATA; |
| break; |
| - case browsing_data::PASSWORDS: |
| + case browsing_data::BrowsingDataType::PASSWORDS: |
| remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS; |
| break; |
| - case browsing_data::FORM_DATA: |
| + case browsing_data::BrowsingDataType::FORM_DATA: |
| remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA; |
| break; |
| - case browsing_data::BOOKMARKS: |
| + case browsing_data::BrowsingDataType::BOOKMARKS: |
| // Bookmarks are deleted separately on the Java side. |
| NOTREACHED(); |
| break; |
| - case browsing_data::NUM_TYPES: |
| + case browsing_data::BrowsingDataType::NUM_TYPES: |
| NOTREACHED(); |
| } |
| } |