diff --git a/packages/webview_flutter/webview_flutter_web/example/lib/main.dart b/packages/webview_flutter/webview_flutter_web/example/lib/main.dart index 9ce006031279..653220287196 100644 --- a/packages/webview_flutter/webview_flutter_web/example/lib/main.dart +++ b/packages/webview_flutter/webview_flutter_web/example/lib/main.dart @@ -24,7 +24,7 @@ class _WebViewExample extends StatefulWidget { class _WebViewExampleState extends State<_WebViewExample> { final PlatformWebViewController _controller = PlatformWebViewController( - const PlatformWebViewControllerCreationParams(), + WebWebViewControllerCreationParams(iFrameCredentialless: true), )..loadRequest( LoadRequestParams( uri: Uri.parse('https://flutter.dev'), diff --git a/packages/webview_flutter/webview_flutter_web/lib/src/web_webview_controller.dart b/packages/webview_flutter/webview_flutter_web/lib/src/web_webview_controller.dart index 2d8297fb5fd5..15ffb27a8a70 100644 --- a/packages/webview_flutter/webview_flutter_web/lib/src/web_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_web/lib/src/web_webview_controller.dart @@ -18,10 +18,18 @@ import 'http_request_factory.dart'; @immutable class WebWebViewControllerCreationParams extends PlatformWebViewControllerCreationParams { - /// Creates a new [AndroidWebViewControllerCreationParams] instance. + /// Creates a new [WebWebViewControllerCreationParams] instance. WebWebViewControllerCreationParams({ @visibleForTesting this.httpRequestFactory = const HttpRequestFactory(), - }) : super(); + bool iFrameCredentialless = false, + }) : iFrame = web.HTMLIFrameElement() + ..id = 'webView${_nextIFrameId++}' + ..style.width = '100%' + ..style.height = '100%' + ..style.border = 'none' + ..setAttribute( + 'credentialless', iFrameCredentialless ? 'true' : 'false'), + super(); /// Creates a [WebWebViewControllerCreationParams] instance based on [PlatformWebViewControllerCreationParams]. WebWebViewControllerCreationParams.fromPlatformWebViewControllerCreationParams( @@ -30,7 +38,8 @@ class WebWebViewControllerCreationParams PlatformWebViewControllerCreationParams params, { @visibleForTesting HttpRequestFactory httpRequestFactory = const HttpRequestFactory(), - }) : this(httpRequestFactory: httpRequestFactory); + bool iFrameCredentialless = false, + }) : this(httpRequestFactory: httpRequestFactory, iFrameCredentialless: iFrameCredentialless); static int _nextIFrameId = 0; @@ -39,11 +48,7 @@ class WebWebViewControllerCreationParams /// The underlying element used as the WebView. @visibleForTesting - final web.HTMLIFrameElement iFrame = web.HTMLIFrameElement() - ..id = 'webView${_nextIFrameId++}' - ..style.width = '100%' - ..style.height = '100%' - ..style.border = 'none'; + final web.HTMLIFrameElement iFrame; } /// An implementation of [PlatformWebViewController] using Flutter for Web API.