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

Unified Diff: chrome/browser/android/preferences/pref_service_bridge.cc

Issue 1757163002: [ImportantSites] JNI bindings for CBD filtering and Important Sites. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
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 65eff4b91db7f4b087e349cb6f8a67b108c73cdf..96b1d8d562b53260e154a455fbfdfe79214552ad 100644
--- a/chrome/browser/android/preferences/pref_service_bridge.cc
+++ b/chrome/browser/android/preferences/pref_service_bridge.cc
@@ -20,11 +20,14 @@
#include "base/scoped_observer.h"
#include "base/strings/string_util.h"
#include "base/values.h"
+#include "chrome/browser/android/preferences/important_sites_util.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browsing_data/browsing_data_counter_utils.h"
+#include "chrome/browser/browsing_data/browsing_data_filter_builder.h"
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
+#include "chrome/browser/browsing_data/registrable_domain_filter_builder.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/history/web_history_service_factory.h"
#include "chrome/browser/net/prediction_options.h"
@@ -63,6 +66,7 @@ using base::android::ScopedJavaGlobalRef;
using content::BrowserThread;
namespace {
+const size_t kMaxImportantSites = 5;
Profile* GetOriginalProfile() {
return ProfileManager::GetActiveUserProfile()->GetOriginalProfile();
@@ -558,10 +562,12 @@ static void SetBrowsingDataDeletionTimePeriod(
GetPrefService()->SetInteger(prefs::kDeleteTimePeriod, time_period);
}
-static void ClearBrowsingData(JNIEnv* env,
- const JavaParamRef<jobject>& obj,
- const JavaParamRef<jintArray>& data_types,
- jint time_period) {
+static void ClearBrowsingData(
+ JNIEnv* env,
+ const JavaParamRef<jobject>& obj,
+ const JavaParamRef<jintArray>& data_types,
+ jint time_period,
+ const JavaParamRef<jobjectArray>& excluding_domains) {
BrowsingDataRemover* browsing_data_remover =
BrowsingDataRemoverFactory::GetForBrowserContext(GetOriginalProfile());
// ClearBrowsingDataObserver deletes itself when |browsing_data_remover| is
@@ -598,11 +604,19 @@ static void ClearBrowsingData(JNIEnv* env,
NOTREACHED();
}
}
+ std::vector<std::string> cpp_excluding_domains;
+ base::android::AppendJavaStringArrayToStringVector(
+ env, excluding_domains.obj(), &cpp_excluding_domains);
+ RegistrableDomainFilterBuilder filter_builder(
+ BrowsingDataFilterBuilder::BLACKLIST);
+ for (const std::string& domain : cpp_excluding_domains) {
+ filter_builder.AddRegisterableDomain(domain);
+ }
- browsing_data_remover->Remove(
+ browsing_data_remover->RemoveWithFilter(
BrowsingDataRemover::Period(
static_cast<BrowsingDataRemover::TimePeriod>(time_period)),
- remove_mask, BrowsingDataHelper::UNPROTECTED_WEB);
+ remove_mask, BrowsingDataHelper::UNPROTECTED_WEB, filter_builder);
}
static jboolean CanDeleteBrowsingHistory(JNIEnv* env,
@@ -610,6 +624,16 @@ static jboolean CanDeleteBrowsingHistory(JNIEnv* env,
return GetPrefService()->GetBoolean(prefs::kAllowDeletingBrowserHistory);
}
+static void FetchImportantSites(JNIEnv* env, const JavaParamRef<jobject>& obj) {
+ std::vector<std::string> important_domains =
+ ImportantSitesUtil::GetImportantRegisterableDomains(GetOriginalProfile(),
+ kMaxImportantSites);
+ ScopedJavaLocalRef<jobjectArray> string_array =
+ base::android::ToJavaArrayOfStrings(env, important_domains);
+ Java_PrefServiceBridge_importantSitesFetched(env, obj.obj(),
+ string_array.obj());
+}
+
static void ShowNoticeAboutOtherFormsOfBrowsingHistory(
ScopedJavaGlobalRef<jobject>* listener,
bool show) {

Powered by Google App Engine
This is Rietveld 408576698