filePathCallback,
+ @NonNull FileChooserParams fileChooserParams) {
final boolean currentReturnValueForOnShowFileChooser = returnValueForOnShowFileChooser;
flutterApi.onShowFileChooser(
this,
@@ -86,11 +87,14 @@ public void setReturnValueForOnShowFileChooser(boolean value) {
* window.
*/
public static class SecureWebChromeClient extends WebChromeClient {
- @Nullable private WebViewClient webViewClient;
+ @Nullable WebViewClient webViewClient;
@Override
public boolean onCreateWindow(
- final WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
+ @NonNull final WebView view,
+ boolean isDialog,
+ boolean isUserGesture,
+ @NonNull Message resultMsg) {
return onCreateWindow(view, resultMsg, new WebView(view.getContext()));
}
@@ -109,7 +113,9 @@ public boolean onCreateWindow(
*/
@VisibleForTesting
boolean onCreateWindow(
- final WebView view, Message resultMsg, @Nullable WebView onCreateWindowWebView) {
+ @NonNull final WebView view,
+ @NonNull Message resultMsg,
+ @Nullable WebView onCreateWindowWebView) {
// WebChromeClient requires a WebViewClient because of a bug fix that makes
// calls to WebViewClient.requestLoading/WebViewClient.urlLoading when a new
// window is opened. This is to make sure a url opened by `Window.open` has
@@ -130,9 +136,8 @@ public boolean shouldOverrideUrlLoading(
return true;
}
- // Legacy codepath for < N.
- @SuppressWarnings("deprecation")
@Override
+ @SuppressWarnings({"deprecation", "RedundantSuppression"})
public boolean shouldOverrideUrlLoading(WebView windowWebView, String url) {
if (!webViewClient.shouldOverrideUrlLoading(view, url)) {
view.loadUrl(url);
@@ -167,12 +172,14 @@ public void setWebViewClient(@NonNull WebViewClient webViewClient) {
/** Handles creating {@link WebChromeClient}s for a {@link WebChromeClientHostApiImpl}. */
public static class WebChromeClientCreator {
/**
- * Creates a {@link DownloadListenerHostApiImpl.DownloadListenerImpl}.
+ * Creates a {@link WebChromeClientHostApiImpl.WebChromeClientImpl}.
*
* @param flutterApi handles sending messages to Dart
* @return the created {@link WebChromeClientHostApiImpl.WebChromeClientImpl}
*/
- public WebChromeClientImpl createWebChromeClient(WebChromeClientFlutterApiImpl flutterApi) {
+ @NonNull
+ public WebChromeClientImpl createWebChromeClient(
+ @NonNull WebChromeClientFlutterApiImpl flutterApi) {
return new WebChromeClientImpl(flutterApi);
}
}
@@ -185,16 +192,16 @@ public WebChromeClientImpl createWebChromeClient(WebChromeClientFlutterApiImpl f
* @param flutterApi handles sending messages to Dart
*/
public WebChromeClientHostApiImpl(
- InstanceManager instanceManager,
- WebChromeClientCreator webChromeClientCreator,
- WebChromeClientFlutterApiImpl flutterApi) {
+ @NonNull InstanceManager instanceManager,
+ @NonNull WebChromeClientCreator webChromeClientCreator,
+ @NonNull WebChromeClientFlutterApiImpl flutterApi) {
this.instanceManager = instanceManager;
this.webChromeClientCreator = webChromeClientCreator;
this.flutterApi = flutterApi;
}
@Override
- public void create(Long instanceId) {
+ public void create(@NonNull Long instanceId) {
final WebChromeClient webChromeClient =
webChromeClientCreator.createWebChromeClient(flutterApi);
instanceManager.addDartCreatedInstance(webChromeClient, instanceId);
diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebSettingsHostApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebSettingsHostApiImpl.java
index 2215320e6af..3a6b151fa71 100644
--- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebSettingsHostApiImpl.java
+++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebSettingsHostApiImpl.java
@@ -6,7 +6,10 @@
import android.webkit.WebSettings;
import android.webkit.WebView;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebSettingsHostApi;
+import java.util.Objects;
/**
* Host api implementation for {@link WebSettings}.
@@ -25,7 +28,8 @@ public static class WebSettingsCreator {
* @param webView the {@link WebView} which the settings affect
* @return the created {@link WebSettings}
*/
- public WebSettings createWebSettings(WebView webView) {
+ @NonNull
+ public WebSettings createWebSettings(@NonNull WebView webView) {
return webView.getSettings();
}
}
@@ -37,93 +41,95 @@ public WebSettings createWebSettings(WebView webView) {
* @param webSettingsCreator handles creating {@link WebSettings}s
*/
public WebSettingsHostApiImpl(
- InstanceManager instanceManager, WebSettingsCreator webSettingsCreator) {
+ @NonNull InstanceManager instanceManager, @NonNull WebSettingsCreator webSettingsCreator) {
this.instanceManager = instanceManager;
this.webSettingsCreator = webSettingsCreator;
}
@Override
- public void create(Long instanceId, Long webViewInstanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(webViewInstanceId);
+ public void create(@NonNull Long instanceId, @NonNull Long webViewInstanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(webViewInstanceId));
instanceManager.addDartCreatedInstance(
webSettingsCreator.createWebSettings(webView), instanceId);
}
@Override
- public void setDomStorageEnabled(Long instanceId, Boolean flag) {
- final WebSettings webSettings = (WebSettings) instanceManager.getInstance(instanceId);
+ public void setDomStorageEnabled(@NonNull Long instanceId, @NonNull Boolean flag) {
+ final WebSettings webSettings = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webSettings.setDomStorageEnabled(flag);
}
@Override
- public void setJavaScriptCanOpenWindowsAutomatically(Long instanceId, Boolean flag) {
- final WebSettings webSettings = (WebSettings) instanceManager.getInstance(instanceId);
+ public void setJavaScriptCanOpenWindowsAutomatically(
+ @NonNull Long instanceId, @NonNull Boolean flag) {
+ final WebSettings webSettings = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webSettings.setJavaScriptCanOpenWindowsAutomatically(flag);
}
@Override
- public void setSupportMultipleWindows(Long instanceId, Boolean support) {
- final WebSettings webSettings = (WebSettings) instanceManager.getInstance(instanceId);
+ public void setSupportMultipleWindows(@NonNull Long instanceId, @NonNull Boolean support) {
+ final WebSettings webSettings = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webSettings.setSupportMultipleWindows(support);
}
@Override
- public void setJavaScriptEnabled(Long instanceId, Boolean flag) {
- final WebSettings webSettings = (WebSettings) instanceManager.getInstance(instanceId);
+ public void setJavaScriptEnabled(@NonNull Long instanceId, @NonNull Boolean flag) {
+ final WebSettings webSettings = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webSettings.setJavaScriptEnabled(flag);
}
@Override
- public void setUserAgentString(Long instanceId, String userAgentString) {
- final WebSettings webSettings = (WebSettings) instanceManager.getInstance(instanceId);
+ public void setUserAgentString(@NonNull Long instanceId, @Nullable String userAgentString) {
+ final WebSettings webSettings = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webSettings.setUserAgentString(userAgentString);
}
@Override
- public void setMediaPlaybackRequiresUserGesture(Long instanceId, Boolean require) {
- final WebSettings webSettings = (WebSettings) instanceManager.getInstance(instanceId);
+ public void setMediaPlaybackRequiresUserGesture(
+ @NonNull Long instanceId, @NonNull Boolean require) {
+ final WebSettings webSettings = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webSettings.setMediaPlaybackRequiresUserGesture(require);
}
@Override
- public void setSupportZoom(Long instanceId, Boolean support) {
- final WebSettings webSettings = (WebSettings) instanceManager.getInstance(instanceId);
+ public void setSupportZoom(@NonNull Long instanceId, @NonNull Boolean support) {
+ final WebSettings webSettings = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webSettings.setSupportZoom(support);
}
@Override
- public void setLoadWithOverviewMode(Long instanceId, Boolean overview) {
- final WebSettings webSettings = (WebSettings) instanceManager.getInstance(instanceId);
+ public void setLoadWithOverviewMode(@NonNull Long instanceId, @NonNull Boolean overview) {
+ final WebSettings webSettings = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webSettings.setLoadWithOverviewMode(overview);
}
@Override
- public void setUseWideViewPort(Long instanceId, Boolean use) {
- final WebSettings webSettings = (WebSettings) instanceManager.getInstance(instanceId);
+ public void setUseWideViewPort(@NonNull Long instanceId, @NonNull Boolean use) {
+ final WebSettings webSettings = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webSettings.setUseWideViewPort(use);
}
@Override
- public void setDisplayZoomControls(Long instanceId, Boolean enabled) {
- final WebSettings webSettings = (WebSettings) instanceManager.getInstance(instanceId);
+ public void setDisplayZoomControls(@NonNull Long instanceId, @NonNull Boolean enabled) {
+ final WebSettings webSettings = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webSettings.setDisplayZoomControls(enabled);
}
@Override
- public void setBuiltInZoomControls(Long instanceId, Boolean enabled) {
- final WebSettings webSettings = (WebSettings) instanceManager.getInstance(instanceId);
+ public void setBuiltInZoomControls(@NonNull Long instanceId, @NonNull Boolean enabled) {
+ final WebSettings webSettings = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webSettings.setBuiltInZoomControls(enabled);
}
@Override
- public void setAllowFileAccess(Long instanceId, Boolean enabled) {
- final WebSettings webSettings = (WebSettings) instanceManager.getInstance(instanceId);
+ public void setAllowFileAccess(@NonNull Long instanceId, @NonNull Boolean enabled) {
+ final WebSettings webSettings = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webSettings.setAllowFileAccess(enabled);
}
@Override
- public void setTextZoom(Long instanceId, Long textZoom) {
- final WebSettings webSettings = (WebSettings) instanceManager.getInstance(instanceId);
+ public void setTextZoom(@NonNull Long instanceId, @NonNull Long textZoom) {
+ final WebSettings webSettings = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webSettings.setTextZoom(textZoom.intValue());
}
}
diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebStorageHostApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebStorageHostApiImpl.java
index c06f2bc5796..036a395eaa5 100644
--- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebStorageHostApiImpl.java
+++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebStorageHostApiImpl.java
@@ -5,7 +5,9 @@
package io.flutter.plugins.webviewflutter;
import android.webkit.WebStorage;
+import androidx.annotation.NonNull;
import io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebStorageHostApi;
+import java.util.Objects;
/**
* Host api implementation for {@link WebStorage}.
@@ -23,6 +25,7 @@ public static class WebStorageCreator {
*
* @return the created {@link WebStorage}. Defaults to {@link WebStorage#getInstance}
*/
+ @NonNull
public WebStorage createWebStorage() {
return WebStorage.getInstance();
}
@@ -35,19 +38,19 @@ public WebStorage createWebStorage() {
* @param webStorageCreator handles creating {@link WebStorage}s
*/
public WebStorageHostApiImpl(
- InstanceManager instanceManager, WebStorageCreator webStorageCreator) {
+ @NonNull InstanceManager instanceManager, @NonNull WebStorageCreator webStorageCreator) {
this.instanceManager = instanceManager;
this.webStorageCreator = webStorageCreator;
}
@Override
- public void create(Long instanceId) {
+ public void create(@NonNull Long instanceId) {
instanceManager.addDartCreatedInstance(webStorageCreator.createWebStorage(), instanceId);
}
@Override
- public void deleteAllData(Long instanceId) {
- final WebStorage webStorage = (WebStorage) instanceManager.getInstance(instanceId);
+ public void deleteAllData(@NonNull Long instanceId) {
+ final WebStorage webStorage = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webStorage.deleteAllData();
}
}
diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewClientFlutterApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewClientFlutterApiImpl.java
index 6893af953df..4dee9c0ad3f 100644
--- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewClientFlutterApiImpl.java
+++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewClientFlutterApiImpl.java
@@ -24,7 +24,10 @@
* Passes arguments of callbacks methods from a {@link WebViewClient} to Dart.
*/
public class WebViewClientFlutterApiImpl extends WebViewClientFlutterApi {
+ // To ease adding additional methods, this value is added prematurely.
+ @SuppressWarnings({"unused", "FieldCanBeLocal"})
private final BinaryMessenger binaryMessenger;
+
private final InstanceManager instanceManager;
private final WebViewFlutterApiImpl webViewFlutterApi;
@@ -73,7 +76,7 @@ static GeneratedAndroidWebView.WebResourceRequestData createWebResourceRequestDa
* @param instanceManager maintains instances stored to communicate with Dart objects
*/
public WebViewClientFlutterApiImpl(
- BinaryMessenger binaryMessenger, InstanceManager instanceManager) {
+ @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) {
super(binaryMessenger);
this.binaryMessenger = binaryMessenger;
this.instanceManager = instanceManager;
@@ -82,7 +85,10 @@ public WebViewClientFlutterApiImpl(
/** Passes arguments from {@link WebViewClient#onPageStarted} to Dart. */
public void onPageStarted(
- WebViewClient webViewClient, WebView webView, String urlArg, Reply callback) {
+ @NonNull WebViewClient webViewClient,
+ @NonNull WebView webView,
+ @NonNull String urlArg,
+ @NonNull Reply callback) {
webViewFlutterApi.create(webView, reply -> {});
final Long webViewIdentifier =
@@ -92,7 +98,10 @@ public void onPageStarted(
/** Passes arguments from {@link WebViewClient#onPageFinished} to Dart. */
public void onPageFinished(
- WebViewClient webViewClient, WebView webView, String urlArg, Reply callback) {
+ @NonNull WebViewClient webViewClient,
+ @NonNull WebView webView,
+ @NonNull String urlArg,
+ @NonNull Reply callback) {
webViewFlutterApi.create(webView, reply -> {});
final Long webViewIdentifier =
@@ -106,11 +115,11 @@ public void onPageFinished(
*/
@RequiresApi(api = Build.VERSION_CODES.M)
public void onReceivedRequestError(
- WebViewClient webViewClient,
- WebView webView,
- WebResourceRequest request,
- WebResourceError error,
- Reply callback) {
+ @NonNull WebViewClient webViewClient,
+ @NonNull WebView webView,
+ @NonNull WebResourceRequest request,
+ @NonNull WebResourceError error,
+ @NonNull Reply callback) {
webViewFlutterApi.create(webView, reply -> {});
final Long webViewIdentifier =
@@ -129,11 +138,11 @@ public void onReceivedRequestError(
*/
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public void onReceivedRequestError(
- WebViewClient webViewClient,
- WebView webView,
- WebResourceRequest request,
- WebResourceErrorCompat error,
- Reply callback) {
+ @NonNull WebViewClient webViewClient,
+ @NonNull WebView webView,
+ @NonNull WebResourceRequest request,
+ @NonNull WebResourceErrorCompat error,
+ @NonNull Reply callback) {
webViewFlutterApi.create(webView, reply -> {});
final Long webViewIdentifier =
@@ -151,12 +160,12 @@ public void onReceivedRequestError(
* Dart.
*/
public void onReceivedError(
- WebViewClient webViewClient,
- WebView webView,
- Long errorCodeArg,
- String descriptionArg,
- String failingUrlArg,
- Reply callback) {
+ @NonNull WebViewClient webViewClient,
+ @NonNull WebView webView,
+ @NonNull Long errorCodeArg,
+ @NonNull String descriptionArg,
+ @NonNull String failingUrlArg,
+ @NonNull Reply callback) {
webViewFlutterApi.create(webView, reply -> {});
final Long webViewIdentifier =
@@ -176,10 +185,10 @@ public void onReceivedError(
*/
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public void requestLoading(
- WebViewClient webViewClient,
- WebView webView,
- WebResourceRequest request,
- Reply callback) {
+ @NonNull WebViewClient webViewClient,
+ @NonNull WebView webView,
+ @NonNull WebResourceRequest request,
+ @NonNull Reply callback) {
webViewFlutterApi.create(webView, reply -> {});
final Long webViewIdentifier =
@@ -195,7 +204,10 @@ public void requestLoading(
* Passes arguments from {@link WebViewClient#shouldOverrideUrlLoading(WebView, String)} to Dart.
*/
public void urlLoading(
- WebViewClient webViewClient, WebView webView, String urlArg, Reply callback) {
+ @NonNull WebViewClient webViewClient,
+ @NonNull WebView webView,
+ @NonNull String urlArg,
+ @NonNull Reply callback) {
webViewFlutterApi.create(webView, reply -> {});
final Long webViewIdentifier =
diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewClientHostApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewClientHostApiImpl.java
index b5764f4ac8f..35ae02a7625 100644
--- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewClientHostApiImpl.java
+++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewClientHostApiImpl.java
@@ -45,17 +45,20 @@ public WebViewClientImpl(@NonNull WebViewClientFlutterApiImpl flutterApi) {
}
@Override
- public void onPageStarted(WebView view, String url, Bitmap favicon) {
+ public void onPageStarted(@NonNull WebView view, @NonNull String url, @NonNull Bitmap favicon) {
flutterApi.onPageStarted(this, view, url, reply -> {});
}
@Override
- public void onPageFinished(WebView view, String url) {
+ public void onPageFinished(@NonNull WebView view, @NonNull String url) {
flutterApi.onPageFinished(this, view, url, reply -> {});
}
@Override
- public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
+ public void onReceivedError(
+ @NonNull WebView view,
+ @NonNull WebResourceRequest request,
+ @NonNull WebResourceError error) {
flutterApi.onReceivedRequestError(this, view, request, error, reply -> {});
}
@@ -63,13 +66,17 @@ public void onReceivedError(WebView view, WebResourceRequest request, WebResourc
@SuppressWarnings("deprecation")
@Override
public void onReceivedError(
- WebView view, int errorCode, String description, String failingUrl) {
+ @NonNull WebView view,
+ int errorCode,
+ @NonNull String description,
+ @NonNull String failingUrl) {
flutterApi.onReceivedError(
this, view, (long) errorCode, description, failingUrl, reply -> {});
}
@Override
- public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
+ public boolean shouldOverrideUrlLoading(
+ @NonNull WebView view, @NonNull WebResourceRequest request) {
flutterApi.requestLoading(this, view, request, reply -> {});
return returnValueForShouldOverrideUrlLoading;
}
@@ -77,18 +84,19 @@ public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request
// Legacy codepath for < 24; newer versions use the variant above.
@SuppressWarnings("deprecation")
@Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
+ public boolean shouldOverrideUrlLoading(@NonNull WebView view, @NonNull String url) {
flutterApi.urlLoading(this, view, url, reply -> {});
return returnValueForShouldOverrideUrlLoading;
}
@Override
- public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) {
+ public void doUpdateVisitedHistory(
+ @NonNull WebView view, @NonNull String url, boolean isReload) {
flutterApi.doUpdateVisitedHistory(this, view, url, isReload, reply -> {});
}
@Override
- public void onUnhandledKeyEvent(WebView view, KeyEvent event) {
+ public void onUnhandledKeyEvent(@NonNull WebView view, @NonNull KeyEvent event) {
// Deliberately empty. Occasionally the webview will mark events as having failed to be
// handled even though they were handled. We don't want to propagate those as they're not
// truly lost.
@@ -113,12 +121,12 @@ public WebViewClientCompatImpl(@NonNull WebViewClientFlutterApiImpl flutterApi)
}
@Override
- public void onPageStarted(WebView view, String url, Bitmap favicon) {
+ public void onPageStarted(@NonNull WebView view, @NonNull String url, @NonNull Bitmap favicon) {
flutterApi.onPageStarted(this, view, url, reply -> {});
}
@Override
- public void onPageFinished(WebView view, String url) {
+ public void onPageFinished(@NonNull WebView view, @NonNull String url) {
flutterApi.onPageFinished(this, view, url, reply -> {});
}
@@ -138,7 +146,10 @@ public void onReceivedError(
@SuppressWarnings("deprecation")
@Override
public void onReceivedError(
- WebView view, int errorCode, String description, String failingUrl) {
+ @NonNull WebView view,
+ int errorCode,
+ @NonNull String description,
+ @NonNull String failingUrl) {
flutterApi.onReceivedError(
this, view, (long) errorCode, description, failingUrl, reply -> {});
}
@@ -154,13 +165,14 @@ public boolean shouldOverrideUrlLoading(
// Legacy codepath for < Lollipop; newer versions use the variant above.
@SuppressWarnings("deprecation")
@Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
+ public boolean shouldOverrideUrlLoading(@NonNull WebView view, @NonNull String url) {
flutterApi.urlLoading(this, view, url, reply -> {});
return returnValueForShouldOverrideUrlLoading;
}
@Override
- public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) {
+ public void doUpdateVisitedHistory(
+ @NonNull WebView view, @NonNull String url, boolean isReload) {
flutterApi.doUpdateVisitedHistory(this, view, url, isReload, reply -> {});
}
@@ -211,9 +223,9 @@ public WebViewClient createWebViewClient(@NonNull WebViewClientFlutterApiImpl fl
* @param flutterApi handles sending messages to Dart
*/
public WebViewClientHostApiImpl(
- InstanceManager instanceManager,
- WebViewClientCreator webViewClientCreator,
- WebViewClientFlutterApiImpl flutterApi) {
+ @NonNull InstanceManager instanceManager,
+ @NonNull WebViewClientCreator webViewClientCreator,
+ @NonNull WebViewClientFlutterApiImpl flutterApi) {
this.instanceManager = instanceManager;
this.webViewClientCreator = webViewClientCreator;
this.flutterApi = flutterApi;
diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterAndroidExternalApi.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterAndroidExternalApi.java
index 3819d7b26f6..9542e3d3dca 100644
--- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterAndroidExternalApi.java
+++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterAndroidExternalApi.java
@@ -5,6 +5,7 @@
package io.flutter.plugins.webviewflutter;
import android.webkit.WebView;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.flutter.embedding.engine.FlutterEngine;
@@ -34,7 +35,7 @@ public interface WebViewFlutterAndroidExternalApi {
* with `identifier` could not be found.
*/
@Nullable
- static WebView getWebView(FlutterEngine engine, long identifier) {
+ static WebView getWebView(@NonNull FlutterEngine engine, long identifier) {
final WebViewFlutterPlugin webViewPlugin =
(WebViewFlutterPlugin) engine.getPlugins().get(WebViewFlutterPlugin.class);
diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java
index 8067f895bca..d1c239c3636 100644
--- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java
+++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java
@@ -61,7 +61,8 @@ public WebViewFlutterPlugin() {}
* won't react to changes in activity or context, unlike {@link WebViewFlutterPlugin}.
*/
@SuppressWarnings({"unused", "deprecation"})
- public static void registerWith(io.flutter.plugin.common.PluginRegistry.Registrar registrar) {
+ public static void registerWith(
+ @NonNull io.flutter.plugin.common.PluginRegistry.Registrar registrar) {
new WebViewFlutterPlugin()
.setUp(
registrar.messenger(),
diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java
index 9f41a4dcb73..14c2b3db5d6 100644
--- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java
+++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java
@@ -10,7 +10,6 @@
import android.os.Build;
import android.view.View;
import android.view.ViewParent;
-import android.webkit.DownloadListener;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
@@ -47,8 +46,11 @@ public static class WebViewProxy {
* in Dart
* @return the created {@link WebViewPlatformView}
*/
+ @NonNull
public WebViewPlatformView createWebView(
- Context context, BinaryMessenger binaryMessenger, InstanceManager instanceManager) {
+ @NonNull Context context,
+ @NonNull BinaryMessenger binaryMessenger,
+ @NonNull InstanceManager instanceManager) {
return new WebViewPlatformView(context, binaryMessenger, instanceManager);
}
@@ -78,7 +80,9 @@ public static class WebViewPlatformView extends WebView implements PlatformView
* @param context an Activity Context to access application assets. This value cannot be null.
*/
public WebViewPlatformView(
- Context context, BinaryMessenger binaryMessenger, InstanceManager instanceManager) {
+ @NonNull Context context,
+ @NonNull BinaryMessenger binaryMessenger,
+ @NonNull InstanceManager instanceManager) {
super(context);
currentWebViewClient = new WebViewClient();
currentWebChromeClient = new WebChromeClientHostApiImpl.SecureWebChromeClient();
@@ -88,6 +92,7 @@ public WebViewPlatformView(
setWebChromeClient(currentWebChromeClient);
}
+ @Nullable
@Override
public View getView() {
return this;
@@ -126,14 +131,14 @@ private FlutterView tryFindFlutterView() {
}
@Override
- public void setWebViewClient(WebViewClient webViewClient) {
+ public void setWebViewClient(@NonNull WebViewClient webViewClient) {
super.setWebViewClient(webViewClient);
currentWebViewClient = webViewClient;
currentWebChromeClient.setWebViewClient(webViewClient);
}
@Override
- public void setWebChromeClient(WebChromeClient client) {
+ public void setWebChromeClient(@Nullable WebChromeClient client) {
super.setWebChromeClient(client);
if (!(client instanceof WebChromeClientHostApiImpl.SecureWebChromeClient)) {
throw new AssertionError("Client must be a SecureWebChromeClient.");
@@ -172,10 +177,10 @@ void setApi(WebViewFlutterApiImpl api) {
* @param context an Activity Context to access application assets. This value cannot be null.
*/
public WebViewHostApiImpl(
- InstanceManager instanceManager,
- BinaryMessenger binaryMessenger,
- WebViewProxy webViewProxy,
- Context context) {
+ @NonNull InstanceManager instanceManager,
+ @NonNull BinaryMessenger binaryMessenger,
+ @NonNull WebViewProxy webViewProxy,
+ @Nullable Context context) {
this.instanceManager = instanceManager;
this.binaryMessenger = binaryMessenger;
this.webViewProxy = webViewProxy;
@@ -187,7 +192,7 @@ public WebViewHostApiImpl(
*
* @param context the new context.
*/
- public void setContext(Context context) {
+ public void setContext(@Nullable Context context) {
this.context = context;
}
@@ -205,111 +210,124 @@ public void create(@NonNull Long instanceId) {
}
@Override
- public void loadData(Long instanceId, String data, String mimeType, String encoding) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public void loadData(
+ @NonNull Long instanceId,
+ @NonNull String data,
+ @Nullable String mimeType,
+ @Nullable String encoding) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webView.loadData(data, mimeType, encoding);
}
@Override
public void loadDataWithBaseUrl(
- Long instanceId,
- String baseUrl,
- String data,
- String mimeType,
- String encoding,
- String historyUrl) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ @NonNull Long instanceId,
+ @Nullable String baseUrl,
+ @NonNull String data,
+ @Nullable String mimeType,
+ @Nullable String encoding,
+ @Nullable String historyUrl) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webView.loadDataWithBaseURL(baseUrl, data, mimeType, encoding, historyUrl);
}
@Override
- public void loadUrl(Long instanceId, String url, Map headers) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public void loadUrl(
+ @NonNull Long instanceId, @NonNull String url, @NonNull Map headers) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webView.loadUrl(url, headers);
}
@Override
- public void postUrl(Long instanceId, String url, byte[] data) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public void postUrl(@NonNull Long instanceId, @NonNull String url, @NonNull byte[] data) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webView.postUrl(url, data);
}
+ @Nullable
@Override
- public String getUrl(Long instanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public String getUrl(@NonNull Long instanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
return webView.getUrl();
}
+ @NonNull
@Override
- public Boolean canGoBack(Long instanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public Boolean canGoBack(@NonNull Long instanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
return webView.canGoBack();
}
+ @NonNull
@Override
- public Boolean canGoForward(Long instanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public Boolean canGoForward(@NonNull Long instanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
return webView.canGoForward();
}
@Override
- public void goBack(Long instanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public void goBack(@NonNull Long instanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webView.goBack();
}
@Override
- public void goForward(Long instanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public void goForward(@NonNull Long instanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webView.goForward();
}
@Override
- public void reload(Long instanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public void reload(@NonNull Long instanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webView.reload();
}
@Override
- public void clearCache(Long instanceId, Boolean includeDiskFiles) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public void clearCache(@NonNull Long instanceId, @NonNull Boolean includeDiskFiles) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webView.clearCache(includeDiskFiles);
}
@Override
public void evaluateJavascript(
- Long instanceId, String javascriptString, GeneratedAndroidWebView.Result result) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ @NonNull Long instanceId,
+ @NonNull String javascriptString,
+ @NonNull GeneratedAndroidWebView.Result result) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webView.evaluateJavascript(javascriptString, result::success);
}
+ @Nullable
@Override
- public String getTitle(Long instanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public String getTitle(@NonNull Long instanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
return webView.getTitle();
}
@Override
- public void scrollTo(Long instanceId, Long x, Long y) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public void scrollTo(@NonNull Long instanceId, @NonNull Long x, @NonNull Long y) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webView.scrollTo(x.intValue(), y.intValue());
}
@Override
- public void scrollBy(Long instanceId, Long x, Long y) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public void scrollBy(@NonNull Long instanceId, @NonNull Long x, @NonNull Long y) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webView.scrollBy(x.intValue(), y.intValue());
}
+ @NonNull
@Override
- public Long getScrollX(Long instanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public Long getScrollX(@NonNull Long instanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
return (long) webView.getScrollX();
}
+ @NonNull
@Override
- public Long getScrollY(Long instanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public Long getScrollY(@NonNull Long instanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
return (long) webView.getScrollY();
}
@@ -324,51 +342,57 @@ public GeneratedAndroidWebView.WebViewPoint getScrollPosition(@NonNull Long inst
}
@Override
- public void setWebContentsDebuggingEnabled(Boolean enabled) {
+ public void setWebContentsDebuggingEnabled(@NonNull Boolean enabled) {
webViewProxy.setWebContentsDebuggingEnabled(enabled);
}
@Override
- public void setWebViewClient(Long instanceId, Long webViewClientInstanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
- webView.setWebViewClient((WebViewClient) instanceManager.getInstance(webViewClientInstanceId));
+ public void setWebViewClient(@NonNull Long instanceId, @NonNull Long webViewClientInstanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
+ webView.setWebViewClient(instanceManager.getInstance(webViewClientInstanceId));
}
+ @SuppressLint("JavascriptInterface")
@Override
- public void addJavaScriptChannel(Long instanceId, Long javaScriptChannelInstanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public void addJavaScriptChannel(
+ @NonNull Long instanceId, @NonNull Long javaScriptChannelInstanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
final JavaScriptChannel javaScriptChannel =
- (JavaScriptChannel) instanceManager.getInstance(javaScriptChannelInstanceId);
+ Objects.requireNonNull(instanceManager.getInstance(javaScriptChannelInstanceId));
webView.addJavascriptInterface(javaScriptChannel, javaScriptChannel.javaScriptChannelName);
}
@Override
- public void removeJavaScriptChannel(Long instanceId, Long javaScriptChannelInstanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public void removeJavaScriptChannel(
+ @NonNull Long instanceId, @NonNull Long javaScriptChannelInstanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
final JavaScriptChannel javaScriptChannel =
- (JavaScriptChannel) instanceManager.getInstance(javaScriptChannelInstanceId);
+ Objects.requireNonNull((instanceManager.getInstance(javaScriptChannelInstanceId)));
webView.removeJavascriptInterface(javaScriptChannel.javaScriptChannelName);
}
@Override
- public void setDownloadListener(Long instanceId, Long listenerInstanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
- webView.setDownloadListener((DownloadListener) instanceManager.getInstance(listenerInstanceId));
+ public void setDownloadListener(@NonNull Long instanceId, @Nullable Long listenerInstanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
+ webView.setDownloadListener(
+ instanceManager.getInstance(Objects.requireNonNull(listenerInstanceId)));
}
@Override
- public void setWebChromeClient(Long instanceId, Long clientInstanceId) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
- webView.setWebChromeClient((WebChromeClient) instanceManager.getInstance(clientInstanceId));
+ public void setWebChromeClient(@NonNull Long instanceId, @Nullable Long clientInstanceId) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
+ webView.setWebChromeClient(
+ instanceManager.getInstance(Objects.requireNonNull(clientInstanceId)));
}
@Override
- public void setBackgroundColor(Long instanceId, Long color) {
- final WebView webView = (WebView) instanceManager.getInstance(instanceId);
+ public void setBackgroundColor(@NonNull Long instanceId, @NonNull Long color) {
+ final WebView webView = Objects.requireNonNull(instanceManager.getInstance(instanceId));
webView.setBackgroundColor(color.intValue());
}
/** Maintains instances used to communicate with the corresponding WebView Dart object. */
+ @NonNull
public InstanceManager getInstanceManager() {
return instanceManager;
}
diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/CookieManagerHostApiImplTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/CookieManagerHostApiImplTest.java
index 79edf9c06f2..11cdddfd333 100644
--- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/CookieManagerHostApiImplTest.java
+++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/CookieManagerHostApiImplTest.java
@@ -33,8 +33,7 @@ public void setup() {
when(cookieManager.hasCookies()).thenReturn(true);
doAnswer(
answer -> {
- @SuppressWarnings("unchecked")
- ValueCallback callback = (ValueCallback) answer.getArgument(0);
+ ValueCallback callback = answer.getArgument(0);
(callback).onReceiveValue(true);
return null;
})
diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebChromeClientTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebChromeClientTest.java
index be301fa49ea..f7a174091a9 100644
--- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebChromeClientTest.java
+++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebChromeClientTest.java
@@ -19,6 +19,7 @@
import android.webkit.WebView;
import android.webkit.WebView.WebViewTransport;
import android.webkit.WebViewClient;
+import androidx.annotation.NonNull;
import io.flutter.plugins.webviewflutter.WebChromeClientHostApiImpl.WebChromeClientCreator;
import io.flutter.plugins.webviewflutter.WebChromeClientHostApiImpl.WebChromeClientImpl;
import org.junit.After;
@@ -50,8 +51,9 @@ public void setUp() {
final WebChromeClientCreator webChromeClientCreator =
new WebChromeClientCreator() {
@Override
+ @NonNull
public WebChromeClientImpl createWebChromeClient(
- WebChromeClientFlutterApiImpl flutterApi) {
+ @NonNull WebChromeClientFlutterApiImpl flutterApi) {
webChromeClient = super.createWebChromeClient(flutterApi);
return webChromeClient;
}
diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebSettingsTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebSettingsTest.java
index 3abb4247c18..5c7c7a6f470 100644
--- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebSettingsTest.java
+++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebSettingsTest.java
@@ -5,10 +5,12 @@
package io.flutter.plugins.webviewflutter;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.webkit.WebSettings;
+import android.webkit.WebView;
import io.flutter.plugins.webviewflutter.WebSettingsHostApiImpl.WebSettingsCreator;
import org.junit.After;
import org.junit.Before;
@@ -34,7 +36,9 @@ public void setUp() {
when(mockWebSettingsCreator.createWebSettings(any())).thenReturn(mockWebSettings);
testHostApiImpl = new WebSettingsHostApiImpl(testInstanceManager, mockWebSettingsCreator);
- testHostApiImpl.create(0L, 0L);
+
+ testInstanceManager.addDartCreatedInstance(mock(WebView.class), 1);
+ testHostApiImpl.create(0L, 1L);
}
@After
diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewClientTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewClientTest.java
index 2462ef392eb..230e81441a3 100644
--- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewClientTest.java
+++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewClientTest.java
@@ -47,7 +47,9 @@ public void setUp() {
final WebViewClientCreator webViewClientCreator =
new WebViewClientCreator() {
@Override
- public WebViewClient createWebViewClient(WebViewClientFlutterApiImpl flutterApi) {
+ @NonNull
+ public WebViewClient createWebViewClient(
+ @NonNull WebViewClientFlutterApiImpl flutterApi) {
webViewClient = (WebViewClientCompatImpl) super.createWebViewClient(flutterApi);
return webViewClient;
}
diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java
index b57cd7867ef..e0e641ac35a 100644
--- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java
+++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java
@@ -21,6 +21,7 @@
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebViewClient;
+import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterView;
import io.flutter.plugin.common.BinaryMessenger;
import io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewFlutterApi;
@@ -175,7 +176,7 @@ public void success(String result) {
}
@Override
- public void error(Throwable error) {}
+ public void error(@NonNull Throwable error) {}
});
@SuppressWarnings("unchecked")
diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/utils/TestUtils.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/utils/TestUtils.java
index 31e7d58ee13..deebc417564 100644
--- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/utils/TestUtils.java
+++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/utils/TestUtils.java
@@ -23,25 +23,4 @@ public static void setFinalStatic(Class classToModify, String fieldName,
Assert.fail("Unable to mock static field: " + fieldName);
}
}
-
- public static void setPrivateField(T instance, String fieldName, Object newValue) {
- try {
- Field field = instance.getClass().getDeclaredField(fieldName);
- field.setAccessible(true);
- field.set(instance, newValue);
- } catch (Exception e) {
- Assert.fail("Unable to mock private field: " + fieldName);
- }
- }
-
- public static Object getPrivateField(T instance, String fieldName) {
- try {
- Field field = instance.getClass().getDeclaredField(fieldName);
- field.setAccessible(true);
- return field.get(instance);
- } catch (Exception e) {
- Assert.fail("Unable to mock private field: " + fieldName);
- return null;
- }
- }
}
diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.g.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.g.dart
index 652928489ec..f5a4564802a 100644
--- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.g.dart
+++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.g.dart
@@ -1,7 +1,7 @@
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// Autogenerated from Pigeon (v9.2.3), do not edit directly.
+// Autogenerated from Pigeon (v9.2.4), do not edit directly.
// See also: https://pub.dev/packages/pigeon
// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
diff --git a/packages/webview_flutter/webview_flutter_android/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/pubspec.yaml
index 7eb5411640e..7fca5618dd2 100644
--- a/packages/webview_flutter/webview_flutter_android/pubspec.yaml
+++ b/packages/webview_flutter/webview_flutter_android/pubspec.yaml
@@ -2,7 +2,7 @@ name: webview_flutter_android
description: A Flutter plugin that provides a WebView widget on Android.
repository: https://github.com/flutter/packages/tree/main/packages/webview_flutter/webview_flutter_android
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22
-version: 3.5.0
+version: 3.5.1
environment:
sdk: ">=2.18.0 <4.0.0"
@@ -29,4 +29,4 @@ dev_dependencies:
flutter_test:
sdk: flutter
mockito: 5.4.0
- pigeon: ^9.0.4
+ pigeon: ^9.2.4
diff --git a/packages/webview_flutter/webview_flutter_android/test/test_android_webview.g.dart b/packages/webview_flutter/webview_flutter_android/test/test_android_webview.g.dart
index 5857a09876c..6b0c31ab1c1 100644
--- a/packages/webview_flutter/webview_flutter_android/test/test_android_webview.g.dart
+++ b/packages/webview_flutter/webview_flutter_android/test/test_android_webview.g.dart
@@ -1,7 +1,7 @@
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// Autogenerated from Pigeon (v9.2.3), do not edit directly.
+// Autogenerated from Pigeon (v9.2.4), do not edit directly.
// See also: https://pub.dev/packages/pigeon
// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, unnecessary_import
// ignore_for_file: avoid_relative_lib_imports