JavaUrlRequest.smali

.class final Laegon/chrome/net/impl/JavaUrlRequest;
.super Laegon/chrome/net/impl/UrlRequestBase;


# annotations
.annotation build Landroid/annotation/TargetApi;
    value = 0xe
.end annotation

.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Laegon/chrome/net/impl/JavaUrlRequest$DirectPreventingExecutor;,
        Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;,
        Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;,
        Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;,
        Laegon/chrome/net/impl/JavaUrlRequest$SinkState;,
        Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;,
        Laegon/chrome/net/impl/JavaUrlRequest$State;
    }
.end annotation


# static fields
.field private static final DEFAULT_CHUNK_LENGTH:I = 0x2000

.field private static final DEFAULT_UPLOAD_BUFFER_SIZE:I = 0x2000

.field private static final TAG:Ljava/lang/String;

.field private static final USER_AGENT:Ljava/lang/String; = "User-Agent"

.field private static final X_ANDROID:Ljava/lang/String; = "X-Android"

.field private static final X_ANDROID_SELECTED_TRANSPORT:Ljava/lang/String; = "X-Android-Selected-Transport"


# instance fields
.field private volatile mAdditionalStatusDetails:I

.field private final mAllowDirectExecutor:Z

.field private final mCallbackAsync:Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;

.field private mCurrentUrl:Ljava/lang/String;

.field private mCurrentUrlConnection:Ljava/net/HttpURLConnection;

.field private final mExecutor:Ljava/util/concurrent/Executor;

.field private mInitialMethod:Ljava/lang/String;

.field private mOutputStreamDataSink:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

.field private mPendingRedirectUrl:Ljava/lang/String;

.field private final mRequestHeaders:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map",
            "<",
            "Ljava/lang/String;",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation
.end field

.field private mResponseChannel:Ljava/nio/channels/ReadableByteChannel;
    .annotation build Landroid/support/annotation/Nullable;
    .end annotation
.end field

.field private final mState:Ljava/util/concurrent/atomic/AtomicReference;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/concurrent/atomic/AtomicReference",
            "<",
            "Ljava/lang/Integer;",
            ">;"
        }
    .end annotation
.end field

.field private mUploadDataProvider:Laegon/chrome/net/impl/VersionSafeCallbacks$UploadDataProviderWrapper;

.field private mUploadExecutor:Ljava/util/concurrent/Executor;

.field private final mUploadProviderClosed:Ljava/util/concurrent/atomic/AtomicBoolean;

.field private final mUrlChain:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List",
            "<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation
.end field

.field private mUrlResponseInfo:Laegon/chrome/net/impl/UrlResponseInfoImpl;

.field private final mUserAgent:Ljava/lang/String;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    const-class v0, Laegon/chrome/net/impl/JavaUrlRequest;

    invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;

    move-result-object v0

    sput-object v0, Laegon/chrome/net/impl/JavaUrlRequest;->TAG:Ljava/lang/String;

    return-void
.end method

.method constructor <init>(Laegon/chrome/net/UrlRequest$Callback;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;Ljava/lang/String;Ljava/lang/String;ZZIZI)V
    .registers 18

    invoke-direct {p0}, Laegon/chrome/net/impl/UrlRequestBase;-><init>()V

    new-instance v0, Ljava/util/TreeMap;

    sget-object v1, Ljava/lang/String;->CASE_INSENSITIVE_ORDER:Ljava/util/Comparator;

    invoke-direct {v0, v1}, Ljava/util/TreeMap;-><init>(Ljava/util/Comparator;)V

    iput-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mRequestHeaders:Ljava/util/Map;

    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    iput-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUrlChain:Ljava/util/List;

    new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;

    const/4 v1, 0x0

    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;-><init>(Ljava/lang/Object;)V

    iput-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mState:Ljava/util/concurrent/atomic/AtomicReference;

    new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean;

    const/4 v1, 0x0

    invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>(Z)V

    iput-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUploadProviderClosed:Ljava/util/concurrent/atomic/AtomicBoolean;

    const/4 v0, -0x1

    iput v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mAdditionalStatusDetails:I

    if-nez p4, :cond_34

    new-instance v0, Ljava/lang/NullPointerException;

    const-string v1, "URL is required"

    invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_34
    if-nez p1, :cond_3e

    new-instance v0, Ljava/lang/NullPointerException;

    const-string v1, "Listener is required"

    invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_3e
    if-nez p2, :cond_48

    new-instance v0, Ljava/lang/NullPointerException;

    const-string v1, "Executor is required"

    invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_48
    if-nez p3, :cond_52

    new-instance v0, Ljava/lang/NullPointerException;

    const-string v1, "userExecutor is required"

    invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_52
    iput-boolean p6, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mAllowDirectExecutor:Z

    new-instance v0, Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;

    invoke-direct {v0, p0, p1, p3}, Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;Laegon/chrome/net/UrlRequest$Callback;Ljava/util/concurrent/Executor;)V

    iput-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mCallbackAsync:Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;

    if-eqz p7, :cond_75

    move v3, p8

    :goto_5e
    new-instance v6, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;

    new-instance v0, Laegon/chrome/net/impl/JavaUrlRequest$1;

    move-object v1, p0

    move-object v2, p2

    move/from16 v4, p9

    move/from16 v5, p10

    invoke-direct/range {v0 .. v5}, Laegon/chrome/net/impl/JavaUrlRequest$1;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/util/concurrent/Executor;IZI)V

    invoke-direct {v6, v0}, Laegon/chrome/net/impl/JavaUrlRequest$SerializingExecutor;-><init>(Ljava/util/concurrent/Executor;)V

    iput-object v6, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mExecutor:Ljava/util/concurrent/Executor;

    iput-object p4, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mCurrentUrl:Ljava/lang/String;

    iput-object p5, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUserAgent:Ljava/lang/String;

    return-void

    :cond_75
    invoke-static {}, Landroid/net/TrafficStats;->getThreadStatsTag()I

    move-result v3

    goto :goto_5e
