| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "components/precache/core/precache_fetcher.h" | 5 #include "components/precache/core/precache_fetcher.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 std::deque<ManifestHostInfo> RetrieveManifestInfo( | 188 std::deque<ManifestHostInfo> RetrieveManifestInfo( |
| 189 const base::WeakPtr<PrecacheDatabase>& precache_database, | 189 const base::WeakPtr<PrecacheDatabase>& precache_database, |
| 190 std::vector<std::pair<std::string, int64_t>> hosts_to_fetch) { | 190 std::vector<std::pair<std::string, int64_t>> hosts_to_fetch) { |
| 191 std::deque<ManifestHostInfo> hosts_info; | 191 std::deque<ManifestHostInfo> hosts_info; |
| 192 if (!precache_database) | 192 if (!precache_database) |
| 193 return hosts_info; | 193 return hosts_info; |
| 194 | 194 |
| 195 for (const auto& host : hosts_to_fetch) { | 195 for (const auto& host : hosts_to_fetch) { |
| 196 auto referrer_host_info = precache_database->GetReferrerHost(host.first); | 196 auto referrer_host_info = precache_database->GetReferrerHost(host.first); |
| 197 if (referrer_host_info.id != PrecacheReferrerHostEntry::kInvalidId) { | 197 if (referrer_host_info.id != PrecacheReferrerHostEntry::kInvalidId) { |
| 198 std::vector<GURL> used_urls, unused_urls; | 198 std::vector<GURL> used_urls, downloaded_urls; |
| 199 precache_database->GetURLListForReferrerHost(referrer_host_info.id, | 199 precache_database->GetURLListForReferrerHost( |
| 200 &used_urls, &unused_urls); | 200 referrer_host_info.id, &used_urls, &downloaded_urls); |
| 201 hosts_info.push_back( | 201 hosts_info.push_back( |
| 202 ManifestHostInfo(referrer_host_info.manifest_id, host.first, | 202 ManifestHostInfo(referrer_host_info.manifest_id, host.first, |
| 203 host.second, GetResourceURLBase64Hash(used_urls), | 203 host.second, GetResourceURLBase64Hash(used_urls), |
| 204 GetResourceURLBase64Hash(unused_urls))); | 204 GetResourceURLBase64Hash(downloaded_urls))); |
| 205 } else { | 205 } else { |
| 206 hosts_info.push_back( | 206 hosts_info.push_back( |
| 207 ManifestHostInfo(PrecacheReferrerHostEntry::kInvalidId, host.first, | 207 ManifestHostInfo(PrecacheReferrerHostEntry::kInvalidId, host.first, |
| 208 host.second, std::string(), std::string())); | 208 host.second, std::string(), std::string())); |
| 209 } | 209 } |
| 210 } | 210 } |
| 211 return hosts_info; | 211 return hosts_info; |
| 212 } | 212 } |
| 213 | 213 |
| 214 PrecacheQuota RetrieveQuotaInfo( | 214 PrecacheQuota RetrieveQuotaInfo( |
| (...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 634 GURL(prefix + | 634 GURL(prefix + |
| 635 net::EscapeQueryParamValue( | 635 net::EscapeQueryParamValue( |
| 636 net::EscapeQueryParamValue(manifest.hostname, false), false)); | 636 net::EscapeQueryParamValue(manifest.hostname, false), false)); |
| 637 if (manifest.manifest_id != PrecacheReferrerHostEntry::kInvalidId) { | 637 if (manifest.manifest_id != PrecacheReferrerHostEntry::kInvalidId) { |
| 638 manifest.manifest_url = net::AppendOrReplaceQueryParameter( | 638 manifest.manifest_url = net::AppendOrReplaceQueryParameter( |
| 639 manifest.manifest_url, "manifest", | 639 manifest.manifest_url, "manifest", |
| 640 std::to_string(manifest.manifest_id)); | 640 std::to_string(manifest.manifest_id)); |
| 641 manifest.manifest_url = net::AppendOrReplaceQueryParameter( | 641 manifest.manifest_url = net::AppendOrReplaceQueryParameter( |
| 642 manifest.manifest_url, "used_resources", manifest.used_url_hash); | 642 manifest.manifest_url, "used_resources", manifest.used_url_hash); |
| 643 manifest.manifest_url = net::AppendOrReplaceQueryParameter( | 643 manifest.manifest_url = net::AppendOrReplaceQueryParameter( |
| 644 manifest.manifest_url, "unused_resources", manifest.unused_url_hash); | 644 manifest.manifest_url, "d", manifest.downloaded_url_hash); |
| 645 DCHECK(manifest.manifest_url.is_valid()); | 645 DCHECK(manifest.manifest_url.is_valid()); |
| 646 } | 646 } |
| 647 } | 647 } |
| 648 unfinished_work_->set_num_manifest_urls(top_hosts_to_fetch_.size()); | 648 unfinished_work_->set_num_manifest_urls(top_hosts_to_fetch_.size()); |
| 649 | 649 |
| 650 PostTaskAndReplyWithResult( | 650 PostTaskAndReplyWithResult( |
| 651 db_task_runner_.get(), FROM_HERE, | 651 db_task_runner_.get(), FROM_HERE, |
| 652 base::Bind(&RetrieveQuotaInfo, precache_database_), | 652 base::Bind(&RetrieveQuotaInfo, precache_database_), |
| 653 base::Bind(&PrecacheFetcher::OnQuotaInfoRetrieved, AsWeakPtr())); | 653 base::Bind(&PrecacheFetcher::OnQuotaInfoRetrieved, AsWeakPtr())); |
| 654 } | 654 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 666 FROM_HERE, | 666 FROM_HERE, |
| 667 base::Bind(&PrecacheDatabase::SaveQuota, precache_database_, quota_)); | 667 base::Bind(&PrecacheDatabase::SaveQuota, precache_database_, quota_)); |
| 668 } | 668 } |
| 669 StartNextFetch(); | 669 StartNextFetch(); |
| 670 } | 670 } |
| 671 | 671 |
| 672 ManifestHostInfo::ManifestHostInfo(int64_t manifest_id, | 672 ManifestHostInfo::ManifestHostInfo(int64_t manifest_id, |
| 673 const std::string& hostname, | 673 const std::string& hostname, |
| 674 int64_t visits, | 674 int64_t visits, |
| 675 const std::string& used_url_hash, | 675 const std::string& used_url_hash, |
| 676 const std::string& unused_url_hash) | 676 const std::string& downloaded_url_hash) |
| 677 : manifest_id(manifest_id), | 677 : manifest_id(manifest_id), |
| 678 hostname(hostname), | 678 hostname(hostname), |
| 679 visits(visits), | 679 visits(visits), |
| 680 used_url_hash(used_url_hash), | 680 used_url_hash(used_url_hash), |
| 681 unused_url_hash(unused_url_hash) {} | 681 downloaded_url_hash(downloaded_url_hash) {} |
| 682 | 682 |
| 683 ManifestHostInfo::~ManifestHostInfo() {} | 683 ManifestHostInfo::~ManifestHostInfo() {} |
| 684 | 684 |
| 685 ManifestHostInfo::ManifestHostInfo(ManifestHostInfo&&) = default; | 685 ManifestHostInfo::ManifestHostInfo(ManifestHostInfo&&) = default; |
| 686 | 686 |
| 687 ManifestHostInfo& ManifestHostInfo::operator=(ManifestHostInfo&&) = default; | 687 ManifestHostInfo& ManifestHostInfo::operator=(ManifestHostInfo&&) = default; |
| 688 | 688 |
| 689 ResourceInfo::ResourceInfo(const GURL& url, | 689 ResourceInfo::ResourceInfo(const GURL& url, |
| 690 const std::string& referrer, | 690 const std::string& referrer, |
| 691 double weight) | 691 double weight) |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 805 remaining = 0; | 805 remaining = 0; |
| 806 quota_.set_remaining( | 806 quota_.set_remaining( |
| 807 used_bytes > quota_.remaining() ? 0U : quota_.remaining() - used_bytes); | 807 used_bytes > quota_.remaining() ? 0U : quota_.remaining() - used_bytes); |
| 808 db_task_runner_->PostTask( | 808 db_task_runner_->PostTask( |
| 809 FROM_HERE, | 809 FROM_HERE, |
| 810 base::Bind(&PrecacheDatabase::SaveQuota, precache_database_, quota_)); | 810 base::Bind(&PrecacheDatabase::SaveQuota, precache_database_, quota_)); |
| 811 } | 811 } |
| 812 } | 812 } |
| 813 | 813 |
| 814 } // namespace precache | 814 } // namespace precache |
| OLD | NEW |