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/browsing_data/browsing_data_bridge.cc

Issue 2752263003: Count site data size for important sites (Closed)
Patch Set: rebase Created 3 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 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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698