Add ManagedModeURLFilter.
ManagedModeURLFilter will eventually allow special treatment (e.g. blocking, notifying) for URLs that aren't on a defined whitelist.
BUG=134417
Review URL: https://chromiumcodereview.appspot.com/10824257
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151993 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc
index c9f69cc..0ddb5da 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 @@
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 @@
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 @@
}
#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())