From 1b70ca2098a5dc2c688ee7c5b4f81a2a259e4151 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Fri, 15 Aug 2014 11:35:13 +0800 Subject: [PATCH] Initialize job factory as early as possible. Fixes atom/atom#3255. --- atom/browser/api/atom_api_protocol.cc | 6 +----- atom/browser/atom_browser_context.cc | 3 +-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/atom/browser/api/atom_api_protocol.cc b/atom/browser/api/atom_api_protocol.cc index 9f29ecbda..0cace29bb 100644 --- a/atom/browser/api/atom_api_protocol.cc +++ b/atom/browser/api/atom_api_protocol.cc @@ -4,7 +4,6 @@ #include "atom/browser/api/atom_api_protocol.h" -#include "base/stl_util.h" #include "atom/browser/atom_browser_context.h" #include "atom/browser/net/adapter_request_job.h" #include "atom/browser/net/atom_url_request_job_factory.h" @@ -153,6 +152,7 @@ class CustomProtocolHandler : public ProtocolHandler { Protocol::Protocol() : job_factory_(AtomBrowserContext::Get()->job_factory()) { + CHECK(job_factory_); } Protocol::JsProtocolHandler Protocol::GetProtocolHandler( @@ -323,10 +323,6 @@ namespace { void Initialize(v8::Handle exports, v8::Handle unused, v8::Handle context, void* priv) { - // Make sure the job factory has been created. - atom::AtomBrowserContext::Get()->url_request_context_getter()-> - GetURLRequestContext(); - v8::Isolate* isolate = context->GetIsolate(); mate::Dictionary dict(isolate, exports); dict.Set("protocol", atom::api::Protocol::Create(isolate)); diff --git a/atom/browser/atom_browser_context.cc b/atom/browser/atom_browser_context.cc index 295bfa4a3..0fcdbad19 100644 --- a/atom/browser/atom_browser_context.cc +++ b/atom/browser/atom_browser_context.cc @@ -19,7 +19,7 @@ using content::BrowserThread; namespace atom { AtomBrowserContext::AtomBrowserContext() - : job_factory_(NULL) { + : job_factory_(new AtomURLRequestJobFactory) { } AtomBrowserContext::~AtomBrowserContext() { @@ -29,7 +29,6 @@ scoped_ptr AtomBrowserContext::CreateURLRequestJobFactory( content::ProtocolHandlerMap* handlers, content::ProtocolHandlerScopedVector* interceptors) { - job_factory_ = new AtomURLRequestJobFactory; scoped_ptr job_factory(job_factory_); for (content::ProtocolHandlerMap::iterator it = handlers->begin();