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