OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/component_updater/component_updater_service.h" | 5 #include "chrome/browser/component_updater/component_updater_service.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 public: | 248 public: |
249 explicit CrxUpdateService(ComponentUpdateService::Configurator* config); | 249 explicit CrxUpdateService(ComponentUpdateService::Configurator* config); |
250 | 250 |
251 virtual ~CrxUpdateService(); | 251 virtual ~CrxUpdateService(); |
252 | 252 |
253 // Overrides for ComponentUpdateService. | 253 // Overrides for ComponentUpdateService. |
254 virtual Status Start() OVERRIDE; | 254 virtual Status Start() OVERRIDE; |
255 virtual Status Stop() OVERRIDE; | 255 virtual Status Stop() OVERRIDE; |
256 virtual Status RegisterComponent(const CrxComponent& component) OVERRIDE; | 256 virtual Status RegisterComponent(const CrxComponent& component) OVERRIDE; |
257 virtual Status CheckForUpdateSoon(const CrxComponent& component) OVERRIDE; | 257 virtual Status CheckForUpdateSoon(const CrxComponent& component) OVERRIDE; |
| 258 virtual bool FindRegisteredComponent(const std::vector<uint8>& pk_hash, |
| 259 CrxComponent* component) OVERRIDE; |
258 | 260 |
259 // The only purpose of this class is to forward the | 261 // The only purpose of this class is to forward the |
260 // UtilityProcessHostClient callbacks so CrxUpdateService does | 262 // UtilityProcessHostClient callbacks so CrxUpdateService does |
261 // not have to derive from it because that is refcounted. | 263 // not have to derive from it because that is refcounted. |
262 class ManifestParserBridge : public UtilityProcessHostClient { | 264 class ManifestParserBridge : public UtilityProcessHostClient { |
263 public: | 265 public: |
264 explicit ManifestParserBridge(CrxUpdateService* service) | 266 explicit ManifestParserBridge(CrxUpdateService* service) |
265 : service_(service) {} | 267 : service_(service) {} |
266 | 268 |
267 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE { | 269 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE { |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
492 uit->component = component; | 494 uit->component = component; |
493 work_items_.push_back(uit); | 495 work_items_.push_back(uit); |
494 // If this is the first component registered we call Start to | 496 // If this is the first component registered we call Start to |
495 // schedule the first timer. | 497 // schedule the first timer. |
496 if (running_ && (work_items_.size() == 1)) | 498 if (running_ && (work_items_.size() == 1)) |
497 Start(); | 499 Start(); |
498 | 500 |
499 return kOk; | 501 return kOk; |
500 } | 502 } |
501 | 503 |
| 504 bool CrxUpdateService::FindRegisteredComponent( |
| 505 const std::vector<uint8>& pk_hash, |
| 506 CrxComponent* component) { |
| 507 std::string id = |
| 508 HexStringToID(StringToLowerASCII(base::HexEncode(&pk_hash[0], |
| 509 pk_hash.size()/2))); |
| 510 CrxUpdateItem* uit = FindUpdateItemById(id); |
| 511 if (uit) { |
| 512 *component = uit->component; |
| 513 return true; |
| 514 } |
| 515 return false; |
| 516 } |
| 517 |
| 518 |
502 // Sets a component to be checked for updates. | 519 // Sets a component to be checked for updates. |
503 // The componet to add is |crxit| and the |query| string is modified with the | 520 // The componet to add is |crxit| and the |query| string is modified with the |
504 // required omaha compatible query. Returns false when the query strings | 521 // required omaha compatible query. Returns false when the query strings |
505 // is longer than specified by UrlSizeLimit(). | 522 // is longer than specified by UrlSizeLimit(). |
506 bool CrxUpdateService::AddItemToUpdateCheck(CrxUpdateItem* item, | 523 bool CrxUpdateService::AddItemToUpdateCheck(CrxUpdateItem* item, |
507 std::string* query) { | 524 std::string* query) { |
508 if (!AddQueryString(item->id, | 525 if (!AddQueryString(item->id, |
509 item->component.version.GetString(), | 526 item->component.version.GetString(), |
510 config_->UrlSizeLimit(), query)) | 527 config_->UrlSizeLimit(), query)) |
511 return false; | 528 return false; |
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
872 ScheduleNextRun(false); | 889 ScheduleNextRun(false); |
873 } | 890 } |
874 | 891 |
875 // The component update factory. Using the component updater as a singleton | 892 // The component update factory. Using the component updater as a singleton |
876 // is the job of the browser process. | 893 // is the job of the browser process. |
877 ComponentUpdateService* ComponentUpdateServiceFactory( | 894 ComponentUpdateService* ComponentUpdateServiceFactory( |
878 ComponentUpdateService::Configurator* config) { | 895 ComponentUpdateService::Configurator* config) { |
879 DCHECK(config); | 896 DCHECK(config); |
880 return new CrxUpdateService(config); | 897 return new CrxUpdateService(config); |
881 } | 898 } |
OLD | NEW |