summaryrefslogtreecommitdiffstats
path: root/chrome/browser/io_thread.cc
diff options
context:
space:
mode:
authordanno@chromium.org <danno@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-09 16:15:48 +0000
committerdanno@chromium.org <danno@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-09 16:15:48 +0000
commitb94a654e04d9b22381cc22c6dfb9704147b8311f (patch)
tree18a846b033bb5e45487994acd7fc664428f90429 /chrome/browser/io_thread.cc
parent3f078094f9882370002c9064a9d03299b9b6abde (diff)
downloadchromium_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.cc63
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(