| 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..c9ff91ab0ed8df3148521f5cb2ee33b6f7223b8d 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,14 @@ 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);
|
| local_storage_helper->StartFetching(
|
| base::Bind(&LocalStorageInfoReadyCallback::OnLocalStorageModelInfoLoaded,
|
| base::Unretained(local_storage_callback), profile));
|
|
|