Fixing code review issues: making delegate_ a raw pointer.

This commit is contained in:
ali.ibrahim 2016-10-25 15:02:35 +02:00
parent 61278f9ace
commit 6d7f179a9b
4 changed files with 8 additions and 10 deletions

View file

@ -158,8 +158,7 @@ bool URLRequest::ResponseState::Failed() const {
return IsFlagSet(ResponseStateFlags::kFailed); return IsFlagSet(ResponseStateFlags::kFailed);
} }
URLRequest::URLRequest(v8::Isolate* isolate, v8::Local<v8::Object> wrapper) URLRequest::URLRequest(v8::Isolate* isolate, v8::Local<v8::Object> wrapper) {
: weak_ptr_factory_(this) {
InitWith(isolate, wrapper); InitWith(isolate, wrapper);
} }
@ -188,9 +187,8 @@ mate::WrappableBase* URLRequest::New(mate::Arguments* args) {
auto browser_context = session->browser_context(); auto browser_context = session->browser_context();
auto api_url_request = new URLRequest(args->isolate(), args->GetThis()); auto api_url_request = new URLRequest(args->isolate(), args->GetThis());
auto weak_ptr = api_url_request->weak_ptr_factory_.GetWeakPtr();
auto atom_url_request = auto atom_url_request =
AtomURLRequest::Create(browser_context, method, url, weak_ptr); AtomURLRequest::Create(browser_context, method, url, api_url_request);
api_url_request->atom_request_ = atom_url_request; api_url_request->atom_request_ = atom_url_request;

View file

@ -200,7 +200,6 @@ class URLRequest : public mate::EventEmitter<URLRequest> {
// Used to implement pin/unpin. // Used to implement pin/unpin.
v8::Global<v8::Object> wrapper_; v8::Global<v8::Object> wrapper_;
scoped_refptr<net::HttpResponseHeaders> response_headers_; scoped_refptr<net::HttpResponseHeaders> response_headers_;
base::WeakPtrFactory<URLRequest> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(URLRequest); DISALLOW_COPY_AND_ASSIGN(URLRequest);
}; };

View file

@ -43,7 +43,7 @@ class UploadOwnedIOBufferElementReader : public net::UploadBytesElementReader {
} // namespace internal } // namespace internal
AtomURLRequest::AtomURLRequest(base::WeakPtr<api::URLRequest> delegate) AtomURLRequest::AtomURLRequest(api::URLRequest* delegate)
: delegate_(delegate), : delegate_(delegate),
is_chunked_upload_(false), is_chunked_upload_(false),
response_read_buffer_(new net::IOBuffer(kBufferSize)) {} response_read_buffer_(new net::IOBuffer(kBufferSize)) {}
@ -57,7 +57,7 @@ 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) { api::URLRequest* delegate) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(browser_context); DCHECK(browser_context);
@ -83,6 +83,7 @@ scoped_refptr<AtomURLRequest> AtomURLRequest::Create(
void AtomURLRequest::Terminate() { void AtomURLRequest::Terminate() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
delegate_ = nullptr;
content::BrowserThread::PostTask( content::BrowserThread::PostTask(
content::BrowserThread::IO, FROM_HERE, content::BrowserThread::IO, FROM_HERE,
base::Bind(&AtomURLRequest::DoTerminate, this)); base::Bind(&AtomURLRequest::DoTerminate, this));

View file

@ -30,7 +30,7 @@ class AtomURLRequest : public base::RefCountedThreadSafe<AtomURLRequest>,
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); api::URLRequest* delegate);
void Terminate(); void Terminate();
bool Write(scoped_refptr<const net::IOBufferWithSize> buffer, bool is_last); bool Write(scoped_refptr<const net::IOBufferWithSize> buffer, bool is_last);
@ -54,7 +54,7 @@ class AtomURLRequest : public base::RefCountedThreadSafe<AtomURLRequest>,
private: private:
friend class base::RefCountedThreadSafe<AtomURLRequest>; friend class base::RefCountedThreadSafe<AtomURLRequest>;
explicit AtomURLRequest(base::WeakPtr<api::URLRequest> delegate); explicit AtomURLRequest(api::URLRequest* delegate);
~AtomURLRequest() override; ~AtomURLRequest() override;
void DoInitialize(scoped_refptr<net::URLRequestContextGetter>, void DoInitialize(scoped_refptr<net::URLRequestContextGetter>,
@ -85,7 +85,7 @@ class AtomURLRequest : public base::RefCountedThreadSafe<AtomURLRequest>,
void InformDelegateErrorOccured(const std::string& error, void InformDelegateErrorOccured(const std::string& error,
bool isRequestError) const; bool isRequestError) const;
base::WeakPtr<api::URLRequest> delegate_; api::URLRequest* delegate_;
std::unique_ptr<net::URLRequest> request_; std::unique_ptr<net::URLRequest> request_;
scoped_refptr<net::URLRequestContextGetter> request_context_getter_; scoped_refptr<net::URLRequestContextGetter> request_context_getter_;