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

Unified Diff: components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java

Issue 2422993004: Implement finished reason and exception for BidirectionalStream (Closed)
Patch Set: Change IllegalStateException to asserts Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java
diff --git a/components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java b/components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java
index d9c80a1b4d448ede5284707aeddcfb8b4db67f21..9a1fb8b9c0ec157daf03871baa5f805fcd28437d 100644
--- a/components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java
+++ b/components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java
@@ -86,6 +86,7 @@ public class CronetBidirectionalStream extends BidirectionalStream {
private final String mRequestHeaders[];
private final boolean mDelayRequestHeadersUntilFirstFlush;
private final Collection<Object> mRequestAnnotations;
+ private UrlRequestException mException;
/*
* Synchronizes access to mNativeStream, mReadState and mWriteState.
@@ -639,10 +640,19 @@ public class CronetBidirectionalStream extends BidirectionalStream {
connectEndMs, sslStartMs, sslEndMs, sendingStartMs, sendingEndMs, pushStartMs,
pushEndMs, responseStartMs, requestEndMs, socketReused, sentBytesCount,
receivedBytesCount);
- // TODO(xunjieli): Fill this with real values.
- final RequestFinishedInfo requestFinishedInfo =
- new RequestFinishedInfo(mInitialUrl, mRequestAnnotations, mMetrics,
- RequestFinishedInfo.SUCCEEDED, mResponseInfo, null);
+ assert mReadState == mWriteState;
+ assert (mReadState == State.SUCCESS) || (mReadState == State.ERROR)
+ || (mReadState == State.CANCELED);
+ int finishedReason;
+ if (mReadState == State.SUCCESS) {
+ finishedReason = RequestFinishedInfo.SUCCEEDED;
+ } else if (mReadState == State.CANCELED) {
+ finishedReason = RequestFinishedInfo.CANCELED;
+ } else {
+ finishedReason = RequestFinishedInfo.FAILED;
+ }
+ final RequestFinishedInfo requestFinishedInfo = new RequestFinishedInfo(mInitialUrl,
+ mRequestAnnotations, mMetrics, finishedReason, mResponseInfo, mException);
mRequestContext.reportFinished(requestFinishedInfo);
}
}
@@ -738,6 +748,7 @@ public class CronetBidirectionalStream extends BidirectionalStream {
* Fails the stream with an exception. Only called on the Executor.
*/
private void failWithExceptionOnExecutor(CronetException e) {
+ mException = e;
// Do not call into mCallback if request is complete.
synchronized (mNativeStreamLock) {
if (isDoneLocked()) {
« no previous file with comments | « no previous file | components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698