#include "base/strings/utf_string_conversions.h"
#include "base/threading/thread_restrictions.h"
#include "build/build_config.h"
-#include "grit/chromium_strings.h"
-#include "grit/generated_resources.h"
+#include "chrome/common/chrome_version_info_values.h"
+#include "chrome/grit/chromium_strings.h"
+#include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/resource/resource_bundle.h"
namespace chrome {
std::string VersionInfo::ProductNameAndVersionForUserAgent() const {
- if (!is_valid())
- return std::string();
return "Chrome/" + Version();
}
-#if defined(OS_WIN) || defined(OS_MACOSX)
-// On Windows and Mac, we get the Chrome version info by querying
-// FileVersionInfo for the current module.
-
VersionInfo::VersionInfo() {
- // The current module is already loaded in memory, so this will be cheap.
- base::ThreadRestrictions::ScopedAllowIO allow_io;
- version_info_.reset(FileVersionInfo::CreateFileVersionInfoForCurrentModule());
}
VersionInfo::~VersionInfo() {
}
-bool VersionInfo::is_valid() const {
- return version_info_.get() != NULL;
-}
-
-std::string VersionInfo::Name() const {
- if (!is_valid())
- return std::string();
- return UTF16ToUTF8(version_info_->product_name());
-}
-
-std::string VersionInfo::Version() const {
- if (!is_valid())
- return std::string();
- return UTF16ToUTF8(version_info_->product_version());
-}
-
-std::string VersionInfo::LastChange() const {
- if (!is_valid())
- return std::string();
- return UTF16ToUTF8(version_info_->last_change());
-}
-
-bool VersionInfo::IsOfficialBuild() const {
- if (!is_valid())
- return false;
- return version_info_->is_official_build();
-}
-
-#elif defined(OS_POSIX)
-// We get chrome version information from chrome_version_info_posix.h,
-// a generated header.
-
-#include "chrome/common/chrome_version_info_posix.h"
-
-VersionInfo::VersionInfo() {
-}
-
-VersionInfo::~VersionInfo() {
-}
-
-bool VersionInfo::is_valid() const {
- return true;
-}
-
std::string VersionInfo::Name() const {
return PRODUCT_NAME;
}
return IS_OFFICIAL_BUILD;
}
-#endif
-
std::string VersionInfo::CreateVersionString() const {
std::string current_version;
- if (is_valid()) {
- current_version += Version();
+ current_version += Version();
#if !defined(GOOGLE_CHROME_BUILD)
- current_version += " (";
- current_version += l10n_util::GetStringUTF8(IDS_ABOUT_VERSION_UNOFFICIAL);
- current_version += " ";
- current_version += LastChange();
- current_version += " ";
- current_version += OSType();
- current_version += ")";
+ current_version += " (";
+ current_version += l10n_util::GetStringUTF8(IDS_ABOUT_VERSION_UNOFFICIAL);
+ current_version += " ";
+ current_version += LastChange();
+ current_version += " ";
+ current_version += OSType();
+ current_version += ")";
#endif
- std::string modifier = GetVersionStringModifier();
- if (!modifier.empty())
- current_version += " " + modifier;
- }
+ std::string modifier = GetVersionStringModifier();
+ if (!modifier.empty())
+ current_version += " " + modifier;
return current_version;
}
std::string VersionInfo::OSType() const {
#if defined(OS_WIN)
return "Windows";
+#elif defined(OS_IOS)
+ return "iOS";
#elif defined(OS_MACOSX)
return "Mac OS X";
#elif defined(OS_CHROMEOS)