716cb28430
* chore: bump chromium in DEPS to 1e9f9a24aa12bea9cf194a82a7e249bd1242ec4f * chore: update patches * Make WebContents' theme color a base::Optional<SkColor> https://chromium-review.googlesource.com/c/chromium/src/+/1540022 * update autofill patch for incorrect header includes * Move Shell messages to web_test and rename to BlinkTest. https://chromium-review.googlesource.com/c/chromium/src/+/1525181 * Make PlatformNotificationServiceImpl a KeyedService. https://chromium-review.googlesource.com/c/chromium/src/+/1336150 * Move MediaPlayerId to its own file. https://chromium-review.googlesource.com/c/chromium/src/+/1547057 * Remove net/base/completion_callback.h, which is no longer used https://chromium-review.googlesource.com/c/chromium/src/+/1552821 * AW NS: support file scheme cookies https://chromium-review.googlesource.com/c/chromium/src/+/1533486 * Remove SecurityInfo and adapt remaining consumers https://chromium-review.googlesource.com/c/chromium/src/+/1509455 * Remove deprecated type-specific number to string conversion functions https://chromium-review.googlesource.com/c/chromium/src/+/1545881 * DevTools: Adding new performance histograms for launch of top 4 tools https://chromium-review.googlesource.com/c/chromium/src/+/1506388 * Update include paths for //base/hash/hash.h https://chromium-review.googlesource.com/c/chromium/src/+/1544630 * build: Disable ensure_gn_version gclient hook for mac CI checkout * update patches * use maybe version of v8::String::NewFromTwoByte * bump appveyor image version * fix mac ci hopefully * Convert enum to enum class for MenuAnchorPosition https://chromium-review.googlesource.com/c/chromium/src/+/1530508 * use maybe version of ToObject * RenderViewHost::GetProcess is no longer const * Unrefcount AuthChallengeInfo https://chromium-review.googlesource.com/c/chromium/src/+/1550631 * MenuButtonController takes Button rather than MenuButton https://chromium-review.googlesource.com/c/chromium/src/+/1500935 * add //ui/views_bridge_mac to deps to fix link error * forward declare views::Button in atom::MenuDelegate * more v8 patches * base/{=> hash}/md5.h https://chromium-review.googlesource.com/c/chromium/src/+/1535124 * gfx::{PlatformFontWin => win}::* https://chromium-review.googlesource.com/c/chromium/src/+/1534178 * fix v8 patches * [base] Rename TaskScheduler to ThreadPool https://chromium-review.googlesource.com/c/chromium/src/+/1561552 * use internal_config_base for bytecode_builtins_list_generator avoids windows link errors * FIXME: temporarily disable v8/breakpad integration * FIXME: temporarily disable prevent-will-redirect test * FIXME: disable neon on aarch64 pending crbug.com/953815 * update to account for WebCursor refactor https://chromium-review.googlesource.com/c/chromium/src/+/1562755 * enable stack dumping on appveyor * Revert "FIXME: disable neon on aarch64 pending crbug.com/953815" This reverts commit 57f082026be3d83069f2a2814684abf4dc9e7b53. * fix: remove const qualifiers to match upstream * fix: remove const qualifiers to match upstream in cc files as well * don't throw an error when testing if an object is an object * use non-deprecated Buffer constructor * Remove net::CookieSameSite::DEFAULT_MODE enum value https://chromium-review.googlesource.com/c/chromium/src/+/1567955 * depend on modded dbus-native to work around buffer deprecation https://github.com/sidorares/dbus-native/pull/262 * revert clang roll to fix arm build on linux * fixup! depend on modded dbus-native to work around buffer deprecation need more coffee * update coffee-script * robustify verify-mksnapshot w.r.t. command-line parameters * Revert "robustify verify-mksnapshot w.r.t. command-line parameters" This reverts commit a49af01411f684f6025528d604895c3696e0bc57. * fix mksnapshot by matching args * update patches * TMP: enable rdp on appveyor * Changed ContentBrowserClient::CreateQuotaPermissionContext() to return scoped_refptr. https://chromium-review.googlesource.com/c/chromium/src/+/1569376 * Make content::ResourceType an enum class. https://chromium-review.googlesource.com/c/chromium/src/+/1569345 * fixup! Make content::ResourceType an enum class. * turn off rdp * use net::CompletionRepeatingCallback instead of base::Callback<void(int)> * remove disable_ensure_gn_version_gclient_hook.patch * copy repeating callback instead of std::move * fix lint * add completion_repeating_callback.h include
74 lines
2.7 KiB
C++
74 lines
2.7 KiB
C++
// Copyright (c) 2017 GitHub, Inc.
|
|
// Use of this source code is governed by the MIT license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "atom/browser/io_thread.h"
|
|
|
|
#include <utility>
|
|
|
|
#include "components/net_log/chrome_net_log.h"
|
|
#include "content/public/browser/browser_thread.h"
|
|
#include "content/public/browser/network_service_instance.h"
|
|
#include "net/cert/caching_cert_verifier.h"
|
|
#include "net/cert/cert_verifier.h"
|
|
#include "net/cert/cert_verify_proc.h"
|
|
#include "net/cert/multi_threaded_cert_verifier.h"
|
|
#include "net/proxy_resolution/proxy_resolution_service.h"
|
|
#include "net/url_request/url_request_context.h"
|
|
#include "services/network/network_service.h"
|
|
#include "services/network/public/cpp/features.h"
|
|
#include "services/network/url_request_context_builder_mojo.h"
|
|
|
|
using content::BrowserThread;
|
|
|
|
IOThread::IOThread(net_log::ChromeNetLog* net_log,
|
|
SystemNetworkContextManager* system_network_context_manager)
|
|
: net_log_(net_log) {
|
|
BrowserThread::SetIOThreadDelegate(this);
|
|
|
|
system_network_context_manager->SetUp(
|
|
&network_context_request_, &network_context_params_,
|
|
&http_auth_static_params_, &http_auth_dynamic_params_);
|
|
}
|
|
|
|
IOThread::~IOThread() {
|
|
BrowserThread::SetIOThreadDelegate(nullptr);
|
|
}
|
|
|
|
void IOThread::Init() {
|
|
if (!base::FeatureList::IsEnabled(network::features::kNetworkService)) {
|
|
std::unique_ptr<network::URLRequestContextBuilderMojo> builder =
|
|
std::make_unique<network::URLRequestContextBuilderMojo>();
|
|
|
|
// Enable file:// support.
|
|
builder->set_file_enabled(true);
|
|
|
|
auto cert_verifier = std::make_unique<net::CachingCertVerifier>(
|
|
std::make_unique<net::MultiThreadedCertVerifier>(
|
|
net::CertVerifyProc::CreateDefault()));
|
|
builder->SetCertVerifier(std::move(cert_verifier));
|
|
|
|
// Create the network service, so that shared host resolver
|
|
// gets created which is required to set the auth preferences below.
|
|
network::NetworkService* network_service = content::GetNetworkServiceImpl();
|
|
network_service->SetUpHttpAuth(std::move(http_auth_static_params_));
|
|
network_service->ConfigureHttpAuthPrefs(
|
|
std::move(http_auth_dynamic_params_));
|
|
|
|
system_network_context_ =
|
|
network_service
|
|
->CreateNetworkContextWithBuilder(
|
|
std::move(network_context_request_),
|
|
std::move(network_context_params_), std::move(builder),
|
|
&system_request_context_)
|
|
.release();
|
|
}
|
|
}
|
|
|
|
void IOThread::CleanUp() {
|
|
if (!base::FeatureList::IsEnabled(network::features::kNetworkService))
|
|
system_request_context_->proxy_resolution_service()->OnShutdown();
|
|
|
|
if (net_log_)
|
|
net_log_->ShutDownBeforeThreadPool();
|
|
}
|