google_update_util.h revision effb81e5f8246d0db0270817048dc992db66e9fb
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
10namespace 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.
17bool 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.
23bool 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.
28void 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.
33std::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.
39std::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