| 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.os.ConditionVariable; | 7 import android.os.ConditionVariable; |
| 8 import android.os.StrictMode; |
| 8 | 9 |
| 9 import static junit.framework.Assert.assertEquals; | 10 import static junit.framework.Assert.assertEquals; |
| 10 import static junit.framework.Assert.assertFalse; | 11 import static junit.framework.Assert.assertFalse; |
| 11 import static junit.framework.Assert.assertNull; | 12 import static junit.framework.Assert.assertNull; |
| 12 import static junit.framework.Assert.assertTrue; | 13 import static junit.framework.Assert.assertTrue; |
| 13 | 14 |
| 14 import java.nio.ByteBuffer; | 15 import java.nio.ByteBuffer; |
| 15 import java.util.ArrayList; | 16 import java.util.ArrayList; |
| 16 import java.util.concurrent.Executor; | 17 import java.util.concurrent.Executor; |
| 17 import java.util.concurrent.ExecutorService; | 18 import java.util.concurrent.ExecutorService; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 | 62 |
| 62 // Executor Service for Cronet callbacks. | 63 // Executor Service for Cronet callbacks. |
| 63 private final ExecutorService mExecutorService = | 64 private final ExecutorService mExecutorService = |
| 64 Executors.newSingleThreadExecutor(new ExecutorThreadFactory()); | 65 Executors.newSingleThreadExecutor(new ExecutorThreadFactory()); |
| 65 private Thread mExecutorThread; | 66 private Thread mExecutorThread; |
| 66 | 67 |
| 67 // position() of ByteBuffer prior to readNew() call. | 68 // position() of ByteBuffer prior to readNew() call. |
| 68 private int mBufferPositionBeforeRead; | 69 private int mBufferPositionBeforeRead; |
| 69 | 70 |
| 70 private class ExecutorThreadFactory implements ThreadFactory { | 71 private class ExecutorThreadFactory implements ThreadFactory { |
| 71 public Thread newThread(Runnable r) { | 72 public Thread newThread(final Runnable r) { |
| 72 mExecutorThread = new Thread(r); | 73 mExecutorThread = new Thread(new Runnable() { |
| 74 @Override |
| 75 public void run() { |
| 76 StrictMode.ThreadPolicy threadPolicy = StrictMode.getThreadP
olicy(); |
| 77 try { |
| 78 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.B
uilder() |
| 79 .detectNetwork() |
| 80 .penaltyLog() |
| 81 .penaltyDeath() |
| 82 .build()); |
| 83 r.run(); |
| 84 } finally { |
| 85 StrictMode.setThreadPolicy(threadPolicy); |
| 86 } |
| 87 } |
| 88 }); |
| 73 return mExecutorThread; | 89 return mExecutorThread; |
| 74 } | 90 } |
| 75 } | 91 } |
| 76 | 92 |
| 77 public enum ResponseStep { | 93 public enum ResponseStep { |
| 78 NOTHING, | 94 NOTHING, |
| 79 ON_RECEIVED_REDIRECT, | 95 ON_RECEIVED_REDIRECT, |
| 80 ON_RESPONSE_STARTED, | 96 ON_RESPONSE_STARTED, |
| 81 ON_READ_COMPLETED, | 97 ON_READ_COMPLETED, |
| 82 ON_SUCCEEDED | 98 ON_SUCCEEDED |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 }; | 295 }; |
| 280 if (mFailureType == FailureType.CANCEL_ASYNC | 296 if (mFailureType == FailureType.CANCEL_ASYNC |
| 281 || mFailureType == FailureType.CANCEL_ASYNC_WITHOUT_PAUSE) { | 297 || mFailureType == FailureType.CANCEL_ASYNC_WITHOUT_PAUSE) { |
| 282 getExecutor().execute(task); | 298 getExecutor().execute(task); |
| 283 } else { | 299 } else { |
| 284 task.run(); | 300 task.run(); |
| 285 } | 301 } |
| 286 return mFailureType != FailureType.CANCEL_ASYNC_WITHOUT_PAUSE; | 302 return mFailureType != FailureType.CANCEL_ASYNC_WITHOUT_PAUSE; |
| 287 } | 303 } |
| 288 } | 304 } |
| OLD | NEW |