Home | History | Annotate | Download | only in component_updater
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef COMPONENTS_COMPONENT_UPDATER_UPDATE_CHECKER_H_
      6 #define COMPONENTS_COMPONENT_UPDATER_UPDATE_CHECKER_H_
      7 
      8 #include <string>
      9 #include <vector>
     10 
     11 #include "base/callback.h"
     12 #include "base/macros.h"
     13 #include "base/memory/scoped_ptr.h"
     14 #include "components/component_updater/update_response.h"
     15 #include "url/gurl.h"
     16 
     17 class GURL;
     18 
     19 namespace net {
     20 class URLRequestContextGetter;
     21 }
     22 
     23 namespace component_updater {
     24 
     25 class Configurator;
     26 struct CrxUpdateItem;
     27 
     28 class UpdateChecker {
     29  public:
     30   typedef base::Callback<void(const GURL& original_url,
     31                               int error,
     32                               const std::string& error_message,
     33                               const UpdateResponse::Results& results)>
     34       UpdateCheckCallback;
     35 
     36   virtual ~UpdateChecker() {}
     37 
     38   // Initiates an update check for the |items_to_check|. |additional_attributes|
     39   // provides a way to customize the <request> element. This value is inserted
     40   // as-is, therefore it must be well-formed as an XML attribute string.
     41   virtual bool CheckForUpdates(
     42       const std::vector<CrxUpdateItem*>& items_to_check,
     43       const std::string& additional_attributes,
     44       const UpdateCheckCallback& update_check_callback) = 0;
     45 
     46   static scoped_ptr<UpdateChecker> Create(const Configurator& config);
     47 
     48  protected:
     49   UpdateChecker() {}
     50 
     51  private:
     52   DISALLOW_COPY_AND_ASSIGN(UpdateChecker);
     53 };
     54 
     55 }  // namespace component_updater
     56 
     57 #endif  // COMPONENTS_COMPONENT_UPDATER_UPDATE_CHECKER_H_
     58