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 c9f69cc5f68ba611223563a6609831582d0aff68..0ddb5dae0886d7a4236ae57d6aa0ca014b9de32b 100644 |
--- a/chrome/browser/net/chrome_network_delegate.cc |
+++ b/chrome/browser/net/chrome_network_delegate.cc |
@@ -33,6 +33,10 @@ |
#include "net/socket_stream/socket_stream.h" |
#include "net/url_request/url_request.h" |
+#if !defined(OS_ANDROID) |
+#include "chrome/browser/managed_mode_url_filter.h" |
+#endif |
+ |
#if defined(OS_CHROMEOS) |
#include "base/chromeos/chromeos_version.h" |
#endif |
@@ -129,6 +133,7 @@ ChromeNetworkDelegate::ChromeNetworkDelegate( |
extensions::EventRouterForwarder* event_router, |
ExtensionInfoMap* extension_info_map, |
const policy::URLBlacklistManager* url_blacklist_manager, |
+ const ManagedModeURLFilter* managed_mode_url_filter, |
void* profile, |
CookieSettings* cookie_settings, |
BooleanPrefMember* enable_referrers, |
@@ -139,6 +144,7 @@ ChromeNetworkDelegate::ChromeNetworkDelegate( |
extension_info_map_(extension_info_map), |
enable_referrers_(enable_referrers), |
url_blacklist_manager_(url_blacklist_manager), |
+ managed_mode_url_filter_(managed_mode_url_filter), |
cache_stats_(cache_stats) { |
DCHECK(event_router); |
DCHECK(enable_referrers); |
@@ -185,6 +191,14 @@ int ChromeNetworkDelegate::OnBeforeURLRequest( |
} |
#endif |
+#if !defined(OS_ANDROID) |
+ if (managed_mode_url_filter_ && |
+ !managed_mode_url_filter_->IsURLWhitelisted(request->url())) { |
+ // Block for now. |
+ return net::ERR_NETWORK_ACCESS_DENIED; |
+ } |
+#endif |
+ |
ForwardRequestStatus(REQUEST_STARTED, request, profile_); |
if (!enable_referrers_->GetValue()) |