Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(464)

Side by Side Diff: components/cronet/android/cronet_url_request_adapter.cc

Issue 2283243002: Allow direct executors in cronet. (Closed)
Patch Set: Refactor DirectPreventingExecutor, and fix closing logic Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/cronet/android/cronet_url_request_adapter.h" 5 #include "components/cronet/android/cronet_url_request_adapter.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 DCHECK(!context_->IsOnNetworkThread()); 129 DCHECK(!context_->IsOnNetworkThread());
130 context_->PostTaskToNetworkThread( 130 context_->PostTaskToNetworkThread(
131 FROM_HERE, base::Bind(&CronetURLRequestAdapter::StartOnNetworkThread, 131 FROM_HERE, base::Bind(&CronetURLRequestAdapter::StartOnNetworkThread,
132 base::Unretained(this))); 132 base::Unretained(this)));
133 } 133 }
134 134
135 void CronetURLRequestAdapter::GetStatus( 135 void CronetURLRequestAdapter::GetStatus(
136 JNIEnv* env, 136 JNIEnv* env,
137 const JavaParamRef<jobject>& jcaller, 137 const JavaParamRef<jobject>& jcaller,
138 const JavaParamRef<jobject>& jstatus_listener) const { 138 const JavaParamRef<jobject>& jstatus_listener) const {
139 DCHECK(!context_->IsOnNetworkThread());
140 base::android::ScopedJavaGlobalRef<jobject> status_listener_ref; 139 base::android::ScopedJavaGlobalRef<jobject> status_listener_ref;
141 status_listener_ref.Reset(env, jstatus_listener); 140 status_listener_ref.Reset(env, jstatus_listener);
142 context_->PostTaskToNetworkThread( 141 context_->PostTaskToNetworkThread(
143 FROM_HERE, base::Bind(&CronetURLRequestAdapter::GetStatusOnNetworkThread, 142 FROM_HERE, base::Bind(&CronetURLRequestAdapter::GetStatusOnNetworkThread,
144 base::Unretained(this), status_listener_ref)); 143 base::Unretained(this), status_listener_ref));
145 } 144 }
146 145
147 void CronetURLRequestAdapter::FollowDeferredRedirect( 146 void CronetURLRequestAdapter::FollowDeferredRedirect(
148 JNIEnv* env, 147 JNIEnv* env,
149 const JavaParamRef<jobject>& jcaller) { 148 const JavaParamRef<jobject>& jcaller) {
150 DCHECK(!context_->IsOnNetworkThread());
151 context_->PostTaskToNetworkThread( 149 context_->PostTaskToNetworkThread(
152 FROM_HERE, 150 FROM_HERE,
153 base::Bind( 151 base::Bind(
154 &CronetURLRequestAdapter::FollowDeferredRedirectOnNetworkThread, 152 &CronetURLRequestAdapter::FollowDeferredRedirectOnNetworkThread,
155 base::Unretained(this))); 153 base::Unretained(this)));
156 } 154 }
157 155
158 jboolean CronetURLRequestAdapter::ReadData( 156 jboolean CronetURLRequestAdapter::ReadData(
159 JNIEnv* env, 157 JNIEnv* env,
160 const JavaParamRef<jobject>& jcaller, 158 const JavaParamRef<jobject>& jcaller,
161 const JavaParamRef<jobject>& jbyte_buffer, 159 const JavaParamRef<jobject>& jbyte_buffer,
162 jint jposition, 160 jint jposition,
163 jint jlimit) { 161 jint jlimit) {
164 DCHECK(!context_->IsOnNetworkThread());
165 DCHECK_LT(jposition, jlimit); 162 DCHECK_LT(jposition, jlimit);
166 163
167 void* data = env->GetDirectBufferAddress(jbyte_buffer); 164 void* data = env->GetDirectBufferAddress(jbyte_buffer);
168 if (!data) 165 if (!data)
169 return JNI_FALSE; 166 return JNI_FALSE;
170 167
171 scoped_refptr<IOBufferWithByteBuffer> read_buffer( 168 scoped_refptr<IOBufferWithByteBuffer> read_buffer(
172 new IOBufferWithByteBuffer(env, jbyte_buffer, data, jposition, jlimit)); 169 new IOBufferWithByteBuffer(env, jbyte_buffer, data, jposition, jlimit));
173 170
174 int remaining_capacity = jlimit - jposition; 171 int remaining_capacity = jlimit - jposition;
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(), 379 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(),
383 request->GetTotalReceivedBytes()); 380 request->GetTotalReceivedBytes());
384 return true; 381 return true;
385 } 382 }
386 383
387 net::URLRequest* CronetURLRequestAdapter::GetURLRequestForTesting() { 384 net::URLRequest* CronetURLRequestAdapter::GetURLRequestForTesting() {
388 return url_request_.get(); 385 return url_request_.get();
389 } 386 }
390 387
391 } // namespace cronet 388 } // namespace cronet
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698