| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 package org.chromium.net; | 5 package org.chromium.net; |
| 6 | 6 |
| 7 import android.util.Log; | 7 import android.util.Log; |
| 8 import android.util.Pair; | 8 import android.util.Pair; |
| 9 | 9 |
| 10 import org.chromium.base.CalledByNative; | 10 import org.chromium.base.CalledByNative; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 * native tasks to native network thread. Because Cancel could be called from | 27 * native tasks to native network thread. Because Cancel could be called from |
| 28 * any thread it is protected by mUrlRequestAdapterLock. | 28 * any thread it is protected by mUrlRequestAdapterLock. |
| 29 */ | 29 */ |
| 30 @JNINamespace("cronet") | 30 @JNINamespace("cronet") |
| 31 final class CronetUrlRequest implements UrlRequest { | 31 final class CronetUrlRequest implements UrlRequest { |
| 32 /* Native adapter object, owned by UrlRequest. */ | 32 /* Native adapter object, owned by UrlRequest. */ |
| 33 private long mUrlRequestAdapter; | 33 private long mUrlRequestAdapter; |
| 34 private boolean mStarted = false; | 34 private boolean mStarted = false; |
| 35 private boolean mCanceled = false; | 35 private boolean mCanceled = false; |
| 36 private boolean mInOnDataReceived = false; | 36 private boolean mInOnDataReceived = false; |
| 37 private boolean mDisableCache = false; |
| 37 | 38 |
| 38 /* | 39 /* |
| 39 * Synchronize access to mUrlRequestAdapter, mStarted, mCanceled and | 40 * Synchronize access to mUrlRequestAdapter, mStarted, mCanceled and |
| 40 * mDestroyAfterReading. | 41 * mDestroyAfterReading. |
| 41 */ | 42 */ |
| 42 private final Object mUrlRequestAdapterLock = new Object(); | 43 private final Object mUrlRequestAdapterLock = new Object(); |
| 43 private final CronetUrlRequestContext mRequestContext; | 44 private final CronetUrlRequestContext mRequestContext; |
| 44 private final Executor mExecutor; | 45 private final Executor mExecutor; |
| 45 | 46 |
| 46 /* | 47 /* |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 } | 274 } |
| 274 } | 275 } |
| 275 for (Pair<String, String> header : mRequestHeaders) { | 276 for (Pair<String, String> header : mRequestHeaders) { |
| 276 if (!nativeAddHeader(mUrlRequestAdapter, header.first, | 277 if (!nativeAddHeader(mUrlRequestAdapter, header.first, |
| 277 header.second)) { | 278 header.second)) { |
| 278 destroyRequestAdapter(); | 279 destroyRequestAdapter(); |
| 279 throw new IllegalArgumentException("Invalid header " | 280 throw new IllegalArgumentException("Invalid header " |
| 280 + header.first + "=" + header.second); | 281 + header.first + "=" + header.second); |
| 281 } | 282 } |
| 282 } | 283 } |
| 284 if (mDisableCache) { |
| 285 nativeDisableCache(mUrlRequestAdapter); |
| 286 } |
| 283 mStarted = true; | 287 mStarted = true; |
| 284 nativeStart(mUrlRequestAdapter); | 288 nativeStart(mUrlRequestAdapter); |
| 285 } | 289 } |
| 286 } | 290 } |
| 287 | 291 |
| 288 @Override | 292 @Override |
| 289 public void cancel() { | 293 public void cancel() { |
| 290 synchronized (mUrlRequestAdapterLock) { | 294 synchronized (mUrlRequestAdapterLock) { |
| 291 if (mCanceled || !mStarted) { | 295 if (mCanceled || !mStarted) { |
| 292 return; | 296 return; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 315 @Override | 319 @Override |
| 316 public boolean isPaused() { | 320 public boolean isPaused() { |
| 317 return false; | 321 return false; |
| 318 } | 322 } |
| 319 | 323 |
| 320 @Override | 324 @Override |
| 321 public void resume() { | 325 public void resume() { |
| 322 throw new UnsupportedOperationException("Not implemented yet"); | 326 throw new UnsupportedOperationException("Not implemented yet"); |
| 323 } | 327 } |
| 324 | 328 |
| 329 @Override |
| 330 public void disableCache() { |
| 331 checkNotStarted(); |
| 332 mDisableCache = true; |
| 333 } |
| 334 |
| 325 /** | 335 /** |
| 326 * Post task to application Executor. Used for Listener callbacks | 336 * Post task to application Executor. Used for Listener callbacks |
| 327 * and other tasks that should not be executed on network thread. | 337 * and other tasks that should not be executed on network thread. |
| 328 */ | 338 */ |
| 329 private void postTaskToExecutor(Runnable task) { | 339 private void postTaskToExecutor(Runnable task) { |
| 330 mExecutor.execute(task); | 340 mExecutor.execute(task); |
| 331 } | 341 } |
| 332 | 342 |
| 333 private static int convertRequestPriority(int priority) { | 343 private static int convertRequestPriority(int priority) { |
| 334 switch (priority) { | 344 switch (priority) { |
| (...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 613 private native void nativePopulateResponseHeaders(long urlRequestAdapter, | 623 private native void nativePopulateResponseHeaders(long urlRequestAdapter, |
| 614 HeadersList headers); | 624 HeadersList headers); |
| 615 | 625 |
| 616 private native String nativeGetNegotiatedProtocol(long urlRequestAdapter); | 626 private native String nativeGetNegotiatedProtocol(long urlRequestAdapter); |
| 617 | 627 |
| 618 private native String nativeGetHttpStatusText(long urlRequestAdapter); | 628 private native String nativeGetHttpStatusText(long urlRequestAdapter); |
| 619 | 629 |
| 620 private native boolean nativeGetWasCached(long urlRequestAdapter); | 630 private native boolean nativeGetWasCached(long urlRequestAdapter); |
| 621 | 631 |
| 622 private native long nativeGetTotalReceivedBytes(long urlRequestAdapter); | 632 private native long nativeGetTotalReceivedBytes(long urlRequestAdapter); |
| 633 |
| 634 private native void nativeDisableCache(long urlRequestAdapter); |
| 623 } | 635 } |
| OLD | NEW |