1 // Copyright 2016 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 package android.net.http; 5 6 7 import androidx.annotation.NonNull; 8 import java.time.Instant; 9 import java.util.Set; 10 11 /** 12 * Defines methods that the actual implementation of {@link HttpEngine.Builder} has to implement. 13 * {@code HttpEngine.Builder} uses this interface to delegate the calls. For the documentation of 14 * individual methods, please see the identically named methods in {@link 15 * org.chromium.net.HttpEngine.Builder}. 16 * 17 * {@hide internal class} 18 */ 19 public abstract class IHttpEngineBuilder { 20 // Public API methods. addPublicKeyPins(String hostName, Set<byte[]> pinsSha256, boolean includeSubdomains, Instant expirationInstant)21 public abstract IHttpEngineBuilder addPublicKeyPins(String hostName, Set<byte[]> pinsSha256, 22 boolean includeSubdomains, Instant expirationInstant); 23 addQuicHint(String host, int port, int alternatePort)24 public abstract IHttpEngineBuilder addQuicHint(String host, int port, int alternatePort); 25 setEnableHttp2(boolean value)26 public abstract IHttpEngineBuilder setEnableHttp2(boolean value); 27 setEnableHttpCache(int cacheMode, long maxSize)28 public abstract IHttpEngineBuilder setEnableHttpCache(int cacheMode, long maxSize); 29 setEnablePublicKeyPinningBypassForLocalTrustAnchors( boolean value)30 public abstract IHttpEngineBuilder setEnablePublicKeyPinningBypassForLocalTrustAnchors( 31 boolean value); 32 setEnableQuic(boolean value)33 public abstract IHttpEngineBuilder setEnableQuic(boolean value); 34 setEnableBrotli(boolean value)35 public abstract IHttpEngineBuilder setEnableBrotli(boolean value); 36 setStoragePath(String value)37 public abstract IHttpEngineBuilder setStoragePath(String value); 38 setUserAgent(String userAgent)39 public abstract IHttpEngineBuilder setUserAgent(String userAgent); 40 getDefaultUserAgent()41 public abstract String getDefaultUserAgent(); 42 setQuicOptions(@onNull QuicOptions quicOptions)43 public abstract IHttpEngineBuilder setQuicOptions(@NonNull QuicOptions quicOptions); 44 setDnsOptions(@onNull DnsOptions dnsOptions)45 public abstract IHttpEngineBuilder setDnsOptions(@NonNull DnsOptions dnsOptions); 46 setConnectionMigrationOptions(@onNull ConnectionMigrationOptions connectionMigrationOptions)47 public abstract IHttpEngineBuilder setConnectionMigrationOptions(@NonNull ConnectionMigrationOptions connectionMigrationOptions); 48 build()49 public abstract HttpEngine build(); 50 } 51