• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include "chrome/installer/util/updating_app_registration_data.h"
21 
22 #include "installer_util_strings.h"  // NOLINT
23 
24 namespace {
25 const wchar_t kChromeFrameGuid[] = L"{8BA986DA-5100-405E-AA35-86F34A02ACBF}";
26 }
27 
ChromeFrameDistribution()28 ChromeFrameDistribution::ChromeFrameDistribution()
29     : BrowserDistribution(
30           CHROME_FRAME,
31           scoped_ptr<AppRegistrationData>(
32               new UpdatingAppRegistrationData(kChromeFrameGuid))) {
33 }
34 
GetBaseAppName()35 base::string16 ChromeFrameDistribution::GetBaseAppName() {
36   return L"Google Chrome Frame";
37 }
38 
GetBrowserProgIdPrefix()39 base::string16 ChromeFrameDistribution::GetBrowserProgIdPrefix() {
40   NOTREACHED();
41   return base::string16();
42 }
43 
GetBrowserProgIdDesc()44 base::string16 ChromeFrameDistribution::GetBrowserProgIdDesc() {
45   NOTREACHED();
46   return base::string16();
47 }
48 
GetDisplayName()49 base::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 
GetShortcutName(ShortcutType shortcut_type)57 base::string16 ChromeFrameDistribution::GetShortcutName(
58     ShortcutType shortcut_type) {
59   NOTREACHED();
60   return base::string16();
61 }
62 
GetInstallSubDir()63 base::string16 ChromeFrameDistribution::GetInstallSubDir() {
64   return L"Google\\Chrome Frame";
65 }
66 
GetPublisherName()67 base::string16 ChromeFrameDistribution::GetPublisherName() {
68   const base::string16& publisher_name =
69       installer::GetLocalizedString(IDS_ABOUT_VERSION_COMPANY_NAME_BASE);
70   return publisher_name;
71 }
72 
GetAppDescription()73 base::string16 ChromeFrameDistribution::GetAppDescription() {
74   return L"Chrome in a Frame.";
75 }
76 
GetLongAppDescription()77 base::string16 ChromeFrameDistribution::GetLongAppDescription() {
78   return L"Chrome in a Frame.";
79 }
80 
GetSafeBrowsingName()81 std::string ChromeFrameDistribution::GetSafeBrowsingName() {
82   return "googlechromeframe";
83 }
84 
GetNetworkStatsServer() const85 std::string ChromeFrameDistribution::GetNetworkStatsServer() const {
86   return chrome_common_net::kEchoTestServerLocation;
87 }
88 
GetUninstallLinkName()89 base::string16 ChromeFrameDistribution::GetUninstallLinkName() {
90   return L"Uninstall Chrome Frame";
91 }
92 
GetUninstallRegPath()93 base::string16 ChromeFrameDistribution::GetUninstallRegPath() {
94   return L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"
95          L"Google Chrome Frame";
96 }
97 
GetIconFilename()98 base::string16 ChromeFrameDistribution::GetIconFilename() {
99   return installer::kChromeExe;
100 }
101 
GetIconIndex(ShortcutType shortcut_type)102 int ChromeFrameDistribution::GetIconIndex(ShortcutType shortcut_type) {
103   switch (shortcut_type) {
104     case SHORTCUT_CHROME:
105       return 0;
106     default:
107       NOTREACHED();
108       return 0;
109   }
110 }
111 
112 BrowserDistribution::DefaultBrowserControlPolicy
GetDefaultBrowserControlPolicy()113     ChromeFrameDistribution::GetDefaultBrowserControlPolicy() {
114   return DEFAULT_BROWSER_UNSUPPORTED;
115 }
116 
CanCreateDesktopShortcuts()117 bool ChromeFrameDistribution::CanCreateDesktopShortcuts() {
118   return false;
119 }
120 
GetCommandExecuteImplClsid(base::string16 * handler_class_uuid)121 bool ChromeFrameDistribution::GetCommandExecuteImplClsid(
122     base::string16* handler_class_uuid) {
123   return false;
124 }
125 
UpdateInstallStatus(bool system_install,installer::ArchiveType archive_type,installer::InstallStatus install_status)126 void ChromeFrameDistribution::UpdateInstallStatus(bool system_install,
127     installer::ArchiveType archive_type,
128     installer::InstallStatus install_status) {
129 #if defined(GOOGLE_CHROME_BUILD)
130   GoogleUpdateSettings::UpdateInstallStatus(system_install,
131       archive_type, InstallUtil::GetInstallReturnCode(install_status),
132       kChromeFrameGuid);
133 #endif
134 }
135