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

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

Issue 2175703002: Implement a task scheduler for BrowsingDataRemover (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bdr-race-condition
Patch Set: Formatting. Created 4 years, 4 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
« no previous file with comments | « no previous file | chrome/browser/android/signin/signin_manager_android.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 } 597 }
598 598
599 static void ClearBrowsingData( 599 static void ClearBrowsingData(
600 JNIEnv* env, 600 JNIEnv* env,
601 const JavaParamRef<jobject>& obj, 601 const JavaParamRef<jobject>& obj,
602 const JavaParamRef<jintArray>& data_types, 602 const JavaParamRef<jintArray>& data_types,
603 jint time_period, 603 jint time_period,
604 const JavaParamRef<jobjectArray>& jexcluding_domains) { 604 const JavaParamRef<jobjectArray>& jexcluding_domains) {
605 BrowsingDataRemover* browsing_data_remover = 605 BrowsingDataRemover* browsing_data_remover =
606 BrowsingDataRemoverFactory::GetForBrowserContext(GetOriginalProfile()); 606 BrowsingDataRemoverFactory::GetForBrowserContext(GetOriginalProfile());
607 // ClearBrowsingDataObserver deletes itself when |browsing_data_remover| is
608 // done.
609 new ClearBrowsingDataObserver(env, obj, browsing_data_remover);
610 607
611 std::vector<int> data_types_vector; 608 std::vector<int> data_types_vector;
612 base::android::JavaIntArrayToIntVector(env, data_types, &data_types_vector); 609 base::android::JavaIntArrayToIntVector(env, data_types, &data_types_vector);
613 610
614 int remove_mask = 0; 611 int remove_mask = 0;
615 for (const int data_type : data_types_vector) { 612 for (const int data_type : data_types_vector) {
616 switch (static_cast<browsing_data::BrowsingDataType>(data_type)) { 613 switch (static_cast<browsing_data::BrowsingDataType>(data_type)) {
617 case browsing_data::HISTORY: 614 case browsing_data::HISTORY:
618 remove_mask |= BrowsingDataRemover::REMOVE_HISTORY; 615 remove_mask |= BrowsingDataRemover::REMOVE_HISTORY;
619 break; 616 break;
(...skipping 14 matching lines...) Expand all
634 // Bookmarks are deleted separately on the Java side. 631 // Bookmarks are deleted separately on the Java side.
635 NOTREACHED(); 632 NOTREACHED();
636 break; 633 break;
637 case browsing_data::NUM_TYPES: 634 case browsing_data::NUM_TYPES:
638 NOTREACHED(); 635 NOTREACHED();
639 } 636 }
640 } 637 }
641 std::vector<std::string> excluding_domains; 638 std::vector<std::string> excluding_domains;
642 base::android::AppendJavaStringArrayToStringVector( 639 base::android::AppendJavaStringArrayToStringVector(
643 env, jexcluding_domains.obj(), &excluding_domains); 640 env, jexcluding_domains.obj(), &excluding_domains);
644 RegistrableDomainFilterBuilder filter_builder( 641 std::unique_ptr<RegistrableDomainFilterBuilder> filter_builder(
645 BrowsingDataFilterBuilder::BLACKLIST); 642 new RegistrableDomainFilterBuilder(BrowsingDataFilterBuilder::BLACKLIST));
646 for (const std::string& domain : excluding_domains) { 643 for (const std::string& domain : excluding_domains) {
647 filter_builder.AddRegisterableDomain(domain); 644 filter_builder->AddRegisterableDomain(domain);
648 } 645 }
649 646
650 if (!excluding_domains.empty()) { 647 if (!excluding_domains.empty()) {
651 ImportantSitesUtil::RecordMetricsForBlacklistedSites(GetOriginalProfile(), 648 ImportantSitesUtil::RecordMetricsForBlacklistedSites(GetOriginalProfile(),
652 excluding_domains); 649 excluding_domains);
653 } 650 }
654 651
655 browsing_data_remover->RemoveWithFilter( 652 // ClearBrowsingDataObserver deletes itself when |browsing_data_remover| is
653 // done.
654 ClearBrowsingDataObserver* observer =
655 new ClearBrowsingDataObserver(env, obj, browsing_data_remover);
656
657 browsing_data_remover->RemoveWithFilterAndReply(
656 BrowsingDataRemover::Period( 658 BrowsingDataRemover::Period(
657 static_cast<browsing_data::TimePeriod>(time_period)), 659 static_cast<browsing_data::TimePeriod>(time_period)),
658 remove_mask, BrowsingDataHelper::UNPROTECTED_WEB, filter_builder); 660 remove_mask, BrowsingDataHelper::UNPROTECTED_WEB,
661 std::move(filter_builder), observer);
659 } 662 }
660 663
661 static jboolean CanDeleteBrowsingHistory(JNIEnv* env, 664 static jboolean CanDeleteBrowsingHistory(JNIEnv* env,
662 const JavaParamRef<jobject>& obj) { 665 const JavaParamRef<jobject>& obj) {
663 return GetPrefService()->GetBoolean(prefs::kAllowDeletingBrowserHistory); 666 return GetPrefService()->GetBoolean(prefs::kAllowDeletingBrowserHistory);
664 } 667 }
665 668
666 static void FetchImportantSites(JNIEnv* env, 669 static void FetchImportantSites(JNIEnv* env,
667 const JavaParamRef<jclass>& clazz, 670 const JavaParamRef<jclass>& clazz,
668 const JavaParamRef<jobject>& java_callback) { 671 const JavaParamRef<jobject>& java_callback) {
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after
1163 1166
1164 return ConvertJavaStringToUTF8(android_permission); 1167 return ConvertJavaStringToUTF8(android_permission);
1165 } 1168 }
1166 1169
1167 static void SetSupervisedUserId(JNIEnv* env, 1170 static void SetSupervisedUserId(JNIEnv* env,
1168 const JavaParamRef<jobject>& obj, 1171 const JavaParamRef<jobject>& obj,
1169 const JavaParamRef<jstring>& pref) { 1172 const JavaParamRef<jstring>& pref) {
1170 GetPrefService()->SetString(prefs::kSupervisedUserId, 1173 GetPrefService()->SetString(prefs::kSupervisedUserId,
1171 ConvertJavaStringToUTF8(env, pref)); 1174 ConvertJavaStringToUTF8(env, pref));
1172 } 1175 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/android/signin/signin_manager_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698