Index: chrome/browser/net/chrome_network_delegate.cc |
diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc |
index 6ea4eb841a4620b3f0b1c077f59309298dc47ace..e22fb88948596a2ef1131c1bdb31242d309587cf 100644 |
--- a/chrome/browser/net/chrome_network_delegate.cc |
+++ b/chrome/browser/net/chrome_network_delegate.cc |
@@ -28,6 +28,7 @@ |
#include "net/cookies/cookie_monster.h" |
#include "net/http/http_request_headers.h" |
#include "net/http/http_response_headers.h" |
+#include "net/socket_stream/socket_stream.h" |
#include "net/url_request/url_request.h" |
#if defined(OS_CHROMEOS) |
@@ -370,3 +371,20 @@ bool ChromeNetworkDelegate::OnCanThrottleRequest( |
return request.first_party_for_cookies().scheme() != |
chrome::kExtensionScheme; |
} |
+ |
+int ChromeNetworkDelegate::OnBeforeSocketStreamConnect( |
+ net::SocketStream* socket, |
+ const net::CompletionCallback& callback) { |
+#if defined(ENABLE_CONFIGURATION_POLICY) |
+ if (url_blacklist_manager_ && |
+ url_blacklist_manager_->IsURLBlocked(socket->url())) { |
+ // URL access blocked by policy. |
+ scoped_refptr<net::NetLog::EventParameters> params; |
+ params = new net::NetLogStringParameter("url", socket->url().spec()); |
+ socket->net_log()->AddEvent( |
+ net::NetLog::TYPE_CHROME_POLICY_ABORTED_REQUEST, params); |
+ return net::ERR_NETWORK_ACCESS_DENIED; |
+ } |
+#endif |
+ return net::OK; |
+} |