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

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

Issue 1924593002: Do a null check in CronetURLRequestAdapter::GetStatusOnNetworkThread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments Created 4 years, 8 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
« no previous file with comments | « no previous file | components/cronet/android/test/javatests/src/org/chromium/net/GetStatusTest.java » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/location.h" 12 #include "base/location.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "components/cronet/android/cronet_url_request_context_adapter.h" 14 #include "components/cronet/android/cronet_url_request_context_adapter.h"
15 #include "components/cronet/android/io_buffer_with_byte_buffer.h" 15 #include "components/cronet/android/io_buffer_with_byte_buffer.h"
16 #include "components/cronet/android/url_request_error.h" 16 #include "components/cronet/android/url_request_error.h"
17 #include "jni/CronetUrlRequest_jni.h" 17 #include "jni/CronetUrlRequest_jni.h"
18 #include "net/base/load_flags.h" 18 #include "net/base/load_flags.h"
19 #include "net/base/load_states.h"
19 #include "net/base/net_errors.h" 20 #include "net/base/net_errors.h"
20 #include "net/base/request_priority.h" 21 #include "net/base/request_priority.h"
21 #include "net/cert/cert_status_flags.h" 22 #include "net/cert/cert_status_flags.h"
22 #include "net/http/http_response_headers.h" 23 #include "net/http/http_response_headers.h"
23 #include "net/http/http_status_code.h" 24 #include "net/http/http_status_code.h"
24 #include "net/http/http_util.h" 25 #include "net/http/http_util.h"
25 #include "net/ssl/ssl_info.h" 26 #include "net/ssl/ssl_info.h"
26 #include "net/url_request/redirect_info.h" 27 #include "net/url_request/redirect_info.h"
27 #include "net/url_request/url_request_context.h" 28 #include "net/url_request/url_request_context.h"
28 29
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 if (upload_) 293 if (upload_)
293 url_request_->set_upload(std::move(upload_)); 294 url_request_->set_upload(std::move(upload_));
294 url_request_->Start(); 295 url_request_->Start();
295 } 296 }
296 297
297 void CronetURLRequestAdapter::GetStatusOnNetworkThread( 298 void CronetURLRequestAdapter::GetStatusOnNetworkThread(
298 const base::android::ScopedJavaGlobalRef<jobject>& status_listener_ref) 299 const base::android::ScopedJavaGlobalRef<jobject>& status_listener_ref)
299 const { 300 const {
300 DCHECK(context_->IsOnNetworkThread()); 301 DCHECK(context_->IsOnNetworkThread());
301 JNIEnv* env = base::android::AttachCurrentThread(); 302 JNIEnv* env = base::android::AttachCurrentThread();
303 int status = net::LOAD_STATE_IDLE;
304 // |url_request_| is initialized in StartOnNetworkThread, and it is
305 // never nulled. If it is null, it must be that StartOnNetworkThread
306 // has not been called, pretend that we are in LOAD_STATE_IDLE.
307 // See crbug.com/606872.
308 if (url_request_)
309 status = url_request_->GetLoadState().state;
302 cronet::Java_CronetUrlRequest_onStatus(env, owner_.obj(), 310 cronet::Java_CronetUrlRequest_onStatus(env, owner_.obj(),
303 status_listener_ref.obj(), 311 status_listener_ref.obj(), status);
304 url_request_->GetLoadState().state);
305 } 312 }
306 313
307 base::android::ScopedJavaLocalRef<jobjectArray> 314 base::android::ScopedJavaLocalRef<jobjectArray>
308 CronetURLRequestAdapter::GetResponseHeaders(JNIEnv* env) { 315 CronetURLRequestAdapter::GetResponseHeaders(JNIEnv* env) {
309 DCHECK(context_->IsOnNetworkThread()); 316 DCHECK(context_->IsOnNetworkThread());
310 317
311 std::vector<std::string> response_headers; 318 std::vector<std::string> response_headers;
312 const net::HttpResponseHeaders* headers = url_request_->response_headers(); 319 const net::HttpResponseHeaders* headers = url_request_->response_headers();
313 // Returns an empty array if |headers| is nullptr. 320 // Returns an empty array if |headers| is nullptr.
314 if (headers != nullptr) { 321 if (headers != nullptr) {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(), 376 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(),
370 request->GetTotalReceivedBytes()); 377 request->GetTotalReceivedBytes());
371 return true; 378 return true;
372 } 379 }
373 380
374 net::URLRequest* CronetURLRequestAdapter::GetURLRequestForTesting() { 381 net::URLRequest* CronetURLRequestAdapter::GetURLRequestForTesting() {
375 return url_request_.get(); 382 return url_request_.get();
376 } 383 }
377 384
378 } // namespace cronet 385 } // namespace cronet
OLDNEW
« no previous file with comments | « no previous file | components/cronet/android/test/javatests/src/org/chromium/net/GetStatusTest.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698