electron/brightray/browser/network_delegate.cc

159 lines
4.7 KiB
C++
Raw Normal View History

2013-03-13 19:12:05 +00:00
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE-CHROMIUM file.
#include "browser/network_delegate.h"
2015-06-16 08:03:43 +00:00
#include <string>
#include <vector>
#include "base/command_line.h"
#include "base/strings/string_split.h"
#include "net/base/load_flags.h"
2013-03-13 19:12:05 +00:00
#include "net/base/net_errors.h"
2015-06-16 08:03:43 +00:00
#include "net/url_request/url_request.h"
2013-03-13 19:12:05 +00:00
namespace brightray {
2015-06-16 08:03:43 +00:00
namespace {
// Ignore the limit of 6 connections per host.
const char kIgnoreConnectionsLimit[] = "ignore-connections-limit";
} // namespace
2013-03-13 19:12:05 +00:00
NetworkDelegate::NetworkDelegate() {
2015-06-16 08:03:43 +00:00
auto command_line = base::CommandLine::ForCurrentProcess();
if (command_line->HasSwitch(kIgnoreConnectionsLimit)) {
std::string value = command_line->GetSwitchValueASCII(kIgnoreConnectionsLimit);
2015-12-07 11:55:01 +00:00
ignore_connections_limit_domains_ = base::SplitString(
value, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
2015-06-16 08:03:43 +00:00
}
2013-03-13 19:12:05 +00:00
}
NetworkDelegate::~NetworkDelegate() {
}
int NetworkDelegate::OnBeforeURLRequest(
net::URLRequest* request,
const net::CompletionCallback& callback,
GURL* new_url) {
2015-06-16 08:03:43 +00:00
for (const auto& domain : ignore_connections_limit_domains_) {
2015-12-07 11:55:01 +00:00
if (request->url().DomainIs(domain)) {
2015-06-16 08:03:43 +00:00
// Allow unlimited concurrent connections.
request->SetPriority(net::MAXIMUM_PRIORITY);
request->SetLoadFlags(request->load_flags() | net::LOAD_IGNORE_LIMITS);
break;
}
}
2013-03-13 19:12:05 +00:00
return net::OK;
}
2015-03-09 02:47:12 +00:00
void NetworkDelegate::OnResolveProxy(const GURL& url,
int load_flags,
const net::ProxyService& proxy_service,
net::ProxyInfo* result) {
}
void NetworkDelegate::OnProxyFallback(const net::ProxyServer& bad_proxy, int net_error) {
}
2013-03-13 19:12:05 +00:00
int NetworkDelegate::OnBeforeSendHeaders(
net::URLRequest* request,
const net::CompletionCallback& callback,
net::HttpRequestHeaders* headers) {
return net::OK;
}
2015-03-09 02:47:12 +00:00
void NetworkDelegate::OnBeforeSendProxyHeaders(net::URLRequest* request,
const net::ProxyInfo& proxy_info,
net::HttpRequestHeaders* headers) {
}
2013-03-13 19:12:05 +00:00
void NetworkDelegate::OnSendHeaders(
net::URLRequest* request,
const net::HttpRequestHeaders& headers) {
}
int NetworkDelegate::OnHeadersReceived(
net::URLRequest* request,
const net::CompletionCallback& callback,
const net::HttpResponseHeaders* original_response_headers,
2014-06-26 20:33:11 +00:00
scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
GURL* allowed_unsafe_redirect_url) {
2013-03-13 19:12:05 +00:00
return net::OK;
}
void NetworkDelegate::OnBeforeRedirect(net::URLRequest* request,
const GURL& new_location) {
}
void NetworkDelegate::OnResponseStarted(net::URLRequest* request) {
}
2016-03-08 05:59:14 +00:00
void NetworkDelegate::OnNetworkBytesReceived(net::URLRequest* request,
2015-12-07 11:55:01 +00:00
int64_t bytes_read) {
}
2016-03-08 05:59:14 +00:00
void NetworkDelegate::OnNetworkBytesSent(net::URLRequest* request,
2015-12-07 11:55:01 +00:00
int64_t bytes_sent) {
2013-03-13 19:12:05 +00:00
}
void NetworkDelegate::OnCompleted(net::URLRequest* request, bool started) {
}
void NetworkDelegate::OnURLRequestDestroyed(net::URLRequest* request) {
}
void NetworkDelegate::OnPACScriptError(int line_number,
const base::string16& error) {
2013-03-13 19:12:05 +00:00
}
NetworkDelegate::AuthRequiredResponse NetworkDelegate::OnAuthRequired(
net::URLRequest* request,
const net::AuthChallengeInfo& auth_info,
const AuthCallback& callback,
net::AuthCredentials* credentials) {
return AUTH_REQUIRED_RESPONSE_NO_ACTION;
}
bool NetworkDelegate::OnCanGetCookies(const net::URLRequest& request,
const net::CookieList& cookie_list) {
return true;
}
bool NetworkDelegate::OnCanSetCookie(const net::URLRequest& request,
const std::string& cookie_line,
net::CookieOptions* options) {
return true;
}
bool NetworkDelegate::OnCanAccessFile(const net::URLRequest& request,
const base::FilePath& path) const {
return true;
}
2015-03-09 02:47:12 +00:00
bool NetworkDelegate::OnCanEnablePrivacyMode(
const GURL& url,
const GURL& first_party_for_cookies) const {
return false;
}
2016-03-08 14:28:28 +00:00
bool NetworkDelegate::OnAreStrictSecureCookiesEnabled() const {
2016-03-08 05:59:14 +00:00
return true;
}
2016-03-08 14:28:28 +00:00
bool NetworkDelegate::OnAreExperimentalCookieFeaturesEnabled() const {
return true;
}
2015-03-09 02:47:12 +00:00
bool NetworkDelegate::OnCancelURLRequestWithPolicyViolatingReferrerHeader(
const net::URLRequest& request,
const GURL& target_url,
const GURL& referrer_url) const {
return false;
2013-03-13 19:12:05 +00:00
}
} // namespace brightray