Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(479)

Unified Diff: net/proxy/proxy_config_service.h

Issue 6597070: Allow ProxyConfigService to report "no configuration set" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address Eric's comments. Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/proxy/polling_proxy_config_service.cc ('k') | net/proxy/proxy_config_service_fixed.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
« no previous file with comments | « net/proxy/polling_proxy_config_service.cc ('k') | net/proxy/proxy_config_service_fixed.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698