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 3 // found in the LICENSE file. 4 5 #ifndef CHROME_INSTALLER_UTIL_GOOGLE_UPDATE_UTIL_H_ 6 #define CHROME_INSTALLER_UTIL_GOOGLE_UPDATE_UTIL_H_ 7 8 #include <string> 9 10 namespace google_update { 11 12 // If user-level Google Update is absent, calls the system-level 13 // GoogleUpdateSetup.exe to install it, and waits until it finishes. 14 // Returns true if already installed, installed successfully, or 15 // if Google Update is not present at system-level. 16 // Returns false if the installation fails. 17 bool EnsureUserLevelGoogleUpdatePresent(); 18 19 // Tell Google Update that an uninstall has taken place. This gives it a chance 20 // to uninstall itself straight away if no more products are installed on the 21 // system rather than waiting for the next time the scheduled task runs. 22 // Returns false if Google Update could not be executed, or times out. 23 bool UninstallGoogleUpdate(bool system_install); 24 25 // Run setup.exe to attempt to reenable updates for for Chrome while elevating 26 // if needed. Setup.exe will call into 27 // GoogleUpdateSettings::ReenableAutoupdatesForApp() to do the work. 28 void ElevateIfNeededToReenableUpdates(); 29 30 // Returns the value corresponding to |key| in untrusted data passed from 31 // Google Update. Returns an empty string if |key| is absent or if its value 32 // contains non-printable characters. 33 std::string GetUntrustedDataValue(const std::string& key); 34 35 // Returns the value corresponding to |key| in untrusted data passed from 36 // |tag|. |tag| should be a printable list of key-value pairs, e.g. 37 // "key1=value1&key2=value2". Returns an empty string if |key| is absent or if 38 // its value contains non-printable characters. 39 std::string GetUntrustedDataValueFromTag(const std::string& tag, 40 const std::string& key); 41 42 } // namespace google_update 43 44 #endif // CHROME_INSTALLER_UTIL_GOOGLE_UPDATE_UTIL_H_ 45