Index: setup/setup.h |
diff --git a/setup/setup.h b/setup/setup.h |
deleted file mode 100644 |
index f61a9d606230b3ec4aed4dd729315caebb1209ab..0000000000000000000000000000000000000000 |
--- a/setup/setup.h |
+++ /dev/null |
@@ -1,198 +0,0 @@ |
-// Copyright 2007-2009 Google Inc. |
-// |
-// Licensed under the Apache License, Version 2.0 (the "License"); |
-// you may not use this file except in compliance with the License. |
-// You may obtain a copy of the License at |
-// |
-// http://www.apache.org/licenses/LICENSE-2.0 |
-// |
-// Unless required by applicable law or agreed to in writing, software |
-// distributed under the License is distributed on an "AS IS" BASIS, |
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-// See the License for the specific language governing permissions and |
-// limitations under the License. |
-// ======================================================================== |
-// |
-// There are two phases of setup. Both are done in an instance running from a |
-// temp location. |
-// 1) Copy the Google Update files to the install location. |
-// 2) Do everything else to install Google Update. |
-// * Executed by SetupGoogleUpdate(). |
-// |
-// Uninstall() undoes both phases of setup. |
-// All methods assume the instance is running with the correct permissions. |
- |
-#ifndef OMAHA_SETUP_SETUP_H__ |
-#define OMAHA_SETUP_SETUP_H__ |
- |
-#include <windows.h> |
-#include <atlstr.h> |
-#include <vector> |
-#include "base/basictypes.h" |
-#include "base/scoped_ptr.h" |
-#include "omaha/base/scoped_any.h" |
- |
-namespace omaha { |
- |
-class GLock; |
-class HighresTimer; |
-struct NamedObjectAttributes; |
- |
-class SetupFiles; |
- |
-class Setup { |
- public: |
- explicit Setup(bool is_machine); |
- ~Setup(); |
- |
- // Installs Omaha if necessary. |
- HRESULT Install(bool set_keepalive); |
- |
- // Acquires the Setup Lock and uninstalls all Omaha versions if Omaha can be |
- // uninstalled. |
- HRESULT Uninstall(bool send_uninstall_ping); |
- |
- // Verifies that Omaha is either properly installed or uninstalled completely. |
- // TODO(omaha): Consider making this and did_uninstall_ non-static after |
- // refactoring Setup phases. May require a Setup member in Goopdate. |
- static void CheckInstallStateConsistency(bool is_machine); |
- |
- int extra_code1() const { return extra_code1_; } |
- |
- void set_is_self_update(bool is_self_update) { |
- is_self_update_ = is_self_update; |
- } |
- |
- private: |
- typedef std::vector<uint32> Pids; |
- |
- // Completes installation. |
- HRESULT SetupGoogleUpdate(); |
- |
- // Handles Setup lock acquisition failures and returns the error to report. |
- HRESULT HandleLockFailed(int lock_version); |
- |
- // Does the install work within all necessary locks, which have already been |
- // acquired. |
- HRESULT DoProtectedInstall(bool set_keepalive); |
- |
- // Uninstalls all Google Update versions after checking if Google Update can |
- // be uninstalled. |
- HRESULT DoProtectedUninstall(bool send_uninstall_ping); |
- |
- // Returns whether Google Update should be installed. |
- bool ShouldInstall(SetupFiles* setup_files); |
- |
- // Returns whether the same version of Google Update should be over-installed. |
- bool ShouldOverinstallSameVersion(SetupFiles* setup_files); |
- |
- HRESULT DoProtectedGoogleUpdateInstall(SetupFiles* setup_files); |
- |
- // Rolls back the changes made during DoProtectedGoogleUpdateInstall(). |
- // Call when that method fails. |
- void RollBack(SetupFiles* setup_files); |
- |
- // Tells other instances to stop. |
- HRESULT StopGoogleUpdate(); |
- |
- // Tells other instances to stop then waits for them to exit. |
- HRESULT StopGoogleUpdateAndWait(); |
- |
- // Sets the shutdown event to signal other instances for this user or machine |
- // to exit. |
- HRESULT SignalShutdownEvent(); |
- |
- // Releases all the shutdown events. |
- void ReleaseShutdownEvents(); |
- |
- // Waits for other instances of GoogleUpdate.exe to exit. |
- HRESULT WaitForOtherInstancesToExit(const Pids& pids); |
- |
- // Gets the list of all the GoogleUpdate.exe processes to wait for. |
- HRESULT GetPidsToWaitFor(Pids* pids) const; |
- |
- // Gets a list of GoogleUpdate.exe processes for user or machine that are |
- // running from the respective official directory, except "/install" or |
- // "/registerproduct" instances. |
- // In the machine case we search in all the accounts since the workers can be |
- // running in any admin account and the machine update worker runs as SYSTEM. |
- // In the user case, we only search the user's account. |
- // In both cases, the command line location is used to determine the |
- // machine/user cases. |
- HRESULT GetPidsToWaitForUsingCommandLine(Pids* pids) const; |
- |
- // Returns whether elevation is required to perform this install. |
- bool IsElevationRequired() const; |
- |
-// TODO(omaha3): Support offline builds. Prefer to detect and maybe copy outside |
-// Setup. |
-#if 0 |
- // Given a guid, finds and copies the offline manifest and binaries from the |
- // current module directory to the offline_dir passed in. offline_dir is |
- // typically the Google\Update\Offline\ directory. The offline manifest is |
- // copied to offline_dir\{GUID}.gup. The binaries are in the format |
- // "Installer.msi.{GUID}", and they are copied to the offline_dir under the |
- // subdirectory {GUID}, as Installer.msi. |
- static HRESULT CopyOfflineFilesForGuid(const CString& app_guid, |
- const CString& offline_dir); |
- |
- // For all the applications that have been requested, copy the offline |
- // binaries. Calls CopyOfflineFilesForGuid() for each app_guid. |
- bool CopyOfflineFiles(const CString& offline_dir); |
-#endif |
- |
- // Starts the core. |
- HRESULT StartMachineCoreProcess() const; |
- HRESULT StartUserCoreProcess(const CString& core_cmd_line) const; |
- |
- // Returns the pids of running Omaha 2 Core processes for this user/system. |
- HRESULT FindCoreProcesses(Pids* found_core_pids) const; |
- |
- // Forcefully kills appropriate core processes using ::TerminateProcess(). |
- HRESULT TerminateCoreProcesses() const; |
- |
- // Verifies that the appropriate core is running. |
- bool IsCoreProcessRunning() const; |
- |
- // Starts the long-lived Core process. |
- HRESULT StartCore() const; |
- |
- // Returns the SID to use for process searches, mutexes, etc. during this |
- // installation. |
- HRESULT GetAppropriateSid(CString* sid) const; |
- |
- // Initializes the Setup Lock with correct name and security attributes. |
- static bool InitSetupLock(bool is_machine, GLock* setup_lock); |
- |
- // Returns true if GoogleUpdate can be uninstalled now. |
- bool CanUninstallGoogleUpdate() const; |
- |
- // Control the state of the DelayUninstall flag. If set, uninstall will |
- // be delayed for at least 24 hours after initial install. |
- bool ShouldDelayUninstall() const; |
- HRESULT SetDelayUninstall(bool should_delay) const; |
- |
- // Sends the uninstall ping and waits for the ping to be sent. |
- HRESULT SendUninstallPing(); |
- |
- const bool is_machine_; |
- bool is_self_update_; |
- CString saved_version_; // Previous version saved for roll back. |
- scoped_event shutdown_event_; |
- int extra_code1_; |
- |
- scoped_ptr<HighresTimer> metrics_timer_; |
- |
- // Whether this process uninstalled Google Update for any reason. |
- // Access must be protected by the Setup Lock. |
- static bool did_uninstall_; |
- |
- friend class SetupTest; |
- friend class SetupOfflineInstallerTest; |
- DISALLOW_EVIL_CONSTRUCTORS(Setup); |
-}; |
- |
-} // namespace omaha |
- |
-#endif // OMAHA_SETUP_SETUP_H__ |
- |