| Index: components/cronet/android/test/javatests/src/org/chromium/net/TestBidirectionalStreamCallback.java
|
| diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/TestBidirectionalStreamCallback.java b/components/cronet/android/test/javatests/src/org/chromium/net/TestBidirectionalStreamCallback.java
|
| index 8f05ccefa4ec59ef239f0be5b1363a37df37d1bc..1fe77e6e35065307da5c105674711d05675d735c 100644
|
| --- a/components/cronet/android/test/javatests/src/org/chromium/net/TestBidirectionalStreamCallback.java
|
| +++ b/components/cronet/android/test/javatests/src/org/chromium/net/TestBidirectionalStreamCallback.java
|
| @@ -69,6 +69,10 @@ public class TestBidirectionalStreamCallback extends BidirectionalStream.Callbac
|
| // Buffers that we yet to receive the corresponding onWriteCompleted callback.
|
| private final ArrayList<WriteBuffer> mWriteBuffersToBeAcked = new ArrayList<WriteBuffer>();
|
|
|
| + // Whether to use a direct executor.
|
| + private final boolean mUseDirectExecutor;
|
| + private final DirectExecutor mDirectExecutor;
|
| +
|
| private class ExecutorThreadFactory implements ThreadFactory {
|
| public Thread newThread(Runnable r) {
|
| mExecutorThread = new Thread(r);
|
| @@ -85,6 +89,12 @@ public class TestBidirectionalStreamCallback extends BidirectionalStream.Callbac
|
| }
|
| }
|
|
|
| + private static class DirectExecutor implements Executor {
|
| + @Override
|
| + public void execute(Runnable task) {
|
| + task.run();
|
| + }
|
| + }
|
| public enum ResponseStep {
|
| NOTHING,
|
| ON_STREAM_READY,
|
| @@ -107,6 +117,16 @@ public class TestBidirectionalStreamCallback extends BidirectionalStream.Callbac
|
| THROW_SYNC
|
| }
|
|
|
| + public TestBidirectionalStreamCallback() {
|
| + mUseDirectExecutor = false;
|
| + mDirectExecutor = null;
|
| + }
|
| +
|
| + public TestBidirectionalStreamCallback(boolean useDirectExecutor) {
|
| + mUseDirectExecutor = useDirectExecutor;
|
| + mDirectExecutor = new DirectExecutor();
|
| + }
|
| +
|
| public void setAutoAdvance(boolean autoAdvance) {
|
| mAutoAdvance = autoAdvance;
|
| }
|
| @@ -131,10 +151,16 @@ public class TestBidirectionalStreamCallback extends BidirectionalStream.Callbac
|
| }
|
|
|
| public Executor getExecutor() {
|
| + if (mUseDirectExecutor) {
|
| + return mDirectExecutor;
|
| + }
|
| return mExecutorService;
|
| }
|
|
|
| public void shutdownExecutor() {
|
| + if (mUseDirectExecutor) {
|
| + throw new UnsupportedOperationException("DirectExecutor doesn't support shutdown");
|
| + }
|
| mExecutorService.shutdown();
|
| }
|
|
|
|
|