Some code cleaning.
This commit is contained in:
parent
f7525d7877
commit
fcaf9cb031
5 changed files with 85 additions and 60 deletions
|
@ -23,8 +23,9 @@ namespace mate {
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct Converter<scoped_refptr<const net::HttpResponseHeaders>> {
|
struct Converter<scoped_refptr<const net::HttpResponseHeaders>> {
|
||||||
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
|
static v8::Local<v8::Value> ToV8(
|
||||||
scoped_refptr<const net::HttpResponseHeaders> val) {
|
v8::Isolate* isolate,
|
||||||
|
scoped_refptr<const net::HttpResponseHeaders> val) {
|
||||||
|
|
||||||
mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
|
mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
|
||||||
if (val) {
|
if (val) {
|
||||||
|
@ -41,15 +42,18 @@ struct Converter<scoped_refptr<const net::HttpResponseHeaders>> {
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct Converter<scoped_refptr<const net::IOBufferWithSize>> {
|
struct Converter<scoped_refptr<const net::IOBufferWithSize>> {
|
||||||
|
|
||||||
static v8::Local<v8::Value> ToV8(
|
static v8::Local<v8::Value> ToV8(
|
||||||
v8::Isolate* isolate,
|
v8::Isolate* isolate,
|
||||||
scoped_refptr<const net::IOBufferWithSize> buffer) {
|
scoped_refptr<const net::IOBufferWithSize> buffer) {
|
||||||
return node::Buffer::Copy(isolate, buffer->data(), buffer->size()).ToLocalChecked();
|
return node::Buffer::Copy(isolate,
|
||||||
|
buffer->data(),
|
||||||
|
buffer->size()).ToLocalChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool FromV8(v8::Isolate* isolate, v8::Local<v8::Value> val,
|
static bool FromV8(
|
||||||
scoped_refptr<const net::IOBufferWithSize>* out) {
|
v8::Isolate* isolate,
|
||||||
|
v8::Local<v8::Value> val,
|
||||||
|
scoped_refptr<const net::IOBufferWithSize>* out) {
|
||||||
|
|
||||||
auto size = node::Buffer::Length(val);
|
auto size = node::Buffer::Length(val);
|
||||||
|
|
||||||
|
@ -87,10 +91,9 @@ namespace atom {
|
||||||
|
|
||||||
namespace api {
|
namespace api {
|
||||||
|
|
||||||
URLRequest::URLRequest(v8::Isolate* isolate,
|
URLRequest::URLRequest(v8::Isolate* isolate, v8::Local<v8::Object> wrapper)
|
||||||
v8::Local<v8::Object> wrapper)
|
|
||||||
: weak_ptr_factory_(this) {
|
: weak_ptr_factory_(this) {
|
||||||
InitWith(isolate, wrapper);
|
InitWith(isolate, wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
URLRequest::~URLRequest() {
|
URLRequest::~URLRequest() {
|
||||||
|
@ -142,18 +145,20 @@ void URLRequest::BuildPrototype(v8::Isolate* isolate,
|
||||||
.SetMethod("_getHeader", &URLRequest::GetHeader)
|
.SetMethod("_getHeader", &URLRequest::GetHeader)
|
||||||
.SetMethod("_removaHeader", &URLRequest::RemoveHeader)
|
.SetMethod("_removaHeader", &URLRequest::RemoveHeader)
|
||||||
// Response APi
|
// Response APi
|
||||||
.SetProperty("statusCode", &URLRequest::StatusCode)
|
.SetProperty("_statusCode", &URLRequest::StatusCode)
|
||||||
.SetProperty("statusMessage", &URLRequest::StatusMessage)
|
.SetProperty("_statusMessage", &URLRequest::StatusMessage)
|
||||||
.SetProperty("rawResponseHeaders", &URLRequest::RawResponseHeaders)
|
.SetProperty("_rawResponseHeaders", &URLRequest::RawResponseHeaders)
|
||||||
.SetProperty("httpVersionMajor", &URLRequest::ResponseHttpVersionMajor)
|
.SetProperty("_httpVersionMajor", &URLRequest::ResponseHttpVersionMajor)
|
||||||
.SetProperty("httpVersionMinor", &URLRequest::ResponseHttpVersionMinor);
|
.SetProperty("_httpVersionMinor", &URLRequest::ResponseHttpVersionMinor);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool URLRequest::WriteBuffer(scoped_refptr<const net::IOBufferWithSize> buffer, bool is_last) {
|
bool URLRequest::WriteBuffer(
|
||||||
atom_request_->WriteBuffer(buffer, is_last);
|
scoped_refptr<const net::IOBufferWithSize> buffer,
|
||||||
return true;
|
bool is_last) {
|
||||||
|
return atom_request_->WriteBuffer(buffer, is_last);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -161,7 +166,8 @@ void URLRequest::Abort() {
|
||||||
atom_request_->Abort();
|
atom_request_->Abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool URLRequest::SetHeader(const std::string& name, const std::string& value) {
|
bool URLRequest::SetHeader(const std::string& name,
|
||||||
|
const std::string& value) {
|
||||||
if (!net::HttpUtil::IsValidHeaderName(name)) {
|
if (!net::HttpUtil::IsValidHeaderName(name)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -181,7 +187,7 @@ void URLRequest::RemoveHeader(const std::string& name) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void URLRequest::OnAuthenticationRequired(
|
void URLRequest::OnAuthenticationRequired(
|
||||||
scoped_refptr<const net::AuthChallengeInfo> auth_info) {
|
scoped_refptr<const net::AuthChallengeInfo> auth_info) {
|
||||||
EmitRequestEvent(
|
EmitRequestEvent(
|
||||||
"login",
|
"login",
|
||||||
auth_info.get(),
|
auth_info.get(),
|
||||||
|
@ -194,7 +200,7 @@ void URLRequest::OnResponseStarted() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void URLRequest::OnResponseData(
|
void URLRequest::OnResponseData(
|
||||||
scoped_refptr<const net::IOBufferWithSize> buffer) {
|
scoped_refptr<const net::IOBufferWithSize> buffer) {
|
||||||
if (!buffer || !buffer->data() || !buffer->size()) {
|
if (!buffer || !buffer->data() || !buffer->size()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -224,7 +230,8 @@ std::string URLRequest::StatusMessage() const {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
scoped_refptr<const net::HttpResponseHeaders> URLRequest::RawResponseHeaders() const {
|
scoped_refptr<const net::HttpResponseHeaders>
|
||||||
|
URLRequest::RawResponseHeaders() const {
|
||||||
return atom_request_->GetResponseHeaders();
|
return atom_request_->GetResponseHeaders();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,8 @@ class URLRequest : public mate::EventEmitter<URLRequest> {
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool WriteBuffer(scoped_refptr<const net::IOBufferWithSize> buffer, bool is_last);
|
bool WriteBuffer(scoped_refptr<const net::IOBufferWithSize> buffer,
|
||||||
|
bool is_last);
|
||||||
void Abort();
|
void Abort();
|
||||||
bool SetHeader(const std::string& name, const std::string& value);
|
bool SetHeader(const std::string& name, const std::string& value);
|
||||||
std::string GetHeader(const std::string& name);
|
std::string GetHeader(const std::string& name);
|
||||||
|
@ -86,7 +87,8 @@ void URLRequest::EmitRequestEvent(ArgTypes... args) {
|
||||||
auto arguments = BuildArgsArray(args...);
|
auto arguments = BuildArgsArray(args...);
|
||||||
v8::Local<v8::Function> _emitRequestEvent;
|
v8::Local<v8::Function> _emitRequestEvent;
|
||||||
auto wrapper = GetWrapper();
|
auto wrapper = GetWrapper();
|
||||||
if (mate::Dictionary(isolate(), wrapper).Get("_emitRequestEvent", &_emitRequestEvent))
|
if (mate::Dictionary(isolate(), wrapper)
|
||||||
|
.Get("_emitRequestEvent", &_emitRequestEvent))
|
||||||
_emitRequestEvent->Call(wrapper, arguments.size(), arguments.data());
|
_emitRequestEvent->Call(wrapper, arguments.size(), arguments.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,7 +98,8 @@ void URLRequest::EmitResponseEvent(ArgTypes... args) {
|
||||||
auto arguments = BuildArgsArray(args...);
|
auto arguments = BuildArgsArray(args...);
|
||||||
v8::Local<v8::Function> _emitResponseEvent;
|
v8::Local<v8::Function> _emitResponseEvent;
|
||||||
auto wrapper = GetWrapper();
|
auto wrapper = GetWrapper();
|
||||||
if (mate::Dictionary(isolate(), wrapper).Get("_emitResponseEvent", &_emitResponseEvent))
|
if (mate::Dictionary(isolate(), wrapper)
|
||||||
|
.Get("_emitResponseEvent", &_emitResponseEvent))
|
||||||
_emitResponseEvent->Call(wrapper, arguments.size(), arguments.data());
|
_emitResponseEvent->Call(wrapper, arguments.size(), arguments.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,9 +14,7 @@
|
||||||
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
const int kBufferSize = 4096;
|
const int kBufferSize = 4096;
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
@ -31,6 +29,7 @@ public:
|
||||||
: net::UploadBytesElementReader(buffer->data(), buffer->size())
|
: net::UploadBytesElementReader(buffer->data(), buffer->size())
|
||||||
, buffer_(buffer) {
|
, buffer_(buffer) {
|
||||||
}
|
}
|
||||||
|
|
||||||
~UploadOwnedIOBufferElementReader() override {
|
~UploadOwnedIOBufferElementReader() override {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,10 +57,10 @@ AtomURLRequest::~AtomURLRequest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
scoped_refptr<AtomURLRequest> AtomURLRequest::Create(
|
scoped_refptr<AtomURLRequest> AtomURLRequest::Create(
|
||||||
AtomBrowserContext* browser_context,
|
AtomBrowserContext* browser_context,
|
||||||
const std::string& method,
|
const std::string& method,
|
||||||
const std::string& url,
|
const std::string& url,
|
||||||
base::WeakPtr<api::URLRequest> delegate) {
|
base::WeakPtr<api::URLRequest> delegate) {
|
||||||
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||||
DCHECK(browser_context);
|
DCHECK(browser_context);
|
||||||
DCHECK(!url.empty());
|
DCHECK(!url.empty());
|
||||||
|
@ -74,7 +73,8 @@ scoped_refptr<AtomURLRequest> AtomURLRequest::Create(
|
||||||
|
|
||||||
DCHECK(context);
|
DCHECK(context);
|
||||||
|
|
||||||
scoped_refptr<AtomURLRequest> atom_url_request = new AtomURLRequest(delegate);
|
scoped_refptr<AtomURLRequest> atom_url_request =
|
||||||
|
new AtomURLRequest(delegate);
|
||||||
|
|
||||||
atom_url_request->request_ = context->CreateRequest(GURL(url),
|
atom_url_request->request_ = context->CreateRequest(GURL(url),
|
||||||
net::RequestPriority::DEFAULT_PRIORITY,
|
net::RequestPriority::DEFAULT_PRIORITY,
|
||||||
|
@ -86,12 +86,13 @@ scoped_refptr<AtomURLRequest> AtomURLRequest::Create(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void AtomURLRequest::WriteBuffer(scoped_refptr<const net::IOBufferWithSize> buffer,
|
bool AtomURLRequest::WriteBuffer(
|
||||||
bool is_last) {
|
scoped_refptr<const net::IOBufferWithSize> buffer,
|
||||||
|
bool is_last) {
|
||||||
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||||
content::BrowserThread::PostTask(
|
return content::BrowserThread::PostTask(
|
||||||
content::BrowserThread::IO, FROM_HERE,
|
content::BrowserThread::IO, FROM_HERE,
|
||||||
base::Bind(&AtomURLRequest::DoWriteBuffer, this, buffer, is_last));
|
base::Bind(&AtomURLRequest::DoWriteBuffer, this, buffer, is_last));
|
||||||
}
|
}
|
||||||
|
|
||||||
void AtomURLRequest::SetChunkedUpload() {
|
void AtomURLRequest::SetChunkedUpload() {
|
||||||
|
@ -157,8 +158,9 @@ void AtomURLRequest::PassLoginInformation(const base::string16& username,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void AtomURLRequest::DoWriteBuffer(scoped_refptr<const net::IOBufferWithSize> buffer,
|
void AtomURLRequest::DoWriteBuffer(
|
||||||
bool is_last) {
|
scoped_refptr<const net::IOBufferWithSize> buffer,
|
||||||
|
bool is_last) {
|
||||||
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
|
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
|
||||||
|
|
||||||
if (is_chunked_upload_) {
|
if (is_chunked_upload_) {
|
||||||
|
@ -197,15 +199,19 @@ void AtomURLRequest::DoWriteBuffer(scoped_refptr<const net::IOBufferWithSize> bu
|
||||||
|
|
||||||
if (buffer) {
|
if (buffer) {
|
||||||
// Handling potential empty buffers.
|
// Handling potential empty buffers.
|
||||||
std::unique_ptr<net::UploadElementReader> element_reader(internal::UploadOwnedIOBufferElementReader
|
using internal::UploadOwnedIOBufferElementReader;
|
||||||
::CreateWithBuffer(std::move(buffer)));
|
auto element_reader = UploadOwnedIOBufferElementReader::CreateWithBuffer(
|
||||||
upload_element_readers_.push_back(std::move(element_reader));
|
std::move(buffer));
|
||||||
|
upload_element_readers_.push_back(
|
||||||
|
std::unique_ptr<net::UploadElementReader>(element_reader));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_last) {
|
if (is_last) {
|
||||||
std::unique_ptr<net::UploadDataStream> elements_upload_data_stream(
|
auto elements_upload_data_stream = new net::ElementsUploadDataStream(
|
||||||
new net::ElementsUploadDataStream(std::move(upload_element_readers_), 0));
|
std::move(upload_element_readers_),
|
||||||
request_->set_upload(std::move(elements_upload_data_stream));
|
0);
|
||||||
|
request_->set_upload(
|
||||||
|
std::unique_ptr<net::UploadDataStream>(elements_upload_data_stream));
|
||||||
request_->Start();
|
request_->Start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -260,7 +266,8 @@ void AtomURLRequest::ReadResponse() {
|
||||||
// completed immediately, without trying to read any data back (all we care
|
// completed immediately, without trying to read any data back (all we care
|
||||||
// about is the response code and headers, which we already have).
|
// about is the response code and headers, which we already have).
|
||||||
int bytes_read = 0;
|
int bytes_read = 0;
|
||||||
if (request_->status().is_success() /* TODO && (request_type_ != URLFetcher::HEAD)*/) {
|
if (request_->status().is_success()
|
||||||
|
/* TODO && (request_type_ != URLFetcher::HEAD)*/) {
|
||||||
if (!request_->Read(response_read_buffer_.get(), kBufferSize, &bytes_read))
|
if (!request_->Read(response_read_buffer_.get(), kBufferSize, &bytes_read))
|
||||||
bytes_read = -1;
|
bytes_read = -1;
|
||||||
}
|
}
|
||||||
|
@ -268,7 +275,8 @@ void AtomURLRequest::ReadResponse() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void AtomURLRequest::OnReadCompleted(net::URLRequest* request, int bytes_read) {
|
void AtomURLRequest::OnReadCompleted(net::URLRequest* request,
|
||||||
|
int bytes_read) {
|
||||||
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
|
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
|
||||||
|
|
||||||
DCHECK_EQ(request, request_.get());
|
DCHECK_EQ(request, request_.get());
|
||||||
|
@ -283,11 +291,14 @@ void AtomURLRequest::OnReadCompleted(net::URLRequest* request, int bytes_read) {
|
||||||
// Failed to transfer data to UI thread.
|
// Failed to transfer data to UI thread.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} while (request_->Read(response_read_buffer_.get(), kBufferSize, &bytes_read));
|
} while (request_->Read(response_read_buffer_.get(),
|
||||||
|
kBufferSize,
|
||||||
|
&bytes_read));
|
||||||
|
|
||||||
const auto status = request_->status();
|
const auto status = request_->status();
|
||||||
|
|
||||||
if (!status.is_io_pending() /* TODO || request_type_ == URLFetcher::HEAD*/ ) {
|
if (!status.is_io_pending()
|
||||||
|
/* TODO || request_type_ == URLFetcher::HEAD*/ ) {
|
||||||
|
|
||||||
content::BrowserThread::PostTask(
|
content::BrowserThread::PostTask(
|
||||||
content::BrowserThread::UI, FROM_HERE,
|
content::BrowserThread::UI, FROM_HERE,
|
||||||
|
@ -301,12 +312,14 @@ bool AtomURLRequest::CopyAndPostBuffer(int bytes_read) {
|
||||||
|
|
||||||
// data is only a wrapper for the async response_read_buffer_.
|
// data is only a wrapper for the async response_read_buffer_.
|
||||||
// Make a deep copy of payload and transfer ownership to the UI thread.
|
// Make a deep copy of payload and transfer ownership to the UI thread.
|
||||||
scoped_refptr<net::IOBufferWithSize> buffer_copy(new net::IOBufferWithSize(bytes_read));
|
auto buffer_copy = new net::IOBufferWithSize(bytes_read);
|
||||||
memcpy(buffer_copy->data(), response_read_buffer_->data(), bytes_read);
|
memcpy(buffer_copy->data(), response_read_buffer_->data(), bytes_read);
|
||||||
|
|
||||||
return content::BrowserThread::PostTask(
|
return content::BrowserThread::PostTask(
|
||||||
content::BrowserThread::UI, FROM_HERE,
|
content::BrowserThread::UI, FROM_HERE,
|
||||||
base::Bind(&AtomURLRequest::InformDelegateResponseData, this, buffer_copy));
|
base::Bind(&AtomURLRequest::InformDelegateResponseData,
|
||||||
|
this,
|
||||||
|
buffer_copy));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,8 @@ public:
|
||||||
const std::string& url,
|
const std::string& url,
|
||||||
base::WeakPtr<api::URLRequest> delegate);
|
base::WeakPtr<api::URLRequest> delegate);
|
||||||
|
|
||||||
void WriteBuffer(scoped_refptr<const net::IOBufferWithSize> buffer, bool is_last);
|
bool WriteBuffer(scoped_refptr<const net::IOBufferWithSize> buffer,
|
||||||
|
bool is_last);
|
||||||
void SetChunkedUpload();
|
void SetChunkedUpload();
|
||||||
void Abort() const;
|
void Abort() const;
|
||||||
void SetHeader(const std::string& name, const std::string& value) const;
|
void SetHeader(const std::string& name, const std::string& value) const;
|
||||||
|
@ -54,7 +55,8 @@ protected:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class base::RefCountedThreadSafe<AtomURLRequest>;
|
friend class base::RefCountedThreadSafe<AtomURLRequest>;
|
||||||
void DoWriteBuffer(scoped_refptr<const net::IOBufferWithSize> buffer, bool is_last);
|
void DoWriteBuffer(scoped_refptr<const net::IOBufferWithSize> buffer,
|
||||||
|
bool is_last);
|
||||||
void DoSetAuth(const base::string16& username,
|
void DoSetAuth(const base::string16& username,
|
||||||
const base::string16& password) const;
|
const base::string16& password) const;
|
||||||
void DoCancelAuth() const;
|
void DoCancelAuth() const;
|
||||||
|
|
|
@ -15,15 +15,15 @@ class URLResponse extends EventEmitter {
|
||||||
}
|
}
|
||||||
|
|
||||||
get statusCode() {
|
get statusCode() {
|
||||||
return this.request.statusCode;
|
return this.request._statusCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
get statusMessage() {
|
get statusMessage() {
|
||||||
return this.request.statusMessage;
|
return this.request._statusMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
get headers() {
|
get headers() {
|
||||||
return this.request.rawResponseHeaders;
|
return this.request._rawResponseHeaders;
|
||||||
}
|
}
|
||||||
|
|
||||||
get httpVersion() {
|
get httpVersion() {
|
||||||
|
@ -31,15 +31,15 @@ class URLResponse extends EventEmitter {
|
||||||
}
|
}
|
||||||
|
|
||||||
get httpVersionMajor() {
|
get httpVersionMajor() {
|
||||||
return this.request.httpVersionMajor;
|
return this.request._httpVersionMajor;
|
||||||
}
|
}
|
||||||
|
|
||||||
get httpVersionMinor() {
|
get httpVersionMinor() {
|
||||||
return this.request.httpVersionMinor;
|
return this.request._httpVersionMinor;
|
||||||
}
|
}
|
||||||
|
|
||||||
get rawHeaders() {
|
get rawHeaders() {
|
||||||
return this.request.rawResponseHeaders;
|
return this.request._rawResponseHeaders;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue