| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <stdlib.h> | 7 #include <stdlib.h> |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 } | 278 } |
| 279 | 279 |
| 280 } // namespace | 280 } // namespace |
| 281 | 281 |
| 282 ChromeNetworkDelegate::ChromeNetworkDelegate( | 282 ChromeNetworkDelegate::ChromeNetworkDelegate( |
| 283 extensions::EventRouterForwarder* event_router, | 283 extensions::EventRouterForwarder* event_router, |
| 284 BooleanPrefMember* enable_referrers) | 284 BooleanPrefMember* enable_referrers) |
| 285 : profile_(NULL), | 285 : profile_(NULL), |
| 286 enable_referrers_(enable_referrers), | 286 enable_referrers_(enable_referrers), |
| 287 enable_do_not_track_(NULL), | 287 enable_do_not_track_(NULL), |
| 288 force_safe_search_(NULL), | |
| 289 force_google_safe_search_(NULL), | 288 force_google_safe_search_(NULL), |
| 290 force_youtube_safety_mode_(NULL), | 289 force_youtube_safety_mode_(NULL), |
| 291 #if defined(ENABLE_CONFIGURATION_POLICY) | 290 #if defined(ENABLE_CONFIGURATION_POLICY) |
| 292 url_blacklist_manager_(NULL), | 291 url_blacklist_manager_(NULL), |
| 293 #endif | 292 #endif |
| 294 domain_reliability_monitor_(NULL), | 293 domain_reliability_monitor_(NULL), |
| 295 experimental_web_platform_features_enabled_( | 294 experimental_web_platform_features_enabled_( |
| 296 base::CommandLine::ForCurrentProcess()->HasSwitch( | 295 base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 297 switches::kEnableExperimentalWebPlatformFeatures)) { | 296 switches::kEnableExperimentalWebPlatformFeatures)) { |
| 298 DCHECK(enable_referrers); | 297 DCHECK(enable_referrers); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 327 #if defined(ENABLE_EXTENSIONS) | 326 #if defined(ENABLE_EXTENSIONS) |
| 328 void ChromeNetworkDelegate::NeverThrottleRequests() { | 327 void ChromeNetworkDelegate::NeverThrottleRequests() { |
| 329 g_never_throttle_requests_ = true; | 328 g_never_throttle_requests_ = true; |
| 330 } | 329 } |
| 331 #endif | 330 #endif |
| 332 | 331 |
| 333 // static | 332 // static |
| 334 void ChromeNetworkDelegate::InitializePrefsOnUIThread( | 333 void ChromeNetworkDelegate::InitializePrefsOnUIThread( |
| 335 BooleanPrefMember* enable_referrers, | 334 BooleanPrefMember* enable_referrers, |
| 336 BooleanPrefMember* enable_do_not_track, | 335 BooleanPrefMember* enable_do_not_track, |
| 337 BooleanPrefMember* force_safe_search, | |
| 338 BooleanPrefMember* force_google_safe_search, | 336 BooleanPrefMember* force_google_safe_search, |
| 339 BooleanPrefMember* force_youtube_safety_mode, | 337 BooleanPrefMember* force_youtube_safety_mode, |
| 340 PrefService* pref_service) { | 338 PrefService* pref_service) { |
| 341 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 339 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 342 enable_referrers->Init(prefs::kEnableReferrers, pref_service); | 340 enable_referrers->Init(prefs::kEnableReferrers, pref_service); |
| 343 enable_referrers->MoveToThread( | 341 enable_referrers->MoveToThread( |
| 344 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); | 342 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); |
| 345 if (enable_do_not_track) { | 343 if (enable_do_not_track) { |
| 346 enable_do_not_track->Init(prefs::kEnableDoNotTrack, pref_service); | 344 enable_do_not_track->Init(prefs::kEnableDoNotTrack, pref_service); |
| 347 enable_do_not_track->MoveToThread( | 345 enable_do_not_track->MoveToThread( |
| 348 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); | 346 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); |
| 349 } | 347 } |
| 350 if (force_safe_search) { | |
| 351 force_safe_search->Init(prefs::kForceSafeSearch, pref_service); | |
| 352 force_safe_search->MoveToThread( | |
| 353 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); | |
| 354 } | |
| 355 if (force_google_safe_search) { | 348 if (force_google_safe_search) { |
| 356 force_google_safe_search->Init(prefs::kForceGoogleSafeSearch, pref_service); | 349 force_google_safe_search->Init(prefs::kForceGoogleSafeSearch, pref_service); |
| 357 force_google_safe_search->MoveToThread( | 350 force_google_safe_search->MoveToThread( |
| 358 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); | 351 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); |
| 359 } | 352 } |
| 360 if (force_youtube_safety_mode) { | 353 if (force_youtube_safety_mode) { |
| 361 force_youtube_safety_mode->Init(prefs::kForceYouTubeSafetyMode, | 354 force_youtube_safety_mode->Init(prefs::kForceYouTubeSafetyMode, |
| 362 pref_service); | 355 pref_service); |
| 363 force_youtube_safety_mode->MoveToThread( | 356 force_youtube_safety_mode->MoveToThread( |
| 364 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); | 357 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 391 #endif | 384 #endif |
| 392 | 385 |
| 393 extensions_delegate_->ForwardStartRequestStatus(request); | 386 extensions_delegate_->ForwardStartRequestStatus(request); |
| 394 | 387 |
| 395 if (!enable_referrers_->GetValue()) | 388 if (!enable_referrers_->GetValue()) |
| 396 request->SetReferrer(std::string()); | 389 request->SetReferrer(std::string()); |
| 397 if (enable_do_not_track_ && enable_do_not_track_->GetValue()) | 390 if (enable_do_not_track_ && enable_do_not_track_->GetValue()) |
| 398 request->SetExtraRequestHeaderByName(kDNTHeader, "1", true /* override */); | 391 request->SetExtraRequestHeaderByName(kDNTHeader, "1", true /* override */); |
| 399 | 392 |
| 400 bool force_safe_search = | 393 bool force_safe_search = |
| 401 (force_safe_search_ && force_safe_search_->GetValue()) || | |
| 402 (force_google_safe_search_ && force_google_safe_search_->GetValue()); | 394 (force_google_safe_search_ && force_google_safe_search_->GetValue()); |
| 403 | 395 |
| 404 net::CompletionCallback wrapped_callback = callback; | 396 net::CompletionCallback wrapped_callback = callback; |
| 405 if (force_safe_search) { | 397 if (force_safe_search) { |
| 406 wrapped_callback = base::Bind(&ForceGoogleSafeSearchCallbackWrapper, | 398 wrapped_callback = base::Bind(&ForceGoogleSafeSearchCallbackWrapper, |
| 407 callback, | 399 callback, |
| 408 base::Unretained(request), | 400 base::Unretained(request), |
| 409 base::Unretained(new_url)); | 401 base::Unretained(new_url)); |
| 410 } | 402 } |
| 411 | 403 |
| 412 int rv = extensions_delegate_->OnBeforeURLRequest( | 404 int rv = extensions_delegate_->OnBeforeURLRequest( |
| 413 request, wrapped_callback, new_url); | 405 request, wrapped_callback, new_url); |
| 414 | 406 |
| 415 if (force_safe_search && rv == net::OK && new_url->is_empty()) | 407 if (force_safe_search && rv == net::OK && new_url->is_empty()) |
| 416 safe_search_util::ForceGoogleSafeSearch(request, new_url); | 408 safe_search_util::ForceGoogleSafeSearch(request, new_url); |
| 417 | 409 |
| 418 if (connect_interceptor_) | 410 if (connect_interceptor_) |
| 419 connect_interceptor_->WitnessURLRequest(request); | 411 connect_interceptor_->WitnessURLRequest(request); |
| 420 | 412 |
| 421 return rv; | 413 return rv; |
| 422 } | 414 } |
| 423 | 415 |
| 424 int ChromeNetworkDelegate::OnBeforeSendHeaders( | 416 int ChromeNetworkDelegate::OnBeforeSendHeaders( |
| 425 net::URLRequest* request, | 417 net::URLRequest* request, |
| 426 const net::CompletionCallback& callback, | 418 const net::CompletionCallback& callback, |
| 427 net::HttpRequestHeaders* headers) { | 419 net::HttpRequestHeaders* headers) { |
| 428 bool force_safety_mode = | 420 if (force_youtube_safety_mode_ && force_youtube_safety_mode_->GetValue()) |
| 429 (force_safe_search_ && force_safe_search_->GetValue()) || | |
| 430 (force_youtube_safety_mode_ && force_youtube_safety_mode_->GetValue()); | |
| 431 if (force_safety_mode) | |
| 432 safe_search_util::ForceYouTubeSafetyMode(request, headers); | 421 safe_search_util::ForceYouTubeSafetyMode(request, headers); |
| 433 | 422 |
| 434 return extensions_delegate_->OnBeforeSendHeaders(request, callback, headers); | 423 return extensions_delegate_->OnBeforeSendHeaders(request, callback, headers); |
| 435 } | 424 } |
| 436 | 425 |
| 437 void ChromeNetworkDelegate::OnSendHeaders( | 426 void ChromeNetworkDelegate::OnSendHeaders( |
| 438 net::URLRequest* request, | 427 net::URLRequest* request, |
| 439 const net::HttpRequestHeaders& headers) { | 428 const net::HttpRequestHeaders& headers) { |
| 440 extensions_delegate_->OnSendHeaders(request, headers); | 429 extensions_delegate_->OnSendHeaders(request, headers); |
| 441 } | 430 } |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 688 return experimental_web_platform_features_enabled_; | 677 return experimental_web_platform_features_enabled_; |
| 689 } | 678 } |
| 690 | 679 |
| 691 bool ChromeNetworkDelegate::OnCancelURLRequestWithPolicyViolatingReferrerHeader( | 680 bool ChromeNetworkDelegate::OnCancelURLRequestWithPolicyViolatingReferrerHeader( |
| 692 const net::URLRequest& request, | 681 const net::URLRequest& request, |
| 693 const GURL& target_url, | 682 const GURL& target_url, |
| 694 const GURL& referrer_url) const { | 683 const GURL& referrer_url) const { |
| 695 ReportInvalidReferrerSend(target_url, referrer_url); | 684 ReportInvalidReferrerSend(target_url, referrer_url); |
| 696 return true; | 685 return true; |
| 697 } | 686 } |
| OLD | NEW |