From 7456b9ae177a12aaf8f39ff28ea99802bf602e4d Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Thu, 1 Dec 2016 01:31:32 +0530 Subject: [PATCH] net: add api to set request flags for testing --- atom/browser/api/atom_api_url_request.cc | 13 +++++++++++++ atom/browser/api/atom_api_url_request.h | 1 + atom/browser/net/atom_url_request.cc | 16 ++++++++++++++++ atom/browser/net/atom_url_request.h | 2 ++ 4 files changed, 32 insertions(+) diff --git a/atom/browser/api/atom_api_url_request.cc b/atom/browser/api/atom_api_url_request.cc index fe60bbb..967ae50 100644 --- a/atom/browser/api/atom_api_url_request.cc +++ b/atom/browser/api/atom_api_url_request.cc @@ -176,6 +176,7 @@ void URLRequest::BuildPrototype(v8::Isolate* isolate, .SetMethod("setExtraHeader", &URLRequest::SetExtraHeader) .SetMethod("removeExtraHeader", &URLRequest::RemoveExtraHeader) .SetMethod("setChunkedUpload", &URLRequest::SetChunkedUpload) + .SetMethod("_setLoadFlags", &URLRequest::SetLoadFlags) .SetProperty("notStarted", &URLRequest::NotStarted) .SetProperty("finished", &URLRequest::Finished) // Response APi @@ -292,6 +293,18 @@ void URLRequest::SetChunkedUpload(bool is_chunked_upload) { } } +void URLRequest::SetLoadFlags(int flags) { + // State must be equal to not started. + if (!request_state_.NotStarted()) { + // Cannot change load flags after start. + return; + } + DCHECK(atom_request_); + if (atom_request_) { + atom_request_->SetLoadFlags(flags); + } +} + void URLRequest::OnAuthenticationRequired( scoped_refptr auth_info) { if (request_state_.Canceled() || request_state_.Closed()) { diff --git a/atom/browser/api/atom_api_url_request.h b/atom/browser/api/atom_api_url_request.h index 3aae14b..c92ac01 100644 --- a/atom/browser/api/atom_api_url_request.h +++ b/atom/browser/api/atom_api_url_request.h @@ -173,6 +173,7 @@ class URLRequest : public mate::EventEmitter { bool SetExtraHeader(const std::string& name, const std::string& value); void RemoveExtraHeader(const std::string& name); void SetChunkedUpload(bool is_chunked_upload); + void SetLoadFlags(int flags); int StatusCode() const; std::string StatusMessage() const; diff --git a/atom/browser/net/atom_url_request.cc b/atom/browser/net/atom_url_request.cc index 628d316..09725ca 100644 --- a/atom/browser/net/atom_url_request.cc +++ b/atom/browser/net/atom_url_request.cc @@ -177,6 +177,13 @@ void AtomURLRequest::PassLoginInformation( } } +void AtomURLRequest::SetLoadFlags(int flags) const { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + content::BrowserThread::PostTask( + content::BrowserThread::IO, FROM_HERE, + base::Bind(&AtomURLRequest::DoSetLoadFlags, this, flags)); +} + void AtomURLRequest::DoWriteBuffer( scoped_refptr buffer, bool is_last) { @@ -244,6 +251,7 @@ void AtomURLRequest::DoSetExtraHeader(const std::string& name, } request_->SetExtraRequestHeaderByName(name, value, true); } + void AtomURLRequest::DoRemoveExtraHeader(const std::string& name) const { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); if (!request_) { @@ -278,6 +286,14 @@ void AtomURLRequest::DoCancelWithError(const std::string& error, isRequestError)); } +void AtomURLRequest::DoSetLoadFlags(int flags) const { + DCHECK_CURRENTLY_ON(content::BrowserThread::IO); + if (!request_) { + return; + } + request_->SetLoadFlags(request_->load_flags() | flags); +} + void AtomURLRequest::OnAuthRequired(net::URLRequest* request, net::AuthChallengeInfo* auth_info) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); diff --git a/atom/browser/net/atom_url_request.h b/atom/browser/net/atom_url_request.h index d0b367e..db00390 100644 --- a/atom/browser/net/atom_url_request.h +++ b/atom/browser/net/atom_url_request.h @@ -40,6 +40,7 @@ class AtomURLRequest : public base::RefCountedThreadSafe, void RemoveExtraHeader(const std::string& name) const; void PassLoginInformation(const base::string16& username, const base::string16& password) const; + void SetLoadFlags(int flags) const; protected: // Overrides of net::URLRequest::Delegate @@ -71,6 +72,7 @@ class AtomURLRequest : public base::RefCountedThreadSafe, const base::string16& password) const; void DoCancelAuth() const; void DoCancelWithError(const std::string& error, bool isRequestError); + void DoSetLoadFlags(int flags) const; void ReadResponse(); bool CopyAndPostBuffer(int bytes_read); -- 2.7.4