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 |