OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/extensions/extension_updater.h" | 5 #include "chrome/browser/extensions/extension_updater.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 const int kStartupWaitSeconds = 60 * 5; | 61 const int kStartupWaitSeconds = 60 * 5; |
62 | 62 |
63 // For sanity checking on update frequency - enforced in release mode only. | 63 // For sanity checking on update frequency - enforced in release mode only. |
64 static const int kMinUpdateFrequencySeconds = 30; | 64 static const int kMinUpdateFrequencySeconds = 30; |
65 static const int kMaxUpdateFrequencySeconds = 60 * 60 * 24 * 7; // 7 days | 65 static const int kMaxUpdateFrequencySeconds = 60 * 60 * 24 * 7; // 7 days |
66 | 66 |
67 // Maximum length of an extension manifest update check url, since it is a GET | 67 // Maximum length of an extension manifest update check url, since it is a GET |
68 // request. We want to stay under 2K because of proxies, etc. | 68 // request. We want to stay under 2K because of proxies, etc. |
69 static const int kExtensionsManifestMaxURLSize = 2000; | 69 static const int kExtensionsManifestMaxURLSize = 2000; |
70 | 70 |
| 71 ManifestFetchData::ManifestFetchData(GURL update_url) |
| 72 : base_url_(update_url), |
| 73 full_url_(update_url) { |
| 74 } |
| 75 |
| 76 ManifestFetchData::~ManifestFetchData() {} |
71 | 77 |
72 // The format for request parameters in update checks is: | 78 // The format for request parameters in update checks is: |
73 // | 79 // |
74 // ?x=EXT1_INFO&x=EXT2_INFO | 80 // ?x=EXT1_INFO&x=EXT2_INFO |
75 // | 81 // |
76 // where EXT1_INFO and EXT2_INFO are url-encoded strings of the form: | 82 // where EXT1_INFO and EXT2_INFO are url-encoded strings of the form: |
77 // | 83 // |
78 // id=EXTENSION_ID&v=VERSION&uc | 84 // id=EXTENSION_ID&v=VERSION&uc |
79 // | 85 // |
80 // Additionally, we may include the parameter ping=PING_DATA where PING_DATA | 86 // Additionally, we may include the parameter ping=PING_DATA where PING_DATA |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 } | 125 } |
120 UMA_HISTOGRAM_PERCENTAGE("Extensions.UpdateCheckHitUrlSizeLimit", 0); | 126 UMA_HISTOGRAM_PERCENTAGE("Extensions.UpdateCheckHitUrlSizeLimit", 0); |
121 | 127 |
122 // We have room so go ahead and add the extension. | 128 // We have room so go ahead and add the extension. |
123 extension_ids_.insert(id); | 129 extension_ids_.insert(id); |
124 ping_days_[id] = days; | 130 ping_days_[id] = days; |
125 full_url_ = GURL(full_url_.possibly_invalid_spec() + extra); | 131 full_url_ = GURL(full_url_.possibly_invalid_spec() + extra); |
126 return true; | 132 return true; |
127 } | 133 } |
128 | 134 |
| 135 bool ManifestFetchData::Includes(std::string extension_id) const { |
| 136 return extension_ids_.find(extension_id) != extension_ids_.end(); |
| 137 } |
| 138 |
129 bool ManifestFetchData::DidPing(std::string extension_id) const { | 139 bool ManifestFetchData::DidPing(std::string extension_id) const { |
130 std::map<std::string, int>::const_iterator i = ping_days_.find(extension_id); | 140 std::map<std::string, int>::const_iterator i = ping_days_.find(extension_id); |
131 if (i != ping_days_.end()) { | 141 if (i != ping_days_.end()) { |
132 return ShouldPing(i->second); | 142 return ShouldPing(i->second); |
133 } | 143 } |
134 return false; | 144 return false; |
135 } | 145 } |
136 | 146 |
137 bool ManifestFetchData::ShouldPing(int days) const { | 147 bool ManifestFetchData::ShouldPing(int days) const { |
138 return base_url_.DomainIs("google.com") && | 148 return base_url_.DomainIs("google.com") && |
(...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
848 extension_fetcher_.reset( | 858 extension_fetcher_.reset( |
849 URLFetcher::Create(kExtensionFetcherId, url, URLFetcher::GET, this)); | 859 URLFetcher::Create(kExtensionFetcherId, url, URLFetcher::GET, this)); |
850 extension_fetcher_->set_request_context( | 860 extension_fetcher_->set_request_context( |
851 Profile::GetDefaultRequestContext()); | 861 Profile::GetDefaultRequestContext()); |
852 extension_fetcher_->set_load_flags(net::LOAD_DO_NOT_SEND_COOKIES | | 862 extension_fetcher_->set_load_flags(net::LOAD_DO_NOT_SEND_COOKIES | |
853 net::LOAD_DO_NOT_SAVE_COOKIES); | 863 net::LOAD_DO_NOT_SAVE_COOKIES); |
854 extension_fetcher_->Start(); | 864 extension_fetcher_->Start(); |
855 current_extension_fetch_ = ExtensionFetch(id, url, hash, version); | 865 current_extension_fetch_ = ExtensionFetch(id, url, hash, version); |
856 } | 866 } |
857 } | 867 } |
OLD | NEW |