Don't reference RequestContextGetter in JS objects

V8 doesn't guarrentee the C++ class of JS objects will get destroyed, so
this will result in RequestContextGetter never getting freed
This commit is contained in:
Cheng Zhao 2015-09-09 19:27:28 +08:00
parent 9d51da505e
commit 93bbc0bca9
3 changed files with 7 additions and 7 deletions

View file

@ -46,7 +46,7 @@ class JsAsker : public RequestJob {
// Called by |CustomProtocolHandler| to store handler related information.
void SetHandlerInfo(
v8::Isolate* isolate,
scoped_refptr<net::URLRequestContextGetter> request_context_getter,
net::URLRequestContextGetter* request_context_getter,
const JavaScriptHandler& handler) {
isolate_ = isolate;
request_context_getter_ = request_context_getter;
@ -57,7 +57,7 @@ class JsAsker : public RequestJob {
virtual void StartAsync(scoped_ptr<base::Value> options) = 0;
net::URLRequestContextGetter* request_context_getter() const {
return request_context_getter_.get();
return request_context_getter_;
}
private:
@ -89,7 +89,7 @@ class JsAsker : public RequestJob {
}
v8::Isolate* isolate_;
scoped_refptr<net::URLRequestContextGetter> request_context_getter_;
net::URLRequestContextGetter* request_context_getter_;
JavaScriptHandler handler_;
base::WeakPtrFactory<JsAsker> weak_factory_;