From f8e51ad621490f352e24c85e33f7bcba5ab2e51b Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Sat, 14 May 2022 17:21:31 +0300 Subject: [PATCH 1/3] fix: unreliable encoding --- .../lib/webview_flutter_web.dart | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/lib/webview_flutter_web.dart b/packages/webview_flutter/webview_flutter_web/lib/webview_flutter_web.dart index 637c24926275..68ed43d9d7a8 100644 --- a/packages/webview_flutter/webview_flutter_web/lib/webview_flutter_web.dart +++ b/packages/webview_flutter/webview_flutter_web/lib/webview_flutter_web.dart @@ -3,6 +3,7 @@ // found in the LICENSE file. import 'dart:async'; +import 'dart:convert'; import 'dart:html'; import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; @@ -183,7 +184,11 @@ class WebWebViewPlatformController implements WebViewPlatformController { String? baseUrl, }) async { // ignore: unsafe_html - _element.src = 'data:text/html,${Uri.encodeFull(html)}'; + _element.src = Uri.dataFromString( + html, + mimeType: 'text/html', + encoding: Encoding.getByName('utf-8'), + ).toString(); } @override @@ -199,8 +204,11 @@ class WebWebViewPlatformController implements WebViewPlatformController { final String contentType = httpReq.getResponseHeader('content-type') ?? 'text/html'; // ignore: unsafe_html - _element.src = - 'data:$contentType,${Uri.encodeFull(httpReq.responseText ?? '')}'; + _element.src = Uri.dataFromString( + httpReq.responseText ?? '', + mimeType: contentType, + encoding: Encoding.getByName('utf-8'), + ).toString(); } @override From e9dfa1fd28ba56a0cf79426059e5c7bc9e7e1bb7 Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Sat, 14 May 2022 18:47:18 +0300 Subject: [PATCH 2/3] chore: update version and changelog --- .../webview_flutter_web/CHANGELOG.md | 16 ++++++++++------ .../webview_flutter_web/pubspec.yaml | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md index 8ab70f9a78d3..54a4d5904d28 100644 --- a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md @@ -1,18 +1,22 @@ +## 0.1.0+4 + +- Fixes unreliable encoding of HTML to the iframe element. + ## 0.1.0+3 -* Minor fixes for new analysis options. +- Minor fixes for new analysis options. ## 0.1.0+2 -* Removes unnecessary imports. -* Fixes unit tests to run on latest `master` version of Flutter. -* Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors +- Removes unnecessary imports. +- Fixes unit tests to run on latest `master` version of Flutter. +- Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors lint warnings. ## 0.1.0+1 -* Adds an explanation of registering the implementation in the README. +- Adds an explanation of registering the implementation in the README. ## 0.1.0 -* First web implementation for webview_flutter +- First web implementation for webview_flutter diff --git a/packages/webview_flutter/webview_flutter_web/pubspec.yaml b/packages/webview_flutter/webview_flutter_web/pubspec.yaml index a834c9b77d51..6eff38e96644 100644 --- a/packages/webview_flutter/webview_flutter_web/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_web/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_web description: A Flutter plugin that provides a WebView widget on web. repository: https://github.com/flutter/plugins/tree/main/packages/webview_flutter/webview_flutter_web issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 0.1.0+3 +version: 0.1.0+4 environment: sdk: ">=2.14.0 <3.0.0" From e0b13de8f2c02f5afd940eb5138ccd603617118f Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Sat, 14 May 2022 18:48:29 +0300 Subject: [PATCH 3/3] revert changelog formatting --- .../webview_flutter_web/CHANGELOG.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md index 54a4d5904d28..2f40537ebafd 100644 --- a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md @@ -1,22 +1,22 @@ ## 0.1.0+4 -- Fixes unreliable encoding of HTML to the iframe element. +* Fixes unreliable encoding of HTML to the iframe element. ## 0.1.0+3 -- Minor fixes for new analysis options. +* Minor fixes for new analysis options. ## 0.1.0+2 -- Removes unnecessary imports. -- Fixes unit tests to run on latest `master` version of Flutter. -- Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors +* Removes unnecessary imports. +* Fixes unit tests to run on latest `master` version of Flutter. +* Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors lint warnings. ## 0.1.0+1 -- Adds an explanation of registering the implementation in the README. +* Adds an explanation of registering the implementation in the README. ## 0.1.0 -- First web implementation for webview_flutter +* First web implementation for webview_flutter