Skip to content

Commit 2d32eff

Browse files
Fixed InAppWebViewSettings automatic infer if initialSettings is null
1 parent ae4471d commit 2d32eff

File tree

11 files changed

+22
-60
lines changed

11 files changed

+22
-60
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 6.0.0-beta.18
2+
3+
- Fixed `InAppWebViewSettings` automatic infer if `initialSettings` is `null`
4+
15
## 6.0.0-beta.17
26

37
- Replaced `Uri.encodeFull` with `Uri.encodeComponent` to load html data correctly on Web platform

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Migrating from version `5.x.x` is easy! Follow the online [Migration guide](http
3434
- [Official blog: inappwebview.dev/blog](https://inappwebview.dev/blog/)
3535
- Find open source projects on the [Official Showcase page: inappwebview.dev/showcase](https://inappwebview.dev/showcase/)
3636
- Check the [flutter_inappwebview_examples](https://github.com/pichillilorenzo/flutter_inappwebview_examples) repository for project examples
37-
- Check the [example/integration_test/webview_flutter_test.dart](/example/integration_test/webview_flutter_test.dart) file for other code examples
37+
- Check the [example/integration_test/webview_flutter_test.dart](https://github.com/pichillilorenzo/flutter_inappwebview/blob/master/example/integration_test/webview_flutter_test.dart) file for other code examples
3838
- [Flutter Browser App](https://github.com/pichillilorenzo/flutter_browser_app): A Full-Featured Mobile Browser App (such as the Google Chrome mobile browser) created using Flutter and the features offered by the flutter_inappwebview plugin
3939

4040
## Showcase - Who use it

example/integration_test/in_app_webview/intercept_ajax_request.dart

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,6 @@ void interceptAjaxRequest() {
5454
</body>
5555
</html>
5656
"""),
57-
initialSettings: InAppWebViewSettings(
58-
clearCache: true,
59-
),
6057
onWebViewCreated: (controller) {
6158
controllerCompleter.complete(controller);
6259
},
@@ -143,9 +140,6 @@ void interceptAjaxRequest() {
143140
</body>
144141
</html>
145142
"""),
146-
initialSettings: InAppWebViewSettings(
147-
clearCache: true,
148-
),
149143
onWebViewCreated: (controller) {
150144
controllerCompleter.complete(controller);
151145
},
@@ -232,9 +226,6 @@ void interceptAjaxRequest() {
232226
</body>
233227
</html>
234228
"""),
235-
initialSettings: InAppWebViewSettings(
236-
clearCache: true,
237-
),
238229
onWebViewCreated: (controller) {
239230
controllerCompleter.complete(controller);
240231
},
@@ -319,9 +310,6 @@ void interceptAjaxRequest() {
319310
</body>
320311
</html>
321312
"""),
322-
initialSettings: InAppWebViewSettings(
323-
clearCache: true,
324-
),
325313
onWebViewCreated: (controller) {
326314
controllerCompleter.complete(controller);
327315
},

example/integration_test/in_app_webview/intercept_fetch_request.dart

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,6 @@ void interceptFetchRequest() {
6363
</body>
6464
</html>
6565
"""),
66-
initialSettings: InAppWebViewSettings(
67-
clearCache: true,
68-
),
6966
onWebViewCreated: (controller) {
7067
controllerCompleter.complete(controller);
7168

@@ -145,9 +142,6 @@ void interceptFetchRequest() {
145142
</body>
146143
</html>
147144
"""),
148-
initialSettings: InAppWebViewSettings(
149-
clearCache: true,
150-
),
151145
onWebViewCreated: (controller) {
152146
controllerCompleter.complete(controller);
153147

@@ -227,9 +221,6 @@ void interceptFetchRequest() {
227221
</body>
228222
</html>
229223
"""),
230-
initialSettings: InAppWebViewSettings(
231-
clearCache: true,
232-
),
233224
onWebViewCreated: (controller) {
234225
controllerCompleter.complete(controller);
235226

@@ -305,9 +296,6 @@ void interceptFetchRequest() {
305296
</body>
306297
</html>
307298
"""),
308-
initialSettings: InAppWebViewSettings(
309-
clearCache: true,
310-
),
311299
onWebViewCreated: (controller) {
312300
controllerCompleter.complete(controller);
313301

example/integration_test/in_app_webview/on_download_start_request.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ void onDownloadStartRequest() {
4545
</body>
4646
</html>
4747
"""),
48-
initialSettings: InAppWebViewSettings(clearCache: true),
4948
onWebViewCreated: (controller) {
5049
controllerCompleter.complete(controller);
5150
},

example/integration_test/in_app_webview/on_navigation_response.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ void onNavigationResponse() {
2929
child: InAppWebView(
3030
key: GlobalKey(),
3131
initialUrlRequest: URLRequest(url: TEST_URL_1),
32-
initialSettings: InAppWebViewSettings(),
3332
onWebViewCreated: (controller) {
3433
controllerCompleter.complete(controller);
3534
},
@@ -63,7 +62,6 @@ void onNavigationResponse() {
6362
child: InAppWebView(
6463
key: GlobalKey(),
6564
initialUrlRequest: URLRequest(url: TEST_URL_1),
66-
initialSettings: InAppWebViewSettings(),
6765
onWebViewCreated: (controller) {
6866
controllerCompleter.complete(controller);
6967
},

example/integration_test/in_app_webview/should_intercept_request.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ void shouldInterceptRequest() {
4545
</body>
4646
</html>
4747
"""),
48-
initialSettings: InAppWebViewSettings(),
4948
onWebViewCreated: (controller) {
5049
controllerCompleter.complete(controller);
5150
},

example/integration_test/in_app_webview/should_override_url_loading.dart

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,6 @@ void shouldOverrideUrlLoading() {
3737
onWebViewCreated: (controller) {
3838
controllerCompleter.complete(controller);
3939
},
40-
initialSettings: InAppWebViewSettings(
41-
javaScriptEnabled: true,
42-
),
4340
shouldOverrideUrlLoading: (controller, navigationAction) async {
4441
return (navigationAction.request.url!.host
4542
.contains(TEST_URL_4.host.replaceAll("www.", "")))
@@ -89,9 +86,6 @@ void shouldOverrideUrlLoading() {
8986
onWebViewCreated: (controller) {
9087
controllerCompleter.complete(controller);
9188
},
92-
initialSettings: InAppWebViewSettings(
93-
javaScriptEnabled: true,
94-
),
9589
shouldOverrideUrlLoading: (controller, navigationAction) async {
9690
var isFirstLoad = navigationAction.request.url!.scheme == "data";
9791
return (isFirstLoad ||
@@ -147,9 +141,6 @@ void shouldOverrideUrlLoading() {
147141
onWebViewCreated: (controller) {
148142
controllerCompleter.complete(controller);
149143
},
150-
initialSettings: InAppWebViewSettings(
151-
javaScriptEnabled: true,
152-
),
153144
shouldOverrideUrlLoading: (controller, navigationAction) async {
154145
return (navigationAction.request.url!.host
155146
.contains(TEST_URL_4.host.replaceAll("www.", "")))
@@ -198,9 +189,6 @@ void shouldOverrideUrlLoading() {
198189
onWebViewCreated: (controller) {
199190
controllerCompleter.complete(controller);
200191
},
201-
initialSettings: InAppWebViewSettings(
202-
javaScriptEnabled: true,
203-
),
204192
shouldOverrideUrlLoading: (controller, navigationAction) async {
205193
var action = NavigationActionPolicy.CANCEL;
206194
action = await Future<NavigationActionPolicy>.delayed(

lib/src/in_app_webview/headless_in_app_webview.dart

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -214,15 +214,14 @@ class HeadlessInAppWebView implements WebView, Disposable {
214214
}
215215
_started = true;
216216

217-
final initialSettings = this.initialSettings;
218-
if (initialSettings != null) {
219-
_inferInitialSettings(initialSettings);
220-
}
217+
final initialSettings = this.initialSettings ?? InAppWebViewSettings();
218+
_inferInitialSettings(initialSettings);
221219

222-
Map<String, dynamic> settingsMap = initialSettings?.toMap() ??
223-
// ignore: deprecated_member_use_from_same_package
224-
this.initialOptions?.toMap() ??
225-
{};
220+
Map<String, dynamic> settingsMap =
221+
(this.initialSettings != null ? initialSettings.toMap() : null) ??
222+
// ignore: deprecated_member_use_from_same_package
223+
this.initialOptions?.toMap() ??
224+
initialSettings.toMap();
226225

227226
Map<String, dynamic> pullToRefreshSettings =
228227
this.pullToRefreshController?.settings.toMap() ??

lib/src/in_app_webview/in_app_webview.dart

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -624,15 +624,14 @@ class _InAppWebViewState extends State<InAppWebView> {
624624

625625
@override
626626
Widget build(BuildContext context) {
627-
final initialSettings = widget.initialSettings;
628-
if (initialSettings != null) {
629-
_inferInitialSettings(initialSettings);
630-
}
627+
final initialSettings = widget.initialSettings ?? InAppWebViewSettings();
628+
_inferInitialSettings(initialSettings);
631629

632-
Map<String, dynamic> settingsMap = initialSettings?.toMap() ??
633-
// ignore: deprecated_member_use_from_same_package
634-
widget.initialOptions?.toMap() ??
635-
{};
630+
Map<String, dynamic> settingsMap =
631+
(widget.initialSettings != null ? initialSettings.toMap() : null) ??
632+
// ignore: deprecated_member_use_from_same_package
633+
widget.initialOptions?.toMap() ??
634+
initialSettings.toMap();
636635

637636
Map<String, dynamic> pullToRefreshSettings =
638637
widget.pullToRefreshController?.settings.toMap() ??
@@ -645,7 +644,7 @@ class _InAppWebViewState extends State<InAppWebView> {
645644
viewType: 'com.pichillilorenzo/flutter_inappwebview',
646645
onPlatformViewCreated: (int viewId) {
647646
var webViewHtmlElement = WebPlatformManager.webViews[viewId]!;
648-
webViewHtmlElement.initialSettings = widget.initialSettings;
647+
webViewHtmlElement.initialSettings = initialSettings;
649648
webViewHtmlElement.initialUrlRequest = widget.initialUrlRequest;
650649
webViewHtmlElement.initialFile = widget.initialFile;
651650
webViewHtmlElement.initialData = widget.initialData;
@@ -662,7 +661,7 @@ class _InAppWebViewState extends State<InAppWebView> {
662661
);
663662
} else if (defaultTargetPlatform == TargetPlatform.android) {
664663
var useHybridComposition = (widget.initialSettings != null
665-
? widget.initialSettings?.useHybridComposition
664+
? initialSettings.useHybridComposition
666665
:
667666
// ignore: deprecated_member_use_from_same_package
668667
widget.initialOptions?.android.useHybridComposition) ??

0 commit comments

Comments
 (0)