network_delegate.cc 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  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
  3. // found in the LICENSE-CHROMIUM file.
  4. #include "brightray/browser/network_delegate.h"
  5. #include <string>
  6. #include <vector>
  7. #include "base/command_line.h"
  8. #include "base/strings/string_split.h"
  9. #include "net/base/load_flags.h"
  10. #include "net/base/net_errors.h"
  11. #include "net/url_request/url_request.h"
  12. namespace brightray {
  13. namespace {
  14. // Ignore the limit of 6 connections per host.
  15. const char kIgnoreConnectionsLimit[] = "ignore-connections-limit";
  16. } // namespace
  17. NetworkDelegate::NetworkDelegate() {
  18. auto command_line = base::CommandLine::ForCurrentProcess();
  19. if (command_line->HasSwitch(kIgnoreConnectionsLimit)) {
  20. std::string value =
  21. command_line->GetSwitchValueASCII(kIgnoreConnectionsLimit);
  22. ignore_connections_limit_domains_ = base::SplitString(
  23. value, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
  24. }
  25. }
  26. NetworkDelegate::~NetworkDelegate() {
  27. }
  28. int NetworkDelegate::OnBeforeURLRequest(
  29. net::URLRequest* request,
  30. const net::CompletionCallback& callback,
  31. GURL* new_url) {
  32. for (const auto& domain : ignore_connections_limit_domains_) {
  33. if (request->url().DomainIs(domain)) {
  34. // Allow unlimited concurrent connections.
  35. request->SetPriority(net::MAXIMUM_PRIORITY);
  36. request->SetLoadFlags(request->load_flags() | net::LOAD_IGNORE_LIMITS);
  37. break;
  38. }
  39. }
  40. return net::OK;
  41. }
  42. int NetworkDelegate::OnBeforeStartTransaction(
  43. net::URLRequest* request,
  44. const net::CompletionCallback& callback,
  45. net::HttpRequestHeaders* headers) {
  46. return net::OK;
  47. }
  48. void NetworkDelegate::OnStartTransaction(
  49. net::URLRequest* request,
  50. const net::HttpRequestHeaders& headers) {
  51. }
  52. void NetworkDelegate::OnBeforeSendHeaders(
  53. net::URLRequest* request,
  54. const net::ProxyInfo& proxy_info,
  55. const net::ProxyRetryInfoMap& proxy_retry_info,
  56. net::HttpRequestHeaders* headers) {
  57. }
  58. int NetworkDelegate::OnHeadersReceived(
  59. net::URLRequest* request,
  60. const net::CompletionCallback& callback,
  61. const net::HttpResponseHeaders* original_response_headers,
  62. scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
  63. GURL* allowed_unsafe_redirect_url) {
  64. return net::OK;
  65. }
  66. void NetworkDelegate::OnBeforeRedirect(net::URLRequest* request,
  67. const GURL& new_location) {
  68. }
  69. void NetworkDelegate::OnResponseStarted(net::URLRequest* request) {
  70. }
  71. void NetworkDelegate::OnNetworkBytesReceived(net::URLRequest* request,
  72. int64_t bytes_read) {
  73. }
  74. void NetworkDelegate::OnNetworkBytesSent(net::URLRequest* request,
  75. int64_t bytes_sent) {
  76. }
  77. void NetworkDelegate::OnCompleted(net::URLRequest* request, bool started) {
  78. }
  79. void NetworkDelegate::OnURLRequestDestroyed(net::URLRequest* request) {
  80. }
  81. void NetworkDelegate::OnPACScriptError(int line_number,
  82. const base::string16& error) {
  83. }
  84. NetworkDelegate::AuthRequiredResponse NetworkDelegate::OnAuthRequired(
  85. net::URLRequest* request,
  86. const net::AuthChallengeInfo& auth_info,
  87. const AuthCallback& callback,
  88. net::AuthCredentials* credentials) {
  89. return AUTH_REQUIRED_RESPONSE_NO_ACTION;
  90. }
  91. bool NetworkDelegate::OnCanGetCookies(const net::URLRequest& request,
  92. const net::CookieList& cookie_list) {
  93. return true;
  94. }
  95. bool NetworkDelegate::OnCanSetCookie(const net::URLRequest& request,
  96. const std::string& cookie_line,
  97. net::CookieOptions* options) {
  98. return true;
  99. }
  100. bool NetworkDelegate::OnCanAccessFile(const net::URLRequest& request,
  101. const base::FilePath& path) const {
  102. return true;
  103. }
  104. bool NetworkDelegate::OnCanEnablePrivacyMode(
  105. const GURL& url,
  106. const GURL& first_party_for_cookies) const {
  107. return false;
  108. }
  109. bool NetworkDelegate::OnAreExperimentalCookieFeaturesEnabled() const {
  110. return true;
  111. }
  112. bool NetworkDelegate::OnCancelURLRequestWithPolicyViolatingReferrerHeader(
  113. const net::URLRequest& request,
  114. const GURL& target_url,
  115. const GURL& referrer_url) const {
  116. return false;
  117. }
  118. } // namespace brightray