Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1926)

Unified Diff: content/network/network_service.cc

Issue 2874163004: Add support in the network service for different contexts. (Closed)
Patch Set: review comment and clang fixes Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/network/network_service.h ('k') | content/network/network_service_url_loader_factory_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/network/network_service.cc
diff --git a/content/network/network_service.cc b/content/network/network_service.cc
index f4bcd48f4fec7cd9db8dacd102adb765351e3d10..28d947b6adf5db1639efec3138b5dfdef1ce2620 100644
--- a/content/network/network_service.cc
+++ b/content/network/network_service.cc
@@ -4,21 +4,59 @@
#include "content/network/network_service.h"
+#include "base/command_line.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
-#include "content/network/cache_url_loader.h"
-#include "content/network/network_service_url_loader_factory_impl.h"
+#include "content/network/network_context.h"
+#include "content/public/common/content_switches.h"
+#include "mojo/public/cpp/bindings/strong_binding.h"
+#include "net/log/net_log_util.h"
+#include "net/log/write_to_file_net_log_observer.h"
#include "services/service_manager/public/cpp/bind_source_info.h"
namespace content {
+class NetworkService::MojoNetLog : public net::NetLog {
+ public:
+ MojoNetLog() {
+ const base::CommandLine* command_line =
+ base::CommandLine::ForCurrentProcess();
+ if (!command_line->HasSwitch(switches::kLogNetLog))
+ return;
+ base::FilePath log_path =
+ command_line->GetSwitchValuePath(switches::kLogNetLog);
+ base::ScopedFILE file;
+#if defined(OS_WIN)
+ file.reset(_wfopen(log_path.value().c_str(), L"w"));
+#elif defined(OS_POSIX)
+ file.reset(fopen(log_path.value().c_str(), "w"));
+#endif
+ if (!file) {
+ LOG(ERROR) << "Could not open file " << log_path.value()
+ << " for net logging";
+ } else {
+ write_to_file_observer_.reset(new net::WriteToFileNetLogObserver());
+ write_to_file_observer_->set_capture_mode(
+ net::NetLogCaptureMode::IncludeCookiesAndCredentials());
+ write_to_file_observer_->StartObserving(this, std::move(file), nullptr,
+ nullptr);
+ }
+ }
+ ~MojoNetLog() override {
+ if (write_to_file_observer_)
+ write_to_file_observer_->StopObserving(nullptr);
+ }
+
+ private:
+ std::unique_ptr<net::WriteToFileNetLogObserver> write_to_file_observer_;
+ DISALLOW_COPY_AND_ASSIGN(MojoNetLog);
+};
+
NetworkService::NetworkService(
std::unique_ptr<service_manager::BinderRegistry> registry)
- : registry_(std::move(registry)) {
- registry_->AddInterface<mojom::URLLoaderFactory>(base::Bind(
- &NetworkService::CreateURLLoaderFactory, base::Unretained(this)));
- registry_->AddInterface<mojom::NetworkService>(base::Bind(
- &NetworkService::CreateNetworkService, base::Unretained(this)));
+ : net_log_(new MojoNetLog), registry_(std::move(registry)), binding_(this) {
+ registry_->AddInterface<mojom::NetworkService>(
+ base::Bind(&NetworkService::Create, base::Unretained(this)));
}
NetworkService::~NetworkService() = default;
@@ -31,24 +69,18 @@ void NetworkService::OnBindInterface(
std::move(interface_pipe));
}
-void NetworkService::CreateURLLoaderFactory(
- const service_manager::BindSourceInfo& source_info,
- mojom::URLLoaderFactoryRequest request) {
- loader_factory_bindings_.AddBinding(
- base::MakeUnique<NetworkServiceURLLoaderFactoryImpl>(&context_),
- std::move(request));
-}
-
-void NetworkService::CreateNetworkService(
- const service_manager::BindSourceInfo& source_info,
- mojom::NetworkServiceRequest request) {
- network_service_bindings_.AddBinding(this, std::move(request));
+void NetworkService::Create(const service_manager::BindSourceInfo& source_info,
+ mojom::NetworkServiceRequest request) {
+ DCHECK(!binding_.is_bound());
+ binding_.Bind(std::move(request));
}
-void NetworkService::HandleViewCacheRequest(const ResourceRequest& request,
- mojom::URLLoaderClientPtr client) {
- StartCacheURLLoader(request, context_.url_request_context(),
- std::move(client));
+void NetworkService::CreateNetworkContext(
+ mojom::NetworkContextRequest request,
+ mojom::NetworkContextParamsPtr params) {
+ mojo::MakeStrongBinding(
+ base::MakeUnique<NetworkContext>(std::move(request), std::move(params)),
+ std::move(request));
}
} // namespace content
« no previous file with comments | « content/network/network_service.h ('k') | content/network/network_service_url_loader_factory_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698