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

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 and remove deb file Created 3 years, 7 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 25 matching lines...) Expand all
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698