chrome_app_host_distribution.cc revision 3551c9c881056c480085172ff9840cab31610854
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 3// found in the LICENSE file. 4// 5// This file defines a specific implementation of BrowserDistribution class for 6// Chrome App Host. It overrides the bare minimum of methods necessary to get a 7// Chrome App Host installer that does not interact with Google Chrome or 8// Chromium installations. 9 10#include "chrome/installer/util/chrome_app_host_distribution.h" 11 12#include "base/strings/string_util.h" 13#include "chrome/common/net/test_server_locations.h" 14#include "chrome/installer/util/channel_info.h" 15#include "chrome/installer/util/google_update_constants.h" 16#include "chrome/installer/util/google_update_settings.h" 17#include "chrome/installer/util/helper.h" 18#include "chrome/installer/util/install_util.h" 19#include "chrome/installer/util/l10n_string_util.h" 20 21#include "installer_util_strings.h" // NOLINT 22 23namespace { 24 25const wchar_t kChromeAppHostGuid[] = L"{FDA71E6F-AC4C-4a00-8B70-9958A68906BF}"; 26 27} // namespace 28 29ChromeAppHostDistribution::ChromeAppHostDistribution() 30 : BrowserDistribution(CHROME_APP_HOST) { 31} 32 33string16 ChromeAppHostDistribution::GetAppGuid() { 34 return kChromeAppHostGuid; 35} 36 37string16 ChromeAppHostDistribution::GetBaseAppName() { 38 return L"Google Chrome App Launcher"; 39} 40 41string16 ChromeAppHostDistribution::GetDisplayName() { 42 return GetShortcutName(SHORTCUT_APP_LAUNCHER); 43} 44 45string16 ChromeAppHostDistribution::GetShortcutName( 46 ShortcutType shortcut_type) { 47 DCHECK_EQ(shortcut_type, SHORTCUT_APP_LAUNCHER); 48 return installer::GetLocalizedString(IDS_PRODUCT_APP_LAUNCHER_NAME_BASE); 49} 50 51string16 ChromeAppHostDistribution::GetBaseAppId() { 52 // Should be same as AppListController::GetAppModelId(). 53 return L"ChromeAppList"; 54} 55 56string16 ChromeAppHostDistribution::GetInstallSubDir() { 57 return BrowserDistribution::GetSpecificDistribution( 58 BrowserDistribution::CHROME_BINARIES)->GetInstallSubDir(); 59} 60 61string16 ChromeAppHostDistribution::GetPublisherName() { 62 const string16& publisher_name = 63 installer::GetLocalizedString(IDS_ABOUT_VERSION_COMPANY_NAME_BASE); 64 return publisher_name; 65} 66 67string16 ChromeAppHostDistribution::GetAppDescription() { 68 const string16& app_description = 69 installer::GetLocalizedString(IDS_APP_LAUNCHER_SHORTCUT_TOOLTIP_BASE); 70 return app_description; 71} 72 73string16 ChromeAppHostDistribution::GetLongAppDescription() { 74 const string16& app_description = 75 installer::GetLocalizedString(IDS_APP_LAUNCHER_PRODUCT_DESCRIPTION_BASE); 76 return app_description; 77} 78 79std::string ChromeAppHostDistribution::GetSafeBrowsingName() { 80 return "googlechromeapphost"; 81} 82 83string16 ChromeAppHostDistribution::GetStateKey() { 84 string16 key(google_update::kRegPathClientState); 85 key.append(L"\\"); 86 key.append(kChromeAppHostGuid); 87 return key; 88} 89 90string16 ChromeAppHostDistribution::GetStateMediumKey() { 91 string16 key(google_update::kRegPathClientStateMedium); 92 key.append(L"\\"); 93 key.append(kChromeAppHostGuid); 94 return key; 95} 96 97std::string ChromeAppHostDistribution::GetNetworkStatsServer() const { 98 return chrome_common_net::kEchoTestServerLocation; 99} 100 101std::string ChromeAppHostDistribution::GetHttpPipeliningTestServer() const { 102 return chrome_common_net::kPipelineTestServerBaseUrl; 103} 104 105string16 ChromeAppHostDistribution::GetUninstallLinkName() { 106 const string16& link_name = 107 installer::GetLocalizedString(IDS_UNINSTALL_APP_LAUNCHER_BASE); 108 return link_name; 109} 110 111string16 ChromeAppHostDistribution::GetUninstallRegPath() { 112 return L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" 113 L"Google Chrome App Launcher"; 114} 115 116string16 ChromeAppHostDistribution::GetVersionKey() { 117 string16 key(google_update::kRegPathClients); 118 key.append(L"\\"); 119 key.append(kChromeAppHostGuid); 120 return key; 121} 122 123bool ChromeAppHostDistribution::CanSetAsDefault() { 124 return false; 125} 126 127bool ChromeAppHostDistribution::CanCreateDesktopShortcuts() { 128 return true; 129} 130 131string16 ChromeAppHostDistribution::GetIconFilename() { 132 return installer::kChromeAppHostExe; 133} 134 135bool ChromeAppHostDistribution::GetCommandExecuteImplClsid( 136 string16* handler_class_uuid) { 137 return false; 138} 139 140void ChromeAppHostDistribution::UpdateInstallStatus(bool system_install, 141 installer::ArchiveType archive_type, 142 installer::InstallStatus install_status) { 143#if defined(GOOGLE_CHROME_BUILD) 144 GoogleUpdateSettings::UpdateInstallStatus(system_install, 145 archive_type, InstallUtil::GetInstallReturnCode(install_status), 146 kChromeAppHostGuid); 147#endif 148} 149