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 9abf6c4261555b914b4743dac26039c6ecddf6f3..e3e85f181c14c346da84ed422b4a9c6f86254937 100644 |
--- a/chrome/browser/net/chrome_network_delegate.cc |
+++ b/chrome/browser/net/chrome_network_delegate.cc |
@@ -27,6 +27,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) |
@@ -354,3 +355,20 @@ bool ChromeNetworkDelegate::OnCanAccessFile(const net::URLRequest& request, |
return true; |
#endif // defined(OS_CHROMEOS) |
} |
+ |
+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; |
+} |