[Cronet] Delay StartNetLog and StopNetLog until native request context is initialized
[chromium-blink-merge.git] / chrome / app_installer / win / app_installer_util.h
blob33ed85704f045be08139ff4768b81cbff4a70e4a
1 // Copyright 2014 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.
5 #ifndef CHROME_APP_INSTALLER_WIN_APP_INSTALLER_UTIL_H_
6 #define CHROME_APP_INSTALLER_WIN_APP_INSTALLER_UTIL_H_
8 #include <map>
9 #include <string>
11 #include "base/files/file_path.h"
13 namespace app_installer {
15 extern const char kInstallChromeApp[];
17 enum ExitCode {
18 SUCCESS = 0,
19 COULD_NOT_GET_FILE_PATH,
20 COULD_NOT_READ_TAG,
21 COULD_NOT_PARSE_TAG,
22 INVALID_APP_ID,
23 COULD_NOT_FETCH_INLINE_INSTALL_DATA,
24 COULD_NOT_PARSE_INLINE_INSTALL_DATA,
25 EULA_CANCELLED,
26 COULD_NOT_FIND_CHROME,
27 COULD_NOT_GET_TMP_FILE_PATH,
28 FAILED_TO_DOWNLOAD_CHROME_SETUP,
29 FAILED_TO_LAUNCH_CHROME_SETUP,
32 // Gets the tag attached to a file by dl.google.com. This uses the same format
33 // as Omaha. Returns the empty string on failure.
34 std::string GetTag(const base::FilePath& file_name_path);
36 // Parses |tag| as key-value pairs and overwrites |parsed_pairs| with
37 // the result. |tag| should be a '&'-delimited list of '='-separated
38 // key-value pairs, e.g. "key1=value1&key2=value2".
39 // Returns true if the data could be parsed.
40 bool ParseTag(const std::string& tag,
41 std::map<std::string, std::string>* parsed_pairs);
43 bool IsValidAppId(const std::string& app_id);
45 // Uses WinHTTP to make a GET request. |server_port| can be zero to use the
46 // default port (80 or 443).
47 bool FetchUrl(const base::string16& user_agent,
48 const base::string16& server_name,
49 uint16_t server_port,
50 const base::string16& object_name,
51 std::vector<uint8_t>* response_data);
53 // Shows UI to download and install Chrome. Returns a failure code, or SUCCESS
54 // if the installation completed successfully.
55 ExitCode GetChrome(bool is_canary, const std::string& inline_install_json);
57 } // namespace app_installer
59 #endif // CHROME_APP_INSTALLER_WIN_APP_INSTALLER_UTIL_H_