OLD | NEW |
---|---|
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 Loading... | |
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 // TODO(joaodasilva): this error code isn't quite correct | |
Mattias Nissler (ping if slow)
2011/08/31 14:58:09
period
Can we just define a new error code then?
Joao da Silva
2011/09/01 12:47:36
@willchan suggests using ERR_NETWORK_ACCESS_DENIED
| |
78 return net::ERR_EMPTY_RESPONSE; | |
79 } | |
80 | |
71 if (!enable_referrers_->GetValue()) | 81 if (!enable_referrers_->GetValue()) |
72 request->set_referrer(std::string()); | 82 request->set_referrer(std::string()); |
73 return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRequest( | 83 return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRequest( |
74 profile_, extension_info_map_.get(), request, callback, new_url); | 84 profile_, extension_info_map_.get(), request, callback, new_url); |
75 } | 85 } |
76 | 86 |
77 int ChromeNetworkDelegate::OnBeforeSendHeaders( | 87 int ChromeNetworkDelegate::OnBeforeSendHeaders( |
78 net::URLRequest* request, | 88 net::URLRequest* request, |
79 net::CompletionCallback* callback, | 89 net::CompletionCallback* callback, |
80 net::HttpRequestHeaders* headers) { | 90 net::HttpRequestHeaders* headers) { |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
137 ExtensionProxyEventRouter::GetInstance()->OnPACScriptError( | 147 ExtensionProxyEventRouter::GetInstance()->OnPACScriptError( |
138 event_router_.get(), profile_, line_number, error); | 148 event_router_.get(), profile_, line_number, error); |
139 } | 149 } |
140 | 150 |
141 void ChromeNetworkDelegate::OnAuthRequired( | 151 void ChromeNetworkDelegate::OnAuthRequired( |
142 net::URLRequest* request, | 152 net::URLRequest* request, |
143 const net::AuthChallengeInfo& auth_info) { | 153 const net::AuthChallengeInfo& auth_info) { |
144 ExtensionWebRequestEventRouter::GetInstance()->OnAuthRequired( | 154 ExtensionWebRequestEventRouter::GetInstance()->OnAuthRequired( |
145 profile_, extension_info_map_.get(), request, auth_info); | 155 profile_, extension_info_map_.get(), request, auth_info); |
146 } | 156 } |
OLD | NEW |