Merge "Add more test coverage for UrlRequest and ConnectionMigrationOptions."
diff --git a/Cronet/tests/cts/src/android/net/http/cts/CallbackExceptionTest.kt b/Cronet/tests/cts/src/android/net/http/cts/CallbackExceptionTest.kt
index e17b63f..749389e 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/CallbackExceptionTest.kt
+++ b/Cronet/tests/cts/src/android/net/http/cts/CallbackExceptionTest.kt
@@ -53,7 +53,7 @@
         val callback = TestUrlRequestCallback()
         callback.setFailure(FailureType.THROW_SYNC, ResponseStep.ON_RESPONSE_STARTED)
         val request = httpEngine
-            .newUrlRequestBuilder(server.successUrl, callback, callback.executor)
+            .newUrlRequestBuilder(server.successUrl, callback.executor, callback)
             .build()
 
         request.start()
diff --git a/Cronet/tests/cts/src/android/net/http/cts/HttpEngineTest.java b/Cronet/tests/cts/src/android/net/http/cts/HttpEngineTest.java
index 545d8c2..d247201 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/HttpEngineTest.java
+++ b/Cronet/tests/cts/src/android/net/http/cts/HttpEngineTest.java
@@ -106,7 +106,7 @@
                         .build();
 
         UrlRequest.Builder builder =
-                mEngine.newUrlRequestBuilder(url, mCallback, mCallback.getExecutor());
+                mEngine.newUrlRequestBuilder(url, mCallback.getExecutor(), mCallback);
         mRequest = builder.build();
         mRequest.start();
         // This tests uses a non-hermetic server. Instead of asserting, assume the next callback.
@@ -117,7 +117,7 @@
         assertFalse(info.wasCached());
 
         mCallback = new TestUrlRequestCallback();
-        builder = mEngine.newUrlRequestBuilder(url, mCallback, mCallback.getExecutor());
+        builder = mEngine.newUrlRequestBuilder(url, mCallback.getExecutor(), mCallback);
         mRequest = builder.build();
         mRequest.start();
         mCallback.assumeCallback(ResponseStep.ON_SUCCEEDED);
@@ -148,7 +148,7 @@
         // or not.
         mEngine = mEngineBuilder.setEnablePublicKeyPinningBypassForLocalTrustAnchors(false).build();
         UrlRequest.Builder builder =
-                mEngine.newUrlRequestBuilder(URL, mCallback, mCallback.getExecutor());
+                mEngine.newUrlRequestBuilder(URL, mCallback.getExecutor(), mCallback);
         mRequest = builder.build();
         mRequest.start();
         mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
@@ -156,7 +156,7 @@
         mEngine.shutdown();
         mEngine = mEngineBuilder.setEnablePublicKeyPinningBypassForLocalTrustAnchors(true).build();
         mCallback = new TestUrlRequestCallback();
-        builder = mEngine.newUrlRequestBuilder(URL, mCallback, mCallback.getExecutor());
+        builder = mEngine.newUrlRequestBuilder(URL, mCallback.getExecutor(), mCallback);
         mRequest = builder.build();
         mRequest.start();
         mCallback.expectCallback(ResponseStep.ON_SUCCEEDED);
diff --git a/Cronet/tests/cts/src/android/net/http/cts/NetworkExceptionTest.kt b/Cronet/tests/cts/src/android/net/http/cts/NetworkExceptionTest.kt
index dd07a41..dd4cf0d 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/NetworkExceptionTest.kt
+++ b/Cronet/tests/cts/src/android/net/http/cts/NetworkExceptionTest.kt
@@ -50,7 +50,7 @@
         val httpEngine = HttpEngine.Builder(ApplicationProvider.getApplicationContext()).build()
         val callback = TestUrlRequestCallback()
         val request =
-            httpEngine.newUrlRequestBuilder("http://localhost", callback, callback.executor).build()
+            httpEngine.newUrlRequestBuilder("http://localhost", callback.executor, callback).build()
 
         request.start()
         callback.blockForDone()
diff --git a/Cronet/tests/cts/src/android/net/http/cts/UrlRequestTest.java b/Cronet/tests/cts/src/android/net/http/cts/UrlRequestTest.java
index bc22a96..a364e29 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/UrlRequestTest.java
+++ b/Cronet/tests/cts/src/android/net/http/cts/UrlRequestTest.java
@@ -160,7 +160,7 @@
         TestUrlRequestCallback callback = new TestUrlRequestCallback();
         callback.setAllowDirectExecutor(true);
         UrlRequest.Builder builder = mHttpEngine.newUrlRequestBuilder(
-                mTestServer.getEchoBodyUrl(), callback, DIRECT_EXECUTOR);
+                mTestServer.getEchoBodyUrl(), DIRECT_EXECUTOR, callback);
         UploadDataProvider dataProvider = InMemoryUploadDataProvider.fromUtf8String("test");
         builder.setUploadDataProvider(dataProvider, DIRECT_EXECUTOR);
         builder.addHeader("Content-Type", "text/plain;charset=UTF-8");
