Chromium Code Reviews| Index: chrome/browser/android/preferences/website_preference_bridge.cc |
| diff --git a/chrome/browser/android/preferences/website_preference_bridge.cc b/chrome/browser/android/preferences/website_preference_bridge.cc |
| index d36fb8c89b1205cfffe4d46870208439a0b521d1..5f4afc0fd6c63910fd4770e96aca3154d9399fd6 100644 |
| --- a/chrome/browser/android/preferences/website_preference_bridge.cc |
| +++ b/chrome/browser/android/preferences/website_preference_bridge.cc |
| @@ -645,10 +645,11 @@ class StorageInfoClearedCallback { |
| class LocalStorageInfoReadyCallback { |
| public: |
| - explicit LocalStorageInfoReadyCallback(const JavaRef<jobject>& java_callback) |
| + LocalStorageInfoReadyCallback(const JavaRef<jobject>& java_callback, |
| + bool fetch_important) |
| : env_(base::android::AttachCurrentThread()), |
| - java_callback_(java_callback) { |
| - } |
| + java_callback_(java_callback), |
| + fetch_important_(fetch_important) {} |
| void OnLocalStorageModelInfoLoaded( |
| Profile* profile, |
| @@ -657,9 +658,11 @@ class LocalStorageInfoReadyCallback { |
| ScopedJavaLocalRef<jobject> map = |
| Java_WebsitePreferenceBridge_createLocalStorageInfoMap(env_); |
| - std::vector<ImportantSitesUtil::ImportantDomainInfo> important_domains = |
| - ImportantSitesUtil::GetImportantRegisterableDomains(profile, |
| - kMaxImportantSites); |
| + std::vector<ImportantSitesUtil::ImportantDomainInfo> important_domains; |
| + if (fetch_important_) { |
| + important_domains = ImportantSitesUtil::GetImportantRegisterableDomains( |
| + profile, kMaxImportantSites); |
| + } |
| std::list<BrowsingDataLocalStorageHelper::LocalStorageInfo>::const_iterator |
| i; |
| @@ -667,23 +670,27 @@ class LocalStorageInfoReadyCallback { |
| ScopedJavaLocalRef<jstring> full_origin = |
| ConvertUTF8ToJavaString(env_, i->origin_url.spec()); |
| std::string origin_str = i->origin_url.GetOrigin().spec(); |
| + |
| bool important = false; |
| - std::string registerable_domain; |
| - if (i->origin_url.HostIsIPAddress()) { |
| - registerable_domain = i->origin_url.host(); |
| - } else { |
| - registerable_domain = |
| - net::registry_controlled_domains::GetDomainAndRegistry( |
| - i->origin_url, |
| - net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES); |
| - } |
| - auto important_domain_search = [®isterable_domain]( |
| - const ImportantSitesUtil::ImportantDomainInfo& item) { |
| - return item.registerable_domain == registerable_domain; |
| - }; |
| - if (std::find_if(important_domains.begin(), important_domains.end(), |
| - important_domain_search) != important_domains.end()) { |
| - important = true; |
| + if (fetch_important_) { |
| + std::string registerable_domain; |
| + if (i->origin_url.HostIsIPAddress()) { |
| + registerable_domain = i->origin_url.host(); |
| + } else { |
| + registerable_domain = |
| + net::registry_controlled_domains::GetDomainAndRegistry( |
| + i->origin_url, |
| + net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES); |
| + } |
| + auto important_domain_search = |
| + [®isterable_domain]( |
| + const ImportantSitesUtil::ImportantDomainInfo& item) { |
| + return item.registerable_domain == registerable_domain; |
| + }; |
| + if (std::find_if(important_domains.begin(), important_domains.end(), |
| + important_domain_search) != important_domains.end()) { |
| + important = true; |
| + } |
| } |
| // Remove the trailing slash so the origin is matched correctly in |
| // SingleWebsitePreferences.mergePermissionInfoForTopLevelOrigin. |
| @@ -702,6 +709,7 @@ class LocalStorageInfoReadyCallback { |
| private: |
| JNIEnv* env_; |
| ScopedJavaGlobalRef<jobject> java_callback_; |
| + bool fetch_important_; |
| }; |
| } // anonymous namespace |
| @@ -718,13 +726,15 @@ class LocalStorageInfoReadyCallback { |
| static void FetchLocalStorageInfo(JNIEnv* env, |
| const JavaParamRef<jclass>& clazz, |
| - const JavaParamRef<jobject>& java_callback) { |
| + const JavaParamRef<jobject>& java_callback, |
| + jboolean fetch_important) { |
| Profile* profile = ProfileManager::GetActiveUserProfile(); |
| scoped_refptr<BrowsingDataLocalStorageHelper> local_storage_helper( |
| new BrowsingDataLocalStorageHelper(profile)); |
| // local_storage_callback will delete itself when it is run. |
| LocalStorageInfoReadyCallback* local_storage_callback = |
| - new LocalStorageInfoReadyCallback(java_callback); |
| + new LocalStorageInfoReadyCallback(java_callback, |
| + fetch_important == JNI_TRUE); |
|
Ted C
2017/06/22 20:06:49
do you need the == JNI_TRUE here? In general, I'v
dmurph
2017/06/23 00:22:48
No - I can remove it.
|
| local_storage_helper->StartFetching( |
| base::Bind(&LocalStorageInfoReadyCallback::OnLocalStorageModelInfoLoaded, |
| base::Unretained(local_storage_callback), profile)); |