1 // Copyright 2023 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package org.chromium.net.impl; 6 7 import androidx.annotation.NonNull; 8 import androidx.annotation.Nullable; 9 10 import static org.chromium.net.impl.HttpEngineNativeProvider.EXT_API_LEVEL; 11 import static org.chromium.net.impl.HttpEngineNativeProvider.EXT_VERSION; 12 13 import androidx.annotation.RequiresExtension; 14 15 import org.chromium.net.UrlResponseInfo; 16 17 import java.nio.ByteBuffer; 18 19 @RequiresExtension(extension = EXT_API_LEVEL, version = EXT_VERSION) 20 class AndroidUrlRequestWrapper extends org.chromium.net.ExperimentalUrlRequest { 21 private final android.net.http.UrlRequest mBackend; 22 AndroidUrlRequestWrapper(android.net.http.UrlRequest backend)23 AndroidUrlRequestWrapper(android.net.http.UrlRequest backend) { 24 this.mBackend = backend; 25 } 26 27 @Override start()28 public void start() { 29 mBackend.start(); 30 } 31 32 @Override followRedirect()33 public void followRedirect() { 34 mBackend.followRedirect(); 35 } 36 37 @Override read(ByteBuffer buffer)38 public void read(ByteBuffer buffer) { 39 mBackend.read(buffer); 40 } 41 42 @Override cancel()43 public void cancel() { 44 mBackend.cancel(); 45 } 46 47 @Override isDone()48 public boolean isDone() { 49 return mBackend.isDone(); 50 } 51 52 @Override getStatus(StatusListener listener)53 public void getStatus(StatusListener listener) { 54 mBackend.getStatus(new AndroidUrlRequestStatusListenerWrapper(listener)); 55 } 56 57 @Override getTrafficStatsUid()58 public int getTrafficStatsUid() { 59 return mBackend.getTrafficStatsUid(); 60 } 61 62 @Override getPriority()63 public int getPriority() { 64 return mBackend.getPriority(); 65 } 66 67 @Override hasTrafficStatsTag()68 public boolean hasTrafficStatsTag() { 69 return mBackend.hasTrafficStatsTag(); 70 } 71 72 @Override hasTrafficStatsUid()73 public boolean hasTrafficStatsUid() { 74 return mBackend.hasTrafficStatsUid(); 75 } 76 77 @Override getTrafficStatsTag()78 public int getTrafficStatsTag() { 79 return mBackend.getTrafficStatsTag(); 80 } 81 82 @Override isDirectExecutorAllowed()83 public boolean isDirectExecutorAllowed() { 84 return mBackend.isDirectExecutorAllowed(); 85 } 86 87 @Override isCacheDisabled()88 public boolean isCacheDisabled() { 89 return mBackend.isCacheDisabled(); 90 } 91 92 @NonNull 93 @Override getHeaders()94 public UrlResponseInfo.HeaderBlock getHeaders() { 95 return new AndroidHeaderBlockWrapper(mBackend.getHeaders()); 96 } 97 98 @Nullable 99 @Override getHttpMethod()100 public String getHttpMethod() { 101 return mBackend.getHttpMethod(); 102 } 103 } 104