diff options
author | danno@chromium.org <danno@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-09 16:15:48 +0000 |
---|---|---|
committer | danno@chromium.org <danno@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-09 16:15:48 +0000 |
commit | b94a654e04d9b22381cc22c6dfb9704147b8311f (patch) | |
tree | 18a846b033bb5e45487994acd7fc664428f90429 /chrome/browser/io_thread.cc | |
parent | 3f078094f9882370002c9064a9d03299b9b6abde (diff) | |
download | chromium_src-b94a654e04d9b22381cc22c6dfb9704147b8311f.zip chromium_src-b94a654e04d9b22381cc22c6dfb9704147b8311f.tar.gz chromium_src-b94a654e04d9b22381cc22c6dfb9704147b8311f.tar.bz2 |
Revert 65535 - Group Policy support for HTTP authentication
BUG=53625
TEST=ConfigurationPolicyPrefStore*
Review URL: http://codereview.chromium.org/3517018
Patch from Jakob Kummerow <jkummerow@google.com>.
TBR=danno@chromium.org
Review URL: http://codereview.chromium.org/4643004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65537 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/io_thread.cc')
-rw-r--r-- | chrome/browser/io_thread.cc | 63 |
1 files changed, 25 insertions, 38 deletions
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc index 9b7f718..b12b7f0 100644 --- a/chrome/browser/io_thread.cc +++ b/chrome/browser/io_thread.cc @@ -4,8 +4,6 @@ #include "chrome/browser/io_thread.h" -#include <vector> - #include "base/command_line.h" #include "base/debug/leak_tracker.h" #include "base/logging.h" @@ -23,11 +21,9 @@ #include "chrome/browser/net/connect_interceptor.h" #include "chrome/browser/net/passive_log_collector.h" #include "chrome/browser/net/predictor_api.h" -#include "chrome/browser/prefs/pref_service.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/net/raw_host_resolver_proc.h" #include "chrome/common/net/url_fetcher.h" -#include "chrome/common/pref_names.h" #include "net/base/dnsrr_resolver.h" #include "net/base/host_cache.h" #include "net/base/host_resolver.h" @@ -211,25 +207,11 @@ IOThread::Globals::Globals() {} IOThread::Globals::~Globals() {} -// |local_state| is passed in explicitly in order to (1) reduce implicit -// dependencies and (2) make IOThread more flexible for testing. -IOThread::IOThread(PrefService* local_state) +IOThread::IOThread() : BrowserProcessSubThread(BrowserThread::IO), globals_(NULL), speculative_interceptor_(NULL), - predictor_(NULL) { - // We call RegisterPrefs() here (instead of inside browser_prefs.cc) to make - // sure that everything is initialized in the right order. - RegisterPrefs(local_state); - auth_schemes_ = local_state->GetString(prefs::kAuthSchemes); - negotiate_disable_cname_lookup_ = local_state->GetBoolean( - prefs::kDisableAuthNegotiateCnameLookup); - negotiate_enable_port_ = local_state->GetBoolean( - prefs::kEnableAuthNegotiatePort); - auth_server_whitelist_ = local_state->GetString(prefs::kAuthServerWhitelist); - auth_delegate_whitelist_ = local_state->GetString( - prefs::kAuthNegotiateDelegateWhitelist); -} + predictor_(NULL) {} IOThread::~IOThread() { // We cannot rely on our base class to stop the thread since we want our @@ -419,36 +401,41 @@ void IOThread::CleanUpAfterMessageLoopDestruction() { base::debug::LeakTracker<URLRequest>::CheckForLeaks(); } -// static -void IOThread::RegisterPrefs(PrefService* local_state) { - local_state->RegisterStringPref(prefs::kAuthSchemes, - "basic,digest,ntlm,negotiate"); - local_state->RegisterBooleanPref(prefs::kDisableAuthNegotiateCnameLookup, - false); - local_state->RegisterBooleanPref(prefs::kEnableAuthNegotiatePort, false); - local_state->RegisterStringPref(prefs::kAuthServerWhitelist, ""); - local_state->RegisterStringPref(prefs::kAuthNegotiateDelegateWhitelist, ""); -} - net::HttpAuthHandlerFactory* IOThread::CreateDefaultAuthHandlerFactory( net::HostResolver* resolver) { + const CommandLine& command_line = *CommandLine::ForCurrentProcess(); - net::HttpAuthFilterWhitelist* auth_filter_default_credentials = - new net::HttpAuthFilterWhitelist(auth_server_whitelist_); - net::HttpAuthFilterWhitelist* auth_filter_delegate = - new net::HttpAuthFilterWhitelist(auth_delegate_whitelist_); + // Get the whitelist information from the command line, create an + // HttpAuthFilterWhitelist, and attach it to the HttpAuthHandlerFactory. + net::HttpAuthFilterWhitelist* auth_filter_default_credentials = NULL; + if (command_line.HasSwitch(switches::kAuthServerWhitelist)) { + auth_filter_default_credentials = new net::HttpAuthFilterWhitelist( + command_line.GetSwitchValueASCII(switches::kAuthServerWhitelist)); + } + net::HttpAuthFilterWhitelist* auth_filter_delegate = NULL; + if (command_line.HasSwitch(switches::kAuthNegotiateDelegateWhitelist)) { + auth_filter_delegate = new net::HttpAuthFilterWhitelist( + command_line.GetSwitchValueASCII( + switches::kAuthNegotiateDelegateWhitelist)); + } globals_->url_security_manager.reset( net::URLSecurityManager::Create(auth_filter_default_credentials, auth_filter_delegate)); + + // Determine which schemes are supported. + std::string csv_auth_schemes = "basic,digest,ntlm,negotiate"; + if (command_line.HasSwitch(switches::kAuthSchemes)) + csv_auth_schemes = StringToLowerASCII( + command_line.GetSwitchValueASCII(switches::kAuthSchemes)); std::vector<std::string> supported_schemes; - base::SplitString(auth_schemes_, ',', &supported_schemes); + base::SplitString(csv_auth_schemes, ',', &supported_schemes); return net::HttpAuthHandlerRegistryFactory::Create( supported_schemes, globals_->url_security_manager.get(), resolver, - negotiate_disable_cname_lookup_, - negotiate_enable_port_); + command_line.HasSwitch(switches::kDisableAuthNegotiateCnameLookup), + command_line.HasSwitch(switches::kEnableAuthNegotiatePort)); } void IOThread::InitNetworkPredictorOnIOThread( |