| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "ios/chrome/browser/net/ios_chrome_network_delegate.h" | 5 #include "ios/chrome/browser/net/ios_chrome_network_delegate.h" |
| 6 | 6 |
| 7 #include <stdlib.h> | 7 #include <stdlib.h> |
| 8 | 8 |
| 9 #include "base/base_paths.h" | 9 #include "base/base_paths.h" |
| 10 #include "base/debug/alias.h" | 10 #include "base/debug/alias.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 #include "components/domain_reliability/monitor.h" | 21 #include "components/domain_reliability/monitor.h" |
| 22 #include "ios/chrome/browser/pref_names.h" | 22 #include "ios/chrome/browser/pref_names.h" |
| 23 #include "ios/web/public/web_thread.h" | 23 #include "ios/web/public/web_thread.h" |
| 24 #include "net/base/load_flags.h" | 24 #include "net/base/load_flags.h" |
| 25 #include "net/base/net_errors.h" | 25 #include "net/base/net_errors.h" |
| 26 #include "net/cookies/cookie_options.h" | 26 #include "net/cookies/cookie_options.h" |
| 27 #include "net/http/http_status_code.h" | 27 #include "net/http/http_status_code.h" |
| 28 #include "net/log/net_log.h" | 28 #include "net/log/net_log.h" |
| 29 #include "net/url_request/url_request.h" | 29 #include "net/url_request/url_request.h" |
| 30 | 30 |
| 31 #if defined(ENABLE_CONFIGURATION_POLICY) | |
| 32 #include "components/policy/core/browser/url_blacklist_manager.h" | |
| 33 #endif | |
| 34 | |
| 35 namespace { | 31 namespace { |
| 36 | 32 |
| 37 const char kDNTHeader[] = "DNT"; | 33 const char kDNTHeader[] = "DNT"; |
| 38 | 34 |
| 39 void ReportInvalidReferrerSendOnUI() { | 35 void ReportInvalidReferrerSendOnUI() { |
| 40 base::RecordAction( | 36 base::RecordAction( |
| 41 base::UserMetricsAction("Net.URLRequest_StartJob_InvalidReferrer")); | 37 base::UserMetricsAction("Net.URLRequest_StartJob_InvalidReferrer")); |
| 42 } | 38 } |
| 43 | 39 |
| 44 void ReportInvalidReferrerSend(const GURL& target_url, | 40 void ReportInvalidReferrerSend(const GURL& target_url, |
| (...skipping 21 matching lines...) Expand all Loading... |
| 66 "Net.HttpRequestCompletionErrorCodes.MainFrame", | 62 "Net.HttpRequestCompletionErrorCodes.MainFrame", |
| 67 std::abs(request->status().error())); | 63 std::abs(request->status().error())); |
| 68 } | 64 } |
| 69 } | 65 } |
| 70 } | 66 } |
| 71 | 67 |
| 72 } // namespace | 68 } // namespace |
| 73 | 69 |
| 74 IOSChromeNetworkDelegate::IOSChromeNetworkDelegate() | 70 IOSChromeNetworkDelegate::IOSChromeNetworkDelegate() |
| 75 : enable_do_not_track_(nullptr), | 71 : enable_do_not_track_(nullptr), |
| 76 #if defined(ENABLE_CONFIGURATION_POLICY) | |
| 77 url_blacklist_manager_(nullptr), | |
| 78 #endif | |
| 79 domain_reliability_monitor_(nullptr) { | 72 domain_reliability_monitor_(nullptr) { |
| 80 } | 73 } |
| 81 | 74 |
| 82 IOSChromeNetworkDelegate::~IOSChromeNetworkDelegate() {} | 75 IOSChromeNetworkDelegate::~IOSChromeNetworkDelegate() {} |
| 83 | 76 |
| 84 // static | 77 // static |
| 85 void IOSChromeNetworkDelegate::InitializePrefsOnUIThread( | 78 void IOSChromeNetworkDelegate::InitializePrefsOnUIThread( |
| 86 BooleanPrefMember* enable_do_not_track, | 79 BooleanPrefMember* enable_do_not_track, |
| 87 PrefService* pref_service) { | 80 PrefService* pref_service) { |
| 88 DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); | 81 DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); |
| 89 if (enable_do_not_track) { | 82 if (enable_do_not_track) { |
| 90 enable_do_not_track->Init(ios::prefs::kEnableDoNotTrack, pref_service); | 83 enable_do_not_track->Init(ios::prefs::kEnableDoNotTrack, pref_service); |
| 91 enable_do_not_track->MoveToThread( | 84 enable_do_not_track->MoveToThread( |
| 92 web::WebThread::GetTaskRunnerForThread(web::WebThread::IO)); | 85 web::WebThread::GetTaskRunnerForThread(web::WebThread::IO)); |
| 93 } | 86 } |
| 94 } | 87 } |
| 95 | 88 |
| 96 int IOSChromeNetworkDelegate::OnBeforeURLRequest( | 89 int IOSChromeNetworkDelegate::OnBeforeURLRequest( |
| 97 net::URLRequest* request, | 90 net::URLRequest* request, |
| 98 const net::CompletionCallback& callback, | 91 const net::CompletionCallback& callback, |
| 99 GURL* new_url) { | 92 GURL* new_url) { |
| 100 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed. | 93 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed. |
| 101 tracked_objects::ScopedTracker tracking_profile1( | 94 tracked_objects::ScopedTracker tracking_profile1( |
| 102 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 95 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
| 103 "456327 URLRequest::IOSChromeNetworkDelegate::OnBeforeURLRequest")); | 96 "456327 URLRequest::IOSChromeNetworkDelegate::OnBeforeURLRequest")); |
| 104 | 97 |
| 105 #if defined(ENABLE_CONFIGURATION_POLICY) | |
| 106 int error = net::ERR_BLOCKED_BY_ADMINISTRATOR; | |
| 107 // iOS cannot check the resource type, block everything. | |
| 108 // See http://crbug.com/338283 and http://crbug.com/489704 | |
| 109 if (url_blacklist_manager_ && | |
| 110 url_blacklist_manager_->ShouldBlockRequestForFrame(request->url(), | |
| 111 &error)) { | |
| 112 // URL access blocked by policy. | |
| 113 request->net_log().AddEvent( | |
| 114 net::NetLog::TYPE_CHROME_POLICY_ABORTED_REQUEST, | |
| 115 net::NetLog::StringCallback("url", | |
| 116 &request->url().possibly_invalid_spec())); | |
| 117 return error; | |
| 118 } | |
| 119 #endif | |
| 120 | |
| 121 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed. | 98 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed. |
| 122 tracked_objects::ScopedTracker tracking_profile2( | 99 tracked_objects::ScopedTracker tracking_profile2( |
| 123 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 100 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
| 124 "456327 URLRequest::IOSChromeNetworkDelegate::OnBeforeURLRequest 2")); | 101 "456327 URLRequest::IOSChromeNetworkDelegate::OnBeforeURLRequest 2")); |
| 125 | 102 |
| 126 if (enable_do_not_track_ && enable_do_not_track_->GetValue()) | 103 if (enable_do_not_track_ && enable_do_not_track_->GetValue()) |
| 127 request->SetExtraRequestHeaderByName(kDNTHeader, "1", true /* override */); | 104 request->SetExtraRequestHeaderByName(kDNTHeader, "1", true /* override */); |
| 128 | 105 |
| 129 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed. | 106 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed. |
| 130 tracked_objects::ScopedTracker tracking_profile4( | 107 tracked_objects::ScopedTracker tracking_profile4( |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 } | 177 } |
| 201 | 178 |
| 202 bool IOSChromeNetworkDelegate:: | 179 bool IOSChromeNetworkDelegate:: |
| 203 OnCancelURLRequestWithPolicyViolatingReferrerHeader( | 180 OnCancelURLRequestWithPolicyViolatingReferrerHeader( |
| 204 const net::URLRequest& request, | 181 const net::URLRequest& request, |
| 205 const GURL& target_url, | 182 const GURL& target_url, |
| 206 const GURL& referrer_url) const { | 183 const GURL& referrer_url) const { |
| 207 ReportInvalidReferrerSend(target_url, referrer_url); | 184 ReportInvalidReferrerSend(target_url, referrer_url); |
| 208 return true; | 185 return true; |
| 209 } | 186 } |
| OLD | NEW |