summaryrefslogtreecommitdiffstats
path: root/chrome/installer/setup/setup_util.h
Commit message (Collapse)AuthorAgeFilesLines
* Differential updates for components. We are adding support for delivering ↵sorin@chromium.org2013-06-211-4/+23
| | | | | | | | | | | | delta updates for Chrome components. Initial platform support for the patcher is Windows only. The update response includes both the full update and, if available, the differential update. The differential update is tried first, then the full update, if needed. BUG=245318 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=207805 Review URL: https://chromiumcodereview.appspot.com/15908002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207917 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 207805 "Differential updates for components. We are addin..."dmichael@chromium.org2013-06-211-23/+4
| | | | | | | | | | | | | | | | | | | Unit tests fail on Mac Dbg with this patch: http://build.chromium.org/p/chromium.mac/buildstatus?builder=Mac%2010.6%20Tests%20%28dbg%29%284%29&number=29470 and http://build.chromium.org/p/chromium.mac/buildstatus?builder=Mac%2010.7%20Tests%20%28dbg%29%284%29&number=12750 > Differential updates for components. We are adding support for delivering delta updates for Chrome components. Initial platform support for the patcher is Windows only. The update response includes both the full update and, if available, the differential update. The differential update is tried first, then the full update, if needed. > > BUG=245318 > > Review URL: https://chromiumcodereview.appspot.com/15908002 TBR=sorin@chromium.org Review URL: https://codereview.chromium.org/17551004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207823 0039d316-1c4b-4281-b951-d872f2087c98
* Differential updates for components. We are adding support for delivering ↵sorin@chromium.org2013-06-211-4/+23
| | | | | | | | | | delta updates for Chrome components. Initial platform support for the patcher is Windows only. The update response includes both the full update and, if available, the differential update. The differential update is tried first, then the full update, if needed. BUG=245318 Review URL: https://chromiumcodereview.appspot.com/15908002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207805 0039d316-1c4b-4281-b951-d872f2087c98
* Use a direct include of strings headers in chrome/installer/, part 1.avi@chromium.org2013-06-111-1/+1
| | | | | | | | | | BUG=247723 TEST=none TBR=ben@chromium.org Review URL: https://chromiumcodereview.appspot.com/16409013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205586 0039d316-1c4b-4281-b951-d872f2087c98
* Lower the I/O priority of the installer when resonable.grt@chromium.org2013-06-041-0/+5
| | | | | | | | | | | | | | | | | | | On operating systems that support it (Vista+), begin background processing mode before doing major disk I/O in the installer if it was launched below the normal process priority class. One hopes that this avoids making users' machines unresponsive while an update is being applied in the background. BUG=167622 TEST=mostly covered by "setup_unittests.exe --gtest_filter=SetupUtilTest.Adjust*", but it will also be interesting to look at verbose installer log files for an install and for a Google Update-driven update. Only the latter should contain "Entered background processing mode." Review URL: https://chromiumcodereview.appspot.com/16023027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203982 0039d316-1c4b-4281-b951-d872f2087c98
* Move Version to base namespace.xhwang@chromium.org2013-04-221-2/+2
| | | | | | | | | | Adds "using base::Version" to the header to avoid having to update everything at once. All forward declares and the locations where the forward declares are used are updated. Review URL: https://chromiumcodereview.appspot.com/14099010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195456 0039d316-1c4b-4281-b951-d872f2087c98
* Refactoring: Splitting AddGenericQuickEnableWorkItems().huangs@chromium.org2013-02-041-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a refactoring task in preparation for adding "RunAsUser" flag in app commands [TODO: Get BUG id]. In install_util.cc, AddGenericQuickEnableWorkItems() was a large routine that contains common code for (A) AddQuickEnableChromeFrameWorkItems() for "quick-enable-cf" (B) AddQuickEnableApplicationLauncherWorkItems() for "quick-enable-application-host" It was assumed that (A) and (B) set the same flags ("SendsPoints" and "WebAccessible"). This assumption will no longer hold once we add "RunAsUser" (for (B) only). However, the flag-setting part is buried deep inside AddGenericQuickEnableWorkItems(). The refactoring task splits the subroutine into smaller parts, and produce some duplicate glue code with acceptibly small repetition. AddGenericQuickEnableWorkItems() is split into the following (+ glue code): (1) WillProductBePresentAfterSetup() => moved to install_util.cc (2) GetGenericQuickEnableCommand() We also made (1) absorb existing code in (A). In addition, (3) GetRegCommandKey() is extracted to eliminate duplicate code to access App Command registry entries. Glue codes are found in the callers (A) and (B). Moreover, code that is used in (A) only are not repeated in (B). BUG=160293 Review URL: https://chromiumcodereview.appspot.com/12114016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180481 0039d316-1c4b-4281-b951-d872f2087c98
* Add FilePath to base namespace.brettw@chromium.org2013-02-021-9/+12
| | | | | | | This updates headers that forward-declare it and a few random places to use the namespace explicitly. There us a using declaration in file_path.h that makes the rest compile, which we can do in future passes. Review URL: https://codereview.chromium.org/12163003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180245 0039d316-1c4b-4281-b951-d872f2087c98
* No longer install all-users shortcuts on system-level installs; instead ↵gab@chromium.org2012-10-301-4/+0
| | | | | | | | | | | | | | | install per-user shortcuts through Active Setup. Design doc: https://docs.google.com/a/chromium.org/document/d/1FjFbmKVj0BIP7xBXMs4lLgQcrc--Jl5jiMiwdDxLeOs/edit BUG=148539 TEST=Shortcuts work as described in the design doc :)! installer_util_unittests.exe --gtest_filter=ShellUtilShortcut* setup_unittests.exe --gtest_filter=InstallShortcutTest* Review URL: https://chromiumcodereview.appspot.com/11229010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164849 0039d316-1c4b-4281-b951-d872f2087c98
* Delegate installation of multi-install products to a pre-existing higher ↵grt@chromium.org2012-10-251-2/+26
| | | | | | | | | | | | | version of the binaries if there is one. Updates are not modified. In so doing, the archive is now extracted into a unique directory so that the two setup.exe invocations don't unpack into the same dir. BUG=157410 TEST=install multi-install GCF version N (possibly not including this change) then try to install Chrome version N-M (including this change). Review URL: https://chromiumcodereview.appspot.com/11272003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164040 0039d316-1c4b-4281-b951-d872f2087c98
* Register Chrome in Active Setup to be called by Windows at user login.gab@chromium.org2012-07-201-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | This commit also adds --configure-user-settings flag to setup.exe which Active Setup will invoke at user login on system-level installs. For now this flag doesn't do anything (it will be implemented in a follow up CL). Active Setup design doc: https://docs.google.com/a/chromium.org/document/d/1yQdG1wMDKi_lf0i8bk6P2_BWqudRb-ap6Y2C5f1RO2w/edit This CL also introduces ScopedTokenPrivilege, a class meant to give the current process's token privileges for a short period of time while some critical operations (loading other users' registry hives) are happening. BUG=132825 TEST=From an admin prompt: setup_unittests.exe --gtest_filter=SetupUtilTest.ScopedTokenPrivilege* Windows only calls Active Setup's StubPath (i.e. setup.exe --configure-user-settings) if: 1) It never called it before (i.e. the HKCU equivalence of the Chrome Active Setup doesn't exist for this user). or 2) The version in HKLM is greater than the version in HKCU (i.e. Chrome has been updated since the last user login). Uninstalling Chrome deletes the HKCU entries for all users (logged in or not). Later reinstalling an older version of Chrome (just reinstall and manually hack the HKLM Active Setup version) has every user go through Active Setup again (if we didn't delete the values ourselves it wouldn't... which is why I had to introduce 75% of this CL simply to delete the HKCU Active Setup entries created by Windows for every user...) Review URL: https://chromiumcodereview.appspot.com/10810021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147667 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the rest of #pragma once in one big CL.ajwong@chromium.org2012-07-111-1/+0
| | | | | | | | | For context see this thread: https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-dev/RMcVNGjB4II TBR=thakis,pkasting,jam git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146163 0039d316-1c4b-4281-b951-d872f2087c98
* Move ProgramCompare from setup_util to install_util.gab@chromium.org2012-05-311-27/+1
| | | | | | | | | | | | | ...and switch to oh so ever beautiful string16s. BUG=None TEST=setup_util_unittests installer_util_unittests --gtest_filter=InstallUtilTest.ProgramCompare Review URL: https://chromiumcodereview.appspot.com/10446095 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139837 0039d316-1c4b-4281-b951-d872f2087c98
* Delete the setup temp file on uninstall.tommi@chromium.org2011-04-121-0/+10
| | | | | | | | TEST=See repro steps in bug report. BUG=79178 Review URL: http://codereview.chromium.org/6823086 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81287 0039d316-1c4b-4281-b951-d872f2087c98
* On uninstall, remove the registry keys that Chrome lays down to make itself ↵grt@chromium.org2011-03-301-3/+28
| | | | | | | | | | the default browser on pre-Vista systems (and/or for software running on Vista that checks legacy registry keys). BUG=67355 TEST=install Chrome, making it the default browser. uninstall it and check the box to make Firefox or IE the new default. try following a link in some application which should result in a browser starting up. notice that the chosen default browser starts. Review URL: http://codereview.chromium.org/6746006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79875 0039d316-1c4b-4281-b951-d872f2087c98
* Add -stage:ID modifier to products' Google Update "ap" values to better ↵grt@chromium.org2011-03-111-11/+17
| | | | | | | | | | | track installation failures. BUG=none TEST=Normal install/uninstall scenarios all function as before. Any that crash leave a "-stage:ID" modifier on the "ap" value. Review URL: http://codereview.chromium.org/6612068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77831 0039d316-1c4b-4281-b951-d872f2087c98
* Fix version folder detection for diff updates. We previously picked a random ↵robertshield@chromium.org2011-02-041-3/+3
| | | | | | | | | | | version folder from the file system against which to apply diff updates. Change that to pick the most recent one instead. BUG=69165 TEST=Apply a diff update from version x.x.x.x to version y.y.y.y when there are at least two version folders already present in the install directory on the file system (i.e. x.x.x.x and other versions lower than x.x.x.x). Observe that the diff update succeeds by picking the correct version folder. Review URL: http://codereview.chromium.org/6334100 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73758 0039d316-1c4b-4281-b951-d872f2087c98
* Installer cleanupamit@chromium.org2010-12-161-2/+2
| | | | | | | | | | | | | 1] Remove installer::version and use base::version in installer 2] Use file_util::FileEnumerator instead of calling FindFirstFile directly BUG=none TEST=covered by existing tests Review URL: http://codereview.chromium.org/5687004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69433 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 69167, itself a revert of 69165 - Merge the installer, installer_util ↵robertshield@chromium.org2010-12-151-2/+2
| | | | | | | | | | | | and setup_util namespaces into a single installer namespace. BUG=61609 TEST=NONE Review URL: http://codereview.chromium.org/5738009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69256 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 69165 - Merge the installer, installer_util and setup_util namespaces ↵robertshield@chromium.org2010-12-141-2/+2
| | | | | | | | | | | | | | into a single installer namespace. BUG=61609 TEST=NONE Review URL: http://codereview.chromium.org/5729004 TBR=robertshield@chromium.org Review URL: http://codereview.chromium.org/5756007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69167 0039d316-1c4b-4281-b951-d872f2087c98
* Merge the installer, installer_util and setup_util namespaces into a single ↵robertshield@chromium.org2010-12-141-2/+2
| | | | | | | | | | | installer namespace. BUG=61609 TEST=NONE Review URL: http://codereview.chromium.org/5729004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69165 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor the installer to support multi-install.tommi@chromium.org2010-12-011-1/+1
| | | | | | | | | | | | | | | | | | The installer now does its work based on distributions and target installation paths. Each distribution has exactly one target installation path but each installation path can have more than one distribution. In the absense of the --multi-install switch, the installer should continue to work as before. The biggest difference here is that we don't rely on a single global distribution object that controls the entire installation flow and we have a few classes for the new abstractions instead of global functions. It's far from perfect, but it's a step towards separating the core file package required for all distributions from the distributions themselves. Additionally, there are tons of little changes here such as consistant usage of FilePath and CommandLine instead of mixing them with std::wstring. TEST=Install, uninstall, upgrade, etc. Everything install related. BUG=61609 Review URL: http://codereview.chromium.org/5172011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67818 0039d316-1c4b-4281-b951-d872f2087c98
* CommandLine: remove wstring-based program() accessorevan@chromium.org2010-10-141-4/+6
| | | | | | | | | | | | | | This was already removed on non-Windows, so this change modifies the remaining Windows-specific usage. In a few places I converted use of wstring paths into FilePath, but in general for Windows-specific code I don't think it's too important to use FilePath everywhere, because it is equivalent on Windows and the current code already works. BUG=23581 Review URL: http://codereview.chromium.org/3817001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62637 0039d316-1c4b-4281-b951-d872f2087c98
* `#pragma once` for app, base, chrome, gfx, ipc, net, skia, viewsthakis@chromium.org2010-07-261-0/+1
| | | | | | | | | BUG=50273 TEST=everything still builds, build is 10% faster on windows, same speed on mac/linux TBR: erg git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53716 0039d316-1c4b-4281-b951-d872f2087c98
* Allowing MSI mode detection to work from the master preferences file. robertshield@chromium.org2010-03-221-7/+0
| | | | | | | | | | | | | | | | Refactor the piece of master preferences code that was in setup_util.h|cc (setup) into master_preferences.h|cc (install_util). This adds an install_util -> googleurl dependency, which should to be fine. Add in master_preferences_dummy.cc to keep the nacl64 stuff compiling happily. Add values.h|cc to the portion of base built in 64 bit mode and add a minor fix to values.cc to make it build. Also refactor accompanying master_preferences test code from setup tests to install_util tests. BUG=19370 Review URL: http://codereview.chromium.org/979003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42248 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes almost all of the rest of lint errors in the chrome/ directory (minus ↵erg@google.com2009-11-131-1/+1
| | | | | | | | the really hard ones which will need actual review instead of rubber-stamping.) Review URL: http://codereview.chromium.org/386026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31932 0039d316-1c4b-4281-b951-d872f2087c98
* Add unit tests for unpacking and patching methods.kuchhal@chromium.org2009-08-051-1/+8
| | | | | | | | | BUG=12849 TEST=none Review URL: http://codereview.chromium.org/160623 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22535 0039d316-1c4b-4281-b951-d872f2087c98
* Add some unit tests for master preferences parsing code.kuchhal@chromium.org2009-08-051-0/+7
| | | | | | | | | BUG=12849 TEST=none Review URL: http://codereview.chromium.org/160560 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22493 0039d316-1c4b-4281-b951-d872f2087c98
* Trying to re-land r17758 (http://codereview.chromium.org/118247) but with ↵kuchhal@chromium.org2009-06-091-0/+19
| | | | | | | | | | name installer_util_unittests instead of util_unittests. BUG=12849 Review URL: http://codereview.chromium.org/119322 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17916 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 17758.kuchhal@chromium.org2009-06-051-19/+0
| | | | | | Review URL: http://codereview.chromium.org/118324 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17770 0039d316-1c4b-4281-b951-d872f2087c98
* Renamed installer_unittests to util_unittests and added setup_unitests ↵kuchhal@chromium.org2009-06-051-0/+19
project with only one unit test for now. BUG=12849 TEST=none Review URL: http://codereview.chromium.org/118247 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17758 0039d316-1c4b-4281-b951-d872f2087c98