Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(102)

Side by Side Diff: chrome/installer/setup/install.cc

Issue 12316097: Added master_preferences to control shortcuts on windows. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include <winuser.h> 10 #include <winuser.h>
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 378
379 void CreateOrUpdateShortcuts( 379 void CreateOrUpdateShortcuts(
380 const base::FilePath& target, 380 const base::FilePath& target,
381 const Product& product, 381 const Product& product,
382 const MasterPreferences& prefs, 382 const MasterPreferences& prefs,
383 InstallShortcutLevel install_level, 383 InstallShortcutLevel install_level,
384 InstallShortcutOperation install_operation) { 384 InstallShortcutOperation install_operation) {
385 // Extract shortcut preferences from |prefs|. 385 // Extract shortcut preferences from |prefs|.
386 bool do_not_create_desktop_shortcut = false; 386 bool do_not_create_desktop_shortcut = false;
387 bool do_not_create_quick_launch_shortcut = false; 387 bool do_not_create_quick_launch_shortcut = false;
388 bool do_not_create_start_menu_shortcut = false;
388 bool alternate_desktop_shortcut = false; 389 bool alternate_desktop_shortcut = false;
389 prefs.GetBool(master_preferences::kDoNotCreateDesktopShortcut, 390 prefs.GetBool(master_preferences::kDoNotCreateDesktopShortcut,
390 &do_not_create_desktop_shortcut); 391 &do_not_create_desktop_shortcut);
391 prefs.GetBool(master_preferences::kDoNotCreateQuickLaunchShortcut, 392 prefs.GetBool(master_preferences::kDoNotCreateQuickLaunchShortcut,
392 &do_not_create_quick_launch_shortcut); 393 &do_not_create_quick_launch_shortcut);
394 prefs.GetBool(master_preferences::kDoNotCreateStartMenuShortcut,
395 &do_not_create_start_menu_shortcut);
393 prefs.GetBool(master_preferences::kAltShortcutText, 396 prefs.GetBool(master_preferences::kAltShortcutText,
394 &alternate_desktop_shortcut); 397 &alternate_desktop_shortcut);
395 398
396 BrowserDistribution* dist = product.distribution(); 399 BrowserDistribution* dist = product.distribution();
397 400
398 // The default operation on update is to overwrite shortcuts with the 401 // The default operation on update is to overwrite shortcuts with the
399 // currently desired properties, but do so only for shortcuts that still 402 // currently desired properties, but do so only for shortcuts that still
400 // exist. 403 // exist.
401 ShellUtil::ShortcutOperation shortcut_operation; 404 ShellUtil::ShortcutOperation shortcut_operation;
402 switch (install_operation) { 405 switch (install_operation) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 shortcut_operation == ShellUtil::SHELL_SHORTCUT_REPLACE_EXISTING) { 448 shortcut_operation == ShellUtil::SHELL_SHORTCUT_REPLACE_EXISTING) {
446 // There is no such thing as an all-users Quick Launch shortcut, always 449 // There is no such thing as an all-users Quick Launch shortcut, always
447 // install the per-user shortcut. 450 // install the per-user shortcut.
448 ShellUtil::ShortcutProperties quick_launch_properties(base_properties); 451 ShellUtil::ShortcutProperties quick_launch_properties(base_properties);
449 quick_launch_properties.level = ShellUtil::CURRENT_USER; 452 quick_launch_properties.level = ShellUtil::CURRENT_USER;
450 ExecuteAndLogShortcutOperation( 453 ExecuteAndLogShortcutOperation(
451 ShellUtil::SHORTCUT_LOCATION_QUICK_LAUNCH, dist, 454 ShellUtil::SHORTCUT_LOCATION_QUICK_LAUNCH, dist,
452 quick_launch_properties, shortcut_operation); 455 quick_launch_properties, shortcut_operation);
453 } 456 }
454 457
455 ShellUtil::ShortcutProperties start_menu_properties(base_properties); 458 if (!do_not_create_start_menu_shortcut ||
456 // IMPORTANT: Only the default (no arguments and default browserappid) browser 459 shortcut_operation == ShellUtil::SHELL_SHORTCUT_REPLACE_EXISTING) {
457 // shortcut in the Start menu (Start screen on Win8+) should be made dual 460 ShellUtil::ShortcutProperties start_menu_properties(base_properties);
458 // mode. 461 // IMPORTANT: Only the default (no arguments and default browserappid)
459 start_menu_properties.set_dual_mode(true); 462 // browser shortcut in the Start menu (Start screen on Win8+) should be made
460 if (shortcut_operation == ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS || 463 // dual mode.
461 shortcut_operation == 464 start_menu_properties.set_dual_mode(true);
462 ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL) { 465 if (shortcut_operation == ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS ||
463 start_menu_properties.set_pin_to_taskbar(true); 466 shortcut_operation ==
467 ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL) {
468 start_menu_properties.set_pin_to_taskbar(true);
469 }
470 ExecuteAndLogShortcutOperation(ShellUtil::SHORTCUT_LOCATION_START_MENU,
471 dist, start_menu_properties,
472 shortcut_operation);
464 } 473 }
465 ExecuteAndLogShortcutOperation(ShellUtil::SHORTCUT_LOCATION_START_MENU,
466 dist, start_menu_properties,
467 shortcut_operation);
468 } 474 }
469 475
470 void RegisterChromeOnMachine(const InstallerState& installer_state, 476 void RegisterChromeOnMachine(const InstallerState& installer_state,
471 const Product& product, 477 const Product& product,
472 bool make_chrome_default) { 478 bool make_chrome_default) {
473 DCHECK(product.is_chrome()); 479 DCHECK(product.is_chrome());
474 480
475 // Try to add Chrome to Media Player shim inclusion list. We don't do any 481 // Try to add Chrome to Media Player shim inclusion list. We don't do any
476 // error checking here because this operation will fail if user doesn't 482 // error checking here because this operation will fail if user doesn't
477 // have admin rights and we want to ignore the error. 483 // have admin rights and we want to ignore the error.
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
704 if (app_host_path.empty()) 710 if (app_host_path.empty())
705 return false; 711 return false;
706 712
707 CommandLine cmd(app_host_path); 713 CommandLine cmd(app_host_path);
708 cmd.AppendSwitchASCII(::switches::kInstallFromWebstore, app_code); 714 cmd.AppendSwitchASCII(::switches::kInstallFromWebstore, app_code);
709 VLOG(1) << "App install command: " << cmd.GetCommandLineString(); 715 VLOG(1) << "App install command: " << cmd.GetCommandLineString();
710 return base::LaunchProcess(cmd, base::LaunchOptions(), NULL); 716 return base::LaunchProcess(cmd, base::LaunchOptions(), NULL);
711 } 717 }
712 718
713 } // namespace installer 719 } // namespace installer
OLDNEW
« no previous file with comments | « no previous file | chrome/installer/util/master_preferences.cc » ('j') | chrome/installer/util/master_preferences.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698