Index: android_webview/browser/aw_request_interceptor.cc |
diff --git a/android_webview/browser/aw_request_interceptor.cc b/android_webview/browser/aw_request_interceptor.cc |
index 0e5e28395f3cc7dcc5b53e9013c6e6e498895c63..43b60f30b69bb5d616ad29d35a28bdac7505a009 100644 |
--- a/android_webview/browser/aw_request_interceptor.cc |
+++ b/android_webview/browser/aw_request_interceptor.cc |
@@ -28,22 +28,20 @@ const void* kURLRequestUserDataKey = &kURLRequestUserDataKey; |
class URLRequestUserData : public base::SupportsUserData::Data { |
public: |
- URLRequestUserData( |
- scoped_ptr<InterceptedRequestData> intercepted_request_data) |
- : intercepted_request_data_(intercepted_request_data.Pass()) { |
- } |
+ URLRequestUserData(scoped_refptr<InterceptedRequestData::Holder> holder) |
+ : holder_(holder) {} |
- static URLRequestUserData* Get(net::URLRequest* request) { |
- return reinterpret_cast<URLRequestUserData*>( |
- request->GetUserData(kURLRequestUserDataKey)); |
- } |
+ static URLRequestUserData* Get(net::URLRequest* request) { |
+ return reinterpret_cast<URLRequestUserData*>( |
+ request->GetUserData(kURLRequestUserDataKey)); |
+ } |
- const InterceptedRequestData* intercepted_request_data() const { |
- return intercepted_request_data_.get(); |
- } |
+ scoped_refptr<InterceptedRequestData::Holder> holder() const { |
+ return holder_; |
+ } |
private: |
- scoped_ptr<InterceptedRequestData> intercepted_request_data_; |
+ scoped_refptr<InterceptedRequestData::Holder> holder_; |
}; |
} // namespace |
@@ -91,17 +89,21 @@ net::URLRequestJob* AwRequestInterceptor::MaybeCreateJob( |
// call to QueryForInterceptedRequestData is made (regardless of whether |
// the result of that call is a valid InterceptedRequestData* pointer or |
// NULL. |
- user_data = new URLRequestUserData( |
- QueryForInterceptedRequestData(request->url(), request)); |
+ scoped_ptr<InterceptedRequestData> data = |
+ QueryForInterceptedRequestData(request->url(), request); |
+ scoped_refptr<InterceptedRequestData::Holder> holder; |
+ if (data) { |
+ holder = new InterceptedRequestData::Holder(); |
+ holder->data = data.Pass(); |
+ } |
+ user_data = new URLRequestUserData(holder); |
request->SetUserData(kURLRequestUserDataKey, user_data); |
} |
- const InterceptedRequestData* intercepted_request_data = |
- user_data->intercepted_request_data(); |
- |
- if (!intercepted_request_data) |
+ if (!user_data->holder().get()) |
return NULL; |
- return intercepted_request_data->CreateJobFor(request, network_delegate); |
+ return InterceptedRequestData::CreateJobFor( |
+ user_data->holder(), request, network_delegate); |
} |
} // namespace android_webview |