URLRequestFetchJob should report start error

This commit is contained in:
deepak1556 2016-11-28 00:40:06 +05:30
parent 2b8b76a527
commit 388b601503

View file

@ -12,7 +12,6 @@
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "base/strings/string_util.h" #include "base/strings/string_util.h"
#include "native_mate/dictionary.h" #include "native_mate/dictionary.h"
#include "native_mate/handle.h"
#include "net/base/io_buffer.h" #include "net/base/io_buffer.h"
#include "net/base/net_errors.h" #include "net/base/net_errors.h"
#include "net/http/http_response_headers.h" #include "net/http/http_response_headers.h"
@ -92,9 +91,9 @@ void URLRequestFetchJob::BeforeStartInUI(
return; return;
// When |session| is set to |null| we use a new request context for fetch job. // When |session| is set to |null| we use a new request context for fetch job.
mate::Handle<api::Session> session; v8::Local<v8::Value> val;
if (options.Get("session", &session)) { if (options.Get("session", &val)) {
if (session.IsEmpty()) { if (val->IsNull()) {
// We have to create the URLRequestContextGetter on UI thread. // We have to create the URLRequestContextGetter on UI thread.
url_request_context_getter_ = new brightray::URLRequestContextGetter( url_request_context_getter_ = new brightray::URLRequestContextGetter(
this, nullptr, nullptr, base::FilePath(), true, this, nullptr, nullptr, base::FilePath(), true,
@ -102,9 +101,12 @@ void URLRequestFetchJob::BeforeStartInUI(
BrowserThread::UnsafeGetMessageLoopForThread(BrowserThread::FILE), BrowserThread::UnsafeGetMessageLoopForThread(BrowserThread::FILE),
nullptr, content::URLRequestInterceptorScopedVector()); nullptr, content::URLRequestInterceptorScopedVector());
} else { } else {
AtomBrowserContext* browser_context = session->browser_context(); mate::Handle<api::Session> session;
url_request_context_getter_ = if (mate::ConvertFromV8(isolate, val, &session) && !session.IsEmpty()) {
browser_context->url_request_context_getter(); AtomBrowserContext* browser_context = session->browser_context();
url_request_context_getter_ =
browser_context->url_request_context_getter();
}
} }
} }
} }
@ -245,21 +247,21 @@ int URLRequestFetchJob::GetResponseCode() const {
} }
void URLRequestFetchJob::OnURLFetchComplete(const net::URLFetcher* source) { void URLRequestFetchJob::OnURLFetchComplete(const net::URLFetcher* source) {
if (!response_info_) {
// Since we notify header completion only after first write there will be
// no response object constructed for http respones with no content 204.
// We notify header completion here.
HeadersCompleted();
return;
}
ClearPendingBuffer(); ClearPendingBuffer();
ClearWriteBuffer(); ClearWriteBuffer();
if (fetcher_->GetStatus().is_success()) if (fetcher_->GetStatus().is_success()) {
if (!response_info_) {
// Since we notify header completion only after first write there will be
// no response object constructed for http respones with no content 204.
// We notify header completion here.
HeadersCompleted();
return;
}
ReadRawDataComplete(0); ReadRawDataComplete(0);
else } else {
NotifyStartError(fetcher_->GetStatus()); NotifyStartError(fetcher_->GetStatus());
}
} }
int URLRequestFetchJob::BufferCopy(net::IOBuffer* source, int num_bytes, int URLRequestFetchJob::BufferCopy(net::IOBuffer* source, int num_bytes,