| OLD | NEW |
| 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 11 matching lines...) Expand all Loading... |
| 22 #include "base/files/file_util.h" | 22 #include "base/files/file_util.h" |
| 23 #include "base/metrics/histogram_macros.h" | 23 #include "base/metrics/histogram_macros.h" |
| 24 #include "base/scoped_observer.h" | 24 #include "base/scoped_observer.h" |
| 25 #include "base/strings/string_split.h" | 25 #include "base/strings/string_split.h" |
| 26 #include "base/strings/string_util.h" | 26 #include "base/strings/string_util.h" |
| 27 #include "base/values.h" | 27 #include "base/values.h" |
| 28 #include "chrome/browser/browser_process.h" | 28 #include "chrome/browser/browser_process.h" |
| 29 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 29 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
| 30 #include "chrome/browser/browsing_data/browsing_data_remover.h" | 30 #include "chrome/browser/browsing_data/browsing_data_remover.h" |
| 31 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" | 31 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" |
| 32 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" |
| 32 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" | 33 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
| 33 #include "chrome/browser/engagement/important_sites_util.h" | 34 #include "chrome/browser/engagement/important_sites_util.h" |
| 34 #include "chrome/browser/history/web_history_service_factory.h" | 35 #include "chrome/browser/history/web_history_service_factory.h" |
| 35 #include "chrome/browser/net/prediction_options.h" | 36 #include "chrome/browser/net/prediction_options.h" |
| 36 #include "chrome/browser/prefs/incognito_mode_prefs.h" | 37 #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| 37 #include "chrome/browser/profiles/profile_manager.h" | 38 #include "chrome/browser/profiles/profile_manager.h" |
| 38 #include "chrome/browser/sync/profile_sync_service_factory.h" | 39 #include "chrome/browser/sync/profile_sync_service_factory.h" |
| 39 #include "chrome/browser/translate/chrome_translate_client.h" | 40 #include "chrome/browser/translate/chrome_translate_client.h" |
| 40 #include "chrome/browser/ui/android/android_about_app_info.h" | 41 #include "chrome/browser/ui/android/android_about_app_info.h" |
| 41 #include "chrome/common/channel_info.h" | 42 #include "chrome/common/channel_info.h" |
| (...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 639 BrowsingDataRemover* browsing_data_remover = | 640 BrowsingDataRemover* browsing_data_remover = |
| 640 BrowsingDataRemoverFactory::GetForBrowserContext(GetOriginalProfile()); | 641 BrowsingDataRemoverFactory::GetForBrowserContext(GetOriginalProfile()); |
| 641 | 642 |
| 642 std::vector<int> data_types_vector; | 643 std::vector<int> data_types_vector; |
| 643 base::android::JavaIntArrayToIntVector(env, data_types, &data_types_vector); | 644 base::android::JavaIntArrayToIntVector(env, data_types, &data_types_vector); |
| 644 | 645 |
| 645 int remove_mask = 0; | 646 int remove_mask = 0; |
| 646 for (const int data_type : data_types_vector) { | 647 for (const int data_type : data_types_vector) { |
| 647 switch (static_cast<browsing_data::BrowsingDataType>(data_type)) { | 648 switch (static_cast<browsing_data::BrowsingDataType>(data_type)) { |
| 648 case browsing_data::BrowsingDataType::HISTORY: | 649 case browsing_data::BrowsingDataType::HISTORY: |
| 649 remove_mask |= BrowsingDataRemover::REMOVE_HISTORY; | 650 remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY; |
| 650 break; | 651 break; |
| 651 case browsing_data::BrowsingDataType::CACHE: | 652 case browsing_data::BrowsingDataType::CACHE: |
| 652 remove_mask |= BrowsingDataRemover::REMOVE_CACHE; | 653 remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CACHE; |
| 653 break; | 654 break; |
| 654 case browsing_data::BrowsingDataType::COOKIES: | 655 case browsing_data::BrowsingDataType::COOKIES: |
| 655 remove_mask |= BrowsingDataRemover::REMOVE_COOKIES; | 656 remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_COOKIES; |
| 656 remove_mask |= BrowsingDataRemover::REMOVE_SITE_DATA; | 657 remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA; |
| 657 break; | 658 break; |
| 658 case browsing_data::BrowsingDataType::PASSWORDS: | 659 case browsing_data::BrowsingDataType::PASSWORDS: |
| 659 remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS; | 660 remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS; |
| 660 break; | 661 break; |
| 661 case browsing_data::BrowsingDataType::FORM_DATA: | 662 case browsing_data::BrowsingDataType::FORM_DATA: |
| 662 remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA; | 663 remove_mask |= ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA; |
| 663 break; | 664 break; |
| 664 case browsing_data::BrowsingDataType::BOOKMARKS: | 665 case browsing_data::BrowsingDataType::BOOKMARKS: |
| 665 // Bookmarks are deleted separately on the Java side. | 666 // Bookmarks are deleted separately on the Java side. |
| 666 NOTREACHED(); | 667 NOTREACHED(); |
| 667 break; | 668 break; |
| 668 case browsing_data::BrowsingDataType::NUM_TYPES: | 669 case browsing_data::BrowsingDataType::NUM_TYPES: |
| 669 NOTREACHED(); | 670 NOTREACHED(); |
| 670 } | 671 } |
| 671 } | 672 } |
| 672 std::vector<std::string> excluding_domains; | 673 std::vector<std::string> excluding_domains; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 689 } | 690 } |
| 690 | 691 |
| 691 if (!excluding_domains.empty() || !ignoring_domains.empty()) { | 692 if (!excluding_domains.empty() || !ignoring_domains.empty()) { |
| 692 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( | 693 ImportantSitesUtil::RecordBlacklistedAndIgnoredImportantSites( |
| 693 GetOriginalProfile(), excluding_domains, excluding_domain_reasons, | 694 GetOriginalProfile(), excluding_domains, excluding_domain_reasons, |
| 694 ignoring_domains, ignoring_domain_reasons); | 695 ignoring_domains, ignoring_domain_reasons); |
| 695 } | 696 } |
| 696 | 697 |
| 697 // Delete the types protected by Important Sites with a filter, | 698 // Delete the types protected by Important Sites with a filter, |
| 698 // and the rest completely. | 699 // and the rest completely. |
| 699 int filterable_mask = | 700 int filterable_mask = remove_mask & |
| 700 remove_mask & BrowsingDataRemover::IMPORTANT_SITES_DATATYPES; | 701 ChromeBrowsingDataRemoverDelegate::IMPORTANT_SITES_DATA_TYPES; |
| 701 int nonfilterable_mask = remove_mask & | 702 int nonfilterable_mask = remove_mask & |
| 702 ~BrowsingDataRemover::IMPORTANT_SITES_DATATYPES; | 703 ~ChromeBrowsingDataRemoverDelegate::IMPORTANT_SITES_DATA_TYPES; |
| 703 | 704 |
| 704 // ClearBrowsingDataObserver deletes itself when |browsing_data_remover| is | 705 // ClearBrowsingDataObserver deletes itself when |browsing_data_remover| is |
| 705 // done with both removal tasks. | 706 // done with both removal tasks. |
| 706 ClearBrowsingDataObserver* observer = new ClearBrowsingDataObserver( | 707 ClearBrowsingDataObserver* observer = new ClearBrowsingDataObserver( |
| 707 env, obj, browsing_data_remover, 2 /* tasks_count */); | 708 env, obj, browsing_data_remover, 2 /* tasks_count */); |
| 708 | 709 |
| 709 browsing_data::TimePeriod period = | 710 browsing_data::TimePeriod period = |
| 710 static_cast<browsing_data::TimePeriod>(time_period); | 711 static_cast<browsing_data::TimePeriod>(time_period); |
| 711 browsing_data::RecordDeletionForPeriod(period); | 712 browsing_data::RecordDeletionForPeriod(period); |
| 712 | 713 |
| 713 if (filterable_mask) { | 714 if (filterable_mask) { |
| 714 browsing_data_remover->RemoveWithFilterAndReply( | 715 browsing_data_remover->RemoveWithFilterAndReply( |
| 715 browsing_data::CalculateBeginDeleteTime(period), | 716 browsing_data::CalculateBeginDeleteTime(period), |
| 716 browsing_data::CalculateEndDeleteTime(period), | 717 browsing_data::CalculateEndDeleteTime(period), |
| 717 filterable_mask, BrowsingDataHelper::UNPROTECTED_WEB, | 718 filterable_mask, |
| 719 ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 718 std::move(filter_builder), observer); | 720 std::move(filter_builder), observer); |
| 719 } else { | 721 } else { |
| 720 // Make sure |observer| doesn't wait for the filtered task. | 722 // Make sure |observer| doesn't wait for the filtered task. |
| 721 observer->OnBrowsingDataRemoverDone(); | 723 observer->OnBrowsingDataRemoverDone(); |
| 722 } | 724 } |
| 723 | 725 |
| 724 if (nonfilterable_mask) { | 726 if (nonfilterable_mask) { |
| 725 browsing_data_remover->RemoveAndReply( | 727 browsing_data_remover->RemoveAndReply( |
| 726 browsing_data::CalculateBeginDeleteTime(period), | 728 browsing_data::CalculateBeginDeleteTime(period), |
| 727 browsing_data::CalculateEndDeleteTime(period), | 729 browsing_data::CalculateEndDeleteTime(period), |
| 728 nonfilterable_mask, BrowsingDataHelper::UNPROTECTED_WEB, observer); | 730 nonfilterable_mask, |
| 731 ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_UNPROTECTED_WEB, |
| 732 observer); |
| 729 } else { | 733 } else { |
| 730 // Make sure |observer| doesn't wait for the non-filtered task. | 734 // Make sure |observer| doesn't wait for the non-filtered task. |
| 731 observer->OnBrowsingDataRemoverDone(); | 735 observer->OnBrowsingDataRemoverDone(); |
| 732 } | 736 } |
| 733 } | 737 } |
| 734 | 738 |
| 735 static jboolean CanDeleteBrowsingHistory(JNIEnv* env, | 739 static jboolean CanDeleteBrowsingHistory(JNIEnv* env, |
| 736 const JavaParamRef<jobject>& obj) { | 740 const JavaParamRef<jobject>& obj) { |
| 737 return GetPrefService()->GetBoolean(prefs::kAllowDeletingBrowserHistory); | 741 return GetPrefService()->GetBoolean(prefs::kAllowDeletingBrowserHistory); |
| 738 } | 742 } |
| (...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1256 .obj(), | 1260 .obj(), |
| 1257 out); | 1261 out); |
| 1258 } | 1262 } |
| 1259 | 1263 |
| 1260 static void SetSupervisedUserId(JNIEnv* env, | 1264 static void SetSupervisedUserId(JNIEnv* env, |
| 1261 const JavaParamRef<jobject>& obj, | 1265 const JavaParamRef<jobject>& obj, |
| 1262 const JavaParamRef<jstring>& pref) { | 1266 const JavaParamRef<jstring>& pref) { |
| 1263 GetPrefService()->SetString(prefs::kSupervisedUserId, | 1267 GetPrefService()->SetString(prefs::kSupervisedUserId, |
| 1264 ConvertJavaStringToUTF8(env, pref)); | 1268 ConvertJavaStringToUTF8(env, pref)); |
| 1265 } | 1269 } |
| OLD | NEW |