| Index: net/proxy/proxy_config.cc
|
| diff --git a/net/proxy/proxy_config.cc b/net/proxy/proxy_config.cc
|
| index d160fa4e1571c7ba6ced2d4d658ded3d5296165f..3eae29bc1f20c268a555a0c42feebad15d4c788c 100644
|
| --- a/net/proxy/proxy_config.cc
|
| +++ b/net/proxy/proxy_config.cc
|
| @@ -1,4 +1,4 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Copyright (c) 2012 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.
|
|
|
| @@ -32,10 +32,10 @@ ProxyConfig::ProxyRules::ProxyRules()
|
| ProxyConfig::ProxyRules::~ProxyRules() {
|
| }
|
|
|
| -void ProxyConfig::ProxyRules::Apply(const GURL& url, ProxyInfo* result) {
|
| +bool ProxyConfig::ProxyRules::Apply(const GURL& url, ProxyInfo* result) const {
|
| if (empty()) {
|
| result->UseDirect();
|
| - return;
|
| + return false;
|
| }
|
|
|
| bool bypass_proxy = bypass_rules.Matches(url);
|
| @@ -43,29 +43,30 @@ void ProxyConfig::ProxyRules::Apply(const GURL& url, ProxyInfo* result) {
|
| bypass_proxy = !bypass_proxy;
|
| if (bypass_proxy) {
|
| result->UseDirect();
|
| - return;
|
| + return true;
|
| }
|
|
|
| switch (type) {
|
| case ProxyRules::TYPE_SINGLE_PROXY: {
|
| result->UseProxyServer(single_proxy);
|
| - return;
|
| + return true;
|
| }
|
| case ProxyRules::TYPE_PROXY_PER_SCHEME: {
|
| const ProxyServer* entry = MapUrlSchemeToProxy(url.scheme());
|
| if (entry) {
|
| result->UseProxyServer(*entry);
|
| + return true;
|
| } else {
|
| // We failed to find a matching proxy server for the current URL
|
| // scheme. Default to direct.
|
| result->UseDirect();
|
| + return false;
|
| }
|
| - return;
|
| }
|
| default: {
|
| result->UseDirect();
|
| NOTREACHED();
|
| - return;
|
| + return false;
|
| }
|
| }
|
| }
|
| @@ -159,7 +160,8 @@ ProxyServer* ProxyConfig::ProxyRules::MapUrlSchemeToProxyNoFallback(
|
| }
|
|
|
| ProxyConfig::ProxyConfig()
|
| - : auto_detect_(false), pac_mandatory_(false), id_(kInvalidConfigID) {
|
| + : auto_detect_(false), pac_mandatory_(false),
|
| + source_(PROXY_CONFIG_SOURCE_UNKNOWN), id_(kInvalidConfigID) {
|
| }
|
|
|
| ProxyConfig::ProxyConfig(const ProxyConfig& config)
|
| @@ -167,6 +169,7 @@ ProxyConfig::ProxyConfig(const ProxyConfig& config)
|
| pac_url_(config.pac_url_),
|
| pac_mandatory_(config.pac_mandatory_),
|
| proxy_rules_(config.proxy_rules_),
|
| + source_(config.source_),
|
| id_(config.id_) {
|
| }
|
|
|
| @@ -178,13 +181,14 @@ ProxyConfig& ProxyConfig::operator=(const ProxyConfig& config) {
|
| pac_url_ = config.pac_url_;
|
| pac_mandatory_ = config.pac_mandatory_;
|
| proxy_rules_ = config.proxy_rules_;
|
| + source_ = config.source_;
|
| id_ = config.id_;
|
| return *this;
|
| }
|
|
|
| bool ProxyConfig::Equals(const ProxyConfig& other) const {
|
| - // The two configs can have different IDs. We are just interested in if they
|
| - // have the same settings.
|
| + // The two configs can have different IDs and sources. We are just interested
|
| + // in if they have the same settings.
|
| return auto_detect_ == other.auto_detect_ &&
|
| pac_url_ == other.pac_url_ &&
|
| pac_mandatory_ == other.pac_mandatory_ &&
|
| @@ -249,6 +253,9 @@ Value* ProxyConfig::ToValue() const {
|
| }
|
| }
|
|
|
| + // Output the source.
|
| + dict->SetString("source", ProxyConfigSourceToString(source_));
|
| +
|
| return dict;
|
| }
|
|
|
|
|