chrome_frame_distribution.cc revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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 Frame. It overrides the bare minimum of methods necessary to get a 7// Chrome Frame installer that does not interact with Google Chrome or 8// Chromium installations. 9 10#include "chrome/installer/util/chrome_frame_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 { 24const wchar_t kChromeFrameGuid[] = L"{8BA986DA-5100-405E-AA35-86F34A02ACBF}"; 25} 26 27ChromeFrameDistribution::ChromeFrameDistribution() 28 : BrowserDistribution(CHROME_FRAME) { 29} 30 31base::string16 ChromeFrameDistribution::GetAppGuid() { 32 return kChromeFrameGuid; 33} 34 35base::string16 ChromeFrameDistribution::GetBaseAppName() { 36 return L"Google Chrome Frame"; 37} 38 39base::string16 ChromeFrameDistribution::GetBrowserProgIdPrefix() { 40 NOTREACHED(); 41 return base::string16(); 42} 43 44base::string16 ChromeFrameDistribution::GetBrowserProgIdDesc() { 45 NOTREACHED(); 46 return base::string16(); 47} 48 49base::string16 ChromeFrameDistribution::GetDisplayName() { 50#if defined(GOOGLE_CHROME_BUILD) 51 return L"Google Chrome Frame"; 52#else 53 return L"Chromium Frame"; 54#endif 55} 56 57base::string16 ChromeFrameDistribution::GetShortcutName( 58 ShortcutType shortcut_type) { 59 NOTREACHED(); 60 return base::string16(); 61} 62 63base::string16 ChromeFrameDistribution::GetInstallSubDir() { 64 return L"Google\\Chrome Frame"; 65} 66 67base::string16 ChromeFrameDistribution::GetPublisherName() { 68 const base::string16& publisher_name = 69 installer::GetLocalizedString(IDS_ABOUT_VERSION_COMPANY_NAME_BASE); 70 return publisher_name; 71} 72 73base::string16 ChromeFrameDistribution::GetAppDescription() { 74 return L"Chrome in a Frame."; 75} 76 77base::string16 ChromeFrameDistribution::GetLongAppDescription() { 78 return L"Chrome in a Frame."; 79} 80 81std::string ChromeFrameDistribution::GetSafeBrowsingName() { 82 return "googlechromeframe"; 83} 84 85base::string16 ChromeFrameDistribution::GetStateKey() { 86 base::string16 key(google_update::kRegPathClientState); 87 key.append(L"\\"); 88 key.append(kChromeFrameGuid); 89 return key; 90} 91 92base::string16 ChromeFrameDistribution::GetStateMediumKey() { 93 base::string16 key(google_update::kRegPathClientStateMedium); 94 key.append(L"\\"); 95 key.append(kChromeFrameGuid); 96 return key; 97} 98 99std::string ChromeFrameDistribution::GetNetworkStatsServer() const { 100 return chrome_common_net::kEchoTestServerLocation; 101} 102 103std::string ChromeFrameDistribution::GetHttpPipeliningTestServer() const { 104 return chrome_common_net::kPipelineTestServerBaseUrl; 105} 106 107base::string16 ChromeFrameDistribution::GetUninstallLinkName() { 108 return L"Uninstall Chrome Frame"; 109} 110 111base::string16 ChromeFrameDistribution::GetUninstallRegPath() { 112 return L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" 113 L"Google Chrome Frame"; 114} 115 116base::string16 ChromeFrameDistribution::GetVersionKey() { 117 base::string16 key(google_update::kRegPathClients); 118 key.append(L"\\"); 119 key.append(kChromeFrameGuid); 120 return key; 121} 122 123base::string16 ChromeFrameDistribution::GetIconFilename() { 124 return installer::kChromeExe; 125} 126 127int ChromeFrameDistribution::GetIconIndex(ShortcutType shortcut_type) { 128 switch (shortcut_type) { 129 case SHORTCUT_CHROME: 130 return 0; 131 default: 132 NOTREACHED(); 133 return 0; 134 } 135} 136 137BrowserDistribution::DefaultBrowserControlPolicy 138 ChromeFrameDistribution::GetDefaultBrowserControlPolicy() { 139 return DEFAULT_BROWSER_UNSUPPORTED; 140} 141 142bool ChromeFrameDistribution::CanCreateDesktopShortcuts() { 143 return false; 144} 145 146bool ChromeFrameDistribution::GetCommandExecuteImplClsid( 147 base::string16* handler_class_uuid) { 148 return false; 149} 150 151void ChromeFrameDistribution::UpdateInstallStatus(bool system_install, 152 installer::ArchiveType archive_type, 153 installer::InstallStatus install_status) { 154#if defined(GOOGLE_CHROME_BUILD) 155 GoogleUpdateSettings::UpdateInstallStatus(system_install, 156 archive_type, InstallUtil::GetInstallReturnCode(install_status), 157 kChromeFrameGuid); 158#endif 159} 160