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

Unified Diff: net/cronet/android/java/src/org/chromium/net/ChromiumUrlRequest.java

Issue 230443005: Move cronet from //net into //components. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync to r262794 Created 6 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 side-by-side diff with in-line comments
Download patch
Index: net/cronet/android/java/src/org/chromium/net/ChromiumUrlRequest.java
diff --git a/net/cronet/android/java/src/org/chromium/net/ChromiumUrlRequest.java b/net/cronet/android/java/src/org/chromium/net/ChromiumUrlRequest.java
deleted file mode 100644
index 1679dc2a1518f5a0a87fa411597be6cba6225ef4..0000000000000000000000000000000000000000
--- a/net/cronet/android/java/src/org/chromium/net/ChromiumUrlRequest.java
+++ /dev/null
@@ -1,188 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.net;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.channels.WritableByteChannel;
-import java.util.Map;
-
-/**
- * Network request using the native http stack implementation.
- */
-class ChromiumUrlRequest extends UrlRequest implements HttpUrlRequest {
-
- private final HttpUrlRequestListener mListener;
-
- private boolean mBufferFullResponse;
-
- private long mOffset;
-
- private long mContentLength;
-
- private long mContentLengthLimit;
-
- private boolean mCancelIfContentLengthOverLimit;
-
- private boolean mContentLengthOverLimit;
-
- private boolean mSkippingToOffset;
-
- private long mSize;
-
- public ChromiumUrlRequest(ChromiumUrlRequestContext requestContext,
- String url, int priority, Map<String, String> headers,
- HttpUrlRequestListener listener) {
- this(requestContext, url, priority, headers,
- new ChunkedWritableByteChannel(), listener);
- mBufferFullResponse = true;
- }
-
- public ChromiumUrlRequest(ChromiumUrlRequestContext requestContext,
- String url, int priority, Map<String, String> headers,
- WritableByteChannel sink, HttpUrlRequestListener listener) {
- super(requestContext, url, convertRequestPriority(priority), headers,
- sink);
- mListener = listener;
- }
-
- private static int convertRequestPriority(int priority) {
- switch (priority) {
- case HttpUrlRequest.REQUEST_PRIORITY_IDLE:
- return UrlRequestPriority.IDLE;
- case HttpUrlRequest.REQUEST_PRIORITY_LOWEST:
- return UrlRequestPriority.LOWEST;
- case HttpUrlRequest.REQUEST_PRIORITY_LOW:
- return UrlRequestPriority.LOW;
- case HttpUrlRequest.REQUEST_PRIORITY_MEDIUM:
- return UrlRequestPriority.MEDIUM;
- case HttpUrlRequest.REQUEST_PRIORITY_HIGHEST:
- return UrlRequestPriority.HIGHEST;
- default:
- return UrlRequestPriority.MEDIUM;
- }
- }
-
- @Override
- public void setOffset(long offset) {
- mOffset = offset;
- if (offset != 0) {
- addHeader("Range", "bytes=" + offset + "-");
- }
- }
-
- @Override
- public long getContentLength() {
- return mContentLength;
- }
-
- @Override
- public void setContentLengthLimit(long limit, boolean cancelEarly) {
- mContentLengthLimit = limit;
- mCancelIfContentLengthOverLimit = cancelEarly;
- }
-
- @Override
- protected void onResponseStarted() {
- super.onResponseStarted();
-
- mContentLength = super.getContentLength();
- if (mContentLengthLimit > 0 && mContentLength > mContentLengthLimit
- && mCancelIfContentLengthOverLimit) {
- onContentLengthOverLimit();
- return;
- }
-
- if (mBufferFullResponse && mContentLength != -1
- && !mContentLengthOverLimit) {
- ((ChunkedWritableByteChannel)getSink()).setCapacity(
- (int)mContentLength);
- }
-
- if (mOffset != 0) {
- // The server may ignore the request for a byte range.
- if (super.getHttpStatusCode() == 200) {
- if (mContentLength != -1) {
- mContentLength -= mOffset;
- }
- mSkippingToOffset = true;
- } else {
- mSize = mOffset;
- }
- }
- }
-
- @Override
- protected void onBytesRead(ByteBuffer buffer) {
- if (mContentLengthOverLimit) {
- return;
- }
-
- int size = buffer.remaining();
- mSize += size;
- if (mSkippingToOffset) {
- if (mSize <= mOffset) {
- return;
- } else {
- mSkippingToOffset = false;
- buffer.position((int)(mOffset - (mSize - size)));
- }
- }
-
- if (mContentLengthLimit != 0 && mSize > mContentLengthLimit) {
- buffer.limit(size - (int)(mSize - mContentLengthLimit));
- super.onBytesRead(buffer);
- onContentLengthOverLimit();
- return;
- }
-
- super.onBytesRead(buffer);
- }
-
- private void onContentLengthOverLimit() {
- mContentLengthOverLimit = true;
- cancel();
- }
-
- @Override
- protected void onRequestComplete() {
- mListener.onRequestComplete(this);
- }
-
- @Override
- public int getHttpStatusCode() {
- int httpStatusCode = super.getHttpStatusCode();
-
- // TODO(mef): Investigate the following:
- // If we have been able to successfully resume a previously interrupted
- // download,
- // the status code will be 206, not 200. Since the rest of the
- // application is
- // expecting 200 to indicate success, we need to fake it.
- if (httpStatusCode == 206) {
- httpStatusCode = 200;
- }
- return httpStatusCode;
- }
-
- @Override
- public IOException getException() {
- IOException ex = super.getException();
- if (ex == null && mContentLengthOverLimit) {
- ex = new ResponseTooLargeException();
- }
- return ex;
- }
-
- @Override
- public ByteBuffer getByteBuffer() {
- return ((ChunkedWritableByteChannel)getSink()).getByteBuffer();
- }
-
- @Override
- public byte[] getResponseAsBytes() {
- return ((ChunkedWritableByteChannel)getSink()).getBytes();
- }
-}

Powered by Google App Engine
This is Rietveld 408576698