Index: net/proxy/proxy_config_service_linux.cc |
diff --git a/net/proxy/proxy_config_service_linux.cc b/net/proxy/proxy_config_service_linux.cc |
index fb001cd8cf5b7a052732a39e8788a5735e1231b6..fc85947465aacd47fe33a29af3c8198dd3868958 100644 |
--- a/net/proxy/proxy_config_service_linux.cc |
+++ b/net/proxy/proxy_config_service_linux.cc |
@@ -320,8 +320,8 @@ class SettingGetterImplGConf : public ProxyConfigServiceLinux::SettingGetter { |
return task_runner_; |
} |
- virtual const char* GetDataSource() OVERRIDE { |
- return "gconf"; |
+ virtual ProxyConfigSource GetConfigSource() OVERRIDE { |
+ return PROXY_CONFIG_SOURCE_GCONF; |
} |
virtual bool GetString(StringSetting key, std::string* result) OVERRIDE { |
@@ -637,8 +637,8 @@ class SettingGetterImplGSettings |
return task_runner_; |
} |
- virtual const char* GetDataSource() OVERRIDE { |
- return "gsettings"; |
+ virtual ProxyConfigSource GetConfigSource() OVERRIDE { |
+ return PROXY_CONFIG_SOURCE_GSETTINGS; |
} |
virtual bool GetString(StringSetting key, std::string* result) OVERRIDE { |
@@ -1045,8 +1045,8 @@ class SettingGetterImplKDE : public ProxyConfigServiceLinux::SettingGetter, |
NOTREACHED(); |
} |
- virtual const char* GetDataSource() OVERRIDE { |
- return "KDE"; |
+ virtual ProxyConfigSource GetConfigSource() OVERRIDE { |
+ return PROXY_CONFIG_SOURCE_KDE; |
} |
virtual bool GetString(StringSetting key, std::string* result) OVERRIDE { |
@@ -1634,8 +1634,9 @@ void ProxyConfigServiceLinux::Delegate::SetUpAndFetchInitialConfig( |
setting_getter_->Init(glib_thread_task_runner, file_loop) && |
GetConfigFromSettings(&cached_config_)) { |
cached_config_.set_id(1); // Mark it as valid. |
+ cached_config_.set_source(setting_getter_->GetConfigSource()); |
VLOG(1) << "Obtained proxy settings from " |
- << setting_getter_->GetDataSource(); |
+ << ProxyConfigSourceToString(cached_config_.source()); |
// If gconf proxy mode is "none", meaning direct, then we take |
// that to be a valid config and will not check environment |
@@ -1675,6 +1676,7 @@ void ProxyConfigServiceLinux::Delegate::SetUpAndFetchInitialConfig( |
// Consulting environment variables doesn't need to be done from the |
// default glib main loop, but it's a tiny enough amount of work. |
if (GetConfigFromEnv(&cached_config_)) { |
+ cached_config_.set_source(PROXY_CONFIG_SOURCE_ENV); |
cached_config_.set_id(1); // Mark it as valid. |
VLOG(1) << "Obtained proxy settings from environment variables"; |
} |
@@ -1708,8 +1710,12 @@ ProxyConfigService::ConfigAvailability |
// Simply return the last proxy configuration that glib_default_loop |
// notified us of. |
- *config = cached_config_.is_valid() ? |
- cached_config_ : ProxyConfig::CreateDirect(); |
+ if (cached_config_.is_valid()) { |
+ *config = cached_config_; |
+ } else { |
+ *config = ProxyConfig::CreateDirect(); |
+ config->set_source(PROXY_CONFIG_SOURCE_SYSTEM_FAILED); |
+ } |
// We return CONFIG_VALID to indicate that *config was filled in. It is always |
// going to be available since we initialized eagerly on the UI thread. |