Index: chrome/browser/component_updater/cld_component_installer.h |
diff --git a/chrome/browser/component_updater/cld_component_installer.h b/chrome/browser/component_updater/cld_component_installer.h |
index 20a4b3c672ba2030f4fe1e9e13e6320479c3dcd4..396ebab07d3b3daf308710978a478e5bcc2495b1 100644 |
--- a/chrome/browser/component_updater/cld_component_installer.h |
+++ b/chrome/browser/component_updater/cld_component_installer.h |
@@ -5,19 +5,61 @@ |
#ifndef CHROME_BROWSER_COMPONENT_UPDATER_CLD_COMPONENT_INSTALLER_H_ |
#define CHROME_BROWSER_COMPONENT_UPDATER_CLD_COMPONENT_INSTALLER_H_ |
+#include <string> |
+#include <vector> |
+ |
#include "base/files/file_path.h" |
+#include "base/gtest_prod_util.h" |
+#include "chrome/browser/component_updater/default_component_installer.h" |
namespace component_updater { |
class ComponentUpdateService; |
+// Visible for testing. No need to instantiate this class directly. |
+class CldComponentInstallerTraits : public ComponentInstallerTraits { |
+ public: |
+ CldComponentInstallerTraits(); |
+ virtual ~CldComponentInstallerTraits() {} |
+ |
+ private: |
+ friend class CldComponentInstallerTest; // For access within SetUp() |
+ FRIEND_TEST_ALL_PREFIXES(CldComponentInstallerTest, ComponentReady); |
+ FRIEND_TEST_ALL_PREFIXES(CldComponentInstallerTest, GetBaseDirectory); |
+ FRIEND_TEST_ALL_PREFIXES(CldComponentInstallerTest, GetHash); |
+ FRIEND_TEST_ALL_PREFIXES(CldComponentInstallerTest, GetInstalledPath); |
+ FRIEND_TEST_ALL_PREFIXES(CldComponentInstallerTest, GetName); |
+ FRIEND_TEST_ALL_PREFIXES(CldComponentInstallerTest, OnCustomInstall); |
+ FRIEND_TEST_ALL_PREFIXES(CldComponentInstallerTest, SetLatestCldDataFile); |
+ FRIEND_TEST_ALL_PREFIXES(CldComponentInstallerTest, VerifyInstallation); |
+ |
+ // The following methods override ComponentInstallerTraits. |
+ virtual bool CanAutoUpdate() const OVERRIDE; |
+ virtual bool OnCustomInstall(const base::DictionaryValue& manifest, |
+ const base::FilePath& install_dir) OVERRIDE; |
+ virtual bool VerifyInstallation( |
+ const base::FilePath& install_dir) const OVERRIDE; |
+ virtual void ComponentReady( |
+ const base::Version& version, |
+ const base::FilePath& path, |
+ scoped_ptr<base::DictionaryValue> manifest) OVERRIDE; |
+ virtual base::FilePath GetBaseDirectory() const OVERRIDE; |
+ virtual void GetHash(std::vector<uint8>* hash) const OVERRIDE; |
+ virtual std::string GetName() const OVERRIDE; |
+ |
+ base::FilePath GetInstalledPath(const base::FilePath& base) const; |
+ void SetLatestCldDataFile(const base::FilePath& path); |
+ DISALLOW_COPY_AND_ASSIGN(CldComponentInstallerTraits); |
+}; |
+ |
+// Call once during startup to make the component update service aware of |
+// the CLD component. |
void RegisterCldComponent(ComponentUpdateService* cus); |
-// Places the path to the latest CLD data file into the specified path object. |
-// Returns true if and only if the file has been observed to exist at least |
-// once and was valid when it was observed; if the function returns false, the |
-// path parameter is not modified. This function is threadsafe. |
-bool GetLatestCldDataFile(base::FilePath* path); |
+// Returns the path to the latest CLD data file into the specified path object, |
+// or an empty path if the CLD data file has not been observed yet. |
+// This function is threadsafe. |
+base::FilePath GetLatestCldDataFile(); |
} // namespace component_updater |