[WebView Support Library] avoid passing any state to chromium on init

To support several versions of the WebView Support Library within the
same app/process we need to ensure the support library glue (in
chromium) doesn't hold any global state referencing the (app-side of
the) support library.

With this CL we remove the only current global reference to the support
library: SupportLibraryInfo. The only information kept within that
reference was a list of feature flags. Those feature flags will now live
in individual callback objects instead, like WebViewClientCompat.

Corresponding Chromium CL:
http://crrev/c/995212

Bug: 77539415
Test: run androidx.webkit tests.
Change-Id: I61e06fb0d50e29f181f9340838e4d6f17588dea5
diff --git a/webkit/src/main/java/androidx/webkit/internal/SupportLibraryInfo.java b/webkit/src/main/java/androidx/webkit/internal/SupportLibraryInfo.java
deleted file mode 100644
index da8a02c..0000000
--- a/webkit/src/main/java/androidx/webkit/internal/SupportLibraryInfo.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.webkit.internal;
-
-import org.chromium.support_lib_boundary.SupportLibraryInfoBoundaryInterface;
-import org.chromium.support_lib_boundary.util.Features;
-
-/**
- * Contains information about the Android Support Library part of the WebView Support Library - this
- * information is passed to the WebView APK code with the first WebView Support Library call.
- */
-public class SupportLibraryInfo implements SupportLibraryInfoBoundaryInterface {
-    // Features supported by the support library itself (regardless of what the WebView APK
-    // supports).
-    private static final String[] SUPPORTED_FEATURES =
-            new String[] {
-                    Features.VISUAL_STATE_CALLBACK
-            };
-
-    @Override
-    public String[] getSupportedFeatures() {
-        return SUPPORTED_FEATURES;
-    }
-}
diff --git a/webkit/src/main/java/androidx/webkit/internal/WebViewGlueCommunicator.java b/webkit/src/main/java/androidx/webkit/internal/WebViewGlueCommunicator.java
index 67e0030..9adffe7 100644
--- a/webkit/src/main/java/androidx/webkit/internal/WebViewGlueCommunicator.java
+++ b/webkit/src/main/java/androidx/webkit/internal/WebViewGlueCommunicator.java
@@ -59,13 +59,11 @@
 
     private static InvocationHandler fetchGlueProviderFactoryImpl() throws IllegalAccessException,
             InvocationTargetException, ClassNotFoundException, NoSuchMethodException {
-            Class<?> glueFactoryProviderFetcherClass = Class.forName(
-                    GLUE_FACTORY_PROVIDER_FETCHER_CLASS, false, getWebViewClassLoader());
-            Method createProviderFactoryMethod = glueFactoryProviderFetcherClass.getDeclaredMethod(
-                    GLUE_FACTORY_PROVIDER_FETCHER_METHOD, InvocationHandler.class);
-            return (InvocationHandler) createProviderFactoryMethod.invoke(null,
-                    BoundaryInterfaceReflectionUtil.createInvocationHandlerFor(
-                            new SupportLibraryInfo()));
+        Class<?> glueFactoryProviderFetcherClass = Class.forName(
+                GLUE_FACTORY_PROVIDER_FETCHER_CLASS, false, getWebViewClassLoader());
+        Method createProviderFactoryMethod = glueFactoryProviderFetcherClass.getDeclaredMethod(
+                GLUE_FACTORY_PROVIDER_FETCHER_METHOD);
+        return (InvocationHandler) createProviderFactoryMethod.invoke(null);
     }
 
     private static WebViewProviderFactory createGlueProviderFactory() {