| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/browsing_data/browsing_data_bridge.h" | 5 #include "chrome/browser/android/browsing_data/browsing_data_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 25 matching lines...) Expand all Loading... |
| 36 | 36 |
| 37 using base::android::AttachCurrentThread; | 37 using base::android::AttachCurrentThread; |
| 38 using base::android::JavaParamRef; | 38 using base::android::JavaParamRef; |
| 39 using base::android::JavaRef; | 39 using base::android::JavaRef; |
| 40 using base::android::ScopedJavaLocalRef; | 40 using base::android::ScopedJavaLocalRef; |
| 41 using base::android::ScopedJavaGlobalRef; | 41 using base::android::ScopedJavaGlobalRef; |
| 42 using content::BrowsingDataRemover; | 42 using content::BrowsingDataRemover; |
| 43 | 43 |
| 44 namespace { | 44 namespace { |
| 45 | 45 |
| 46 const size_t kMaxImportantSites = 5; | |
| 47 | |
| 48 Profile* GetOriginalProfile() { | 46 Profile* GetOriginalProfile() { |
| 49 return ProfileManager::GetActiveUserProfile()->GetOriginalProfile(); | 47 return ProfileManager::GetActiveUserProfile()->GetOriginalProfile(); |
| 50 } | 48 } |
| 51 | 49 |
| 52 // Merges |task_count| BrowsingDataRemover completion callbacks and redirects | 50 // Merges |task_count| BrowsingDataRemover completion callbacks and redirects |
| 53 // them back into Java. | 51 // them back into Java. |
| 54 class ClearBrowsingDataObserver : public BrowsingDataRemover::Observer { | 52 class ClearBrowsingDataObserver : public BrowsingDataRemover::Observer { |
| 55 public: | 53 public: |
| 56 // |obj| is expected to be the object passed into ClearBrowsingData(); e.g. a | 54 // |obj| is expected to be the object passed into ClearBrowsingData(); e.g. a |
| 57 // ChromePreference. | 55 // ChromePreference. |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 chrome::GetChannel(), | 212 chrome::GetChannel(), |
| 215 base::Bind(&EnableDialogAboutOtherFormsOfBrowsingHistory, | 213 base::Bind(&EnableDialogAboutOtherFormsOfBrowsingHistory, |
| 216 ScopedJavaGlobalRef<jobject>(env, listener))); | 214 ScopedJavaGlobalRef<jobject>(env, listener))); |
| 217 } | 215 } |
| 218 | 216 |
| 219 static void FetchImportantSites(JNIEnv* env, | 217 static void FetchImportantSites(JNIEnv* env, |
| 220 const JavaParamRef<jclass>& clazz, | 218 const JavaParamRef<jclass>& clazz, |
| 221 const JavaParamRef<jobject>& java_callback) { | 219 const JavaParamRef<jobject>& java_callback) { |
| 222 Profile* profile = GetOriginalProfile(); | 220 Profile* profile = GetOriginalProfile(); |
| 223 std::vector<ImportantSitesUtil::ImportantDomainInfo> important_sites = | 221 std::vector<ImportantSitesUtil::ImportantDomainInfo> important_sites = |
| 224 ImportantSitesUtil::GetImportantRegisterableDomains(profile, | 222 ImportantSitesUtil::GetImportantRegisterableDomains( |
| 225 kMaxImportantSites); | 223 profile, ImportantSitesUtil::kMaxImportantSites); |
| 226 bool dialog_disabled = ImportantSitesUtil::IsDialogDisabled(profile); | 224 bool dialog_disabled = ImportantSitesUtil::IsDialogDisabled(profile); |
| 227 | 225 |
| 228 std::vector<std::string> important_domains; | 226 std::vector<std::string> important_domains; |
| 229 std::vector<int32_t> important_domain_reasons; | 227 std::vector<int32_t> important_domain_reasons; |
| 230 std::vector<std::string> important_domain_examples; | 228 std::vector<std::string> important_domain_examples; |
| 231 for (const ImportantSitesUtil::ImportantDomainInfo& info : important_sites) { | 229 for (const ImportantSitesUtil::ImportantDomainInfo& info : important_sites) { |
| 232 important_domains.push_back(info.registerable_domain); | 230 important_domains.push_back(info.registerable_domain); |
| 233 important_domain_reasons.push_back(info.reason_bitfield); | 231 important_domain_reasons.push_back(info.reason_bitfield); |
| 234 important_domain_examples.push_back(info.example_origin.spec()); | 232 important_domain_examples.push_back(info.example_origin.spec()); |
| 235 } | 233 } |
| 236 | 234 |
| 237 ScopedJavaLocalRef<jobjectArray> java_domains = | 235 ScopedJavaLocalRef<jobjectArray> java_domains = |
| 238 base::android::ToJavaArrayOfStrings(env, important_domains); | 236 base::android::ToJavaArrayOfStrings(env, important_domains); |
| 239 ScopedJavaLocalRef<jintArray> java_reasons = | 237 ScopedJavaLocalRef<jintArray> java_reasons = |
| 240 base::android::ToJavaIntArray(env, important_domain_reasons); | 238 base::android::ToJavaIntArray(env, important_domain_reasons); |
| 241 ScopedJavaLocalRef<jobjectArray> java_origins = | 239 ScopedJavaLocalRef<jobjectArray> java_origins = |
| 242 base::android::ToJavaArrayOfStrings(env, important_domain_examples); | 240 base::android::ToJavaArrayOfStrings(env, important_domain_examples); |
| 243 | 241 |
| 244 Java_ImportantSitesCallback_onImportantRegisterableDomainsReady( | 242 Java_ImportantSitesCallback_onImportantRegisterableDomainsReady( |
| 245 env, java_callback.obj(), java_domains.obj(), java_origins.obj(), | 243 env, java_callback.obj(), java_domains.obj(), java_origins.obj(), |
| 246 java_reasons.obj(), dialog_disabled); | 244 java_reasons.obj(), dialog_disabled); |
| 247 } | 245 } |
| 248 | 246 |
| 249 // This value should not change during a sessions, as it's used for UMA metrics. | 247 // This value should not change during a sessions, as it's used for UMA metrics. |
| 250 static jint GetMaxImportantSites(JNIEnv* env, | 248 static jint GetMaxImportantSites(JNIEnv* env, |
| 251 const JavaParamRef<jclass>& clazz) { | 249 const JavaParamRef<jclass>& clazz) { |
| 252 return kMaxImportantSites; | 250 return ImportantSitesUtil::kMaxImportantSites; |
| 253 } | 251 } |
| 254 | 252 |
| 255 static void MarkOriginAsImportantForTesting( | 253 static void MarkOriginAsImportantForTesting( |
| 256 JNIEnv* env, | 254 JNIEnv* env, |
| 257 const JavaParamRef<jclass>& clazz, | 255 const JavaParamRef<jclass>& clazz, |
| 258 const JavaParamRef<jstring>& jorigin) { | 256 const JavaParamRef<jstring>& jorigin) { |
| 259 GURL origin(base::android::ConvertJavaStringToUTF8(jorigin)); | 257 GURL origin(base::android::ConvertJavaStringToUTF8(jorigin)); |
| 260 CHECK(origin.is_valid()); | 258 CHECK(origin.is_valid()); |
| 261 ImportantSitesUtil::MarkOriginAsImportantForTesting(GetOriginalProfile(), | 259 ImportantSitesUtil::MarkOriginAsImportantForTesting(GetOriginalProfile(), |
| 262 origin); | 260 origin); |
| 263 } | 261 } |
| OLD | NEW |