| 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/ui/webui/version_ui.h" | 5 #include "chrome/browser/ui/webui/version_ui.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
| 9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
| 10 #include "chrome/browser/ui/webui/version_handler.h" | 10 #include "chrome/browser/ui/webui/version_handler.h" |
| 11 #include "chrome/common/channel_info.h" | 11 #include "chrome/common/channel_info.h" |
| 12 #include "chrome/common/chrome_content_client.h" | 12 #include "chrome/common/chrome_content_client.h" |
| 13 #include "chrome/common/url_constants.h" | 13 #include "chrome/common/url_constants.h" |
| 14 #include "chrome/grit/chromium_strings.h" | 14 #include "chrome/grit/chromium_strings.h" |
| 15 #include "chrome/grit/generated_resources.h" | 15 #include "chrome/grit/generated_resources.h" |
| 16 #include "components/version_info/version_info.h" | 16 #include "components/version_info/version_info.h" |
| 17 #include "components/version_ui/version_ui_constants.h" |
| 17 #include "content/public/browser/url_data_source.h" | 18 #include "content/public/browser/url_data_source.h" |
| 18 #include "content/public/browser/web_ui.h" | 19 #include "content/public/browser/web_ui.h" |
| 19 #include "content/public/browser/web_ui_data_source.h" | 20 #include "content/public/browser/web_ui_data_source.h" |
| 20 #include "content/public/common/user_agent.h" | 21 #include "content/public/common/user_agent.h" |
| 21 #include "grit/browser_resources.h" | 22 #include "grit/browser_resources.h" |
| 23 #include "grit/components_chromium_strings.h" |
| 24 #include "grit/components_google_chrome_strings.h" |
| 25 #include "grit/components_resources.h" |
| 22 #include "grit/components_strings.h" | 26 #include "grit/components_strings.h" |
| 23 #include "ui/base/l10n/l10n_util.h" | 27 #include "ui/base/l10n/l10n_util.h" |
| 24 #include "v8/include/v8.h" | 28 #include "v8/include/v8.h" |
| 25 | 29 |
| 26 #if defined(ENABLE_THEMES) | 30 #if defined(ENABLE_THEMES) |
| 27 #include "chrome/browser/ui/webui/theme_source.h" | 31 #include "chrome/browser/ui/webui/theme_source.h" |
| 28 #endif | 32 #endif |
| 29 | 33 |
| 30 #if defined(OS_ANDROID) | 34 #if defined(OS_ANDROID) |
| 31 #include "base/android/build_info.h" | 35 #include "base/android/build_info.h" |
| 32 #include "chrome/browser/ui/android/android_about_app_info.h" | 36 #include "chrome/browser/ui/android/android_about_app_info.h" |
| 33 #endif | 37 #endif |
| 34 | 38 |
| 35 #if defined(OS_CHROMEOS) | 39 #if defined(OS_CHROMEOS) |
| 36 #include "chrome/browser/ui/webui/version_handler_chromeos.h" | 40 #include "chrome/browser/ui/webui/version_handler_chromeos.h" |
| 37 #endif | 41 #endif |
| 38 | 42 |
| 39 using content::WebUIDataSource; | 43 using content::WebUIDataSource; |
| 40 | 44 |
| 41 namespace { | 45 namespace { |
| 42 | 46 |
| 43 WebUIDataSource* CreateVersionUIDataSource() { | 47 WebUIDataSource* CreateVersionUIDataSource() { |
| 44 WebUIDataSource* html_source = | 48 WebUIDataSource* html_source = |
| 45 WebUIDataSource::Create(chrome::kChromeUIVersionHost); | 49 WebUIDataSource::Create(chrome::kChromeUIVersionHost); |
| 46 | 50 |
| 47 // Localized and data strings. | 51 // Localized and data strings. |
| 48 html_source->AddLocalizedString("title", IDS_ABOUT_VERSION_TITLE); | 52 html_source->AddLocalizedString(version_ui::kTitle, IDS_VERSION_UI_TITLE); |
| 49 html_source->AddLocalizedString("application_label", IDS_PRODUCT_NAME); | 53 html_source->AddLocalizedString(version_ui::kApplicationLabel, |
| 50 html_source->AddString("version", version_info::GetVersionNumber()); | 54 IDS_PRODUCT_NAME); |
| 51 html_source->AddString("version_modifier", chrome::GetChannelString()); | 55 html_source->AddString(version_ui::kVersion, |
| 52 html_source->AddLocalizedString("os_name", IDS_ABOUT_VERSION_OS); | 56 version_info::GetVersionNumber()); |
| 53 html_source->AddLocalizedString("platform", IDS_PLATFORM_LABEL); | 57 html_source->AddString(version_ui::kVersionModifier, |
| 54 html_source->AddString("os_type", version_info::GetOSType()); | 58 chrome::GetChannelString()); |
| 55 html_source->AddString("blink_version", content::GetWebKitVersion()); | 59 html_source->AddLocalizedString(version_ui::kOSName, IDS_VERSION_UI_OS); |
| 56 html_source->AddString("js_engine", "V8"); | 60 html_source->AddLocalizedString(version_ui::kPlatform, IDS_PLATFORM_LABEL); |
| 57 html_source->AddString("js_version", v8::V8::GetVersion()); | 61 html_source->AddString(version_ui::kOSType, version_info::GetOSType()); |
| 62 html_source->AddString(version_ui::kBlinkVersion, |
| 63 content::GetWebKitVersion()); |
| 64 html_source->AddString(version_ui::kJSEngine, "V8"); |
| 65 html_source->AddString(version_ui::kJSVersion, v8::V8::GetVersion()); |
| 58 | 66 |
| 59 #if defined(OS_ANDROID) | 67 #if defined(OS_ANDROID) |
| 60 html_source->AddString("os_version", AndroidAboutAppInfo::GetOsInfo()); | 68 html_source->AddString(version_ui::kOSVersion, |
| 61 html_source->AddLocalizedString("build_id_name", | 69 AndroidAboutAppInfo::GetOsInfo()); |
| 62 IDS_ABOUT_VERSION_BUILD_ID); | 70 html_source->AddLocalizedString(version_ui::kBuildIDName, |
| 63 html_source->AddString("build_id", CHROME_BUILD_ID); | 71 IDS_VERSION_UI_BUILD_ID); |
| 72 html_source->AddString(version_ui::kBuildID, CHROME_BUILD_ID); |
| 64 #else | 73 #else |
| 65 html_source->AddString("os_version", std::string()); | 74 html_source->AddString(version_ui::kOSVersion, std::string()); |
| 66 html_source->AddString("flash_plugin", "Flash"); | 75 html_source->AddString(version_ui::kFlashPlugin, "Flash"); |
| 67 // Note that the Flash version is retrieve asynchronously and returned in | 76 // Note that the Flash version is retrieve asynchronously and returned in |
| 68 // VersionHandler::OnGotPlugins. The area is initially blank. | 77 // VersionHandler::OnGotPlugins. The area is initially blank. |
| 69 html_source->AddString("flash_version", std::string()); | 78 html_source->AddString(version_ui::kFlashVersion, std::string()); |
| 70 #endif // defined(OS_ANDROID) | 79 #endif // defined(OS_ANDROID) |
| 71 | 80 |
| 72 html_source->AddLocalizedString("company", IDS_ABOUT_VERSION_COMPANY_NAME); | 81 html_source->AddLocalizedString(version_ui::kCompany, |
| 82 IDS_ABOUT_VERSION_COMPANY_NAME); |
| 73 base::Time::Exploded exploded_time; | 83 base::Time::Exploded exploded_time; |
| 74 base::Time::Now().LocalExplode(&exploded_time); | 84 base::Time::Now().LocalExplode(&exploded_time); |
| 75 html_source->AddString( | 85 html_source->AddString( |
| 76 "copyright", | 86 version_ui::kCopyright, |
| 77 l10n_util::GetStringFUTF16(IDS_ABOUT_VERSION_COPYRIGHT, | 87 l10n_util::GetStringFUTF16(IDS_ABOUT_VERSION_COPYRIGHT, |
| 78 base::IntToString16(exploded_time.year))); | 88 base::IntToString16(exploded_time.year))); |
| 79 html_source->AddLocalizedString("revision", IDS_ABOUT_VERSION_REVISION); | 89 html_source->AddLocalizedString(version_ui::kRevision, |
| 80 html_source->AddString("cl", version_info::GetLastChange()); | 90 IDS_VERSION_UI_REVISION); |
| 81 html_source->AddLocalizedString("official", | 91 html_source->AddString(version_ui::kCL, version_info::GetLastChange()); |
| 92 html_source->AddLocalizedString(version_ui::kOfficial, |
| 82 version_info::IsOfficialBuild() | 93 version_info::IsOfficialBuild() |
| 83 ? IDS_ABOUT_VERSION_OFFICIAL | 94 ? IDS_VERSION_UI_OFFICIAL |
| 84 : IDS_ABOUT_VERSION_UNOFFICIAL); | 95 : IDS_VERSION_UI_UNOFFICIAL); |
| 85 #if defined(ARCH_CPU_64_BITS) | 96 #if defined(ARCH_CPU_64_BITS) |
| 86 html_source->AddLocalizedString("version_bitsize", IDS_ABOUT_VERSION_64BIT); | 97 html_source->AddLocalizedString(version_ui::kVersionBitSize, |
| 98 IDS_VERSION_UI_64BIT); |
| 87 #else | 99 #else |
| 88 html_source->AddLocalizedString("version_bitsize", IDS_ABOUT_VERSION_32BIT); | 100 html_source->AddLocalizedString(version_ui::kVersionBitSize, |
| 101 IDS_VERSION_UI_32BIT); |
| 89 #endif | 102 #endif |
| 90 html_source->AddLocalizedString("user_agent_name", | 103 html_source->AddLocalizedString(version_ui::kUserAgentName, |
| 91 IDS_ABOUT_VERSION_USER_AGENT); | 104 IDS_VERSION_UI_USER_AGENT); |
| 92 html_source->AddString("useragent", GetUserAgent()); | 105 html_source->AddString(version_ui::kUserAgent, GetUserAgent()); |
| 93 html_source->AddLocalizedString("command_line_name", | 106 html_source->AddLocalizedString(version_ui::kCommandLineName, |
| 94 IDS_ABOUT_VERSION_COMMAND_LINE); | 107 IDS_VERSION_UI_COMMAND_LINE); |
| 95 | 108 |
| 96 #if defined(OS_WIN) | 109 #if defined(OS_WIN) |
| 97 html_source->AddString( | 110 html_source->AddString( |
| 98 "command_line", | 111 version_ui::kCommandLine, |
| 99 base::CommandLine::ForCurrentProcess()->GetCommandLineString()); | 112 base::CommandLine::ForCurrentProcess()->GetCommandLineString()); |
| 100 #elif defined(OS_POSIX) | 113 #elif defined(OS_POSIX) |
| 101 std::string command_line; | 114 std::string command_line; |
| 102 typedef std::vector<std::string> ArgvList; | 115 typedef std::vector<std::string> ArgvList; |
| 103 const ArgvList& argv = base::CommandLine::ForCurrentProcess()->argv(); | 116 const ArgvList& argv = base::CommandLine::ForCurrentProcess()->argv(); |
| 104 for (ArgvList::const_iterator iter = argv.begin(); iter != argv.end(); iter++) | 117 for (ArgvList::const_iterator iter = argv.begin(); iter != argv.end(); iter++) |
| 105 command_line += " " + *iter; | 118 command_line += " " + *iter; |
| 106 // TODO(viettrungluu): |command_line| could really have any encoding, whereas | 119 // TODO(viettrungluu): |command_line| could really have any encoding, whereas |
| 107 // below we assumes it's UTF-8. | 120 // below we assumes it's UTF-8. |
| 108 html_source->AddString("command_line", command_line); | 121 html_source->AddString(version_ui::kCommandLine, command_line); |
| 109 #endif | 122 #endif |
| 110 | 123 |
| 111 // Note that the executable path and profile path are retrieved asynchronously | 124 // Note that the executable path and profile path are retrieved asynchronously |
| 112 // and returned in VersionHandler::OnGotFilePaths. The area is initially | 125 // and returned in VersionHandler::OnGotFilePaths. The area is initially |
| 113 // blank. | 126 // blank. |
| 114 html_source->AddLocalizedString("executable_path_name", | 127 html_source->AddLocalizedString(version_ui::kExecutablePathName, |
| 115 IDS_ABOUT_VERSION_EXECUTABLE_PATH); | 128 IDS_VERSION_UI_EXECUTABLE_PATH); |
| 116 html_source->AddString("executable_path", std::string()); | 129 html_source->AddString(version_ui::kExecutablePath, std::string()); |
| 117 | 130 |
| 118 html_source->AddLocalizedString("profile_path_name", | 131 html_source->AddLocalizedString(version_ui::kProfilePathName, |
| 119 IDS_ABOUT_VERSION_PROFILE_PATH); | 132 IDS_VERSION_UI_PROFILE_PATH); |
| 120 html_source->AddString("profile_path", std::string()); | 133 html_source->AddString(version_ui::kProfilePath, std::string()); |
| 121 | 134 |
| 122 html_source->AddLocalizedString("variations_name", | 135 html_source->AddLocalizedString(version_ui::kVariationsName, |
| 123 IDS_ABOUT_VERSION_VARIATIONS); | 136 IDS_VERSION_UI_VARIATIONS); |
| 124 | 137 |
| 125 #if defined(OS_WIN) | 138 #if defined(OS_WIN) |
| 126 #if defined(__clang__) | 139 #if defined(__clang__) |
| 127 html_source->AddString("compiler", "clang"); | 140 html_source->AddString("compiler", "clang"); |
| 128 #else | 141 #else |
| 129 html_source->AddString("compiler", "MSVC"); | 142 html_source->AddString("compiler", "MSVC"); |
| 130 #endif | 143 #endif |
| 131 #endif | 144 #endif |
| 132 | 145 |
| 133 html_source->SetJsonPath("strings.js"); | 146 html_source->SetJsonPath("strings.js"); |
| 134 html_source->AddResourcePath("version.js", IDR_ABOUT_VERSION_JS); | 147 html_source->AddResourcePath(version_ui::kVersionJS, IDR_VERSION_UI_JS); |
| 135 html_source->AddResourcePath("about_version.css", IDR_ABOUT_VERSION_CSS); | 148 html_source->AddResourcePath(version_ui::kAboutVersionCSS, |
| 136 html_source->SetDefaultResource(IDR_ABOUT_VERSION_HTML); | 149 IDR_VERSION_UI_CSS); |
| 150 html_source->SetDefaultResource(IDR_VERSION_UI_HTML); |
| 137 return html_source; | 151 return html_source; |
| 138 } | 152 } |
| 139 | 153 |
| 140 } // namespace | 154 } // namespace |
| 141 | 155 |
| 142 VersionUI::VersionUI(content::WebUI* web_ui) | 156 VersionUI::VersionUI(content::WebUI* web_ui) |
| 143 : content::WebUIController(web_ui) { | 157 : content::WebUIController(web_ui) { |
| 144 Profile* profile = Profile::FromWebUI(web_ui); | 158 Profile* profile = Profile::FromWebUI(web_ui); |
| 145 | 159 |
| 146 #if defined(OS_CHROMEOS) | 160 #if defined(OS_CHROMEOS) |
| 147 web_ui->AddMessageHandler(new VersionHandlerChromeOS()); | 161 web_ui->AddMessageHandler(new VersionHandlerChromeOS()); |
| 148 #else | 162 #else |
| 149 web_ui->AddMessageHandler(new VersionHandler()); | 163 web_ui->AddMessageHandler(new VersionHandler()); |
| 150 #endif | 164 #endif |
| 151 | 165 |
| 152 #if defined(ENABLE_THEMES) | 166 #if defined(ENABLE_THEMES) |
| 153 // Set up the chrome://theme/ source. | 167 // Set up the chrome://theme/ source. |
| 154 ThemeSource* theme = new ThemeSource(profile); | 168 ThemeSource* theme = new ThemeSource(profile); |
| 155 content::URLDataSource::Add(profile, theme); | 169 content::URLDataSource::Add(profile, theme); |
| 156 #endif | 170 #endif |
| 157 | 171 |
| 158 WebUIDataSource::Add(profile, CreateVersionUIDataSource()); | 172 WebUIDataSource::Add(profile, CreateVersionUIDataSource()); |
| 159 } | 173 } |
| 160 | 174 |
| 161 VersionUI::~VersionUI() { | 175 VersionUI::~VersionUI() { |
| 162 } | 176 } |
| OLD | NEW |