| Index: net/proxy/proxy_config_service.h
|
| diff --git a/net/proxy/proxy_config_service.h b/net/proxy/proxy_config_service.h
|
| index da67cd67130d27f8786501d272600644312684b5..f194ca0ce7781867ee0c9e14a6b9b16f020d7e60 100644
|
| --- a/net/proxy/proxy_config_service.h
|
| +++ b/net/proxy/proxy_config_service.h
|
| @@ -1,4 +1,4 @@
|
| -// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| @@ -13,11 +13,27 @@ class ProxyConfig;
|
| // Service for watching when the proxy settings have changed.
|
| class ProxyConfigService {
|
| public:
|
| + // Indicates whether proxy configuration is valid, and if not, why.
|
| + enum ConfigAvailability {
|
| + // Configuration is pending, observers will be notified later.
|
| + CONFIG_PENDING,
|
| + // Configuration is present and valid.
|
| + CONFIG_VALID,
|
| + // No configuration is set.
|
| + CONFIG_UNSET
|
| + };
|
| +
|
| // Observer for being notified when the proxy settings have changed.
|
| class Observer {
|
| public:
|
| virtual ~Observer() {}
|
| - virtual void OnProxyConfigChanged(const ProxyConfig& config) = 0;
|
| + // Notification callback that should be invoked by ProxyConfigService
|
| + // implementors whenever the configuration changes. |availability| indicates
|
| + // the new availability status and can be CONFIG_UNSET or CONFIG_VALID (in
|
| + // which case |config| contains the configuration). Implementors must not
|
| + // pass CONFIG_PENDING.
|
| + virtual void OnProxyConfigChanged(const ProxyConfig& config,
|
| + ConfigAvailability availability) = 0;
|
| };
|
|
|
| virtual ~ProxyConfigService() {}
|
| @@ -27,13 +43,14 @@ class ProxyConfigService {
|
| virtual void AddObserver(Observer* observer) = 0;
|
| virtual void RemoveObserver(Observer* observer) = 0;
|
|
|
| - // Gets the most recent value of the proxy configuration. Returns false if
|
| - // it is not available yet. In the case where we returned false, it is
|
| - // guaranteed that subscribed observers will be notified of a change at
|
| + // Gets the most recent availability status. If a configuration is present,
|
| + // the proxy configuration is written to |config| and CONFIG_VALID is
|
| + // returned. Returns CONFIG_PENDING if it is not available yet. In this case,
|
| + // it is guaranteed that subscribed observers will be notified of a change at
|
| // some point in the future once the configuration is available.
|
| // Note that to avoid re-entrancy problems, implementations should not
|
| // dispatch any change notifications from within this function.
|
| - virtual bool GetLatestProxyConfig(ProxyConfig* config) = 0;
|
| + virtual ConfigAvailability GetLatestProxyConfig(ProxyConfig* config) = 0;
|
|
|
| // ProxyService will call this periodically during periods of activity.
|
| // It can be used as a signal for polling-based implementations.
|
|
|