chrome_frame_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 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 31string16 ChromeFrameDistribution::GetAppGuid() { 32 return kChromeFrameGuid; 33} 34 35string16 ChromeFrameDistribution::GetBaseAppName() { 36 return L"Google Chrome Frame"; 37} 38 39string16 ChromeFrameDistribution::GetShortcutName(ShortcutType shortcut_type) { 40 switch (shortcut_type) { 41 case SHORTCUT_CHROME: 42 case SHORTCUT_CHROME_ALTERNATE: 43 return installer::GetLocalizedString(IDS_PRODUCT_FRAME_NAME_BASE); 44 default: 45 NOTREACHED(); 46 return string16(); 47 } 48} 49 50string16 ChromeFrameDistribution::GetInstallSubDir() { 51 return L"Google\\Chrome Frame"; 52} 53 54string16 ChromeFrameDistribution::GetPublisherName() { 55 const string16& publisher_name = 56 installer::GetLocalizedString(IDS_ABOUT_VERSION_COMPANY_NAME_BASE); 57 return publisher_name; 58} 59 60string16 ChromeFrameDistribution::GetAppDescription() { 61 return L"Chrome in a Frame."; 62} 63 64string16 ChromeFrameDistribution::GetLongAppDescription() { 65 return L"Chrome in a Frame."; 66} 67 68std::string ChromeFrameDistribution::GetSafeBrowsingName() { 69 return "googlechromeframe"; 70} 71 72string16 ChromeFrameDistribution::GetStateKey() { 73 string16 key(google_update::kRegPathClientState); 74 key.append(L"\\"); 75 key.append(kChromeFrameGuid); 76 return key; 77} 78 79string16 ChromeFrameDistribution::GetStateMediumKey() { 80 string16 key(google_update::kRegPathClientStateMedium); 81 key.append(L"\\"); 82 key.append(kChromeFrameGuid); 83 return key; 84} 85 86std::string ChromeFrameDistribution::GetNetworkStatsServer() const { 87 return chrome_common_net::kEchoTestServerLocation; 88} 89 90std::string ChromeFrameDistribution::GetHttpPipeliningTestServer() const { 91 return chrome_common_net::kPipelineTestServerBaseUrl; 92} 93 94string16 ChromeFrameDistribution::GetUninstallLinkName() { 95 return L"Uninstall Chrome Frame"; 96} 97 98string16 ChromeFrameDistribution::GetUninstallRegPath() { 99 return L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" 100 L"Google Chrome Frame"; 101} 102 103string16 ChromeFrameDistribution::GetVersionKey() { 104 string16 key(google_update::kRegPathClients); 105 key.append(L"\\"); 106 key.append(kChromeFrameGuid); 107 return key; 108} 109 110string16 ChromeFrameDistribution::GetIconFilename() { 111 return installer::kChromeExe; 112} 113 114int ChromeFrameDistribution::GetIconIndex(ShortcutType shortcut_type) { 115 switch (shortcut_type) { 116 case SHORTCUT_CHROME: 117 return 0; 118 default: 119 NOTREACHED(); 120 return 0; 121 } 122} 123 124bool ChromeFrameDistribution::CanSetAsDefault() { 125 return false; 126} 127 128bool ChromeFrameDistribution::CanCreateDesktopShortcuts() { 129 return false; 130} 131 132bool ChromeFrameDistribution::GetCommandExecuteImplClsid( 133 string16* handler_class_uuid) { 134 return false; 135} 136 137void ChromeFrameDistribution::UpdateInstallStatus(bool system_install, 138 installer::ArchiveType archive_type, 139 installer::InstallStatus install_status) { 140#if defined(GOOGLE_CHROME_BUILD) 141 GoogleUpdateSettings::UpdateInstallStatus(system_install, 142 archive_type, InstallUtil::GetInstallReturnCode(install_status), 143 kChromeFrameGuid); 144#endif 145} 146