Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(173)

Side by Side Diff: chrome/browser/net/chrome_network_delegate.cc

Issue 7716003: WIP: URL blacklisting by policy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reviewed Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/net/chrome_network_delegate.h" 5 #include "chrome/browser/net/chrome_network_delegate.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/browser/custom_handlers/protocol_handler_registry.h" 8 #include "chrome/browser/custom_handlers/protocol_handler_registry.h"
9 #include "chrome/browser/extensions/extension_event_router_forwarder.h" 9 #include "chrome/browser/extensions/extension_event_router_forwarder.h"
10 #include "chrome/browser/extensions/extension_info_map.h" 10 #include "chrome/browser/extensions/extension_info_map.h"
11 #include "chrome/browser/extensions/extension_proxy_api.h" 11 #include "chrome/browser/extensions/extension_proxy_api.h"
12 #include "chrome/browser/extensions/extension_webrequest_api.h" 12 #include "chrome/browser/extensions/extension_webrequest_api.h"
13 #include "chrome/browser/policy/url_blacklist_manager.h"
13 #include "chrome/browser/prefs/pref_member.h" 14 #include "chrome/browser/prefs/pref_member.h"
14 #include "chrome/browser/task_manager/task_manager.h" 15 #include "chrome/browser/task_manager/task_manager.h"
15 #include "chrome/common/pref_names.h" 16 #include "chrome/common/pref_names.h"
16 #include "content/browser/browser_thread.h" 17 #include "content/browser/browser_thread.h"
17 #include "net/base/host_port_pair.h" 18 #include "net/base/host_port_pair.h"
18 #include "net/base/net_errors.h" 19 #include "net/base/net_errors.h"
19 #include "net/http/http_request_headers.h" 20 #include "net/http/http_request_headers.h"
20 #include "net/http/http_response_headers.h" 21 #include "net/http/http_response_headers.h"
21 #include "net/url_request/url_request.h" 22 #include "net/url_request/url_request.h"
22 23
(...skipping 13 matching lines...) Expand all
36 event_router, profile, request->status().os_error()); 37 event_router, profile, request->status().os_error());
37 } 38 }
38 } 39 }
39 } 40 }
40 41
41 } // namespace 42 } // namespace
42 43
43 ChromeNetworkDelegate::ChromeNetworkDelegate( 44 ChromeNetworkDelegate::ChromeNetworkDelegate(
44 ExtensionEventRouterForwarder* event_router, 45 ExtensionEventRouterForwarder* event_router,
45 ExtensionInfoMap* extension_info_map, 46 ExtensionInfoMap* extension_info_map,
47 const policy::URLBlacklistManager* url_blacklist_manager,
46 void* profile, 48 void* profile,
47 BooleanPrefMember* enable_referrers) 49 BooleanPrefMember* enable_referrers)
48 : event_router_(event_router), 50 : event_router_(event_router),
49 profile_(profile), 51 profile_(profile),
50 extension_info_map_(extension_info_map), 52 extension_info_map_(extension_info_map),
51 enable_referrers_(enable_referrers) { 53 enable_referrers_(enable_referrers),
54 url_blacklist_manager_(url_blacklist_manager) {
52 DCHECK(event_router); 55 DCHECK(event_router);
53 DCHECK(enable_referrers); 56 DCHECK(enable_referrers);
54 } 57 }
55 58
56 ChromeNetworkDelegate::~ChromeNetworkDelegate() {} 59 ChromeNetworkDelegate::~ChromeNetworkDelegate() {}
57 60
58 // static 61 // static
59 void ChromeNetworkDelegate::InitializeReferrersEnabled( 62 void ChromeNetworkDelegate::InitializeReferrersEnabled(
60 BooleanPrefMember* enable_referrers, 63 BooleanPrefMember* enable_referrers,
61 PrefService* pref_service) { 64 PrefService* pref_service) {
62 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 65 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
63 enable_referrers->Init(prefs::kEnableReferrers, pref_service, NULL); 66 enable_referrers->Init(prefs::kEnableReferrers, pref_service, NULL);
64 enable_referrers->MoveToThread(BrowserThread::IO); 67 enable_referrers->MoveToThread(BrowserThread::IO);
65 } 68 }
66 69
67 int ChromeNetworkDelegate::OnBeforeURLRequest( 70 int ChromeNetworkDelegate::OnBeforeURLRequest(
68 net::URLRequest* request, 71 net::URLRequest* request,
69 net::CompletionCallback* callback, 72 net::CompletionCallback* callback,
70 GURL* new_url) { 73 GURL* new_url) {
74 if (url_blacklist_manager_ &&
75 url_blacklist_manager_->IsURLBlocked(request->url())) {
76 // URL access blocked by policy.
77 return net::ERR_NETWORK_ACCESS_DENIED;
78 }
79
71 if (!enable_referrers_->GetValue()) 80 if (!enable_referrers_->GetValue())
72 request->set_referrer(std::string()); 81 request->set_referrer(std::string());
73 return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRequest( 82 return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRequest(
74 profile_, extension_info_map_.get(), request, callback, new_url); 83 profile_, extension_info_map_.get(), request, callback, new_url);
75 } 84 }
76 85
77 int ChromeNetworkDelegate::OnBeforeSendHeaders( 86 int ChromeNetworkDelegate::OnBeforeSendHeaders(
78 net::URLRequest* request, 87 net::URLRequest* request,
79 net::CompletionCallback* callback, 88 net::CompletionCallback* callback,
80 net::HttpRequestHeaders* headers) { 89 net::HttpRequestHeaders* headers) {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 ExtensionProxyEventRouter::GetInstance()->OnPACScriptError( 146 ExtensionProxyEventRouter::GetInstance()->OnPACScriptError(
138 event_router_.get(), profile_, line_number, error); 147 event_router_.get(), profile_, line_number, error);
139 } 148 }
140 149
141 void ChromeNetworkDelegate::OnAuthRequired( 150 void ChromeNetworkDelegate::OnAuthRequired(
142 net::URLRequest* request, 151 net::URLRequest* request,
143 const net::AuthChallengeInfo& auth_info) { 152 const net::AuthChallengeInfo& auth_info) {
144 ExtensionWebRequestEventRouter::GetInstance()->OnAuthRequired( 153 ExtensionWebRequestEventRouter::GetInstance()->OnAuthRequired(
145 profile_, extension_info_map_.get(), request, auth_info); 154 profile_, extension_info_map_.get(), request, auth_info);
146 } 155 }
OLDNEW
« no previous file with comments | « chrome/browser/net/chrome_network_delegate.h ('k') | chrome/browser/policy/url_blacklist_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698