.end method

.method static synthetic access$1000(Laegon/chrome/net/impl/JavaUrlRequest;)Ljava/lang/String;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mCurrentUrl:Ljava/lang/String;

    return-object v0
.end method

.method static synthetic access$1002(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/lang/String;)Ljava/lang/String;
    .registers 2

    iput-object p1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mCurrentUrl:Ljava/lang/String;

    return-object p1
.end method

.method static synthetic access$1100(Laegon/chrome/net/impl/JavaUrlRequest;)Ljava/util/List;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUrlChain:Ljava/util/List;

    return-object v0
.end method

.method static synthetic access$1200(Laegon/chrome/net/impl/JavaUrlRequest;)V
    .registers 1

    invoke-direct {p0}, Laegon/chrome/net/impl/JavaUrlRequest;->fireOpenConnection()V

    return-void
.end method

.method static synthetic access$1300(Laegon/chrome/net/impl/JavaUrlRequest;)Ljava/lang/String;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mPendingRedirectUrl:Ljava/lang/String;

    return-object v0
.end method

.method static synthetic access$1302(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/lang/String;)Ljava/lang/String;
    .registers 2

    iput-object p1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mPendingRedirectUrl:Ljava/lang/String;

    return-object p1
.end method

.method static synthetic access$1400(Laegon/chrome/net/impl/JavaUrlRequest;)Ljava/net/HttpURLConnection;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mCurrentUrlConnection:Ljava/net/HttpURLConnection;

    return-object v0
.end method

.method static synthetic access$1402(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/net/HttpURLConnection;)Ljava/net/HttpURLConnection;
    .registers 2

    iput-object p1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mCurrentUrlConnection:Ljava/net/HttpURLConnection;

    return-object p1
.end method

.method static synthetic access$1500(Laegon/chrome/net/impl/JavaUrlRequest;)Laegon/chrome/net/impl/UrlResponseInfoImpl;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUrlResponseInfo:Laegon/chrome/net/impl/UrlResponseInfoImpl;

    return-object v0
.end method

.method static synthetic access$1502(Laegon/chrome/net/impl/JavaUrlRequest;Laegon/chrome/net/impl/UrlResponseInfoImpl;)Laegon/chrome/net/impl/UrlResponseInfoImpl;
    .registers 2

    iput-object p1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUrlResponseInfo:Laegon/chrome/net/impl/UrlResponseInfoImpl;

    return-object p1
.end method

