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

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

Issue 2339223002: Cronet API Refactoring (Closed)
Patch Set: Rebased onto Charles change + Paul's Comments 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 side-by-side diff with in-line comments
Download patch
Index: components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
diff --git a/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java b/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
index ce4b574633545e36439c14202768319cf32b3a59..69440cf74baad176c96180a71814f5b9b5ee165a 100644
--- a/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
+++ b/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
@@ -6,15 +6,14 @@ package org.chromium.net.impl;
import android.os.SystemClock;
import android.support.annotation.Nullable;
-import android.util.Log;
+import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNIAdditionalImport;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeClassQualifiedName;
import org.chromium.net.InlineExecutionProhibitedException;
-import org.chromium.net.Preconditions;
import org.chromium.net.QuicException;
import org.chromium.net.RequestFinishedInfo;
import org.chromium.net.RequestPriority;
@@ -47,7 +46,7 @@ import javax.annotation.concurrent.GuardedBy;
// Qualifies UrlRequest.StatusListener which is used in onStatus, a JNI method.
@JNIAdditionalImport(UrlRequest.class)
@VisibleForTesting
-public final class CronetUrlRequest implements UrlRequest {
+public final class CronetUrlRequest extends UrlRequestBase {
private static final RequestFinishedInfo.Metrics EMPTY_METRICS =
new CronetMetrics(null, null, null, null);
private final boolean mAllowDirectExecutor;
@@ -641,8 +640,9 @@ public final class CronetUrlRequest implements UrlRequest {
/**
* Called when error has occured, no callbacks will be called afterwards.
*
- * @param errorCode error code from {@link UrlRequestException.ERROR_LISTENER_EXCEPTION_THROWN
- * UrlRequestException.ERROR_*}.
+ * @param errorCode Error code represented by {@code UrlRequestError} that should be mapped
+ * to one of {@link UrlRequestException#ERROR_LISTENER_EXCEPTION_THROWN
+ * UrlRequestException.ERROR_*}.
* @param nativeError native net error code.
* @param errorString textual representation of the error code.
* @param receivedBytesCount number of bytes received.
@@ -659,8 +659,9 @@ public final class CronetUrlRequest implements UrlRequest {
failWithException(new QuicException(
"Exception in CronetUrlRequest: " + errorString, nativeError, nativeQuicError));
} else {
+ int javaError = mapUrlRequestErrorToApiErrorCode(errorCode);
failWithException(new UrlRequestException(
- "Exception in CronetUrlRequest: " + errorString, errorCode, nativeError));
+ "Exception in CronetUrlRequest: " + errorString, javaError, nativeError));
}
}
@@ -693,7 +694,7 @@ public final class CronetUrlRequest implements UrlRequest {
Runnable task = new Runnable() {
@Override
public void run() {
- listener.onStatus(UrlRequest.Status.convertLoadState(loadState));
+ listener.onStatus(UrlRequestBase.Status.convertLoadState(loadState));
}
};
postTaskToExecutor(task);
@@ -748,6 +749,38 @@ public final class CronetUrlRequest implements UrlRequest {
}
}
+ private int mapUrlRequestErrorToApiErrorCode(int errorCode) {
+ switch (errorCode) {
+ case UrlRequestError.LISTENER_EXCEPTION_THROWN:
+ return UrlRequestException.ERROR_LISTENER_EXCEPTION_THROWN;
+ case UrlRequestError.HOSTNAME_NOT_RESOLVED:
+ return UrlRequestException.ERROR_HOSTNAME_NOT_RESOLVED;
+ case UrlRequestError.INTERNET_DISCONNECTED:
+ return UrlRequestException.ERROR_INTERNET_DISCONNECTED;
+ case UrlRequestError.NETWORK_CHANGED:
+ return UrlRequestException.ERROR_NETWORK_CHANGED;
+ case UrlRequestError.TIMED_OUT:
+ return UrlRequestException.ERROR_TIMED_OUT;
+ case UrlRequestError.CONNECTION_CLOSED:
+ return UrlRequestException.ERROR_CONNECTION_CLOSED;
+ case UrlRequestError.CONNECTION_TIMED_OUT:
+ return UrlRequestException.ERROR_CONNECTION_TIMED_OUT;
+ case UrlRequestError.CONNECTION_REFUSED:
+ return UrlRequestException.ERROR_CONNECTION_REFUSED;
+ case UrlRequestError.CONNECTION_RESET:
+ return UrlRequestException.ERROR_CONNECTION_RESET;
+ case UrlRequestError.ADDRESS_UNREACHABLE:
+ return UrlRequestException.ERROR_ADDRESS_UNREACHABLE;
+ case UrlRequestError.QUIC_PROTOCOL_FAILED:
+ return UrlRequestException.ERROR_QUIC_PROTOCOL_FAILED;
+ case UrlRequestError.OTHER:
+ return UrlRequestException.ERROR_OTHER;
+ default:
+ Log.e(CronetUrlRequestContext.LOG_TAG, "Unknown error code: " + errorCode);
+ return errorCode;
+ }
+ }
+
// Native methods are implemented in cronet_url_request_adapter.cc.
private native long nativeCreateRequestAdapter(long urlRequestContextAdapter, String url,

Powered by Google App Engine
This is Rietveld 408576698