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

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

Issue 2069303002: Add new Cronet exception class for QUIC errors (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Switch to using NetError Created 4 years, 5 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "cronet_bidirectional_stream_adapter.h" 5 #include "cronet_bidirectional_stream_adapter.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/location.h" 11 #include "base/location.h"
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/strings/string_number_conversions.h" 13 #include "base/strings/string_number_conversions.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/CronetBidirectionalStream_jni.h" 17 #include "jni/CronetBidirectionalStream_jni.h"
18 #include "net/base/net_errors.h" 18 #include "net/base/net_errors.h"
19 #include "net/base/request_priority.h" 19 #include "net/base/request_priority.h"
20 #include "net/http/bidirectional_stream_request_info.h" 20 #include "net/http/bidirectional_stream_request_info.h"
21 #include "net/http/http_network_session.h" 21 #include "net/http/http_network_session.h"
22 #include "net/http/http_response_headers.h" 22 #include "net/http/http_response_headers.h"
23 #include "net/http/http_status_code.h" 23 #include "net/http/http_status_code.h"
24 #include "net/http/http_transaction_factory.h" 24 #include "net/http/http_transaction_factory.h"
25 #include "net/http/http_util.h" 25 #include "net/http/http_util.h"
26 #include "net/quic/quic_protocol.h"
26 #include "net/spdy/spdy_header_block.h" 27 #include "net/spdy/spdy_header_block.h"
27 #include "net/ssl/ssl_info.h" 28 #include "net/ssl/ssl_info.h"
28 #include "net/url_request/http_user_agent_settings.h" 29 #include "net/url_request/http_user_agent_settings.h"
29 #include "net/url_request/url_request_context.h" 30 #include "net/url_request/url_request_context.h"
30 #include "url/gurl.h" 31 #include "url/gurl.h"
31 32
32 using base::android::ConvertUTF8ToJavaString; 33 using base::android::ConvertUTF8ToJavaString;
33 using base::android::ConvertJavaStringToUTF8; 34 using base::android::ConvertJavaStringToUTF8;
34 35
35 namespace cronet { 36 namespace cronet {
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 DCHECK(context_->IsOnNetworkThread()); 309 DCHECK(context_->IsOnNetworkThread());
309 JNIEnv* env = base::android::AttachCurrentThread(); 310 JNIEnv* env = base::android::AttachCurrentThread();
310 cronet::Java_CronetBidirectionalStream_onResponseTrailersReceived( 311 cronet::Java_CronetBidirectionalStream_onResponseTrailersReceived(
311 env, owner_.obj(), GetHeadersArray(env, response_trailers).obj()); 312 env, owner_.obj(), GetHeadersArray(env, response_trailers).obj());
312 } 313 }
313 314
314 void CronetBidirectionalStreamAdapter::OnFailed(int error) { 315 void CronetBidirectionalStreamAdapter::OnFailed(int error) {
315 DCHECK(context_->IsOnNetworkThread()); 316 DCHECK(context_->IsOnNetworkThread());
316 stream_failed_ = true; 317 stream_failed_ = true;
317 JNIEnv* env = base::android::AttachCurrentThread(); 318 JNIEnv* env = base::android::AttachCurrentThread();
319 // TODO(mgersh): Add support for NetErrorDetails
pauljensen 2016/06/30 17:35:12 probably a good idea to file a bug for this and in
mgersh 2016/06/30 22:55:53 Done.
318 cronet::Java_CronetBidirectionalStream_onError( 320 cronet::Java_CronetBidirectionalStream_onError(
319 env, owner_.obj(), NetErrorToUrlRequestError(error), error, 321 env, owner_.obj(), NetErrorToUrlRequestError(error), error,
322 net::QUIC_NO_ERROR,
320 ConvertUTF8ToJavaString(env, net::ErrorToString(error)).obj(), 323 ConvertUTF8ToJavaString(env, net::ErrorToString(error)).obj(),
321 bidi_stream_->GetTotalReceivedBytes()); 324 bidi_stream_->GetTotalReceivedBytes());
322 } 325 }
323 326
324 void CronetBidirectionalStreamAdapter::StartOnNetworkThread( 327 void CronetBidirectionalStreamAdapter::StartOnNetworkThread(
325 std::unique_ptr<net::BidirectionalStreamRequestInfo> request_info) { 328 std::unique_ptr<net::BidirectionalStreamRequestInfo> request_info) {
326 DCHECK(context_->IsOnNetworkThread()); 329 DCHECK(context_->IsOnNetworkThread());
327 DCHECK(!bidi_stream_); 330 DCHECK(!bidi_stream_);
328 request_info->extra_headers.SetHeaderIfMissing( 331 request_info->extra_headers.SetHeaderIfMissing(
329 net::HttpRequestHeaders::kUserAgent, context_->GetURLRequestContext() 332 net::HttpRequestHeaders::kUserAgent, context_->GetURLRequestContext()
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 421
419 std::vector<std::string> headers; 422 std::vector<std::string> headers;
420 for (const auto& header : header_block) { 423 for (const auto& header : header_block) {
421 headers.push_back(header.first.as_string()); 424 headers.push_back(header.first.as_string());
422 headers.push_back(header.second.as_string()); 425 headers.push_back(header.second.as_string());
423 } 426 }
424 return base::android::ToJavaArrayOfStrings(env, headers); 427 return base::android::ToJavaArrayOfStrings(env, headers);
425 } 428 }
426 429
427 } // namespace cronet 430 } // namespace cronet
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698