Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion components/cronet/android/api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,12 @@ public class org.chromium.net.CronetEngine$Builder {
public org.chromium.net.CronetEngine$Builder enableSdch(boolean);
public org.chromium.net.CronetEngine$Builder setConnectionMigrationOptions(org.chromium.net.ConnectionMigrationOptions$Builder);
public org.chromium.net.CronetEngine$Builder setConnectionMigrationOptions(org.chromium.net.ConnectionMigrationOptions);
public org.chromium.net.CronetEngine$Builder setDisabledCipherSuites(java.lang.String);
public org.chromium.net.CronetEngine$Builder setDnsOptions(org.chromium.net.DnsOptions$Builder);
public org.chromium.net.CronetEngine$Builder setDnsOptions(org.chromium.net.DnsOptions);
public org.chromium.net.CronetEngine$Builder setLibraryLoader(org.chromium.net.CronetEngine$Builder$LibraryLoader);
public org.chromium.net.CronetEngine$Builder setMaxSslVersion(java.lang.Short);
public org.chromium.net.CronetEngine$Builder setMinSslVersion(java.lang.Short);
public org.chromium.net.CronetEngine$Builder setQuicOptions(org.chromium.net.QuicOptions$Builder);
public org.chromium.net.CronetEngine$Builder setQuicOptions(org.chromium.net.QuicOptions);
public org.chromium.net.CronetEngine$Builder setStoragePath(java.lang.String);
Expand Down Expand Up @@ -321,8 +324,11 @@ public abstract class org.chromium.net.ICronetEngineBuilder {
public abstract org.chromium.net.ICronetEngineBuilder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean);
public abstract org.chromium.net.ICronetEngineBuilder enableQuic(boolean);
public abstract org.chromium.net.ICronetEngineBuilder enableSdch(boolean);
public abstract org.chromium.net.ICronetEngineBuilder setDisabledCipherSuites(java.lang.String);
public abstract org.chromium.net.ICronetEngineBuilder setExperimentalOptions(java.lang.String);
public abstract org.chromium.net.ICronetEngineBuilder setLibraryLoader(org.chromium.net.CronetEngine$Builder$LibraryLoader);
public abstract org.chromium.net.ICronetEngineBuilder setMaxSslVersion(java.lang.Short);
public abstract org.chromium.net.ICronetEngineBuilder setMinSslVersion(java.lang.Short);
public abstract org.chromium.net.ICronetEngineBuilder setStoragePath(java.lang.String);
public abstract org.chromium.net.ICronetEngineBuilder setUserAgent(java.lang.String);
public org.chromium.net.ICronetEngineBuilder enableBrotli(boolean);
Expand Down Expand Up @@ -640,4 +646,4 @@ public class org.chromium.net.apihelpers.UrlRequestCallbacks {
public static org.chromium.net.apihelpers.UrlRequestCallbacks$CallbackAndResponseFuturePair<java.lang.String, org.chromium.net.apihelpers.StringCronetCallback> forStringBody(org.chromium.net.apihelpers.RedirectHandler);
public static org.chromium.net.apihelpers.UrlRequestCallbacks$CallbackAndResponseFuturePair<org.json.JSONObject, org.chromium.net.apihelpers.JsonCronetCallback> forJsonBody(org.chromium.net.apihelpers.RedirectHandler);
}
Stamp: ded30b9fbe22dff6cc175cd483aa1e4b
Stamp: 360967594a7b7589a4d46adb87bdcd88
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,24 @@ public abstract static class LibraryLoader {
/** Reference to the actual builder implementation. {@hide exclude from JavaDoc}. */
protected final ICronetEngineBuilder mBuilderDelegate;

/**
* Additional arguments to configure the url request context.
*/
public Builder setDisabledCipherSuites(String disabledCipherSuites) {
mBuilderDelegate.setDisabledCipherSuites(disabledCipherSuites);
return this;
}

public Builder setMinSslVersion(Short minSslVersion) {
mBuilderDelegate.setMinSslVersion(minSslVersion);
return this;
}

public Builder setMaxSslVersion(Short maxSslVersion) {
mBuilderDelegate.setMaxSslVersion(maxSslVersion);
return this;
}

/**
* Constructs a {@link Builder} object that facilitates creating a {@link CronetEngine}. The
* default configuration enables HTTP/2 and QUIC, but disables the HTTP cache.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,12 @@ public abstract ICronetEngineBuilder setLibraryLoader(

public abstract ICronetEngineBuilder setUserAgent(String userAgent);

public abstract ICronetEngineBuilder setDisabledCipherSuites(String disabledSuites);

public abstract ICronetEngineBuilder setMinSslVersion(Short minVersion);

public abstract ICronetEngineBuilder setMaxSslVersion(Short maxVersion);

public abstract String getDefaultUserAgent();

public abstract ExperimentalCronetEngine build();
Expand Down
2 changes: 1 addition & 1 deletion components/cronet/android/api_version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
36
37
3 changes: 3 additions & 0 deletions components/cronet/android/cronet_context_adapter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,9 @@ static jlong JNI_CronetUrlRequestContext_CreateRequestContextConfig(
configOptions.http_cache_max_size(), configOptions.disable_cache(),
configOptions.storage_path(),
/* accept_languages */ std::string(), configOptions.user_agent(),
configOptions.disabled_cipher_suites(),
configOptions.min_ssl_version(),
configOptions.max_ssl_version(),
configOptions.experimental_options(),
base::WrapUnique(reinterpret_cast<net::CertVerifier*>(
configOptions.mock_cert_verifier())),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,30 @@ public ICronetEngineBuilder setUserAgent(String userAgent) {
return this;
}

@Override
public ICronetEngineBuilder setDisabledCipherSuites(String disabledCipherSuites) {
// need to implement abstract method, but mBackend
// class has not been updated with new parameters
// mBackend.setDisabledCipherSuites(disabledCipherSuites);
return this;
}

@Override
public ICronetEngineBuilder setMinSslVersion(Short minSslVersion) {
// need to implement abstract method, but mBackend
// class has not been updated with new parameters
// mBackend.setMinSslVersion(minSslVersion);
return this;
}

@Override
public ICronetEngineBuilder setMaxSslVersion(Short maxSslVersion) {
// need to implement abstract method, but mBackend
// class has not been updated with new parameters
// mBackend.setMaxSslVersion(maxSslVersion);
return this;
}

@Override
public ICronetEngineBuilder setStoragePath(String value) {
mBackend.setStoragePath(value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,9 @@ static HttpCacheMode fromPublicBuilderCacheMode(@HttpCacheSetting int cacheMode)
private boolean mBrotiEnabled;
private HttpCacheMode mHttpCacheMode;
private long mHttpCacheMaxSize;
private String mDisabledCipherSuites;
private Short mMinSslVersion;
private Short mMaxSslVersion;
private String mExperimentalOptions;
protected long mMockCertVerifier;
private boolean mNetworkQualityEstimatorEnabled;
Expand Down Expand Up @@ -226,6 +229,36 @@ String getUserAgent() {
return mUserAgent;
}

@Override
public CronetEngineBuilderImpl setDisabledCipherSuites(String disabledCipherSuites) {
mDisabledCipherSuites = disabledCipherSuites;
return this;
}

public String getDisabledCipherSuites() {
return mDisabledCipherSuites;
}

@Override
public CronetEngineBuilderImpl setMinSslVersion(Short minSslVersion) {
mMinSslVersion = minSslVersion;
return this;
}

public Short getMinSslVersion() {
return mMinSslVersion;
}

@Override
public CronetEngineBuilderImpl setMaxSslVersion(Short maxSslVersion) {
mMaxSslVersion = maxSslVersion;
return this;
}

public Short getMaxSslVersion() {
return mMaxSslVersion;
}

@Override
public CronetEngineBuilderImpl setStoragePath(String value) {
if (!new File(value).isDirectory()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,18 @@ private static RequestContextConfigOptions createRequestContextConfigOptions(
resultBuilder.setExperimentalOptions(engineBuilder.experimentalOptions());
}

if (engineBuilder.getDisabledCipherSuites() != null) {
resultBuilder.setDisabledCipherSuites(engineBuilder.getDisabledCipherSuites());
}

if (engineBuilder.getMinSslVersion() != null) {
resultBuilder.setMinSslVersion(engineBuilder.getMinSslVersion());
}

if (engineBuilder.getMaxSslVersion() != null) {
resultBuilder.setMaxSslVersion(engineBuilder.getMaxSslVersion());
}

return resultBuilder.build();
}

Expand Down
3 changes: 3 additions & 0 deletions components/cronet/android/proto/request_context_config.proto
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,7 @@ message RequestContextConfigOptions {
optional bool enable_network_quality_estimator = 12;
optional bool bypass_public_key_pinning_for_local_trust_anchors = 13;
optional int32 network_thread_priority = 14;
optional string disabled_cipher_suites = 17;
optional int32 min_ssl_version = 18;
optional int32 max_ssl_version = 19;
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ public void onCreate() {
myBuilder
.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY, 100 * 1024)
.enableHttp2(true)
.enableQuic(true);
.enableQuic(true)
.setDisabledCipherSuites("0xc024,0xc02f,0002")
.setMinSslVersion((short)0x0303) // net::SSL_PROTOCOL_VERSION_TLS1_2
.setMaxSslVersion((short)0x0304); // net::SSL_PROTOCOL_VERSION_TLS1_3
mCronetEngine = myBuilder.build();
}

Expand Down Expand Up @@ -61,6 +64,9 @@ public void restartCronetEngine() {
.setDnsOptions(dnsOptionsBuilder)
.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY, 100 * 1024)
.enableHttp2(true)
.setDisabledCipherSuites("0xc024,0xc02f,0002")
.setMinSslVersion((short)0x0303) // net::SSL_PROTOCOL_VERSION_TLS1_2
.setMaxSslVersion((short)0x0304) // net::SSL_PROTOCOL_VERSION_TLS1_3
.enableQuic(true)
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,21 @@ public String getDefaultUserAgent() {
throw new UnsupportedOperationException();
}

@Override
public ICronetEngineBuilder setDisabledCipherSuites(String disabledSuites) {
throw new UnsupportedOperationException();
}

@Override
public ICronetEngineBuilder setMinSslVersion(Short minVersion) {
throw new UnsupportedOperationException();
}

@Override
public ICronetEngineBuilder setMaxSslVersion(Short maxVersion) {
throw new UnsupportedOperationException();
}

@Override
public ICronetEngineBuilder setConnectionMigrationOptions(
ConnectionMigrationOptions options) {
Expand Down
7 changes: 7 additions & 0 deletions components/cronet/native/cronet.idl
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,13 @@ struct EngineParams {
*/
string user_agent;

/**
* Additional arguments to configure the url request context.
*/
string disabled_cipher_suites;
uint16_t min_ssl_version;
uint16_t max_ssl_version;

/**
* Sets a default value for the Accept-Language header value for UrlRequests
* created by this engine. Explicitly setting the Accept-Language header
Expand Down
3 changes: 3 additions & 0 deletions components/cronet/native/engine.cc
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,9 @@ Cronet_RESULT Cronet_EngineImpl::StartWithParams(
context_config_builder.storage_path = params->storage_path;
context_config_builder.accept_language = params->accept_language;
context_config_builder.user_agent = params->user_agent;
context_config_builder.disabled_cipher_suites = params->disabled_cipher_suites;
context_config_builder.min_ssl_version = params->min_ssl_version;
context_config_builder.max_ssl_version = params->max_ssl_version;
context_config_builder.experimental_options = params->experimental_options;
context_config_builder.bypass_public_key_pinning_for_local_trust_anchors =
params->enable_public_key_pinning_bypass_for_local_trust_anchors;
Expand Down
18 changes: 18 additions & 0 deletions components/cronet/native/generated/cronet.idl_c.h
Original file line number Diff line number Diff line change
Expand Up @@ -795,6 +795,15 @@ CRONET_EXPORT
void Cronet_EngineParams_user_agent_set(Cronet_EngineParamsPtr self,
const Cronet_String user_agent);
CRONET_EXPORT
void Cronet_EngineParams_disabled_cipher_suites_set(Cronet_EngineParamsPtr self,
const Cronet_String disabled_cipher_suites);
CRONET_EXPORT
void Cronet_EngineParams_min_ssl_version_set(Cronet_EngineParamsPtr self,
const uint16_t min_ssl_version);
CRONET_EXPORT
void Cronet_EngineParams_max_ssl_version_set(Cronet_EngineParamsPtr self,
const uint16_t max_ssl_version);
CRONET_EXPORT
void Cronet_EngineParams_accept_language_set(
Cronet_EngineParamsPtr self,
const Cronet_String accept_language);
Expand Down Expand Up @@ -845,6 +854,15 @@ CRONET_EXPORT
Cronet_String Cronet_EngineParams_user_agent_get(
const Cronet_EngineParamsPtr self);
CRONET_EXPORT
Cronet_String Cronet_EngineParams_disabled_cipher_suites_get(
const Cronet_EngineParamsPtr self);
CRONET_EXPORT
uint16_t Cronet_EngineParams_min_ssl_version_get(
const Cronet_EngineParamsPtr self);
CRONET_EXPORT
uint16_t Cronet_EngineParams_max_ssl_version_get(
const Cronet_EngineParamsPtr self);
CRONET_EXPORT
Cronet_String Cronet_EngineParams_accept_language_get(
const Cronet_EngineParamsPtr self);
CRONET_EXPORT
Expand Down
36 changes: 36 additions & 0 deletions components/cronet/native/generated/cronet.idl_impl_struct.cc
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,24 @@ void Cronet_EngineParams_user_agent_set(Cronet_EngineParamsPtr self,
self->user_agent = user_agent;
}

void Cronet_EngineParams_disabled_cipher_suites_set(Cronet_EngineParamsPtr self,
const Cronet_String disabled_cipher_suites) {
DCHECK(self);
self->disabled_cipher_suites = disabled_cipher_suites;
}

void Cronet_EngineParams_min_ssl_version_set(Cronet_EngineParamsPtr self,
const uint16_t min_ssl_version) {
DCHECK(self);
self->min_ssl_version = min_ssl_version;
}

void Cronet_EngineParams_max_ssl_version_set(Cronet_EngineParamsPtr self,
const uint16_t max_ssl_version) {
DCHECK(self);
self->max_ssl_version = max_ssl_version;
}

void Cronet_EngineParams_accept_language_set(
Cronet_EngineParamsPtr self,
const Cronet_String accept_language) {
Expand Down Expand Up @@ -342,6 +360,24 @@ Cronet_String Cronet_EngineParams_user_agent_get(
return self->user_agent.c_str();
}

Cronet_String Cronet_EngineParams_disabled_cipher_suites_get(
const Cronet_EngineParamsPtr self) {
DCHECK(self);
return self->disabled_cipher_suites.c_str();
}

uint16_t Cronet_EngineParams_min_ssl_version_get(
const Cronet_EngineParamsPtr self) {
DCHECK(self);
return self->min_ssl_version;
}

uint16_t Cronet_EngineParams_max_ssl_version_get(
const Cronet_EngineParamsPtr self) {
DCHECK(self);
return self->max_ssl_version;
}

Cronet_String Cronet_EngineParams_accept_language_get(
const Cronet_EngineParamsPtr self) {
DCHECK(self);
Expand Down
3 changes: 3 additions & 0 deletions components/cronet/native/generated/cronet.idl_impl_struct.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,9 @@ struct Cronet_EngineParams {
std::vector<Cronet_PublicKeyPins> public_key_pins;
bool enable_public_key_pinning_bypass_for_local_trust_anchors = true;
double network_thread_priority = std::numeric_limits<double>::quiet_NaN();
std::string disabled_cipher_suites;
uint16_t min_ssl_version;
uint16_t max_ssl_version;
std::string experimental_options;
};

Expand Down
3 changes: 3 additions & 0 deletions components/cronet/native/sample/main.cc
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ Cronet_EnginePtr CreateCronetEngine() {
Cronet_EngineParamsPtr engine_params = Cronet_EngineParams_Create();
Cronet_EngineParams_user_agent_set(engine_params, "CronetSample/1");
Cronet_EngineParams_enable_quic_set(engine_params, true);
Cronet_EngineParams_disabled_cipher_suites_set(engine_params, "0xc024,0xc02f,0002");
Cronet_EngineParams_min_ssl_version_set(engine_params, 0x0303); // TLS 1.2
Cronet_EngineParams_max_ssl_version_set(engine_params, 0x0304); // TLS 1.3

Cronet_Engine_StartWithParams(cronet_engine, engine_params);
Cronet_EngineParams_Destroy(engine_params);
Expand Down
Loading