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

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: split into 2 prefs 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 10
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 356
357 void CreateOrUpdateShortcuts( 357 void CreateOrUpdateShortcuts(
358 const base::FilePath& target, 358 const base::FilePath& target,
359 const Product& product, 359 const Product& product,
360 const MasterPreferences& prefs, 360 const MasterPreferences& prefs,
361 InstallShortcutLevel install_level, 361 InstallShortcutLevel install_level,
362 InstallShortcutOperation install_operation) { 362 InstallShortcutOperation install_operation) {
363 // Extract shortcut preferences from |prefs|. 363 // Extract shortcut preferences from |prefs|.
364 bool do_not_create_desktop_shortcut = false; 364 bool do_not_create_desktop_shortcut = false;
365 bool do_not_create_quick_launch_shortcut = false; 365 bool do_not_create_quick_launch_shortcut = false;
366 bool do_not_create_taskbar_shortcut = false;
367 bool do_not_create_any_shortcuts = false;
366 bool alternate_desktop_shortcut = false; 368 bool alternate_desktop_shortcut = false;
367 prefs.GetBool(master_preferences::kDoNotCreateDesktopShortcut, 369 prefs.GetBool(master_preferences::kDoNotCreateDesktopShortcut,
368 &do_not_create_desktop_shortcut); 370 &do_not_create_desktop_shortcut);
369 prefs.GetBool(master_preferences::kDoNotCreateQuickLaunchShortcut, 371 prefs.GetBool(master_preferences::kDoNotCreateQuickLaunchShortcut,
370 &do_not_create_quick_launch_shortcut); 372 &do_not_create_quick_launch_shortcut);
373 prefs.GetBool(master_preferences::kDoNotCreateTaskbarShortcut,
374 &do_not_create_taskbar_shortcut);
375 prefs.GetBool(master_preferences::kDoNotCreateAnyShortcuts,
376 &do_not_create_any_shortcuts);
371 prefs.GetBool(master_preferences::kAltShortcutText, 377 prefs.GetBool(master_preferences::kAltShortcutText,
372 &alternate_desktop_shortcut); 378 &alternate_desktop_shortcut);
373 379
374 BrowserDistribution* dist = product.distribution(); 380 BrowserDistribution* dist = product.distribution();
375 381
376 // The default operation on update is to overwrite shortcuts with the 382 // The default operation on update is to overwrite shortcuts with the
377 // currently desired properties, but do so only for shortcuts that still 383 // currently desired properties, but do so only for shortcuts that still
378 // exist. 384 // exist.
379 ShellUtil::ShortcutOperation shortcut_operation; 385 ShellUtil::ShortcutOperation shortcut_operation;
380 switch (install_operation) { 386 switch (install_operation) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 shortcut_operation == ShellUtil::SHELL_SHORTCUT_REPLACE_EXISTING) { 429 shortcut_operation == ShellUtil::SHELL_SHORTCUT_REPLACE_EXISTING) {
424 // There is no such thing as an all-users Quick Launch shortcut, always 430 // There is no such thing as an all-users Quick Launch shortcut, always
425 // install the per-user shortcut. 431 // install the per-user shortcut.
426 ShellUtil::ShortcutProperties quick_launch_properties(base_properties); 432 ShellUtil::ShortcutProperties quick_launch_properties(base_properties);
427 quick_launch_properties.level = ShellUtil::CURRENT_USER; 433 quick_launch_properties.level = ShellUtil::CURRENT_USER;
428 ExecuteAndLogShortcutOperation( 434 ExecuteAndLogShortcutOperation(
429 ShellUtil::SHORTCUT_LOCATION_QUICK_LAUNCH, dist, 435 ShellUtil::SHORTCUT_LOCATION_QUICK_LAUNCH, dist,
430 quick_launch_properties, shortcut_operation); 436 quick_launch_properties, shortcut_operation);
431 } 437 }
432 438
433 ShellUtil::ShortcutProperties start_menu_properties(base_properties); 439 // Currently, |do_not_create_any_shortcuts| only affects the creation of the
gab 2013/03/06 20:20:32 I was seeing more "do_not_create_any_shortcuts" as
Joao da Silva 2013/03/06 21:21:33 Makes sense, done.
434 // IMPORTANT: Only the default (no arguments and default browserappid) browser 440 // start menu shortcut; all the other do_not_* flags are overridden by
435 // shortcut in the Start menu (Start screen on Win8+) should be made dual 441 // |do_not_create_any_shortcuts|.
436 // mode. 442 if (!do_not_create_any_shortcuts) {
437 start_menu_properties.set_dual_mode(true); 443 ShellUtil::ShortcutProperties start_menu_properties(base_properties);
438 if (shortcut_operation == ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS || 444 // IMPORTANT: Only the default (no arguments and default browserappid)
439 shortcut_operation == 445 // browser shortcut in the Start menu (Start screen on Win8+) should be made
440 ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL) { 446 // dual mode.
441 start_menu_properties.set_pin_to_taskbar(true); 447 start_menu_properties.set_dual_mode(true);
448 if (shortcut_operation == ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS ||
449 shortcut_operation ==
450 ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL) {
451 start_menu_properties.set_pin_to_taskbar(!do_not_create_taskbar_shortcut);
gab 2013/03/06 20:20:32 Shouldn't set this bit if (!do_not_create_taskbar_
Joao da Silva 2013/03/06 21:21:33 Done (this was just setting it to false in that ca
gab 2013/03/06 23:18:16 Oh my bad, I had missed this change (had assumed t
452 }
453 ExecuteAndLogShortcutOperation(ShellUtil::SHORTCUT_LOCATION_START_MENU,
454 dist, start_menu_properties,
455 shortcut_operation);
442 } 456 }
443 ExecuteAndLogShortcutOperation(ShellUtil::SHORTCUT_LOCATION_START_MENU,
444 dist, start_menu_properties,
445 shortcut_operation);
446 } 457 }
447 458
448 void RegisterChromeOnMachine(const InstallerState& installer_state, 459 void RegisterChromeOnMachine(const InstallerState& installer_state,
449 const Product& product, 460 const Product& product,
450 bool make_chrome_default) { 461 bool make_chrome_default) {
451 DCHECK(product.is_chrome()); 462 DCHECK(product.is_chrome());
452 463
453 // Try to add Chrome to Media Player shim inclusion list. We don't do any 464 // Try to add Chrome to Media Player shim inclusion list. We don't do any
454 // error checking here because this operation will fail if user doesn't 465 // error checking here because this operation will fail if user doesn't
455 // have admin rights and we want to ignore the error. 466 // have admin rights and we want to ignore the error.
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 if (app_host_path.empty()) 690 if (app_host_path.empty())
680 return false; 691 return false;
681 692
682 CommandLine cmd(app_host_path); 693 CommandLine cmd(app_host_path);
683 cmd.AppendSwitchASCII(::switches::kInstallFromWebstore, app_code); 694 cmd.AppendSwitchASCII(::switches::kInstallFromWebstore, app_code);
684 VLOG(1) << "App install command: " << cmd.GetCommandLineString(); 695 VLOG(1) << "App install command: " << cmd.GetCommandLineString();
685 return base::LaunchProcess(cmd, base::LaunchOptions(), NULL); 696 return base::LaunchProcess(cmd, base::LaunchOptions(), NULL);
686 } 697 }
687 698
688 } // namespace installer 699 } // namespace installer
OLDNEW
« no previous file with comments | « no previous file | chrome/installer/util/master_preferences.h » ('j') | chrome/installer/util/master_preferences.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698