summaryrefslogtreecommitdiffstats
path: root/net/http/url_security_manager_win.cc
diff options
context:
space:
mode:
authorahendrickson@chromium.org <ahendrickson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-02 17:27:10 +0000
committerahendrickson@chromium.org <ahendrickson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-02 17:27:10 +0000
commit930cbb5855c54aedb590bc522963320c189a3e52 (patch)
tree3d579aa9a2c65210b2c3453e32a0d2991d4bf2f9 /net/http/url_security_manager_win.cc
parente457f74143dcabf0663983cb376425f121a0dc84 (diff)
downloadchromium_src-930cbb5855c54aedb590bc522963320c189a3e52.zip
chromium_src-930cbb5855c54aedb590bc522963320c189a3e52.tar.gz
chromium_src-930cbb5855c54aedb590bc522963320c189a3e52.tar.bz2
Added command-line whitelist data to UrlSecurityManager. These are used by all platforms; Windows will use IInternetSecurityManager if they are not present.
Removed registry code from HttpAuthFilterWhitelist, as we're now using a different method of authentication on Windows. BUG=29596 TEST=None. Review URL: http://codereview.chromium.org/1569010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43493 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/url_security_manager_win.cc')
-rw-r--r--net/http/url_security_manager_win.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/net/http/url_security_manager_win.cc b/net/http/url_security_manager_win.cc
index b3abb05..b3b3988 100644
--- a/net/http/url_security_manager_win.cc
+++ b/net/http/url_security_manager_win.cc
@@ -10,6 +10,7 @@
#include "base/scoped_comptr_win.h"
#include "base/string_util.h"
#include "googleurl/src/gurl.h"
+#include "net/http/http_auth_filter.h"
// The Windows implementation of URLSecurityManager uses WinINet/IE's
// URL security zone manager. See the MSDN page "URL Security Zones" at
@@ -20,7 +21,7 @@ namespace net {
class URLSecurityManagerWin : public URLSecurityManager {
public:
- URLSecurityManagerWin();
+ explicit URLSecurityManagerWin(const HttpAuthFilter* whitelist);
// URLSecurityManager methods:
virtual bool CanUseDefaultCredentials(const GURL& auth_origin) const;
@@ -29,7 +30,8 @@ class URLSecurityManagerWin : public URLSecurityManager {
ScopedComPtr<IInternetSecurityManager> security_manager_;
};
-URLSecurityManagerWin::URLSecurityManagerWin() {
+URLSecurityManagerWin::URLSecurityManagerWin(const HttpAuthFilter* whitelist)
+ : URLSecurityManager(whitelist) {
HRESULT hr = CoInternetCreateSecurityManager(NULL,
security_manager_.Receive(),
NULL);
@@ -39,6 +41,10 @@ URLSecurityManagerWin::URLSecurityManagerWin() {
bool URLSecurityManagerWin::CanUseDefaultCredentials(
const GURL& auth_origin) const {
+ // The whitelist overrides everything, if it exists.
+ if (whitelist_)
+ return whitelist_->IsValid(auth_origin, HttpAuth::AUTH_SERVER);
+
if (!security_manager_) {
NOTREACHED(); // The code in the constructor failed.
return false;
@@ -94,8 +100,9 @@ bool URLSecurityManagerWin::CanUseDefaultCredentials(
}
// static
-URLSecurityManager* URLSecurityManager::Create() {
- return new URLSecurityManagerWin;
+URLSecurityManager* URLSecurityManager::Create(
+ const HttpAuthFilter* whitelist) {
+ return new URLSecurityManagerWin(whitelist);
}
} // namespace net