Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(793)

Unified Diff: components/cronet/android/java/src/org/chromium/net/UrlRequestContext.java

Issue 1363723002: [Cronet] Create Builders, rename UrlRequestContext to CronetEngine (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update Ben's tests Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/cronet/android/java/src/org/chromium/net/UrlRequestContext.java
diff --git a/components/cronet/android/java/src/org/chromium/net/UrlRequestContext.java b/components/cronet/android/java/src/org/chromium/net/UrlRequestContext.java
deleted file mode 100644
index 30ff0805fe91b2316791d5bac7259ee45cf7bd57..0000000000000000000000000000000000000000
--- a/components/cronet/android/java/src/org/chromium/net/UrlRequestContext.java
+++ /dev/null
@@ -1,222 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.net;
-
-import android.content.Context;
-import android.util.Log;
-
-import java.lang.reflect.Constructor;
-import java.util.concurrent.Executor;
-
-/**
- * A context for {@link UrlRequest}'s, which uses the best HTTP stack
- * available on the current platform.
- */
-public abstract class UrlRequestContext {
- private static final String TAG = "UrlRequestFactory";
- private static final String CRONET_URL_REQUEST_CONTEXT =
- "org.chromium.net.CronetUrlRequestContext";
-
- /**
- * Creates a {@link UrlRequest} object. All callbacks will
- * be called on {@code executor}'s thread. {@code executor} must not run
- * tasks on the current thread to prevent blocking networking operations
- * and causing exceptions during shutdown. Request is given medium priority,
- * see {@link UrlRequest#REQUEST_PRIORITY_MEDIUM}. To specify other
- * priorities see {@link #createRequest(String, UrlRequestListener,
- * Executor, int priority)}.
- *
- * @param url {@link java.net.URL} for the request.
- * @param listener callback class that gets called on different events.
- * @param executor {@link Executor} on which all callbacks will be called.
- * @return new request.
- */
- public abstract UrlRequest createRequest(String url,
- UrlRequestListener listener, Executor executor);
-
- /**
- * Creates a {@link UrlRequest} object. All callbacks will
- * be called on {@code executor}'s thread. {@code executor} must not run
- * tasks on the current thread to prevent blocking networking operations
- * and causing exceptions during shutdown.
- *
- * @param url {@link java.net.URL} for the request.
- * @param listener callback class that gets called on different events.
- * @param executor {@link Executor} on which all callbacks will be called.
- * @param priority priority of the request which should be one of the
- * {@link UrlRequest#REQUEST_PRIORITY_IDLE REQUEST_PRIORITY_*}
- * values.
- * @return new request.
- */
- public abstract UrlRequest createRequest(String url,
- UrlRequestListener listener, Executor executor, int priority);
-
- /**
- * @return {@code true} if the context is enabled.
- */
- abstract boolean isEnabled();
-
- /**
- * @return a human-readable version string of the context.
- */
- public abstract String getVersionString();
-
- /**
- * Shuts down the {@link UrlRequestContext} if there are no active requests,
- * otherwise throws an exception.
- *
- * Cannot be called on network thread - the thread Cronet calls into
- * Executor on (which is different from the thread the Executor invokes
- * callbacks on). May block until all the {@code UrlRequestContext}'s
- * resources have been cleaned up.
- */
- public abstract void shutdown();
-
- /**
- * Starts NetLog logging to a file. The NetLog is useful for debugging.
- * The file can be viewed using a Chrome browser navigated to
- * chrome://net-internals/#import
- * @param fileName the complete file path. It must not be empty. If the file
- * exists, it is truncated before starting. If actively logging,
- * this method is ignored.
- * @param logAll {@code true} to include basic events, user cookies,
- * credentials and all transferred bytes in the log.
- * {@code false} to just include basic events.
- */
- public abstract void startNetLogToFile(String fileName, boolean logAll);
-
- /**
- * Stops NetLog logging and flushes file to disk. If a logging session is
- * not in progress, this call is ignored.
- */
- public abstract void stopNetLog();
-
- /**
- * Enables the network quality estimator, which collects and reports
- * measurements of round trip time (RTT) and downstream throughput at
- * various layers of the network stack. After enabling the estimator,
- * listeners of RTT and throughput can be added with
- * {@link #addRttListener} and {@link #addThroughputListener} and
- * removed with {@link #removeRttListener} and
- * {@link #removeThroughputListener}. The estimator uses memory and CPU
- * only when enabled.
- * @param executor an executor that will be used to notified all
- * added RTT and throughput listeners.
- * @deprecated not really deprecated but hidden for now as it's a prototype.
- */
- @Deprecated public abstract void enableNetworkQualityEstimator(Executor executor);
-
- /**
- * Enables the network quality estimator for testing. This must be called
- * before round trip time and throughput listeners are added. Set both
- * boolean parameters to false for default behavior.
- * @param useLocalHostRequests include requests to localhost in estimates.
- * @param useSmallerResponses include small responses in throughput estimates.
- * @param executor an {@link java.util.concurrent.Executor} on which all
- * listeners will be called.
- * @deprecated not really deprecated but hidden for now as it's a prototype.
- */
- @Deprecated
- abstract void enableNetworkQualityEstimatorForTesting(
- boolean useLocalHostRequests, boolean useSmallerResponses, Executor executor);
-
- /**
- * Registers a listener that gets called whenever the network quality
- * estimator witnesses a sample round trip time. This must be called
- * after {@link #enableNetworkQualityEstimator}, and with throw an
- * exception otherwise. Round trip times may be recorded at various layers
- * of the network stack, including TCP, QUIC, and at the URL request layer.
- * The listener is called on the {@link java.util.concurrent.Executor} that
- * is passed to {@link #enableNetworkQualityEstimator}.
- * @param listener the listener of round trip times.
- * @deprecated not really deprecated but hidden for now as it's a prototype.
- */
- @Deprecated public abstract void addRttListener(NetworkQualityRttListener listener);
-
- /**
- * Removes a listener of round trip times if previously registered with
- * {@link #addRttListener}. This should be called after a
- * {@link NetworkQualityRttListener} is added in order to stop receiving
- * observations.
- * @param listener the listener of round trip times.
- * @deprecated not really deprecated but hidden for now as it's a prototype.
- */
- @Deprecated public abstract void removeRttListener(NetworkQualityRttListener listener);
-
- /**
- * Registers a listener that gets called whenever the network quality
- * estimator witnesses a sample throughput measurement. This must be called
- * after {@link #enableNetworkQualityEstimator}. Throughput observations
- * are computed by measuring bytes read over the active network interface
- * at times when at least one URL response is being received. The listener
- * is called on the {@link java.util.concurrent.Executor} that is passed to
- * {@link #enableNetworkQualityEstimator}.
- * @param listener the listener of throughput.
- * @deprecated not really deprecated but hidden for now as it's a prototype.
- */
- @Deprecated
- public abstract void addThroughputListener(NetworkQualityThroughputListener listener);
-
- /**
- * Removes a listener of throughput. This should be called after a
- * {@link NetworkQualityThroughputListener} is added with
- * {@link #addThroughputListener} in order to stop receiving observations.
- * @param listener the listener of throughput.
- * @deprecated not really deprecated but hidden for now as it's a prototype.
- */
- @Deprecated
- public abstract void removeThroughputListener(NetworkQualityThroughputListener listener);
-
- /**
- * Creates a {@link UrlRequestContext} with the given
- * {@link UrlRequestContextConfig}.
- * @param context Android {@link Context}.
- * @param config context configuration.
- */
- public static UrlRequestContext createContext(Context context,
- UrlRequestContextConfig config) {
- UrlRequestContext urlRequestContext = null;
- if (config.userAgent().isEmpty()) {
- config.setUserAgent(UserAgent.from(context));
- }
- if (!config.legacyMode()) {
- urlRequestContext = createCronetContext(context, config);
- }
- if (urlRequestContext == null) {
- // TODO(mef): Fallback to stub implementation. Once stub
- // implementation is available merge with createCronetFactory.
- urlRequestContext = createCronetContext(context, config);
- }
- Log.i(TAG, "Using network stack: "
- + urlRequestContext.getVersionString());
- return urlRequestContext;
- }
-
- private static UrlRequestContext createCronetContext(Context context,
- UrlRequestContextConfig config) {
- UrlRequestContext urlRequestContext = null;
- try {
- Class<? extends UrlRequestContext> contextClass =
- UrlRequestContext.class.getClassLoader()
- .loadClass(CRONET_URL_REQUEST_CONTEXT)
- .asSubclass(UrlRequestContext.class);
- Constructor<? extends UrlRequestContext> constructor =
- contextClass.getConstructor(
- Context.class, UrlRequestContextConfig.class);
- UrlRequestContext cronetContext =
- constructor.newInstance(context, config);
- if (cronetContext.isEnabled()) {
- urlRequestContext = cronetContext;
- }
- } catch (ClassNotFoundException e) {
- // Leave as null.
- } catch (Exception e) {
- throw new IllegalStateException(
- "Cannot instantiate: " + CRONET_URL_REQUEST_CONTEXT,
- e);
- }
- return urlRequestContext;
- }
-}

Powered by Google App Engine
This is Rietveld 408576698