101ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen// Copyright (c) 2010 The Chromium Authors. All rights reserved.
201ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen// Use of this source code is governed by a BSD-style license that can be
301ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen// found in the LICENSE file.
401ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen
501ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen#ifndef NET_PROXY_PROXY_CONFIG_SERVICE_ANDROID_H_
601ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen#define NET_PROXY_PROXY_CONFIG_SERVICE_ANDROID_H_
701ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen#pragma once
801ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen
92557749644f9d25af9721533322db19197c49b49Kristian Monsen#include "net/base/net_export.h"
1001ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen#include "net/proxy/proxy_config_service.h"
1101ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen
1201ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen#include <string>
1301ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen
1401ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen#include "base/observer_list.h"
1501ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen
1601ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsennamespace net {
1701ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen
182557749644f9d25af9721533322db19197c49b49Kristian Monsenclass NET_EXPORT ProxyConfigServiceAndroid : public ProxyConfigService {
1901ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen public:
2001ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen  // ProxyConfigService implementation:
2101ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen  virtual void AddObserver(Observer* observer);
2201ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen  virtual void RemoveObserver(Observer* observer);
23a628b56b8b7c7f9a8730b0e43c6e04fcf3619b7eKristian Monsen  virtual ConfigAvailability GetLatestProxyConfig(ProxyConfig* config);
2401ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen  virtual void OnLazyPoll() {}
2501ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen
2601ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen  // For Android to update the proxy service config
27eae0084084f68c82733e5d9d4dea8e14eba66cc9Kristian Monsen  void UpdateProxySettings(std::string& host, std::string& exclusionList);
2801ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen
2901ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsenprivate:
3001ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen  ObserverList<Observer> observers_;
3101ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen  std::string m_proxy;
3201ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen};
3301ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen
3401ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen} // namespace net
3501ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen
3601ba86dc3bae37426ebafbdd93640dc50c45e3e0Kristian Monsen#endif // NET_PROXY_PROXY_CONFIG_SERVICE_ANDROID_H_
37