You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.8 KiB
49 lines
1.8 KiB
4 months ago
|
// Copyright 2017 The Chromium OS Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
#ifndef LIBBRILLO_BRILLO_HTTP_HTTP_PROXY_H_
|
||
|
#define LIBBRILLO_BRILLO_HTTP_HTTP_PROXY_H_
|
||
|
|
||
|
#include <string>
|
||
|
#include <vector>
|
||
|
|
||
|
#include <base/callback_forward.h>
|
||
|
#include <base/memory/ref_counted.h>
|
||
|
#include <brillo/brillo_export.h>
|
||
|
|
||
|
namespace dbus {
|
||
|
class Bus;
|
||
|
} // namespace dbus
|
||
|
|
||
|
namespace brillo {
|
||
|
namespace http {
|
||
|
|
||
|
using GetChromeProxyServersCallback =
|
||
|
base::Callback<void(bool success, const std::vector<std::string>& proxies)>;
|
||
|
|
||
|
// Gets the list of proxy servers that are configured in Chrome by sending a
|
||
|
// D-Bus message to Chrome. The list will always be at least one in size, with
|
||
|
// the last element always being the direct option. The target URL should be
|
||
|
// passed in for the |url| parameter. The proxy servers are set in
|
||
|
// |proxies_out|. The format of the strings in |proxies_out| is
|
||
|
// scheme://[[user:pass@]host:port] with the last element being "direct://".
|
||
|
// Valid schemes it will return are socks4, socks5, http, https or direct.
|
||
|
// Even if this function returns false, it will still set |proxies_out| to be
|
||
|
// just the direct proxy. This function will only return false if there is an
|
||
|
// error in the D-Bus communication itself.
|
||
|
BRILLO_EXPORT bool GetChromeProxyServers(scoped_refptr<::dbus::Bus> bus,
|
||
|
const std::string& url,
|
||
|
std::vector<std::string>* proxies_out);
|
||
|
|
||
|
// Async version of GetChromeProxyServers.
|
||
|
BRILLO_EXPORT void GetChromeProxyServersAsync(
|
||
|
scoped_refptr<::dbus::Bus> bus,
|
||
|
const std::string& url,
|
||
|
const GetChromeProxyServersCallback& callback);
|
||
|
|
||
|
} // namespace http
|
||
|
} // namespace brillo
|
||
|
|
||
|
#endif // LIBBRILLO_BRILLO_HTTP_HTTP_PROXY_H_
|