@@ -183,7 +183,7 @@
         callback.setAllowDirectExecutor(true);
 
         UrlRequest.Builder builder = mHttpEngine.newUrlRequestBuilder(
-                mTestServer.getEchoBodyUrl(), callback, Executors.newSingleThreadExecutor());
+                mTestServer.getEchoBodyUrl(), Executors.newSingleThreadExecutor(), callback);
         UploadDataProvider dataProvider = InMemoryUploadDataProvider.fromUtf8String("test");
 
         builder.setUploadDataProvider(dataProvider, DIRECT_EXECUTOR)
@@ -203,7 +203,7 @@
         callback.setAllowDirectExecutor(true);
 
         UrlRequest.Builder builder = mHttpEngine.newUrlRequestBuilder(
-                mTestServer.getEchoBodyUrl(), callback, DIRECT_EXECUTOR);
+                mTestServer.getEchoBodyUrl(), DIRECT_EXECUTOR, callback);
         UploadDataProvider dataProvider = InMemoryUploadDataProvider.fromUtf8String("test");
 
         builder.setUploadDataProvider(dataProvider, Executors.newSingleThreadExecutor())
@@ -224,6 +224,7 @@
                 mHttpEngine
                         .newUrlRequestBuilder(
                                 mTestServer.getSuccessUrl(),
+                                Executors.newSingleThreadExecutor(),
                                 new StubUrlRequestCallback() {
                                     @Override
                                     public void onResponseStarted(
@@ -239,8 +240,7 @@
                                             HttpException error) {
                                         onFailedException.add(error);
                                     }
-                                },
-                                Executors.newSingleThreadExecutor())
+                                })
                         .build();
         request.start();
 
@@ -258,6 +258,7 @@
                 mHttpEngine
                         .newUrlRequestBuilder(
                                 mTestServer.getSuccessUrl(),
+                                Executors.newSingleThreadExecutor(),
                                 new StubUrlRequestCallback() {
                                     @Override
                                     public void onResponseStarted(
@@ -274,8 +275,7 @@
                                             HttpException error) {
                                         onFailedException.add(error);
                                     }
-                                },
-                                Executors.newSingleThreadExecutor())
+                                })
                         .build();
         request.start();
 
diff --git a/Cronet/tests/cts/src/android/net/http/cts/UrlResponseInfoTest.kt b/Cronet/tests/cts/src/android/net/http/cts/UrlResponseInfoTest.kt
index f5b72dc..38da9c5 100644
--- a/Cronet/tests/cts/src/android/net/http/cts/UrlResponseInfoTest.kt
+++ b/Cronet/tests/cts/src/android/net/http/cts/UrlResponseInfoTest.kt
@@ -40,7 +40,7 @@
         val httpEngine = HttpEngine.Builder(context).build()
         val callback = TestUrlRequestCallback()
         val url = server.successUrl
-        val request = httpEngine.newUrlRequestBuilder(url, callback, callback.executor).build()
+        val request = httpEngine.newUrlRequestBuilder(url, callback.executor, callback).build()
 
         request.start()
         callback.expectCallback(ResponseStep.ON_SUCCEEDED)
diff --git a/Tethering/common/TetheringLib/Android.bp b/Tethering/common/TetheringLib/Android.bp
index 4c677d0..4080029 100644
--- a/Tethering/common/TetheringLib/Android.bp
+++ b/Tethering/common/TetheringLib/Android.bp
@@ -65,6 +65,7 @@
 
     hostdex: true, // for hiddenapi check
     permitted_packages: ["android.net"],
+    lint: { strict_updatability_linting: true },
 }
 
 java_defaults {
@@ -81,20 +82,11 @@
     impl_only_static_libs: [
         "cronet_aml_java",
     ],
-    // STOPSHIP(b/265674359): fix all Cronet lint warnings and re-enable lint
-    // directly in framework-tethering
-    lint: {
-         enabled: false,
-    },
-    api_lint: {
-        enabled: false,
-    },
     api_dir: "cronet_enabled/api",
 }
 
 java_defaults {
   name: "CronetJavaDefaultsDisabled",
-  lint: { strict_updatability_linting: true },
 }
 
 java_defaults {
diff --git a/Tethering/common/TetheringLib/cronet_enabled/api/current.txt b/Tethering/common/TetheringLib/cronet_enabled/api/current.txt
index c55fb56..cf441ce 100644
--- a/Tethering/common/TetheringLib/cronet_enabled/api/current.txt
+++ b/Tethering/common/TetheringLib/cronet_enabled/api/current.txt
@@ -118,7 +118,6 @@
     method @NonNull public static String getVersionString();
     method @NonNull public abstract android.net.http.BidirectionalStream.Builder newBidirectionalStreamBuilder(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.net.http.BidirectionalStream.Callback);
     method @NonNull public abstract android.net.http.UrlRequest.Builder newUrlRequestBuilder(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.net.http.UrlRequest.Callback);
-    method @NonNull public android.net.http.UrlRequest.Builder newUrlRequestBuilder(@NonNull String, @NonNull android.net.http.UrlRequest.Callback, @NonNull java.util.concurrent.Executor);
     method @NonNull public abstract java.net.URLConnection openConnection(@NonNull java.net.URL) throws java.io.IOException;
     method public abstract void shutdown();
   }