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/installer/setup/install.h" | 5 #include "chrome/installer/setup/install.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 #include <shlobj.h> | 8 #include <shlobj.h> |
9 #include <time.h> | 9 #include <time.h> |
10 | 10 |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 elements_dir.push_back(base::FilePath::kSeparators[0]); | 295 elements_dir.push_back(base::FilePath::kSeparators[0]); |
296 elements_dir.append(installer::kVisualElements); | 296 elements_dir.append(installer::kVisualElements); |
297 | 297 |
298 // Some distributions of Chromium may not include visual elements. Only | 298 // Some distributions of Chromium may not include visual elements. Only |
299 // proceed if this distribution does. | 299 // proceed if this distribution does. |
300 if (!base::PathExists(src_path.Append(elements_dir))) { | 300 if (!base::PathExists(src_path.Append(elements_dir))) { |
301 VLOG(1) << "No visual elements found, not writing " | 301 VLOG(1) << "No visual elements found, not writing " |
302 << installer::kVisualElementsManifest << " to " << src_path.value(); | 302 << installer::kVisualElementsManifest << " to " << src_path.value(); |
303 return true; | 303 return true; |
304 } else { | 304 } else { |
305 // A printf_p-style format string for generating the visual elements | 305 // A printf-style format string for generating the visual elements |
306 // manifest. Required arguments, in order, are: | 306 // manifest. Required arguments, in order, are: |
307 // - Localized display name for the product. | 307 // - Localized display name for the product. |
308 // - Relative path to the VisualElements directory. | 308 // - Relative path to the VisualElements directory, three times. |
309 static const char kManifestTemplate[] = | 309 static const char kManifestTemplate[] = |
310 "<Application>\r\n" | 310 "<Application>\r\n" |
311 " <VisualElements\r\n" | 311 " <VisualElements\r\n" |
312 " DisplayName='%1$ls'\r\n" | 312 " DisplayName='%ls'\r\n" |
313 " Logo='%2$ls\\Logo.png'\r\n" | 313 " Logo='%ls\\Logo.png'\r\n" |
314 " SmallLogo='%2$ls\\SmallLogo.png'\r\n" | 314 " SmallLogo='%ls\\SmallLogo.png'\r\n" |
315 " ForegroundText='light'\r\n" | 315 " ForegroundText='light'\r\n" |
316 " BackgroundColor='#323232'>\r\n" | 316 " BackgroundColor='#323232'>\r\n" |
317 " <DefaultTile ShowName='allLogos'/>\r\n" | 317 " <DefaultTile ShowName='allLogos'/>\r\n" |
318 " <SplashScreen Image='%2$ls\\splash-620x300.png'/>\r\n" | 318 " <SplashScreen Image='%ls\\splash-620x300.png'/>\r\n" |
319 " </VisualElements>\r\n" | 319 " </VisualElements>\r\n" |
320 "</Application>"; | 320 "</Application>"; |
321 | 321 |
322 const base::string16 manifest_template( | 322 const base::string16 manifest_template( |
323 base::ASCIIToUTF16(kManifestTemplate)); | 323 base::ASCIIToUTF16(kManifestTemplate)); |
324 | 324 |
325 BrowserDistribution* dist = BrowserDistribution::GetSpecificDistribution( | 325 BrowserDistribution* dist = BrowserDistribution::GetSpecificDistribution( |
326 BrowserDistribution::CHROME_BROWSER); | 326 BrowserDistribution::CHROME_BROWSER); |
327 // TODO(grt): http://crbug.com/75152 Write a reference to a localized | 327 // TODO(grt): http://crbug.com/75152 Write a reference to a localized |
328 // resource for |display_name|. | 328 // resource for |display_name|. |
329 base::string16 display_name(dist->GetDisplayName()); | 329 base::string16 display_name(dist->GetDisplayName()); |
330 EscapeXmlAttributeValueInSingleQuotes(&display_name); | 330 EscapeXmlAttributeValueInSingleQuotes(&display_name); |
331 | 331 |
332 // Fill the manifest with the desired values. | 332 // Fill the manifest with the desired values. |
333 base::string16 manifest16(base::StringPrintf( | 333 base::string16 manifest16(base::StringPrintf( |
334 manifest_template.c_str(), display_name.c_str(), elements_dir.c_str())); | 334 manifest_template.c_str(), display_name.c_str(), elements_dir.c_str(), |
| 335 elements_dir.c_str(), elements_dir.c_str())); |
335 | 336 |
336 // Write the manifest to |src_path|. | 337 // Write the manifest to |src_path|. |
337 const std::string manifest(base::UTF16ToUTF8(manifest16)); | 338 const std::string manifest(base::UTF16ToUTF8(manifest16)); |
338 int size = base::checked_cast<int>(manifest.size()); | 339 int size = base::checked_cast<int>(manifest.size()); |
339 if (base::WriteFile( | 340 if (base::WriteFile( |
340 src_path.Append(installer::kVisualElementsManifest), | 341 src_path.Append(installer::kVisualElementsManifest), |
341 manifest.c_str(), size) == size) { | 342 manifest.c_str(), size) == size) { |
342 VLOG(1) << "Successfully wrote " << installer::kVisualElementsManifest | 343 VLOG(1) << "Successfully wrote " << installer::kVisualElementsManifest |
343 << " to " << src_path.value(); | 344 << " to " << src_path.value(); |
344 return true; | 345 return true; |
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
672 INSTALL_SHORTCUT_CREATE_EACH_IF_NO_SYSTEM_LEVEL); | 673 INSTALL_SHORTCUT_CREATE_EACH_IF_NO_SYSTEM_LEVEL); |
673 | 674 |
674 // Read master_preferences copied beside chrome.exe at install. | 675 // Read master_preferences copied beside chrome.exe at install. |
675 MasterPreferences prefs(installation_root.AppendASCII(kDefaultMasterPrefs)); | 676 MasterPreferences prefs(installation_root.AppendASCII(kDefaultMasterPrefs)); |
676 base::FilePath chrome_exe(installation_root.Append(kChromeExe)); | 677 base::FilePath chrome_exe(installation_root.Append(kChromeExe)); |
677 CreateOrUpdateShortcuts( | 678 CreateOrUpdateShortcuts( |
678 chrome_exe, chrome, prefs, CURRENT_USER, install_operation); | 679 chrome_exe, chrome, prefs, CURRENT_USER, install_operation); |
679 } | 680 } |
680 | 681 |
681 } // namespace installer | 682 } // namespace installer |
OLD | NEW |