.method static synthetic access$1600(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/util/Map;)V
    .registers 2

    invoke-direct {p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest;->fireRedirectReceived(Ljava/util/Map;)V

    return-void
.end method

.method static synthetic access$1700(Laegon/chrome/net/impl/JavaUrlRequest;)V
    .registers 1

    invoke-direct {p0}, Laegon/chrome/net/impl/JavaUrlRequest;->fireCloseUploadDataProvider()V

    return-void
.end method

.method static synthetic access$1800(Laegon/chrome/net/impl/JavaUrlRequest;)Ljava/nio/channels/ReadableByteChannel;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mResponseChannel:Ljava/nio/channels/ReadableByteChannel;

    return-object v0
.end method

.method static synthetic access$1802(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/nio/channels/ReadableByteChannel;)Ljava/nio/channels/ReadableByteChannel;
    .registers 2

    iput-object p1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mResponseChannel:Ljava/nio/channels/ReadableByteChannel;

    return-object p1
.end method

.method static synthetic access$1900(Laegon/chrome/net/impl/JavaUrlRequest;)Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mCallbackAsync:Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;

    return-object v0
.end method

.method static synthetic access$2000(Laegon/chrome/net/impl/JavaUrlRequest;)Laegon/chrome/net/impl/VersionSafeCallbacks$UploadDataProviderWrapper;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUploadDataProvider:Laegon/chrome/net/impl/VersionSafeCallbacks$UploadDataProviderWrapper;

    return-object v0
.end method

.method static synthetic access$2100(Laegon/chrome/net/impl/JavaUrlRequest;IILjava/lang/Runnable;)V
    .registers 4

    invoke-direct {p0, p1, p2, p3}, Laegon/chrome/net/impl/JavaUrlRequest;->transitionStates(IILjava/lang/Runnable;)V

    return-void
.end method

.method static synthetic access$2200(Laegon/chrome/net/impl/JavaUrlRequest;)Ljava/util/concurrent/atomic/AtomicReference;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mState:Ljava/util/concurrent/atomic/AtomicReference;

    return-object v0
.end method

.method static synthetic access$2300(Laegon/chrome/net/impl/JavaUrlRequest;)Ljava/util/Map;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mRequestHeaders:Ljava/util/Map;

    return-object v0
.end method

.method static synthetic access$2400(Laegon/chrome/net/impl/JavaUrlRequest;)Ljava/lang/String;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUserAgent:Ljava/lang/String;

    return-object v0
.end method

.method static synthetic access$2500(Laegon/chrome/net/impl/JavaUrlRequest;)Ljava/lang/String;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mInitialMethod:Ljava/lang/String;

    return-object v0
.end method

.method static synthetic access$2502(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/lang/String;)Ljava/lang/String;
    .registers 2

    iput-object p1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mInitialMethod:Ljava/lang/String;

    return-object p1
.end method

.method static synthetic access$2600(Laegon/chrome/net/impl/JavaUrlRequest;)Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mOutputStreamDataSink:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    return-object v0
.end method

.method static synthetic access$2602(Laegon/chrome/net/impl/JavaUrlRequest;Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;)Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;
    .registers 2

    iput-object p1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mOutputStreamDataSink:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    return-object p1
.end method

.method static synthetic access$2700(Laegon/chrome/net/impl/JavaUrlRequest;)Ljava/util/concurrent/Executor;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUploadExecutor:Ljava/util/concurrent/Executor;

    return-object v0
.end method

.method static synthetic access$2800(Laegon/chrome/net/impl/JavaUrlRequest;)Ljava/util/concurrent/Executor;
    .registers 2

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mExecutor:Ljava/util/concurrent/Executor;

    return-object v0
.end method

.method static synthetic access$2900(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/lang/Throwable;)V
    .registers 2

    invoke-direct {p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest;->enterCronetErrorState(Ljava/lang/Throwable;)V

    return-void
.end method

.method static synthetic access$3000(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/lang/Throwable;)V
    .registers 2

    invoke-direct {p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest;->enterUserErrorState(Ljava/lang/Throwable;)V

    return-void
.end method

.method static synthetic access$3100(Laegon/chrome/net/impl/JavaUrlRequest;ILjava/nio/ByteBuffer;)V
    .registers 3

    invoke-direct {p0, p1, p2}, Laegon/chrome/net/impl/JavaUrlRequest;->processReadResult(ILjava/nio/ByteBuffer;)V

    return-void
.end method

.method static synthetic access$3200()Ljava/lang/String;
    .registers 1

    sget-object v0, Laegon/chrome/net/impl/JavaUrlRequest;->TAG:Ljava/lang/String;

    return-object v0
.end method

.method static synthetic access$3300(Laegon/chrome/net/impl/JavaUrlRequest;)Z
    .registers 2

    iget-boolean v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mAllowDirectExecutor:Z

    return v0
.end method

.method static synthetic access$3400(Laegon/chrome/net/impl/JavaUrlRequest;Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)Ljava/lang/Runnable;
    .registers 3

    invoke-direct {p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest;->userErrorSetting(Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)Ljava/lang/Runnable;

    move-result-object v0

    return-object v0
.end method

.method static synthetic access$3500(Laegon/chrome/net/impl/JavaUrlRequest;Laegon/chrome/net/CronetException;)V
    .registers 2

    invoke-direct {p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest;->enterErrorState(Laegon/chrome/net/CronetException;)V

    return-void
.end method

.method static synthetic access$3600(Laegon/chrome/net/impl/JavaUrlRequest;)V
    .registers 1

    invoke-direct {p0}, Laegon/chrome/net/impl/JavaUrlRequest;->closeResponseChannel()V

    return-void
.end method

.method static synthetic access$400(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/lang/Throwable;)V
    .registers 2

    invoke-direct {p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest;->enterUploadErrorState(Ljava/lang/Throwable;)V

    return-void
.end method

.method static synthetic access$600(Laegon/chrome/net/impl/JavaUrlRequest;Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)Ljava/lang/Runnable;
    .registers 3

    invoke-direct {p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest;->errorSetting(Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)Ljava/lang/Runnable;

    move-result-object v0

    return-object v0
.end method

.method static synthetic access$702(Laegon/chrome/net/impl/JavaUrlRequest;I)I
    .registers 2

    iput p1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mAdditionalStatusDetails:I

    return p1
.end method

.method static synthetic access$800(Laegon/chrome/net/impl/JavaUrlRequest;Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)Ljava/lang/Runnable;
    .registers 3

    invoke-direct {p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest;->uploadErrorSetting(Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)Ljava/lang/Runnable;

    move-result-object v0

    return-object v0
.end method

.method static synthetic access$900(Laegon/chrome/net/impl/JavaUrlRequest;)V
    .registers 1

    invoke-direct {p0}, Laegon/chrome/net/impl/JavaUrlRequest;->fireGetHeaders()V

    return-void
.end method

.method private checkNotStarted()V
    .registers 5

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mState:Ljava/util/concurrent/atomic/AtomicReference;

    invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Integer;

    invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I

    move-result v0

    if-eqz v0, :cond_27

    new-instance v1, Ljava/lang/IllegalStateException;

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "Request is already started. State is: "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v1

    :cond_27
    return-void
.end method

.method private closeResponseChannel()V
    .registers 3

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mExecutor:Ljava/util/concurrent/Executor;

    new-instance v1, Laegon/chrome/net/impl/JavaUrlRequest$13;

    invoke-direct {v1, p0}, Laegon/chrome/net/impl/JavaUrlRequest$13;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;)V

    invoke-interface {v0, v1}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V

    return-void
.end method

.method private enterCronetErrorState(Ljava/lang/Throwable;)V
    .registers 4

    new-instance v0, Laegon/chrome/net/impl/CronetExceptionImpl;

    const-string v1, "System error"

    invoke-direct {v0, v1, p1}, Laegon/chrome/net/impl/CronetExceptionImpl;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    invoke-direct {p0, v0}, Laegon/chrome/net/impl/JavaUrlRequest;->enterErrorState(Laegon/chrome/net/CronetException;)V

    return-void
.end method

.method private enterErrorState(Laegon/chrome/net/CronetException;)V
    .registers 4

    const/4 v0, 0x6

    invoke-direct {p0, v0}, Laegon/chrome/net/impl/JavaUrlRequest;->setTerminalState(I)Z

    move-result v0

    if-eqz v0, :cond_14

    invoke-direct {p0}, Laegon/chrome/net/impl/JavaUrlRequest;->fireDisconnect()V

    invoke-direct {p0}, Laegon/chrome/net/impl/JavaUrlRequest;->fireCloseUploadDataProvider()V

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mCallbackAsync:Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;

    iget-object v1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUrlResponseInfo:Laegon/chrome/net/impl/UrlResponseInfoImpl;

    invoke-virtual {v0, v1, p1}, Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;->onFailed(Laegon/chrome/net/UrlResponseInfo;Laegon/chrome/net/CronetException;)V

    :cond_14
    return-void
.end method

.method private enterUploadErrorState(Ljava/lang/Throwable;)V
    .registers 4

    new-instance v0, Laegon/chrome/net/impl/CallbackExceptionImpl;

    const-string v1, "Exception received from UploadDataProvider"

    invoke-direct {v0, v1, p1}, Laegon/chrome/net/impl/CallbackExceptionImpl;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    invoke-direct {p0, v0}, Laegon/chrome/net/impl/JavaUrlRequest;->enterErrorState(Laegon/chrome/net/CronetException;)V

    return-void
.end method

.method private enterUserErrorState(Ljava/lang/Throwable;)V
    .registers 4

    new-instance v0, Laegon/chrome/net/impl/CallbackExceptionImpl;

    const-string v1, "Exception received from UrlRequest.Callback"

    invoke-direct {v0, v1, p1}, Laegon/chrome/net/impl/CallbackExceptionImpl;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V

    invoke-direct {p0, v0}, Laegon/chrome/net/impl/JavaUrlRequest;->enterErrorState(Laegon/chrome/net/CronetException;)V

    return-void
.end method

.method private errorSetting(Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)Ljava/lang/Runnable;
    .registers 3

    new-instance v0, Laegon/chrome/net/impl/JavaUrlRequest$8;

    invoke-direct {v0, p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest$8;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)V

    return-object v0
.end method

.method private fireCloseUploadDataProvider()V
    .registers 4

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUploadDataProvider:Laegon/chrome/net/impl/VersionSafeCallbacks$UploadDataProviderWrapper;

    if-eqz v0, :cond_1c

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUploadProviderClosed:Ljava/util/concurrent/atomic/AtomicBoolean;

    const/4 v1, 0x0

    const/4 v2, 0x1

    invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z

    move-result v0

    if-eqz v0, :cond_1c

    :try_start_e
    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUploadExecutor:Ljava/util/concurrent/Executor;

    new-instance v1, Laegon/chrome/net/impl/JavaUrlRequest$5;

    invoke-direct {v1, p0}, Laegon/chrome/net/impl/JavaUrlRequest$5;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;)V

    invoke-direct {p0, v1}, Laegon/chrome/net/impl/JavaUrlRequest;->uploadErrorSetting(Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)Ljava/lang/Runnable;

    move-result-object v1

    invoke-interface {v0, v1}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
    :try_end_1c
    .catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_e .. :try_end_1c} :catch_1d

    :cond_1c
    :goto_1c
    return-void

    :catch_1d
    move-exception v0

    sget-object v1, Laegon/chrome/net/impl/JavaUrlRequest;->TAG:Ljava/lang/String;

    const-string v2, "Exception when closing uploadDataProvider"

    invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    goto :goto_1c
.end method

.method private fireDisconnect()V
    .registers 3

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mExecutor:Ljava/util/concurrent/Executor;

    new-instance v1, Laegon/chrome/net/impl/JavaUrlRequest$12;

    invoke-direct {v1, p0}, Laegon/chrome/net/impl/JavaUrlRequest$12;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;)V

    invoke-interface {v0, v1}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V

    return-void
.end method

.method private fireGetHeaders()V
    .registers 3

    const/16 v0, 0xd

    iput v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mAdditionalStatusDetails:I

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mExecutor:Ljava/util/concurrent/Executor;

    new-instance v1, Laegon/chrome/net/impl/JavaUrlRequest$4;

    invoke-direct {v1, p0}, Laegon/chrome/net/impl/JavaUrlRequest$4;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;)V

    invoke-direct {p0, v1}, Laegon/chrome/net/impl/JavaUrlRequest;->errorSetting(Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)Ljava/lang/Runnable;

    move-result-object v1

    invoke-interface {v0, v1}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V

    return-void
.end method

.method private fireOpenConnection()V
    .registers 3

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mExecutor:Ljava/util/concurrent/Executor;

    new-instance v1, Laegon/chrome/net/impl/JavaUrlRequest$7;

    invoke-direct {v1, p0}, Laegon/chrome/net/impl/JavaUrlRequest$7;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;)V

    invoke-direct {p0, v1}, Laegon/chrome/net/impl/JavaUrlRequest;->errorSetting(Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)Ljava/lang/Runnable;

    move-result-object v1

    invoke-interface {v0, v1}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V

    return-void
.end method

.method private fireRedirectReceived(Ljava/util/Map;)V
    .registers 5
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/Map",
            "<",
            "Ljava/lang/String;",
            "Ljava/util/List",
            "<",
            "Ljava/lang/String;",
            ">;>;)V"
        }
    .end annotation

    const/4 v0, 0x1

    const/4 v1, 0x2

    new-instance v2, Laegon/chrome/net/impl/JavaUrlRequest$6;

    invoke-direct {v2, p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest$6;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/util/Map;)V

    invoke-direct {p0, v0, v1, v2}, Laegon/chrome/net/impl/JavaUrlRequest;->transitionStates(IILjava/lang/Runnable;)V

    return-void
.end method

.method private isValidHeaderName(Ljava/lang/String;)Z
    .registers 6

    const/4 v1, 0x0

    move v0, v1

    :goto_2
    invoke-virtual {p1}, Ljava/lang/String;->length()I

    move-result v2

    if-ge v0, v2, :cond_1f

    invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C

    move-result v2

    sparse-switch v2, :sswitch_data_22

    invoke-static {v2}, Ljava/lang/Character;->isISOControl(C)Z

    move-result v3

    if-nez v3, :cond_1b

    invoke-static {v2}, Ljava/lang/Character;->isWhitespace(C)Z

    move-result v2

    if-eqz v2, :cond_1c

    :cond_1b
    :goto_1b
    :sswitch_1b
    return v1

    :cond_1c
    add-int/lit8 v0, v0, 0x1

    goto :goto_2

    :cond_1f
    const/4 v1, 0x1

    goto :goto_1b

    nop

    :sswitch_data_22
    .sparse-switch
        0x27 -> :sswitch_1b
        0x28 -> :sswitch_1b
        0x29 -> :sswitch_1b
        0x2c -> :sswitch_1b
        0x2f -> :sswitch_1b
        0x3a -> :sswitch_1b
        0x3b -> :sswitch_1b
        0x3c -> :sswitch_1b
        0x3d -> :sswitch_1b
        0x3e -> :sswitch_1b
        0x3f -> :sswitch_1b
        0x40 -> :sswitch_1b
        0x5b -> :sswitch_1b
        0x5c -> :sswitch_1b
        0x5d -> :sswitch_1b
        0x7b -> :sswitch_1b
        0x7d -> :sswitch_1b
    .end sparse-switch
.end method

.method private processReadResult(ILjava/nio/ByteBuffer;)V
    .registers 6

    const/4 v0, -0x1

    if-eq p1, v0, :cond_b

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mCallbackAsync:Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;

    iget-object v1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUrlResponseInfo:Laegon/chrome/net/impl/UrlResponseInfoImpl;

    invoke-virtual {v0, v1, p2}, Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;->onReadCompleted(Laegon/chrome/net/UrlResponseInfo;Ljava/nio/ByteBuffer;)V

    :cond_a
    :goto_a
    return-void

    :cond_b
    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mResponseChannel:Ljava/nio/channels/ReadableByteChannel;

    if-eqz v0, :cond_14

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mResponseChannel:Ljava/nio/channels/ReadableByteChannel;

    invoke-interface {v0}, Ljava/nio/channels/ReadableByteChannel;->close()V

    :cond_14
    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mState:Ljava/util/concurrent/atomic/AtomicReference;

    const/4 v1, 0x5

    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    const/4 v2, 0x7

    invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v2

    invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_a

    invoke-direct {p0}, Laegon/chrome/net/impl/JavaUrlRequest;->fireDisconnect()V

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mCallbackAsync:Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;

    iget-object v1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUrlResponseInfo:Laegon/chrome/net/impl/UrlResponseInfoImpl;

    invoke-virtual {v0, v1}, Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;->onSucceeded(Laegon/chrome/net/UrlResponseInfo;)V

    goto :goto_a
.end method

.method private setTerminalState(I)Z
    .registers 5

    :cond_0
    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mState:Ljava/util/concurrent/atomic/AtomicReference;

    invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Integer;

    invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I

    move-result v0

    packed-switch v0, :pswitch_data_2c

    :pswitch_f
    iget-object v1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mState:Ljava/util/concurrent/atomic/AtomicReference;

    invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v0

    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v2

    invoke-virtual {v1, v0, v2}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_0

    const/4 v0, 0x1

    :goto_20
    return v0

    :pswitch_21
    new-instance v0, Ljava/lang/IllegalStateException;

    const-string v1, "Can\'t enter error state before start"

    invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v0

    :pswitch_29
    const/4 v0, 0x0

    goto :goto_20

    nop

    :pswitch_data_2c
    .packed-switch 0x0
        :pswitch_21
        :pswitch_f
        :pswitch_f
        :pswitch_f
        :pswitch_f
        :pswitch_f
        :pswitch_29
        :pswitch_29
        :pswitch_29
    .end packed-switch
.end method

.method private transitionStates(IILjava/lang/Runnable;)V
    .registers 8

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mState:Ljava/util/concurrent/atomic/AtomicReference;

    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v2

    invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z

    move-result v0

    if-nez v0, :cond_46

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mState:Ljava/util/concurrent/atomic/AtomicReference;

    invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Integer;

    invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I

    move-result v0

    const/16 v1, 0x8

    if-eq v0, v1, :cond_49

    const/4 v1, 0x6

    if-eq v0, v1, :cond_49

    new-instance v1, Ljava/lang/IllegalStateException;

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "Invalid state transition - expected "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v2

    const-string v3, " but was "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v1

    :cond_46
    invoke-interface {p3}, Ljava/lang/Runnable;->run()V

    :cond_49
    return-void
.end method

.method private uploadErrorSetting(Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)Ljava/lang/Runnable;
    .registers 3

    new-instance v0, Laegon/chrome/net/impl/JavaUrlRequest$10;

    invoke-direct {v0, p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest$10;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)V

    return-object v0
.end method

.method private userErrorSetting(Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)Ljava/lang/Runnable;
    .registers 3

    new-instance v0, Laegon/chrome/net/impl/JavaUrlRequest$9;

    invoke-direct {v0, p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest$9;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)V

    return-object v0
.end method


# virtual methods
.method public addHeader(Ljava/lang/String;Ljava/lang/String;)V
    .registers 6

    invoke-direct {p0}, Laegon/chrome/net/impl/JavaUrlRequest;->checkNotStarted()V

    invoke-direct {p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest;->isValidHeaderName(Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_11

    const-string v0, "\r\n"

    invoke-virtual {p2, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

    move-result v0

    if-eqz v0, :cond_34

    :cond_11
    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "Invalid header "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string v2, "="

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_34
    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mRequestHeaders:Ljava/util/Map;

    invoke-interface {v0, p1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_41

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mRequestHeaders:Ljava/util/Map;

    invoke-interface {v0, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;

    :cond_41
    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mRequestHeaders:Ljava/util/Map;

    invoke-interface {v0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    return-void
.end method

.method public cancel()V
    .registers 3

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mState:Ljava/util/concurrent/atomic/AtomicReference;

    const/16 v1, 0x8

    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Integer;

    invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I

    move-result v0

    packed-switch v0, :pswitch_data_24

    :goto_15
    :pswitch_15
    return-void

    :pswitch_16
    invoke-direct {p0}, Laegon/chrome/net/impl/JavaUrlRequest;->fireDisconnect()V

    invoke-direct {p0}, Laegon/chrome/net/impl/JavaUrlRequest;->fireCloseUploadDataProvider()V

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mCallbackAsync:Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;

    iget-object v1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUrlResponseInfo:Laegon/chrome/net/impl/UrlResponseInfoImpl;

    invoke-virtual {v0, v1}, Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;->onCanceled(Laegon/chrome/net/UrlResponseInfo;)V

    goto :goto_15

    :pswitch_data_24
    .packed-switch 0x1
        :pswitch_16
        :pswitch_16
        :pswitch_16
        :pswitch_16
        :pswitch_16
        :pswitch_15
        :pswitch_15
        :pswitch_15
    .end packed-switch
.end method

.method public followRedirect()V
    .registers 4

    const/4 v0, 0x3

    const/4 v1, 0x1

    new-instance v2, Laegon/chrome/net/impl/JavaUrlRequest$3;

    invoke-direct {v2, p0}, Laegon/chrome/net/impl/JavaUrlRequest$3;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;)V

    invoke-direct {p0, v0, v1, v2}, Laegon/chrome/net/impl/JavaUrlRequest;->transitionStates(IILjava/lang/Runnable;)V

    return-void
.end method

.method public getStatus(Laegon/chrome/net/UrlRequest$StatusListener;)V
    .registers 6

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mState:Ljava/util/concurrent/atomic/AtomicReference;

    invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Integer;

    invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I

    move-result v1

    iget v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mAdditionalStatusDetails:I

    packed-switch v1, :pswitch_data_3c

    new-instance v0, Ljava/lang/IllegalStateException;

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "Switch is exhaustive: "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v0

    :pswitch_2a
    const/4 v0, -0x1

    :goto_2b
    :pswitch_2b
    iget-object v1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mCallbackAsync:Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;

    new-instance v2, Laegon/chrome/net/impl/VersionSafeCallbacks$UrlRequestStatusListener;

    invoke-direct {v2, p1}, Laegon/chrome/net/impl/VersionSafeCallbacks$UrlRequestStatusListener;-><init>(Laegon/chrome/net/UrlRequest$StatusListener;)V

    invoke-virtual {v1, v2, v0}, Laegon/chrome/net/impl/JavaUrlRequest$AsyncUrlRequestCallback;->sendStatus(Laegon/chrome/net/impl/VersionSafeCallbacks$UrlRequestStatusListener;I)V

    return-void

    :pswitch_36
    const/4 v0, 0x0

    goto :goto_2b

    :pswitch_38
    const/16 v0, 0xe

    goto :goto_2b

    nop

    :pswitch_data_3c
    .packed-switch 0x0
        :pswitch_2a
        :pswitch_2b
        :pswitch_36
        :pswitch_36
        :pswitch_36
        :pswitch_38
        :pswitch_2a
        :pswitch_2a
        :pswitch_2a
    .end packed-switch
.end method

.method public isDone()Z
    .registers 3

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mState:Ljava/util/concurrent/atomic/AtomicReference;

    invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Integer;

    invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I

    move-result v0

    const/4 v1, 0x7

    if-eq v0, v1, :cond_16

    const/4 v1, 0x6

    if-eq v0, v1, :cond_16

    const/16 v1, 0x8

    if-ne v0, v1, :cond_18

    :cond_16
    const/4 v0, 0x1

    :goto_17
    return v0

    :cond_18
    const/4 v0, 0x0

    goto :goto_17
.end method

.method public read(Ljava/nio/ByteBuffer;)V
    .registers 5

    invoke-static {p1}, Laegon/chrome/net/impl/Preconditions;->checkDirect(Ljava/nio/ByteBuffer;)V

    invoke-static {p1}, Laegon/chrome/net/impl/Preconditions;->checkHasRemaining(Ljava/nio/ByteBuffer;)V

    const/4 v0, 0x4

    const/4 v1, 0x5

    new-instance v2, Laegon/chrome/net/impl/JavaUrlRequest$11;

    invoke-direct {v2, p0, p1}, Laegon/chrome/net/impl/JavaUrlRequest$11;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/nio/ByteBuffer;)V

    invoke-direct {p0, v0, v1, v2}, Laegon/chrome/net/impl/JavaUrlRequest;->transitionStates(IILjava/lang/Runnable;)V

    return-void
.end method

.method public setHttpMethod(Ljava/lang/String;)V
    .registers 5

    invoke-direct {p0}, Laegon/chrome/net/impl/JavaUrlRequest;->checkNotStarted()V

    if-nez p1, :cond_d

    new-instance v0, Ljava/lang/NullPointerException;

    const-string v1, "Method is required."

    invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_d
    const-string v0, "OPTIONS"

    invoke-virtual {v0, p1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_4d

    const-string v0, "GET"

    invoke-virtual {v0, p1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_4d

    const-string v0, "HEAD"

    invoke-virtual {v0, p1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_4d

    const-string v0, "POST"

    invoke-virtual {v0, p1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_4d

    const-string v0, "PUT"

    invoke-virtual {v0, p1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_4d

    const-string v0, "DELETE"

    invoke-virtual {v0, p1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_4d

    const-string v0, "TRACE"

    invoke-virtual {v0, p1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_4d

    const-string v0, "PATCH"

    invoke-virtual {v0, p1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_50

    :cond_4d
    iput-object p1, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mInitialMethod:Ljava/lang/String;

    return-void

    :cond_50
    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "Invalid http method "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0
.end method

.method public setUploadDataProvider(Laegon/chrome/net/UploadDataProvider;Ljava/util/concurrent/Executor;)V
    .registers 5

    if-nez p1, :cond_a

    new-instance v0, Ljava/lang/NullPointerException;

    const-string v1, "Invalid UploadDataProvider."

    invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_a
    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mRequestHeaders:Ljava/util/Map;

    const-string v1, "Content-Type"

    invoke-interface {v0, v1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z

    move-result v0

    if-nez v0, :cond_1c

    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "Requests with upload data must have a Content-Type."

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_1c
    invoke-direct {p0}, Laegon/chrome/net/impl/JavaUrlRequest;->checkNotStarted()V

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mInitialMethod:Ljava/lang/String;

    if-nez v0, :cond_27

    const-string v0, "POST"

    iput-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mInitialMethod:Ljava/lang/String;

    :cond_27
    new-instance v0, Laegon/chrome/net/impl/VersionSafeCallbacks$UploadDataProviderWrapper;

    invoke-direct {v0, p1}, Laegon/chrome/net/impl/VersionSafeCallbacks$UploadDataProviderWrapper;-><init>(Laegon/chrome/net/UploadDataProvider;)V

    iput-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUploadDataProvider:Laegon/chrome/net/impl/VersionSafeCallbacks$UploadDataProviderWrapper;

    iget-boolean v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mAllowDirectExecutor:Z

    if-eqz v0, :cond_35

    iput-object p2, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUploadExecutor:Ljava/util/concurrent/Executor;

    :goto_34
    return-void

    :cond_35
    new-instance v0, Laegon/chrome/net/impl/JavaUrlRequest$DirectPreventingExecutor;

    invoke-direct {v0, p2}, Laegon/chrome/net/impl/JavaUrlRequest$DirectPreventingExecutor;-><init>(Ljava/util/concurrent/Executor;)V

    iput-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mUploadExecutor:Ljava/util/concurrent/Executor;

    goto :goto_34
.end method

.method public start()V
    .registers 4

    const/16 v0, 0xa

    iput v0, p0, Laegon/chrome/net/impl/JavaUrlRequest;->mAdditionalStatusDetails:I

    const/4 v0, 0x0

    const/4 v1, 0x1

    new-instance v2, Laegon/chrome/net/impl/JavaUrlRequest$2;

    invoke-direct {v2, p0}, Laegon/chrome/net/impl/JavaUrlRequest$2;-><init>(Laegon/chrome/net/impl/JavaUrlRequest;)V

    invoke-direct {p0, v0, v1, v2}, Laegon/chrome/net/impl/JavaUrlRequest;->transitionStates(IILjava/lang/Runnable;)V

    return-void
.end method