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

Side by Side 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: Added ImportantSitesUtil, cleaned up 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 unified diff | Download patch
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>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/android/build_info.h" 13 #include "base/android/build_info.h"
14 #include "base/android/jni_android.h" 14 #include "base/android/jni_android.h"
15 #include "base/android/jni_array.h" 15 #include "base/android/jni_array.h"
16 #include "base/android/jni_string.h" 16 #include "base/android/jni_string.h"
17 #include "base/android/jni_weak_ref.h" 17 #include "base/android/jni_weak_ref.h"
18 #include "base/files/file_path.h" 18 #include "base/files/file_path.h"
19 #include "base/files/file_util.h" 19 #include "base/files/file_util.h"
20 #include "base/scoped_observer.h" 20 #include "base/scoped_observer.h"
21 #include "base/strings/string_util.h" 21 #include "base/strings/string_util.h"
22 #include "base/values.h" 22 #include "base/values.h"
23 #include "chrome/browser/android/preferences/important_sites_util.h"
23 #include "chrome/browser/browser_process.h" 24 #include "chrome/browser/browser_process.h"
24 #include "chrome/browser/browsing_data/browsing_data_counter_utils.h" 25 #include "chrome/browser/browsing_data/browsing_data_counter_utils.h"
26 #include "chrome/browser/browsing_data/browsing_data_filter_builder.h"
25 #include "chrome/browser/browsing_data/browsing_data_helper.h" 27 #include "chrome/browser/browsing_data/browsing_data_helper.h"
26 #include "chrome/browser/browsing_data/browsing_data_remover.h" 28 #include "chrome/browser/browsing_data/browsing_data_remover.h"
27 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" 29 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
28 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" 30 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
29 #include "chrome/browser/history/web_history_service_factory.h" 31 #include "chrome/browser/history/web_history_service_factory.h"
30 #include "chrome/browser/net/prediction_options.h" 32 #include "chrome/browser/net/prediction_options.h"
31 #include "chrome/browser/prefs/incognito_mode_prefs.h" 33 #include "chrome/browser/prefs/incognito_mode_prefs.h"
32 #include "chrome/browser/profiles/profile_manager.h" 34 #include "chrome/browser/profiles/profile_manager.h"
33 #include "chrome/browser/sync/profile_sync_service_factory.h" 35 #include "chrome/browser/sync/profile_sync_service_factory.h"
34 #include "chrome/browser/translate/chrome_translate_client.h" 36 #include "chrome/browser/translate/chrome_translate_client.h"
(...skipping 21 matching lines...) Expand all
56 58
57 using base::android::AttachCurrentThread; 59 using base::android::AttachCurrentThread;
58 using base::android::CheckException; 60 using base::android::CheckException;
59 using base::android::ConvertJavaStringToUTF8; 61 using base::android::ConvertJavaStringToUTF8;
60 using base::android::ConvertUTF8ToJavaString; 62 using base::android::ConvertUTF8ToJavaString;
61 using base::android::ScopedJavaLocalRef; 63 using base::android::ScopedJavaLocalRef;
62 using base::android::ScopedJavaGlobalRef; 64 using base::android::ScopedJavaGlobalRef;
63 using content::BrowserThread; 65 using content::BrowserThread;
64 66
65 namespace { 67 namespace {
68 const size_t kMaxImportantSites = 5;
66 69
67 Profile* GetOriginalProfile() { 70 Profile* GetOriginalProfile() {
68 return ProfileManager::GetActiveUserProfile()->GetOriginalProfile(); 71 return ProfileManager::GetActiveUserProfile()->GetOriginalProfile();
69 } 72 }
70 73
71 bool GetBooleanForContentSetting(ContentSettingsType type) { 74 bool GetBooleanForContentSetting(ContentSettingsType type) {
72 HostContentSettingsMap* content_settings = 75 HostContentSettingsMap* content_settings =
73 HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()); 76 HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile());
74 switch (content_settings->GetDefaultContentSetting(type, NULL)) { 77 switch (content_settings->GetDefaultContentSetting(type, NULL)) {
75 case CONTENT_SETTING_BLOCK: 78 case CONTENT_SETTING_BLOCK:
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 554
552 static void SetBrowsingDataDeletionTimePeriod( 555 static void SetBrowsingDataDeletionTimePeriod(
553 JNIEnv* env, 556 JNIEnv* env,
554 const JavaParamRef<jobject>& obj, 557 const JavaParamRef<jobject>& obj,
555 jint time_period) { 558 jint time_period) {
556 DCHECK_GE(time_period, 0); 559 DCHECK_GE(time_period, 0);
557 DCHECK_LE(time_period, BrowsingDataRemover::TIME_PERIOD_LAST); 560 DCHECK_LE(time_period, BrowsingDataRemover::TIME_PERIOD_LAST);
558 GetPrefService()->SetInteger(prefs::kDeleteTimePeriod, time_period); 561 GetPrefService()->SetInteger(prefs::kDeleteTimePeriod, time_period);
559 } 562 }
560 563
561 static void ClearBrowsingData(JNIEnv* env, 564 static void ClearBrowsingData(
562 const JavaParamRef<jobject>& obj, 565 JNIEnv* env,
563 const JavaParamRef<jintArray>& data_types, 566 const JavaParamRef<jobject>& obj,
564 jint time_period) { 567 const JavaParamRef<jintArray>& data_types,
568 jint time_period,
569 const JavaParamRef<jobjectArray>& excluding_domains) {
565 BrowsingDataRemover* browsing_data_remover = 570 BrowsingDataRemover* browsing_data_remover =
566 BrowsingDataRemoverFactory::GetForBrowserContext(GetOriginalProfile()); 571 BrowsingDataRemoverFactory::GetForBrowserContext(GetOriginalProfile());
567 // ClearBrowsingDataObserver deletes itself when |browsing_data_remover| is 572 // ClearBrowsingDataObserver deletes itself when |browsing_data_remover| is
568 // done. 573 // done.
569 new ClearBrowsingDataObserver(env, obj, browsing_data_remover); 574 new ClearBrowsingDataObserver(env, obj, browsing_data_remover);
570 575
571 std::vector<int> data_types_vector; 576 std::vector<int> data_types_vector;
572 base::android::JavaIntArrayToIntVector(env, data_types, &data_types_vector); 577 base::android::JavaIntArrayToIntVector(env, data_types, &data_types_vector);
573 578
574 int remove_mask = 0; 579 int remove_mask = 0;
(...skipping 16 matching lines...) Expand all
591 remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA; 596 remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA;
592 break; 597 break;
593 case BOOKMARKS: 598 case BOOKMARKS:
594 // Bookmarks are deleted separately on the Java side. 599 // Bookmarks are deleted separately on the Java side.
595 NOTREACHED(); 600 NOTREACHED();
596 break; 601 break;
597 case NUM_TYPES: 602 case NUM_TYPES:
598 NOTREACHED(); 603 NOTREACHED();
599 } 604 }
600 } 605 }
606 std::vector<std::string> cpp_excluding_domains;
607 base::android::AppendJavaStringArrayToStringVector(
608 env, excluding_domains.obj(), &cpp_excluding_domains);
609 BrowsingDataFilterBuilder filter_builder(
610 BrowsingDataFilterBuilder::BLACKLIST);
611 for (const std::string& domain : cpp_excluding_domains) {
612 filter_builder.AddRegisterableDomain(domain);
613 }
601 614
602 browsing_data_remover->Remove( 615 browsing_data_remover->RemoveWithFilter(
603 BrowsingDataRemover::Period( 616 BrowsingDataRemover::Period(
604 static_cast<BrowsingDataRemover::TimePeriod>(time_period)), 617 static_cast<BrowsingDataRemover::TimePeriod>(time_period)),
605 remove_mask, BrowsingDataHelper::UNPROTECTED_WEB); 618 remove_mask, BrowsingDataHelper::UNPROTECTED_WEB, filter_builder);
606 } 619 }
607 620
608 static jboolean CanDeleteBrowsingHistory(JNIEnv* env, 621 static jboolean CanDeleteBrowsingHistory(JNIEnv* env,
609 const JavaParamRef<jobject>& obj) { 622 const JavaParamRef<jobject>& obj) {
610 return GetPrefService()->GetBoolean(prefs::kAllowDeletingBrowserHistory); 623 return GetPrefService()->GetBoolean(prefs::kAllowDeletingBrowserHistory);
611 } 624 }
612 625
626 static void FetchImportantSites(JNIEnv* env, const JavaParamRef<jobject>& obj) {
627 std::vector<std::string> important_domains =
628 ImportantSitesUtil::GetImportantRegisterableDomains(GetOriginalProfile(),
629 kMaxImportantSites);
630 ScopedJavaLocalRef<jobjectArray> string_array =
631 base::android::ToJavaArrayOfStrings(env, important_domains);
632 Java_PrefServiceBridge_importantSitesFetched(env, obj.obj(),
633 string_array.obj());
634 }
635
613 static void ShowNoticeAboutOtherFormsOfBrowsingHistory( 636 static void ShowNoticeAboutOtherFormsOfBrowsingHistory(
614 ScopedJavaGlobalRef<jobject>* listener, 637 ScopedJavaGlobalRef<jobject>* listener,
615 bool show) { 638 bool show) {
616 JNIEnv* env = AttachCurrentThread(); 639 JNIEnv* env = AttachCurrentThread();
617 if (!show) 640 if (!show)
618 return; 641 return;
619 Java_OtherFormsOfBrowsingHistoryListener_showNoticeAboutOtherFormsOfBrowsingHi story( 642 Java_OtherFormsOfBrowsingHistoryListener_showNoticeAboutOtherFormsOfBrowsingHi story(
620 env, listener->obj()); 643 env, listener->obj());
621 } 644 }
622 645
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after
1065 1088
1066 return ConvertJavaStringToUTF8(android_permission); 1089 return ConvertJavaStringToUTF8(android_permission);
1067 } 1090 }
1068 1091
1069 static void SetSupervisedUserId(JNIEnv* env, 1092 static void SetSupervisedUserId(JNIEnv* env,
1070 const JavaParamRef<jobject>& obj, 1093 const JavaParamRef<jobject>& obj,
1071 const JavaParamRef<jstring>& pref) { 1094 const JavaParamRef<jstring>& pref) {
1072 GetPrefService()->SetString(prefs::kSupervisedUserId, 1095 GetPrefService()->SetString(prefs::kSupervisedUserId,
1073 ConvertJavaStringToUTF8(env, pref)); 1096 ConvertJavaStringToUTF8(env, pref));
1074 } 1097 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698