summaryrefslogtreecommitdiffstats
path: root/chrome/common/chrome_version_info.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/common/chrome_version_info.h')
-rw-r--r--chrome/common/chrome_version_info.h42
1 files changed, 39 insertions, 3 deletions
diff --git a/chrome/common/chrome_version_info.h b/chrome/common/chrome_version_info.h
index a539130..0ec911e 100644
--- a/chrome/common/chrome_version_info.h
+++ b/chrome/common/chrome_version_info.h
@@ -6,13 +6,49 @@
#define CHROME_COMMON_CHROME_VERSION_INFO_H_
#pragma once
+#include <string>
+
+#include "base/basictypes.h"
+#include "base/scoped_ptr.h"
+
class FileVersionInfo;
namespace chrome {
-// Creates a FileVersionInfo for the app, Chrome. Returns NULL in case of
-// error. The returned object should be deleted when you are done with it.
-FileVersionInfo* GetChromeVersionInfo();
+// An instance of chrome::VersionInfo has information about the
+// current running build of Chrome.
+class VersionInfo {
+ public:
+ VersionInfo();
+ ~VersionInfo();
+
+ // In the rare case where we fail to get the version info,
+ // is_valid() will return false. The other functions will return
+ // the empty string in this case, so it's not harmful if you don't
+ // check is_valid().
+ bool is_valid() const;
+
+ // E.g. "Chromium" or "Google Chrome".
+ std::string Name() const;
+
+ // Version number, e.g. "6.0.490.1".
+ std::string Version() const;
+
+ // The SVN revision of this release. E.g. "55800".
+ std::string LastChange() const;
+
+ // Whether this is an "official" release of the current Version():
+ // whether knowing Version() is enough to completely determine what
+ // LastChange() is.
+ bool IsOfficialBuild() const;
+
+ private:
+#if defined(OS_WIN) || defined(OS_MACOSX)
+ scoped_ptr<FileVersionInfo> version_info_;
+#endif
+
+ DISALLOW_COPY_AND_ASSIGN(VersionInfo);
+};
} // namespace chrome