code format

This commit is contained in:
Lorenzo Pichilli 2022-10-11 16:19:36 +02:00
parent a3c20be1e7
commit 3b2add4199
201 changed files with 1578 additions and 1437 deletions

View File

@ -21,9 +21,7 @@ void customActionButton() {
id: 1,
description: 'Action Button description',
icon: actionButtonIcon.buffer.asUint8List(),
action: (url, title) {
}));
action: (url, title) {}));
expect(chromeSafariBrowser.isOpened(), false);
await chromeSafariBrowser.open(url: TEST_URL_1);

View File

@ -17,11 +17,7 @@ void customMenuItem() {
test('add custom menu item', () async {
var chromeSafariBrowser = MyChromeSafariBrowser();
chromeSafariBrowser.addMenuItem(ChromeSafariBrowserMenuItem(
id: 2,
label: 'Custom item menu 1',
action: (url, title) {
}));
id: 2, label: 'Custom item menu 1', action: (url, title) {}));
expect(chromeSafariBrowser.isOpened(), false);
await chromeSafariBrowser.open(url: TEST_URL_1);

View File

@ -3,16 +3,23 @@ final TEST_CROSS_PLATFORM_URL_1 = Uri.parse('https://flutter.dev/');
final TEST_CROSS_PLATFORM_URL_2 = Uri.parse('https://www.bing.com/');
final TEST_URL_1 = Uri.parse('https://github.com/flutter');
final TEST_URL_2 = Uri.parse('https://www.google.com/');
final TEST_URL_3 = Uri.parse('https://github.com/pichillilorenzo/flutter_inappwebview');
final TEST_URL_3 =
Uri.parse('https://github.com/pichillilorenzo/flutter_inappwebview');
final TEST_URL_4 = Uri.parse('https://www.youtube.com/');
final TEST_URL_EXAMPLE = Uri.parse('https://www.example.com/');
final TEST_URL_HTTP_EXAMPLE = Uri.parse('http://www.example.com/');
final TEST_URL_404 = Uri.parse('https://google.com/404');
final TEST_WEB_PLATFORM_BASE_URL = Uri.parse(Uri.base.toString().replaceFirst("/#/", "/"));
final TEST_WEB_PLATFORM_URL_1 = Uri.parse(TEST_WEB_PLATFORM_BASE_URL.toString() + 'page.html');
final TEST_WEB_PLATFORM_URL_2 = Uri.parse(TEST_WEB_PLATFORM_BASE_URL.toString() + 'page-2.html');
final TEST_WEB_PLATFORM_URL_3 = Uri.parse(TEST_WEB_PLATFORM_BASE_URL.toString() + 'heavy-page.html');
final TEST_WEB_PLATFORM_BASE_URL =
Uri.parse(Uri.base.toString().replaceFirst("/#/", "/"));
final TEST_WEB_PLATFORM_URL_1 =
Uri.parse(TEST_WEB_PLATFORM_BASE_URL.toString() + 'page.html');
final TEST_WEB_PLATFORM_URL_2 =
Uri.parse(TEST_WEB_PLATFORM_BASE_URL.toString() + 'page-2.html');
final TEST_WEB_PLATFORM_URL_3 =
Uri.parse(TEST_WEB_PLATFORM_BASE_URL.toString() + 'heavy-page.html');
final TEST_NOT_A_WEBSITE_URL = Uri.parse('https://www.notawebsite..com/');
final TEST_CHROME_SAFE_BROWSING_MALWARE = Uri.parse('chrome://safe-browsing/match?type=malware');
final TEST_CHROME_SAFE_BROWSING_MALWARE =
Uri.parse('chrome://safe-browsing/match?type=malware');
final TEST_PERMISSION_SITE = Uri.parse('https://permission.site/');
final TEST_SERVICE_WORKER_URL = Uri.parse('https://mdn.github.io/dom-examples/service-worker/simple-service-worker/');
final TEST_SERVICE_WORKER_URL = Uri.parse(
'https://mdn.github.io/dom-examples/service-worker/simple-service-worker/');

View File

@ -9,10 +9,10 @@ void findInteractions() {
final shouldSkip = kIsWeb
? true
: ![
TargetPlatform.android,
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
TargetPlatform.android,
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
testWidgets('find interactions', (WidgetTester tester) async {
final Completer controllerCompleter = Completer<InAppWebViewController>();
@ -27,9 +27,7 @@ void findInteractions() {
initialFile: "test_assets/in_app_webview_initial_file_test.html",
findInteractionController: findInteractionController,
initialSettings: InAppWebViewSettings(
clearCache: true,
isFindInteractionEnabled: true
),
clearCache: true, isFindInteractionEnabled: true),
onWebViewCreated: (controller) {
controllerCompleter.complete(controller);
},
@ -46,17 +44,23 @@ void findInteractions() {
await Future.delayed(Duration(seconds: 1));
const firstSearchText = "InAppWebViewInitialFileTest";
await expectLater(findInteractionController.findAllAsync(find: firstSearchText), completes);
if ([TargetPlatform.iOS, TargetPlatform.macOS].contains(defaultTargetPlatform)) {
await expectLater(
findInteractionController.findAllAsync(find: firstSearchText),
completes);
if ([TargetPlatform.iOS, TargetPlatform.macOS]
.contains(defaultTargetPlatform)) {
expect(await findInteractionController.getSearchText(), firstSearchText);
final session = await findInteractionController.getActiveFindSession();
expect(session!.resultCount, 2);
}
await expectLater(findInteractionController.findNext(forward: true), completes);
await expectLater(findInteractionController.findNext(forward: false), completes);
await expectLater(
findInteractionController.findNext(forward: true), completes);
await expectLater(
findInteractionController.findNext(forward: false), completes);
await expectLater(findInteractionController.clearMatches(), completes);
if ([TargetPlatform.iOS, TargetPlatform.macOS].contains(defaultTargetPlatform)) {
if ([TargetPlatform.iOS, TargetPlatform.macOS]
.contains(defaultTargetPlatform)) {
const secondSearchText = "text";
await expectLater(
findInteractionController.setSearchText(secondSearchText), completes);
@ -64,7 +68,8 @@ void findInteractions() {
findInteractionController.presentFindNavigator(), completes);
expect(await findInteractionController.getSearchText(), secondSearchText);
expect(await findInteractionController.isFindNavigatorVisible(), true);
await expectLater(findInteractionController.updateResultCount(), completes);
await expectLater(
findInteractionController.updateResultCount(), completes);
await expectLater(
findInteractionController.dismissFindNavigator(), completes);
expect(await findInteractionController.isFindNavigatorVisible(), false);
@ -91,9 +96,7 @@ void findInteractions() {
key: GlobalKey(),
initialFile: "test_assets/in_app_webview_initial_file_test.html",
initialSettings: InAppWebViewSettings(
clearCache: true,
isFindInteractionEnabled: false
),
clearCache: true, isFindInteractionEnabled: false),
findInteractionController: findInteractionController,
onWebViewCreated: (controller) {
controllerCompleter.complete(controller);

View File

@ -7,20 +7,20 @@ import 'package:flutter_test/flutter_test.dart';
import '../constants.dart';
void runAndDispose() {
final shouldSkip = kIsWeb ? false :
![
TargetPlatform.android,
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
final shouldSkip = kIsWeb
? false
: ![
TargetPlatform.android,
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
test('run and dispose', () async {
final Completer controllerCompleter = Completer<InAppWebViewController>();
final Completer<void> pageLoaded = Completer<void>();
var headlessWebView = new HeadlessInAppWebView(
initialUrlRequest:
URLRequest(url: TEST_CROSS_PLATFORM_URL_1),
initialUrlRequest: URLRequest(url: TEST_CROSS_PLATFORM_URL_1),
onWebViewCreated: (controller) {
controllerCompleter.complete(controller);
},
@ -32,8 +32,7 @@ void runAndDispose() {
await headlessWebView.run();
expect(headlessWebView.isRunning(), true);
final InAppWebViewController controller =
await controllerCompleter.future;
final InAppWebViewController controller = await controllerCompleter.future;
await pageLoaded.future;
final String? url = (await controller.getUrl())?.toString();

View File

@ -20,8 +20,7 @@ void takeScreenshot() {
final Completer<void> pageLoaded = Completer<void>();
var headlessWebView = new HeadlessInAppWebView(
initialUrlRequest:
URLRequest(url: TEST_URL_1),
initialUrlRequest: URLRequest(url: TEST_URL_1),
onWebViewCreated: (controller) {
controllerCompleter.complete(controller);
},
@ -32,8 +31,7 @@ void takeScreenshot() {
await headlessWebView.run();
expect(headlessWebView.isRunning(), true);
final InAppWebViewController controller =
await controllerCompleter.future;
final InAppWebViewController controller = await controllerCompleter.future;
await pageLoaded.future;
final String? url = (await controller.getUrl())?.toString();

View File

@ -60,10 +60,10 @@ void initialUrlRequest() {
final shouldSkipTest1 = kIsWeb
? false
: ![
TargetPlatform.android,
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
TargetPlatform.android,
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
testWidgets('basic', (WidgetTester tester) async {
final Completer<void> pageLoaded = Completer<void>();
@ -87,7 +87,7 @@ void initialUrlRequest() {
await pageLoaded.future;
final InAppWebViewController controller =
await controllerCompleter.future;
await controllerCompleter.future;
final String? currentUrl = (await controller.getUrl())?.toString();
expect(currentUrl, TEST_CROSS_PLATFORM_URL_1.toString());

View File

@ -8,11 +8,12 @@ import 'package:flutter_test/flutter_test.dart';
import 'package:path_provider/path_provider.dart';
void loadFileUrl() {
final shouldSkip = kIsWeb ? true :
![
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
final shouldSkip = kIsWeb
? true
: ![
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
group('load file URL', () {
late Directory appSupportDir;
@ -83,8 +84,8 @@ void loadFileUrl() {
initialUrlRequest:
URLRequest(url: Uri.parse('file://${fileHtml.path}')),
initialSettings: InAppWebViewSettings(
allowingReadAccessTo:
Uri.parse('file://${appSupportDir.path}/')),
allowingReadAccessTo:
Uri.parse('file://${appSupportDir.path}/')),
onConsoleMessage: (controller, consoleMessage) {
consoleMessageCompleter.complete(consoleMessage);
},

View File

@ -9,12 +9,13 @@ import 'package:flutter_test/flutter_test.dart';
import '../constants.dart';
void loadUrl() {
final shouldSkip1 = kIsWeb ? false :
![
TargetPlatform.android,
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
final shouldSkip1 = kIsWeb
? false
: ![
TargetPlatform.android,
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
var initialUrl = !kIsWeb ? TEST_URL_1 : TEST_WEB_PLATFORM_URL_1;
@ -28,23 +29,23 @@ void loadUrl() {
textDirection: TextDirection.ltr,
child: InAppWebView(
key: GlobalKey(),
initialUrlRequest:
URLRequest(url: initialUrl),
initialUrlRequest: URLRequest(url: initialUrl),
onWebViewCreated: (controller) {
controllerCompleter.complete(controller);
},
onLoadStop: (controller, url) {
if (url.toString() == initialUrl.toString() && !firstUrlLoad.isCompleted) {
if (url.toString() == initialUrl.toString() &&
!firstUrlLoad.isCompleted) {
firstUrlLoad.complete(url.toString());
} else if (url.toString() == TEST_CROSS_PLATFORM_URL_1.toString() && !loadedUrl.isCompleted) {
} else if (url.toString() == TEST_CROSS_PLATFORM_URL_1.toString() &&
!loadedUrl.isCompleted) {
loadedUrl.complete(url.toString());
}
},
),
),
);
final InAppWebViewController controller =
await controllerCompleter.future;
final InAppWebViewController controller = await controllerCompleter.future;
expect(await firstUrlLoad.future, initialUrl.toString());
await controller.loadUrl(
@ -52,11 +53,12 @@ void loadUrl() {
expect(await loadedUrl.future, TEST_CROSS_PLATFORM_URL_1.toString());
}, skip: shouldSkip1);
final shouldSkip2 = kIsWeb ? true :
![
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
final shouldSkip2 = kIsWeb
? true
: ![
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
testWidgets('loadSimulatedRequest', (WidgetTester tester) async {
final Completer controllerCompleter = Completer<InAppWebViewController>();
@ -68,31 +70,34 @@ void loadUrl() {
textDirection: TextDirection.ltr,
child: InAppWebView(
key: GlobalKey(),
initialUrlRequest:
URLRequest(url: initialUrl),
initialUrlRequest: URLRequest(url: initialUrl),
onWebViewCreated: (controller) {
controllerCompleter.complete(controller);
},
onLoadStop: (controller, url) {
if (url.toString() == initialUrl.toString() && !firstUrlLoad.isCompleted) {
if (url.toString() == initialUrl.toString() &&
!firstUrlLoad.isCompleted) {
firstUrlLoad.complete(url.toString());
} else if (url.toString() == TEST_CROSS_PLATFORM_URL_1.toString() && !loadedUrl.isCompleted) {
} else if (url.toString() == TEST_CROSS_PLATFORM_URL_1.toString() &&
!loadedUrl.isCompleted) {
loadedUrl.complete(url.toString());
}
},
),
),
);
final InAppWebViewController controller =
await controllerCompleter.future;
final InAppWebViewController controller = await controllerCompleter.future;
expect(await firstUrlLoad.future, initialUrl.toString());
final htmlCode = "<h1>Hello</h1>";
await controller.loadSimulatedRequest(
urlRequest: URLRequest(url: TEST_CROSS_PLATFORM_URL_1),
data: Uint8List.fromList(utf8.encode(htmlCode))
);
data: Uint8List.fromList(utf8.encode(htmlCode)));
expect(await loadedUrl.future, TEST_CROSS_PLATFORM_URL_1.toString());
expect((await controller.evaluateJavascript(source: "document.body.innerHTML")).toString().trim(), htmlCode);
expect(
(await controller.evaluateJavascript(source: "document.body.innerHTML"))
.toString()
.trim(),
htmlCode);
}, skip: shouldSkip2);
}

View File

@ -168,4 +168,4 @@ void main() {
applePayAPI();
handlesURLScheme();
});
}
}

View File

@ -35,6 +35,7 @@ void onJsBeforeUnload() {
);
final String url = await onJsBeforeUnloadCompleter.future;
expect(url, endsWith("test_assets/in_app_webview_on_js_before_unload.html"));
expect(
url, endsWith("test_assets/in_app_webview_on_js_before_unload.html"));
}, skip: shouldSkip);
}

View File

@ -19,7 +19,8 @@ void onReceivedError() {
group('onReceivedError', () {
testWidgets('invalid url', (WidgetTester tester) async {
final Completer<String> errorUrlCompleter = Completer<String>();
final Completer<WebResourceErrorType> errorCodeCompleter = Completer<WebResourceErrorType>();
final Completer<WebResourceErrorType> errorCodeCompleter =
Completer<WebResourceErrorType>();
await tester.pumpWidget(
Directionality(

View File

@ -103,8 +103,8 @@ void programmaticScroll() {
final shouldSkipTest2 = kIsWeb
? true
: ![
TargetPlatform.android,
].contains(defaultTargetPlatform);
TargetPlatform.android,
].contains(defaultTargetPlatform);
testWidgets(
'set and get scroll position on Android without Hybrid Composition',

View File

@ -166,9 +166,9 @@ void videoPlaybackPolicy() {
final shouldSkipTest3 = kIsWeb
? true
: ![
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
testWidgets(
'Video plays fullscreen when allowsInlineMediaPlayback is false',
@ -213,9 +213,9 @@ void videoPlaybackPolicy() {
final shouldSkipTest4 = kIsWeb
? true
: ![
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
TargetPlatform.iOS,
TargetPlatform.macOS,
].contains(defaultTargetPlatform);
// on Android, entering fullscreen requires user interaction
testWidgets('exit fullscreen event', (WidgetTester tester) async {
Completer<InAppWebViewController> controllerCompleter =

View File

@ -152,7 +152,8 @@ void webHistory() {
var url = await pageLoads.stream.first;
expect(url, TEST_WEB_PLATFORM_URL_1.toString());
await controller.evaluateJavascript(source: "document.getElementById('link-page-2').click();");
await controller.evaluateJavascript(
source: "document.getElementById('link-page-2').click();");
url = await pageLoads.stream.first;
expect(url, TEST_WEB_PLATFORM_URL_2.toString());

View File

@ -19,15 +19,15 @@ void clearAndSetProxyOverride() {
final Completer controllerCompleter = Completer<InAppWebViewController>();
final Completer<String> pageLoaded = Completer<String>();
var proxyAvailable = await WebViewFeature.isFeatureSupported(
WebViewFeature.PROXY_OVERRIDE);
var proxyAvailable =
await WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE);
if (proxyAvailable) {
ProxyController proxyController =
ProxyController.instance();
ProxyController proxyController = ProxyController.instance();
await proxyController.clearProxyOverride();
await proxyController.setProxyOverride(settings: ProxySettings(
await proxyController.setProxyOverride(
settings: ProxySettings(
proxyRules: [ProxyRule(url: "${environment["NODE_SERVER_IP"]}:8083")],
));
}
@ -53,8 +53,17 @@ void clearAndSetProxyOverride() {
final String url = await pageLoaded.future;
expect(url, TEST_URL_HTTP_EXAMPLE.toString());
expect(await controller.evaluateJavascript(source: "document.getElementById('url').innerHTML;"), TEST_URL_HTTP_EXAMPLE.toString());
expect(await controller.evaluateJavascript(source: "document.getElementById('method').innerHTML;"), "GET");
expect(await controller.evaluateJavascript(source: "document.getElementById('headers').innerHTML;"), isNotNull);
expect(
await controller.evaluateJavascript(
source: "document.getElementById('url').innerHTML;"),
TEST_URL_HTTP_EXAMPLE.toString());
expect(
await controller.evaluateJavascript(
source: "document.getElementById('method').innerHTML;"),
"GET");
expect(
await controller.evaluateJavascript(
source: "document.getElementById('headers').innerHTML;"),
isNotNull);
}, skip: shouldSkip);
}

View File

@ -9,4 +9,4 @@ void main() {
group('Proxy Controller', () {
clearAndSetProxyOverride();
}, skip: shouldSkip);
}
}

View File

@ -11,4 +11,4 @@ void main() {
shouldInterceptRequest();
setServiceWorkerClient();
}, skip: shouldSkip);
}
}

View File

@ -72,4 +72,4 @@ class MyChromeSafariBrowser extends ChromeSafariBrowser {
void onClosed() {
browserClosed.complete();
}
}
}

View File

@ -3,7 +3,8 @@ import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:integration_test/integration_test.dart';
import 'in_app_webview/main.dart' as in_app_webview_tests;
import 'find_interaction_controller/main.dart' as find_interaction_controller_tests;
import 'find_interaction_controller/main.dart'
as find_interaction_controller_tests;
import 'service_worker_controller/main.dart' as service_worker_controller_tests;
import 'proxy_controller/main.dart' as proxy_controller_tests;
import 'headless_in_app_webview/main.dart' as headless_in_app_webview_tests;

View File

@ -184,7 +184,8 @@ class ServiceWorkerController {
///This method should only be called if [WebViewFeature.isFeatureSupported] returns `true` for [WebViewFeature.REQUESTED_WITH_HEADER_CONTROL].
///
///**Official Android API**: https://developer.android.com/reference/androidx/webkit/ServiceWorkerWebSettingsCompat#setRequestedWithHeaderMode(int)
static Future<void> setRequestedWithHeaderMode(RequestedWithHeaderMode mode) async {
static Future<void> setRequestedWithHeaderMode(
RequestedWithHeaderMode mode) async {
Map<String, dynamic> args = <String, dynamic>{};
args.putIfAbsent("mode", () => mode.toNativeValue());
await _channel.invokeMethod('setRequestedWithHeaderMode', args);

View File

@ -134,7 +134,8 @@ class WebViewFeature_ {
///This feature covers [ServiceWorkerClient.shouldInterceptRequest].
static const SERVICE_WORKER_SHOULD_INTERCEPT_REQUEST =
const WebViewFeature_._internal("SERVICE_WORKER_SHOULD_INTERCEPT_REQUEST");
const WebViewFeature_._internal(
"SERVICE_WORKER_SHOULD_INTERCEPT_REQUEST");
///
static const SHOULD_OVERRIDE_WITH_REDIRECTS =
@ -210,7 +211,8 @@ class WebViewFeature_ {
///This feature covers [InAppWebViewSettings.enterpriseAuthenticationAppLinkPolicyEnabled].
static const ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY =
const WebViewFeature_._internal("ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY");
const WebViewFeature_._internal(
"ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY");
///Return whether a feature is supported at run-time. On devices running Android version `Build.VERSION_CODES.LOLLIPOP` and higher,
///this will check whether a feature is supported, depending on the combination of the desired feature, the Android version of device,
@ -249,7 +251,8 @@ class AndroidWebViewFeature_ {
const AndroidWebViewFeature_._internal("DISABLED_ACTION_MODE_MENU_ITEMS");
///
static const FORCE_DARK = const AndroidWebViewFeature_._internal("FORCE_DARK");
static const FORCE_DARK =
const AndroidWebViewFeature_._internal("FORCE_DARK");
///
static const FORCE_DARK_STRATEGY =
@ -305,7 +308,8 @@ class AndroidWebViewFeature_ {
///
static const SAFE_BROWSING_PRIVACY_POLICY_URL =
const AndroidWebViewFeature_._internal("SAFE_BROWSING_PRIVACY_POLICY_URL");
const AndroidWebViewFeature_._internal(
"SAFE_BROWSING_PRIVACY_POLICY_URL");
///
static const SAFE_BROWSING_RESPONSE_BACK_TO_SAFETY =
@ -400,7 +404,8 @@ class AndroidWebViewFeature_ {
///
static const WEB_RESOURCE_REQUEST_IS_REDIRECT =
const AndroidWebViewFeature_._internal("WEB_RESOURCE_REQUEST_IS_REDIRECT");
const AndroidWebViewFeature_._internal(
"WEB_RESOURCE_REQUEST_IS_REDIRECT");
///
static const WEB_VIEW_RENDERER_CLIENT_BASIC_USAGE =
@ -417,7 +422,7 @@ class AndroidWebViewFeature_ {
///This feature covers [InAppWebViewSettings.willSuppressErrorPage].
static const SUPPRESS_ERROR_PAGE =
const AndroidWebViewFeature_._internal("SUPPRESS_ERROR_PAGE");
const AndroidWebViewFeature_._internal("SUPPRESS_ERROR_PAGE");
///This feature covers [InAppWebViewSettings.algorithmicDarkeningAllowed].
static const ALGORITHMIC_DARKENING =
@ -429,7 +434,8 @@ class AndroidWebViewFeature_ {
///This feature covers [InAppWebViewSettings.enterpriseAuthenticationAppLinkPolicyEnabled].
static const ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY =
const AndroidWebViewFeature_._internal("ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY");
const AndroidWebViewFeature_._internal(
"ENTERPRISE_AUTHENTICATION_APP_LINK_POLICY");
///Return whether a feature is supported at run-time. On devices running Android version `Build.VERSION_CODES.LOLLIPOP` and higher,
///this will check whether a feature is supported, depending on the combination of the desired feature, the Android version of device,

View File

@ -150,7 +150,8 @@ class ContentBlockerTrigger {
}
});
List<String> loadContextStringList = List<String>.from(map["load-context"] ?? []);
List<String> loadContextStringList =
List<String>.from(map["load-context"] ?? []);
loadContextStringList.forEach((typeValue) {
var context = ContentBlockerTriggerLoadContext.fromNativeValue(typeValue);
if (context != null) {
@ -185,15 +186,17 @@ class ContentBlockerAction {
///It specify a string that defines a selector list. Use CSS identifiers as the individual selector values, separated by commas.
String? selector;
ContentBlockerAction(
{required this.type, this.selector}) {
ContentBlockerAction({required this.type, this.selector}) {
if (this.type == ContentBlockerActionType.CSS_DISPLAY_NONE) {
assert(this.selector != null);
}
}
Map<String, dynamic> toMap() {
Map<String, dynamic> map = {"type": type.toNativeValue(), "selector": selector};
Map<String, dynamic> map = {
"type": type.toNativeValue(),
"selector": selector
};
map.keys
.where((key) =>

View File

@ -161,7 +161,8 @@ class CookieManager {
if (isSecure != null && isSecure) cookieValue += "; Secure";
if (sameSite != null) cookieValue += "; SameSite=" + sameSite.toNativeValue();
if (sameSite != null)
cookieValue += "; SameSite=" + sameSite.toNativeValue();
cookieValue += ";";
@ -243,7 +244,8 @@ class CookieManager {
expiresDate: cookieMap["expiresDate"],
isSessionOnly: cookieMap["isSessionOnly"],
domain: cookieMap["domain"],
sameSite: HTTPCookieSameSitePolicy.fromNativeValue(cookieMap["sameSite"]),
sameSite:
HTTPCookieSameSitePolicy.fromNativeValue(cookieMap["sameSite"]),
isSecure: cookieMap["isSecure"],
isHttpOnly: cookieMap["isHttpOnly"],
path: cookieMap["path"]));
@ -364,8 +366,8 @@ class CookieManager {
expiresDate: cookies[i]["expiresDate"],
isSessionOnly: cookies[i]["isSessionOnly"],
domain: cookies[i]["domain"],
sameSite:
HTTPCookieSameSitePolicy.fromNativeValue(cookies[i]["sameSite"]),
sameSite: HTTPCookieSameSitePolicy.fromNativeValue(
cookies[i]["sameSite"]),
isSecure: cookies[i]["isSecure"],
isHttpOnly: cookies[i]["isHttpOnly"],
path: cookies[i]["path"]);
@ -533,7 +535,8 @@ class CookieManager {
expiresDate: cookieMap["expiresDate"],
isSessionOnly: cookieMap["isSessionOnly"],
domain: cookieMap["domain"],
sameSite: HTTPCookieSameSitePolicy.fromNativeValue(cookieMap["sameSite"]),
sameSite:
HTTPCookieSameSitePolicy.fromNativeValue(cookieMap["sameSite"]),
isSecure: cookieMap["isSecure"],
isHttpOnly: cookieMap["isHttpOnly"],
path: cookieMap["path"]));
@ -595,7 +598,8 @@ class IOSCookieManager {
expiresDate: cookieMap["expiresDate"],
isSessionOnly: cookieMap["isSessionOnly"],
domain: cookieMap["domain"],
sameSite: HTTPCookieSameSitePolicy.fromNativeValue(cookieMap["sameSite"]),
sameSite:
HTTPCookieSameSitePolicy.fromNativeValue(cookieMap["sameSite"]),
isSecure: cookieMap["isSecure"],
isHttpOnly: cookieMap["isHttpOnly"],
path: cookieMap["path"]));

View File

@ -24,10 +24,9 @@ class DebugLoggingSettings {
///Use [print] instead of `developer.log` to log messages.
bool usePrint;
DebugLoggingSettings({
this.enabled = kDebugMode,
this.excludeFilter = const [],
this.maxLogMessageLength = -1,
this.usePrint = false
});
}
DebugLoggingSettings(
{this.enabled = kDebugMode,
this.excludeFilter = const [],
this.maxLogMessageLength = -1,
this.usePrint = false});
}

View File

@ -1 +1 @@
export 'find_interaction_controller.dart';
export 'find_interaction_controller.dart';

View File

@ -103,8 +103,7 @@ class InAppBrowser {
_debugLog(String method, dynamic args) {
if (InAppBrowser.debugLoggingSettings.enabled) {
for (var regExp
in InAppBrowser.debugLoggingSettings.excludeFilter) {
for (var regExp in InAppBrowser.debugLoggingSettings.excludeFilter) {
if (regExp.hasMatch(method)) return;
}
var maxLogMessageLength =
@ -773,7 +772,8 @@ class InAppBrowser {
///**Supported Platforms/Implementations**:
///- Android native WebView
///- iOS
Future<bool?>? onPrintRequest(Uri? url, PrintJobController? printJobController) {
Future<bool?>? onPrintRequest(
Uri? url, PrintJobController? printJobController) {
return null;
}

View File

@ -318,7 +318,8 @@ class AndroidInAppWebViewOptions
"defaultFixedFontSize": defaultFixedFontSize,
"defaultFontSize": defaultFontSize,
"defaultTextEncodingName": defaultTextEncodingName,
"disabledActionModeMenuItems": disabledActionModeMenuItems?.toNativeValue(),
"disabledActionModeMenuItems":
disabledActionModeMenuItems?.toNativeValue(),
"fantasyFontFamily": fantasyFontFamily,
"fixedFontFamily": fixedFontFamily,
"forceDark": forceDark?.toNativeValue(),
@ -380,7 +381,8 @@ class AndroidInAppWebViewOptions
instance.defaultFontSize = map["defaultFontSize"];
instance.defaultTextEncodingName = map["defaultTextEncodingName"];
instance.disabledActionModeMenuItems =
AndroidActionModeMenuItem.fromNativeValue(map["disabledActionModeMenuItems"]);
AndroidActionModeMenuItem.fromNativeValue(
map["disabledActionModeMenuItems"]);
instance.fantasyFontFamily = map["fantasyFontFamily"];
instance.fixedFontFamily = map["fixedFontFamily"];
instance.forceDark = AndroidForceDark.fromNativeValue(map["forceDark"]);

View File

@ -24,12 +24,12 @@ class IOSInAppWebViewController {
@Deprecated("Use InAppWebViewController.createPdf instead")
Future<Uint8List?> createPdf(
{@Deprecated("Use pdfConfiguration instead")
// ignore: deprecated_member_use_from_same_package
IOSWKPDFConfiguration? iosWKPdfConfiguration,
PDFConfiguration? pdfConfiguration}) async {
// ignore: deprecated_member_use_from_same_package
IOSWKPDFConfiguration? iosWKPdfConfiguration,
PDFConfiguration? pdfConfiguration}) async {
Map<String, dynamic> args = <String, dynamic>{};
args.putIfAbsent('pdfConfiguration',
() => pdfConfiguration?.toMap() ?? iosWKPdfConfiguration?.toMap());
() => pdfConfiguration?.toMap() ?? iosWKPdfConfiguration?.toMap());
return await _channel.invokeMethod('createPdf', args);
}

View File

@ -349,8 +349,8 @@ class IOSInAppWebViewOptions
map["automaticallyAdjustsScrollIndicatorInsets"];
instance.accessibilityIgnoresInvertColors =
map["accessibilityIgnoresInvertColors"];
instance.decelerationRate =
IOSUIScrollViewDecelerationRate.fromNativeValue(map["decelerationRate"])!;
instance.decelerationRate = IOSUIScrollViewDecelerationRate.fromNativeValue(
map["decelerationRate"])!;
instance.alwaysBounceVertical = map["alwaysBounceVertical"];
instance.alwaysBounceHorizontal = map["alwaysBounceHorizontal"];
instance.scrollsToTop = map["scrollsToTop"];

View File

@ -87,7 +87,7 @@ class HeadlessInAppWebView implements WebView, Disposable {
this.onReceivedServerTrustAuthRequest,
this.onReceivedClientCertRequest,
@Deprecated('Use FindInteractionController.onFindResultReceived instead')
this.onFindResultReceived,
this.onFindResultReceived,
this.shouldInterceptAjaxRequest,
this.onAjaxReadyStateChange,
this.onAjaxProgress,

View File

@ -79,7 +79,7 @@ class InAppWebView extends StatefulWidget implements WebView {
this.onReceivedServerTrustAuthRequest,
this.onReceivedClientCertRequest,
@Deprecated('Use FindInteractionController.onFindResultReceived instead')
this.onFindResultReceived,
this.onFindResultReceived,
this.shouldInterceptAjaxRequest,
this.onAjaxReadyStateChange,
this.onAjaxProgress,

View File

@ -534,7 +534,8 @@ class InAppWebViewController {
if (_webview != null) {
if (_webview!.onFormResubmission != null)
return (await _webview!.onFormResubmission!(this, uri))?.toNativeValue();
return (await _webview!.onFormResubmission!(this, uri))
?.toNativeValue();
else {
// ignore: deprecated_member_use_from_same_package
return (await _webview!.androidOnFormResubmission!(this, uri))
@ -802,8 +803,12 @@ class InAppWebViewController {
}
break;
case "onFindResultReceived":
if ((_webview != null && (_webview!.onFindResultReceived != null ||
(_webview!.findInteractionController != null && _webview!.findInteractionController!.onFindResultReceived != null))) ||
if ((_webview != null &&
(_webview!.onFindResultReceived != null ||
(_webview!.findInteractionController != null &&
_webview!.findInteractionController!
.onFindResultReceived !=
null))) ||
_inAppBrowser != null) {
int activeMatchOrdinal = call.arguments["activeMatchOrdinal"];
int numberOfMatches = call.arguments["numberOfMatches"];
@ -813,19 +818,23 @@ class InAppWebViewController {
_webview!.findInteractionController!.onFindResultReceived !=
null)
_webview!.findInteractionController!.onFindResultReceived!(
_webview!.findInteractionController!, activeMatchOrdinal,
numberOfMatches, isDoneCounting);
_webview!.findInteractionController!,
activeMatchOrdinal,
numberOfMatches,
isDoneCounting);
else
_webview!.onFindResultReceived!(
this, activeMatchOrdinal, numberOfMatches, isDoneCounting);
}
else {
this, activeMatchOrdinal, numberOfMatches, isDoneCounting);
} else {
if (_inAppBrowser!.findInteractionController != null &&
_inAppBrowser!.findInteractionController!
.onFindResultReceived != null)
_inAppBrowser!
.findInteractionController!.onFindResultReceived !=
null)
_inAppBrowser!.findInteractionController!.onFindResultReceived!(
_webview!.findInteractionController!, activeMatchOrdinal,
numberOfMatches, isDoneCounting);
_webview!.findInteractionController!,
activeMatchOrdinal,
numberOfMatches,
isDoneCounting);
else
_inAppBrowser!.onFindResultReceived(
activeMatchOrdinal, numberOfMatches, isDoneCounting);
@ -1243,9 +1252,11 @@ class InAppWebViewController {
AjaxRequest request = AjaxRequest.fromMap(arguments)!;
if (_webview != null && _webview!.onAjaxReadyStateChange != null)
return (await _webview!.onAjaxReadyStateChange!(this, request))?.toNativeValue();
return (await _webview!.onAjaxReadyStateChange!(this, request))
?.toNativeValue();
else
return (await _inAppBrowser!.onAjaxReadyStateChange(request))?.toNativeValue();
return (await _inAppBrowser!.onAjaxReadyStateChange(request))
?.toNativeValue();
}
return null;
case "onAjaxProgress":
@ -1255,9 +1266,11 @@ class InAppWebViewController {
AjaxRequest request = AjaxRequest.fromMap(arguments)!;
if (_webview != null && _webview!.onAjaxProgress != null)
return (await _webview!.onAjaxProgress!(this, request))?.toNativeValue();
return (await _webview!.onAjaxProgress!(this, request))
?.toNativeValue();
else
return (await _inAppBrowser!.onAjaxProgress(request))?.toNativeValue();
return (await _inAppBrowser!.onAjaxProgress(request))
?.toNativeValue();
}
return null;
case "shouldInterceptFetchRequest":
@ -2293,7 +2306,8 @@ class InAppWebViewController {
///- Android native WebView ([Official API - PrintManager.print](https://developer.android.com/reference/android/print/PrintManager#print(java.lang.String,%20android.print.PrintDocumentAdapter,%20android.print.PrintAttributes)))
///- iOS ([Official API - UIPrintInteractionController.present](https://developer.apple.com/documentation/uikit/uiprintinteractioncontroller/1618149-present))
///- Web ([Official API - Window.print](https://developer.mozilla.org/en-US/docs/Web/API/Window/print))
Future<PrintJobController?> printCurrentPage({PrintJobSettings? settings}) async {
Future<PrintJobController?> printCurrentPage(
{PrintJobSettings? settings}) async {
Map<String, dynamic> args = <String, dynamic>{};
args.putIfAbsent("settings", () => settings?.toMap());
String? jobId = await _channel.invokeMethod('printCurrentPage', args);
@ -2838,7 +2852,8 @@ class InAppWebViewController {
if (defaultTargetPlatform == TargetPlatform.android) {
assert(filePath.endsWith("." + WebArchiveFormat.MHT.toNativeValue()));
} else if (defaultTargetPlatform == TargetPlatform.iOS) {
assert(filePath.endsWith("." + WebArchiveFormat.WEBARCHIVE.toNativeValue()));
assert(filePath
.endsWith("." + WebArchiveFormat.WEBARCHIVE.toNativeValue()));
}
}
@ -3390,7 +3405,10 @@ class InAppWebViewController {
///
///**Supported Platforms/Implementations**:
///- iOS ([Official API - WKWebView.loadSimulatedRequest(_:response:responseData:)](https://developer.apple.com/documentation/webkit/wkwebview/3763094-loadsimulatedrequest) and [Official API - WKWebView.loadSimulatedRequest(_:responseHTML:)](https://developer.apple.com/documentation/webkit/wkwebview/3763095-loadsimulatedrequest)).
Future<void> loadSimulatedRequest({required URLRequest urlRequest, required Uint8List data, URLResponse? urlResponse}) async {
Future<void> loadSimulatedRequest(
{required URLRequest urlRequest,
required Uint8List data,
URLResponse? urlResponse}) async {
Map<String, dynamic> args = <String, dynamic>{};
args.putIfAbsent('urlRequest', () => urlRequest.toMap());
args.putIfAbsent('data', () => data);

View File

@ -12,7 +12,6 @@ import '../android/webview_feature.dart';
import '../in_app_webview/in_app_webview_controller.dart';
import '../context_menu.dart';
///This class represents all the WebView settings available.
class InAppWebViewSettings {
///Set to `true` to be able to listen at the [WebView.shouldOverrideUrlLoading] event. The default value is `false`.
@ -1184,7 +1183,8 @@ class InAppWebViewSettings {
this.fantasyFontFamily = "fantasy",
this.fixedFontFamily = "monospace",
this.forceDark = ForceDark.OFF,
this.forceDarkStrategy = ForceDarkStrategy.PREFER_WEB_THEME_OVER_USER_AGENT_DARKENING,
this.forceDarkStrategy =
ForceDarkStrategy.PREFER_WEB_THEME_OVER_USER_AGENT_DARKENING,
this.geolocationEnabled = true,
this.layoutAlgorithm,
this.loadWithOverviewMode = true,
@ -1277,11 +1277,16 @@ class InAppWebViewSettings {
!this.resourceCustomSchemes.contains("https"));
assert(
allowingReadAccessTo == null || allowingReadAccessTo!.isScheme("file"));
assert((minimumViewportInset == null && maximumViewportInset == null) ||
minimumViewportInset != null && maximumViewportInset != null &&
minimumViewportInset!.isNonNegative && maximumViewportInset!.isNonNegative &&
minimumViewportInset!.vertical <= maximumViewportInset!.vertical &&
minimumViewportInset!.horizontal <= maximumViewportInset!.horizontal,
assert(
(minimumViewportInset == null && maximumViewportInset == null) ||
minimumViewportInset != null &&
maximumViewportInset != null &&
minimumViewportInset!.isNonNegative &&
maximumViewportInset!.isNonNegative &&
minimumViewportInset!.vertical <=
maximumViewportInset!.vertical &&
minimumViewportInset!.horizontal <=
maximumViewportInset!.horizontal,
"minimumViewportInset cannot be larger than maximumViewportInset");
}
@ -1341,7 +1346,8 @@ class InAppWebViewSettings {
"defaultFixedFontSize": defaultFixedFontSize,
"defaultFontSize": defaultFontSize,
"defaultTextEncodingName": defaultTextEncodingName,
"disabledActionModeMenuItems": disabledActionModeMenuItems?.toNativeValue(),
"disabledActionModeMenuItems":
disabledActionModeMenuItems?.toNativeValue(),
"fantasyFontFamily": fantasyFontFamily,
"fixedFontFamily": fixedFontFamily,
"forceDark": forceDark?.toNativeValue(),
@ -1381,7 +1387,8 @@ class InAppWebViewSettings {
"willSuppressErrorPage": willSuppressErrorPage,
"algorithmicDarkeningAllowed": algorithmicDarkeningAllowed,
"requestedWithHeaderMode": requestedWithHeaderMode?.toNativeValue(),
"enterpriseAuthenticationAppLinkPolicyEnabled": enterpriseAuthenticationAppLinkPolicyEnabled,
"enterpriseAuthenticationAppLinkPolicyEnabled":
enterpriseAuthenticationAppLinkPolicyEnabled,
"disallowOverScroll": disallowOverScroll,
"enableViewportScale": enableViewportScale,
"suppressesIncrementalRendering": suppressesIncrementalRendering,
@ -1450,7 +1457,8 @@ class InAppWebViewSettings {
List<String> dataDetectorTypesList =
List<String>.from(map["dataDetectorTypes"] ?? []);
dataDetectorTypesList.forEach((dataDetectorTypeValue) {
var dataDetectorType = DataDetectorTypes.fromNativeValue(dataDetectorTypeValue);
var dataDetectorType =
DataDetectorTypes.fromNativeValue(dataDetectorTypeValue);
if (dataDetectorType != null) {
dataDetectorTypes.add(dataDetectorType);
}
@ -1523,11 +1531,13 @@ class InAppWebViewSettings {
settings.defaultFontSize = map["defaultFontSize"];
settings.defaultTextEncodingName = map["defaultTextEncodingName"];
settings.disabledActionModeMenuItems =
ActionModeMenuItem.fromNativeValue(map["disabledActionModeMenuItems"]);
ActionModeMenuItem.fromNativeValue(
map["disabledActionModeMenuItems"]);
settings.fantasyFontFamily = map["fantasyFontFamily"];
settings.fixedFontFamily = map["fixedFontFamily"];
settings.forceDark = ForceDark.fromNativeValue(map["forceDark"]);
settings.forceDarkStrategy = ForceDarkStrategy.fromNativeValue(map["forceDarkStrategy"]);
settings.forceDarkStrategy =
ForceDarkStrategy.fromNativeValue(map["forceDarkStrategy"]);
settings.geolocationEnabled = map["geolocationEnabled"];
settings.layoutAlgorithm =
LayoutAlgorithm.fromNativeValue(map["layoutAlgorithm"]);
@ -1545,17 +1555,20 @@ class InAppWebViewSettings {
settings.hardwareAcceleration = map["hardwareAcceleration"];
settings.supportMultipleWindows = map["supportMultipleWindows"];
settings.regexToCancelSubFramesLoading =
map["regexToCancelSubFramesLoading"];
map["regexToCancelSubFramesLoading"];
settings.useHybridComposition = map["useHybridComposition"];
settings.useShouldInterceptRequest = map["useShouldInterceptRequest"];
settings.useOnRenderProcessGone = map["useOnRenderProcessGone"];
settings.overScrollMode = OverScrollMode.fromNativeValue(map["overScrollMode"]);
settings.overScrollMode =
OverScrollMode.fromNativeValue(map["overScrollMode"]);
settings.networkAvailable = map["networkAvailable"];
settings.scrollBarStyle = ScrollBarStyle.fromNativeValue(map["scrollBarStyle"]);
settings.scrollBarStyle =
ScrollBarStyle.fromNativeValue(map["scrollBarStyle"]);
settings.verticalScrollbarPosition =
VerticalScrollbarPosition.fromNativeValue(map["verticalScrollbarPosition"]);
VerticalScrollbarPosition.fromNativeValue(
map["verticalScrollbarPosition"]);
settings.scrollBarDefaultDelayBeforeFade =
map["scrollBarDefaultDelayBeforeFade"];
map["scrollBarDefaultDelayBeforeFade"];
settings.scrollbarFadingEnabled = map["scrollbarFadingEnabled"];
settings.scrollBarFadeDuration = map["scrollBarFadeDuration"];
settings.rendererPriorityPolicy = RendererPriorityPolicy.fromMap(
@ -1570,37 +1583,40 @@ class InAppWebViewSettings {
settings.horizontalScrollbarTrackColor =
UtilColor.fromHex(map["horizontalScrollbarTrackColor"]);
settings.willSuppressErrorPage = map["willSuppressErrorPage"];
settings.algorithmicDarkeningAllowed = map["algorithmicDarkeningAllowed"];
settings.requestedWithHeaderMode = RequestedWithHeaderMode.fromNativeValue(map["requestedWithHeaderMode"]);
settings.enterpriseAuthenticationAppLinkPolicyEnabled = map["enterpriseAuthenticationAppLinkPolicyEnabled"];
}
else if (defaultTargetPlatform == TargetPlatform.iOS ||
settings.algorithmicDarkeningAllowed =
map["algorithmicDarkeningAllowed"];
settings.requestedWithHeaderMode =
RequestedWithHeaderMode.fromNativeValue(
map["requestedWithHeaderMode"]);
settings.enterpriseAuthenticationAppLinkPolicyEnabled =
map["enterpriseAuthenticationAppLinkPolicyEnabled"];
} else if (defaultTargetPlatform == TargetPlatform.iOS ||
defaultTargetPlatform == TargetPlatform.macOS) {
settings.disallowOverScroll = map["disallowOverScroll"];
settings.enableViewportScale = map["enableViewportScale"];
settings.suppressesIncrementalRendering =
map["suppressesIncrementalRendering"];
map["suppressesIncrementalRendering"];
settings.allowsAirPlayForMediaPlayback =
map["allowsAirPlayForMediaPlayback"];
map["allowsAirPlayForMediaPlayback"];
settings.allowsBackForwardNavigationGestures =
map["allowsBackForwardNavigationGestures"];
map["allowsBackForwardNavigationGestures"];
settings.allowsLinkPreview = map["allowsLinkPreview"];
settings.ignoresViewportScaleLimits = map["ignoresViewportScaleLimits"];
settings.allowsInlineMediaPlayback = map["allowsInlineMediaPlayback"];
settings.allowsPictureInPictureMediaPlayback =
map["allowsPictureInPictureMediaPlayback"];
map["allowsPictureInPictureMediaPlayback"];
settings.isFraudulentWebsiteWarningEnabled =
map["isFraudulentWebsiteWarningEnabled"];
map["isFraudulentWebsiteWarningEnabled"];
settings.selectionGranularity =
SelectionGranularity.fromNativeValue(map["selectionGranularity"])!;
SelectionGranularity.fromNativeValue(map["selectionGranularity"])!;
settings.dataDetectorTypes = dataDetectorTypes;
settings.sharedCookiesEnabled = map["sharedCookiesEnabled"];
settings.automaticallyAdjustsScrollIndicatorInsets =
map["automaticallyAdjustsScrollIndicatorInsets"];
map["automaticallyAdjustsScrollIndicatorInsets"];
settings.accessibilityIgnoresInvertColors =
map["accessibilityIgnoresInvertColors"];
settings.decelerationRate =
ScrollViewDecelerationRate.fromNativeValue(map["decelerationRate"])!;
map["accessibilityIgnoresInvertColors"];
settings.decelerationRate = ScrollViewDecelerationRate.fromNativeValue(
map["decelerationRate"])!;
settings.alwaysBounceVertical = map["alwaysBounceVertical"];
settings.alwaysBounceHorizontal = map["alwaysBounceHorizontal"];
settings.scrollsToTop = map["scrollsToTop"];
@ -1608,31 +1624,33 @@ class InAppWebViewSettings {
settings.maximumZoomScale = map["maximumZoomScale"];
settings.minimumZoomScale = map["minimumZoomScale"];
settings.contentInsetAdjustmentBehavior =
ScrollViewContentInsetAdjustmentBehavior.fromNativeValue(
map["contentInsetAdjustmentBehavior"])!;
ScrollViewContentInsetAdjustmentBehavior.fromNativeValue(
map["contentInsetAdjustmentBehavior"])!;
settings.isDirectionalLockEnabled = map["isDirectionalLockEnabled"];
settings.mediaType = map["mediaType"];
settings.pageZoom = map["pageZoom"];
settings.limitsNavigationsToAppBoundDomains =
map["limitsNavigationsToAppBoundDomains"];
map["limitsNavigationsToAppBoundDomains"];
settings.useOnNavigationResponse = map["useOnNavigationResponse"];
settings.applePayAPIEnabled = map["applePayAPIEnabled"];
settings.allowingReadAccessTo = map["allowingReadAccessTo"] != null
? Uri.parse(map["allowingReadAccessTo"])
: null;
settings.disableLongPressContextMenuOnLinks =
map["disableLongPressContextMenuOnLinks"];
map["disableLongPressContextMenuOnLinks"];
settings.disableInputAccessoryView = map["disableInputAccessoryView"];
settings.underPageBackgroundColor =
UtilColor.fromHex(map["underPageBackgroundColor"]);
settings.isTextInteractionEnabled = map["isTextInteractionEnabled"];
settings.isSiteSpecificQuirksModeEnabled =
map["isSiteSpecificQuirksModeEnabled"];
map["isSiteSpecificQuirksModeEnabled"];
settings.upgradeKnownHostsToHTTPS = map["upgradeKnownHostsToHTTPS"];
settings.isElementFullscreenEnabled = map["isElementFullscreenEnabled"];
settings.isFindInteractionEnabled = map["isFindInteractionEnabled"];
settings.minimumViewportInset = MapEdgeInsets.fromMap(map["minimumViewportInset"]?.cast<String, double>());
settings.maximumViewportInset = MapEdgeInsets.fromMap(map["maximumViewportInset"]?.cast<String, double>());
settings.minimumViewportInset = MapEdgeInsets.fromMap(
map["minimumViewportInset"]?.cast<String, double>());
settings.maximumViewportInset = MapEdgeInsets.fromMap(
map["maximumViewportInset"]?.cast<String, double>());
}
}
return settings;

View File

@ -5,4 +5,4 @@ export 'in_app_webview_settings.dart';
export 'headless_in_app_webview.dart';
export 'android/main.dart';
export 'apple/main.dart';
export '../find_interaction/find_interaction_controller.dart';
export '../find_interaction/find_interaction_controller.dart';

View File

@ -993,7 +993,7 @@ abstract class WebView {
this.onReceivedServerTrustAuthRequest,
this.onReceivedClientCertRequest,
@Deprecated('Use FindInteractionController.onFindResultReceived instead')
this.onFindResultReceived,
this.onFindResultReceived,
this.shouldInterceptAjaxRequest,
this.onAjaxReadyStateChange,
this.onAjaxProgress,

View File

@ -1,2 +1,2 @@
export 'print_job_controller.dart';
export 'print_job_settings.dart';
export 'print_job_settings.dart';

View File

@ -4,7 +4,8 @@ import '../in_app_webview/in_app_webview_controller.dart';
import '../types/disposable.dart';
///A completion handler for the [PrintJobController].
typedef PrintJobCompletionHandler = Future<void> Function(bool completed, String? error)?;
typedef PrintJobCompletionHandler = Future<void> Function(
bool completed, String? error)?;
///Class representing a print job eventually returned by [InAppWebViewController.printCurrentPage].
class PrintJobController implements Disposable {
@ -19,8 +20,7 @@ class PrintJobController implements Disposable {
///- iOS ([Official API - UIPrintInteractionController.CompletionHandler](https://developer.apple.com/documentation/uikit/uiprintinteractioncontroller/completionhandler))
PrintJobCompletionHandler onComplete;
PrintJobController(
{required this.id}) {
PrintJobController({required this.id}) {
this._channel = MethodChannel(
'com.pichillilorenzo/flutter_inappwebview_printjobcontroller_$id');
this._channel.setMethodCallHandler((call) async {
@ -94,8 +94,7 @@ class PrintJobController implements Disposable {
Future<PrintJobInfo?> getInfo() async {
Map<String, dynamic> args = <String, dynamic>{};
Map<String, dynamic>? infoMap =
(await _channel.invokeMethod('getInfo', args))
?.cast<String, dynamic>();
(await _channel.invokeMethod('getInfo', args))?.cast<String, dynamic>();
return PrintJobInfo.fromMap(infoMap);
}
@ -109,4 +108,4 @@ class PrintJobController implements Disposable {
Map<String, dynamic> args = <String, dynamic>{};
await _channel.invokeMethod('dispose', args);
}
}
}

View File

@ -180,30 +180,29 @@ class PrintJobSettings {
///Gets a [PrintJobSettings] instance from a [Map] value.
factory PrintJobSettings.fromMap(Map<String, dynamic> map) {
return PrintJobSettings(
handledByClient: map["handledByClient"],
jobName: map["jobName"],
animated: map["animated"],
orientation: PrintJobOrientation.fromNativeValue(map["orientation"]),
numberOfPages: map["numberOfPages"],
forceRenderingQuality:
PrintJobRenderingQuality.fromNativeValue(map["forceRenderingQuality"]),
margins:
MapEdgeInsets.fromMap(map["margins"]?.cast<String, dynamic>()),
mediaSize:
PrintJobMediaSize.fromMap(map["mediaSize"]?.cast<String, dynamic>()),
colorMode: PrintJobColorMode.fromNativeValue(map["colorMode"]),
duplexMode: PrintJobDuplexMode.fromNativeValue(map["duplexMode"]),
outputType: PrintJobOutputType.fromNativeValue(map["outputType"]),
resolution:
PrintJobResolution.fromMap(map["resolution"]?.cast<String, dynamic>()),
showsNumberOfCopies: map["showsNumberOfCopies"],
showsPaperSelectionForLoadedPapers:
map["showsPaperSelectionForLoadedPapers"],
showsPaperOrientation: map["showsPaperOrientation"],
maximumContentHeight: map["maximumContentHeight"],
maximumContentWidth: map["maximumContentWidth"],
footerHeight: map["footerHeight"],
headerHeight: map["headerHeight"],
handledByClient: map["handledByClient"],
jobName: map["jobName"],
animated: map["animated"],
orientation: PrintJobOrientation.fromNativeValue(map["orientation"]),
numberOfPages: map["numberOfPages"],
forceRenderingQuality: PrintJobRenderingQuality.fromNativeValue(
map["forceRenderingQuality"]),
margins: MapEdgeInsets.fromMap(map["margins"]?.cast<String, dynamic>()),
mediaSize:
PrintJobMediaSize.fromMap(map["mediaSize"]?.cast<String, dynamic>()),
colorMode: PrintJobColorMode.fromNativeValue(map["colorMode"]),
duplexMode: PrintJobDuplexMode.fromNativeValue(map["duplexMode"]),
outputType: PrintJobOutputType.fromNativeValue(map["outputType"]),
resolution: PrintJobResolution.fromMap(
map["resolution"]?.cast<String, dynamic>()),
showsNumberOfCopies: map["showsNumberOfCopies"],
showsPaperSelectionForLoadedPapers:
map["showsPaperSelectionForLoadedPapers"],
showsPaperOrientation: map["showsPaperOrientation"],
maximumContentHeight: map["maximumContentHeight"],
maximumContentWidth: map["maximumContentWidth"],
footerHeight: map["footerHeight"],
headerHeight: map["headerHeight"],
);
}
@ -242,4 +241,4 @@ class PrintJobSettings {
String toString() {
return toMap().toString();
}
}
}

View File

@ -60,7 +60,7 @@ class PullToRefreshController {
_debugLog(String method, dynamic args) {
if (PullToRefreshController.debugLoggingSettings.enabled) {
for (var regExp
in PullToRefreshController.debugLoggingSettings.excludeFilter) {
in PullToRefreshController.debugLoggingSettings.excludeFilter) {
if (regExp.hasMatch(method)) return;
}
var maxLogMessageLength =

View File

@ -3,9 +3,7 @@ import 'package:flutter_inappwebview_internal_annotations/flutter_inappwebview_i
part 'action_mode_menu_item.g.dart';
///Class used to disable the action mode menu items.
@ExchangeableEnum(
bitwiseOrOperator: true
)
@ExchangeableEnum(bitwiseOrOperator: true)
class ActionModeMenuItem_ {
// ignore: unused_field
final int _value;
@ -30,9 +28,7 @@ class ActionModeMenuItem_ {
///
///Use [ActionModeMenuItem] instead.
@Deprecated("Use ActionModeMenuItem instead")
@ExchangeableEnum(
bitwiseOrOperator: true
)
@ExchangeableEnum(bitwiseOrOperator: true)
class AndroidActionModeMenuItem_ {
// ignore: unused_field
final int _value;
@ -46,9 +42,9 @@ class AndroidActionModeMenuItem_ {
///Disable menu item "Web Search".
static const MENU_ITEM_WEB_SEARCH =
const AndroidActionModeMenuItem_._internal(2);
const AndroidActionModeMenuItem_._internal(2);
///Disable all the action mode menu items for text processing.
static const MENU_ITEM_PROCESS_TEXT =
const AndroidActionModeMenuItem_._internal(4);
}
const AndroidActionModeMenuItem_._internal(4);
}

View File

@ -79,23 +79,22 @@ class AjaxRequest_ {
AjaxRequest_(
{this.data,
this.method,
this.url,
this.isAsync,
this.user,
this.password,
this.withCredentials,
this.headers,
this.readyState,
this.status,
this.responseURL,
this.responseType,
this.response,
this.responseText,
this.responseXML,
this.statusText,
this.responseHeaders,
this.event,
this.action = AjaxRequestAction_.PROCEED});
}
this.method,
this.url,
this.isAsync,
this.user,
this.password,
this.withCredentials,
this.headers,
this.readyState,
this.status,
this.responseURL,
this.responseType,
this.response,
this.responseText,
this.responseXML,
this.statusText,
this.responseHeaders,
this.event,
this.action = AjaxRequestAction_.PROCEED});
}

View File

@ -16,4 +16,4 @@ class AjaxRequestAction_ {
///Proceeds with the current [AjaxRequest].
static const PROCEED = const AjaxRequestAction_._internal(1);
}
}

View File

@ -24,5 +24,6 @@ class AjaxRequestEvent_ {
///When downloading a resource using HTTP, this only represent the content itself, not headers and other overhead.
int? total;
AjaxRequestEvent_({this.type, this.lengthComputable, this.loaded, this.total});
}
AjaxRequestEvent_(
{this.type, this.lengthComputable, this.loaded, this.total});
}

View File

@ -32,4 +32,4 @@ class AjaxRequestEventType_ {
///The TIMEOUT event is fired when progression is terminated due to preset time expiring.
static const TIMEOUT = const AjaxRequestEventType_._internal("timeout");
}
}

View File

@ -44,4 +44,4 @@ class AjaxRequestHeaders_ {
String toString() {
return 'AjaxRequestHeaders{headers: $_headers, requestHeaders: $_newHeaders}';
}
}
}

View File

@ -25,4 +25,4 @@ class AjaxRequestReadyState_ {
///The operation is complete.
static const DONE = const AjaxRequestReadyState_._internal(4);
}
}

View File

@ -251,4 +251,4 @@ class IOSNSAttributedString_ {
this.underlineColor,
this.underlineStyle,
});
}
}

View File

@ -11,7 +11,7 @@ class AttributedStringTextEffectStyle_ {
///A graphical text effect that gives glyphs the appearance of letterpress printing, which involves pressing the type into the paper.
static const LETTERPRESS_STYLE =
const AttributedStringTextEffectStyle_._internal("letterpressStyle");
const AttributedStringTextEffectStyle_._internal("letterpressStyle");
}
///An iOS-specific Class that represents the supported proxy types.
@ -25,5 +25,5 @@ class IOSNSAttributedStringTextEffectStyle_ {
///A graphical text effect that gives glyphs the appearance of letterpress printing, which involves pressing the type into the paper.
static const LETTERPRESS_STYLE =
const IOSNSAttributedStringTextEffectStyle_._internal("letterpressStyle");
}
const IOSNSAttributedStringTextEffectStyle_._internal("letterpressStyle");
}

View File

@ -44,4 +44,4 @@ class AndroidCacheMode_ {
///Don't use the network, load from the cache.
static const LOAD_CACHE_ONLY = const AndroidCacheMode_._internal(3);
}
}

View File

@ -14,4 +14,4 @@ class CallAsyncJavaScriptResult_ {
String? error;
CallAsyncJavaScriptResult_({this.value, this.error});
}
}

View File

@ -18,9 +18,9 @@ class ClientCertChallenge_ extends URLAuthenticationChallenge_ {
@SupportedPlatforms(platforms: [
AndroidPlatform(
apiName: "ClientCertRequest.getPrincipals",
apiUrl: "https://developer.android.com/reference/android/webkit/ClientCertRequest#getPrincipals()",
available: "21"
)
apiUrl:
"https://developer.android.com/reference/android/webkit/ClientCertRequest#getPrincipals()",
available: "21")
])
List<String>? principals;
@ -32,17 +32,17 @@ class ClientCertChallenge_ extends URLAuthenticationChallenge_ {
@SupportedPlatforms(platforms: [
AndroidPlatform(
apiName: "ClientCertRequest.getKeyTypes",
apiUrl: "https://developer.android.com/reference/android/webkit/ClientCertRequest#getKeyTypes()",
available: "21"
)
apiUrl:
"https://developer.android.com/reference/android/webkit/ClientCertRequest#getKeyTypes()",
available: "21")
])
List<String>? keyTypes;
ClientCertChallenge_(
{required URLProtectionSpace_ protectionSpace,
@Deprecated('Use principals instead') this.androidPrincipals,
this.principals,
@Deprecated('Use keyTypes instead') this.androidKeyTypes,
this.keyTypes})
@Deprecated('Use principals instead') this.androidPrincipals,
this.principals,
@Deprecated('Use keyTypes instead') this.androidKeyTypes,
this.keyTypes})
: super(protectionSpace: protectionSpace);
}
}

View File

@ -21,9 +21,7 @@ class ClientCertResponse_ {
String? androidKeyStoreType;
///An Android-specific property used by Java [KeyStore](https://developer.android.com/reference/java/security/KeyStore) class to get the instance.
@SupportedPlatforms(platforms: [
AndroidPlatform()
])
@SupportedPlatforms(platforms: [AndroidPlatform()])
String? keyStoreType;
///Indicate the [ClientCertResponseAction] to take in response of the client certificate challenge.
@ -32,11 +30,11 @@ class ClientCertResponse_ {
@ExchangeableObjectConstructor()
ClientCertResponse_(
{required this.certificatePath,
this.certificatePassword = "",
@Deprecated('Use keyStoreType instead')
this.androidKeyStoreType = "PKCS12",
this.keyStoreType = "PKCS12",
this.action = ClientCertResponseAction_.CANCEL}) {
this.certificatePassword = "",
@Deprecated('Use keyStoreType instead')
this.androidKeyStoreType = "PKCS12",
this.keyStoreType = "PKCS12",
this.action = ClientCertResponseAction_.CANCEL}) {
if (this.action == ClientCertResponseAction_.PROCEED)
assert(certificatePath.isNotEmpty);
@ -45,4 +43,4 @@ class ClientCertResponse_ {
if (!kIsWeb && defaultTargetPlatform == TargetPlatform.android)
assert(this.keyStoreType != null);
}
}
}

View File

@ -19,4 +19,4 @@ class ClientCertResponseAction_ {
///Ignore the request for now.
static const IGNORE = const ClientCertResponseAction_._internal(2);
}
}

View File

@ -43,4 +43,4 @@ class CompressFormat_ {
///
///**NOTE for Android**: available on Android 30+.
static const WEBP_LOSSLESS = const CompressFormat_._internal("WEBP_LOSSLESS");
}
}

View File

@ -20,4 +20,4 @@ class ConsoleMessage_ {
ConsoleMessage_(
{this.message = "", this.messageLevel = ConsoleMessageLevel_.LOG});
}
}

View File

@ -23,4 +23,4 @@ class ConsoleMessageLevel_ {
///Console DEBUG level
static const DEBUG = const ConsoleMessageLevel_._internal(4);
}
}

View File

@ -18,9 +18,9 @@ class ContentBlockerActionType_ {
///
///**NOTE**: on Android, JavaScript must be enabled.
static const CSS_DISPLAY_NONE =
const ContentBlockerActionType_._internal('css-display-none');
const ContentBlockerActionType_._internal('css-display-none');
///Changes a URL from http to https. URLs with a specified (nondefault) port and links using other protocols are unaffected.
static const MAKE_HTTPS =
const ContentBlockerActionType_._internal('make-https');
}
const ContentBlockerActionType_._internal('make-https');
}

View File

@ -13,9 +13,9 @@ class ContentBlockerTriggerLoadType_ {
///FIRST_PARTY is triggered only if the resource has the same scheme, domain, and port as the main page resource.
static const FIRST_PARTY =
const ContentBlockerTriggerLoadType_._internal('first-party');
const ContentBlockerTriggerLoadType_._internal('first-party');
///THIRD_PARTY is triggered if the resource is not from the same domain as the main page resource.
static const THIRD_PARTY =
const ContentBlockerTriggerLoadType_._internal('third-party');
}
const ContentBlockerTriggerLoadType_._internal('third-party');
}

View File

@ -25,7 +25,7 @@ class ContentWorld {
///The default world for clients.
static final ContentWorld DEFAULT_CLIENT =
ContentWorld.world(name: "defaultClient");
ContentWorld.world(name: "defaultClient");
///The content world for the current webpages content.
///This property contains the content world for scripts that the current webpage executes.
@ -47,4 +47,4 @@ class ContentWorld {
String toString() {
return toMap().toString();
}
}
}

View File

@ -51,12 +51,12 @@ class Cookie_ {
Cookie_(
{required this.name,
required this.value,
this.expiresDate,
this.isSessionOnly,
this.domain,
this.sameSite,
this.isSecure,
this.isHttpOnly,
this.path});
}
required this.value,
this.expiresDate,
this.isSessionOnly,
this.domain,
this.sameSite,
this.isSecure,
this.isHttpOnly,
this.path});
}

View File

@ -20,11 +20,7 @@ class CreateWindowAction_ extends NavigationAction_ {
bool? androidIsDialog;
///Indicates if the new window should be a dialog, rather than a full-size window.
@SupportedPlatforms(
platforms: [
AndroidPlatform()
]
)
@SupportedPlatforms(platforms: [AndroidPlatform()])
bool? isDialog;
///Use [windowFeatures] instead.
@ -32,55 +28,53 @@ class CreateWindowAction_ extends NavigationAction_ {
IOSWKWindowFeatures_? iosWindowFeatures;
///Window features requested by the webpage.
@SupportedPlatforms(
platforms: [
IOSPlatform(
apiName: "WKWindowFeatures",
apiUrl: "https://developer.apple.com/documentation/webkit/wkwindowfeatures"
)
]
)
@SupportedPlatforms(platforms: [
IOSPlatform(
apiName: "WKWindowFeatures",
apiUrl:
"https://developer.apple.com/documentation/webkit/wkwindowfeatures")
])
WindowFeatures_? windowFeatures;
CreateWindowAction_(
{required this.windowId,
@Deprecated('Use isDialog instead')
this.androidIsDialog,
this.isDialog,
@Deprecated('Use windowFeatures instead')
this.iosWindowFeatures,
this.windowFeatures,
required URLRequest_ request,
required bool isForMainFrame,
@Deprecated('Use hasGesture instead')
bool? androidHasGesture,
@Deprecated('Use isRedirect instead')
bool? androidIsRedirect,
bool? hasGesture,
bool? isRedirect,
@Deprecated('Use navigationType instead')
// ignore: deprecated_member_use_from_same_package
IOSWKNavigationType_? iosWKNavigationType,
NavigationType_? navigationType,
@Deprecated('Use sourceFrame instead')
// ignore: deprecated_member_use_from_same_package
IOSWKFrameInfo_? iosSourceFrame,
FrameInfo_? sourceFrame,
@Deprecated('Use targetFrame instead')
// ignore: deprecated_member_use_from_same_package
IOSWKFrameInfo_? iosTargetFrame,
FrameInfo_? targetFrame})
@Deprecated('Use isDialog instead')
this.androidIsDialog,
this.isDialog,
@Deprecated('Use windowFeatures instead')
this.iosWindowFeatures,
this.windowFeatures,
required URLRequest_ request,
required bool isForMainFrame,
@Deprecated('Use hasGesture instead')
bool? androidHasGesture,
@Deprecated('Use isRedirect instead')
bool? androidIsRedirect,
bool? hasGesture,
bool? isRedirect,
@Deprecated('Use navigationType instead')
// ignore: deprecated_member_use_from_same_package
IOSWKNavigationType_? iosWKNavigationType,
NavigationType_? navigationType,
@Deprecated('Use sourceFrame instead')
// ignore: deprecated_member_use_from_same_package
IOSWKFrameInfo_? iosSourceFrame,
FrameInfo_? sourceFrame,
@Deprecated('Use targetFrame instead')
// ignore: deprecated_member_use_from_same_package
IOSWKFrameInfo_? iosTargetFrame,
FrameInfo_? targetFrame})
: super(
request: request,
isForMainFrame: isForMainFrame,
androidHasGesture: androidHasGesture,
hasGesture: hasGesture,
androidIsRedirect: androidIsRedirect,
isRedirect: isRedirect,
iosWKNavigationType: iosWKNavigationType,
navigationType: navigationType,
iosSourceFrame: iosSourceFrame,
sourceFrame: sourceFrame,
iosTargetFrame: iosTargetFrame,
targetFrame: targetFrame);
}
request: request,
isForMainFrame: isForMainFrame,
androidHasGesture: androidHasGesture,
hasGesture: hasGesture,
androidIsRedirect: androidIsRedirect,
isRedirect: isRedirect,
iosWKNavigationType: iosWKNavigationType,
navigationType: navigationType,
iosSourceFrame: iosSourceFrame,
sourceFrame: sourceFrame,
iosTargetFrame: iosTargetFrame,
targetFrame: targetFrame);
}

View File

@ -18,5 +18,6 @@ class CrossOrigin_ {
static const ANONYMOUS = const CrossOrigin_._internal("anonymous");
///CORS requests for this element will have the credentials flag set to 'include'.
static const USE_CREDENTIALS = const CrossOrigin_._internal("use-credentials");
}
static const USE_CREDENTIALS =
const CrossOrigin_._internal("use-credentials");
}

View File

@ -43,11 +43,11 @@ class CSSLinkHtmlTagAttributes_ {
CSSLinkHtmlTagAttributes_(
{this.id,
this.media,
this.crossOrigin,
this.integrity,
this.referrerPolicy,
this.disabled,
this.alternate,
this.title});
}
this.media,
this.crossOrigin,
this.integrity,
this.referrerPolicy,
this.disabled,
this.alternate,
this.title});
}

View File

@ -21,6 +21,6 @@ class CustomSchemeResponse_ {
CustomSchemeResponse_(
{required this.data,
required this.contentType,
this.contentEncoding = 'utf-8'});
}
required this.contentType,
this.contentEncoding = 'utf-8'});
}

View File

@ -17,4 +17,4 @@ class CustomTabsShareState_ {
///Explicitly does not show a share option in the tab.
static const SHARE_STATE_OFF = const CustomTabsShareState_._internal(2);
}
}

View File

@ -13,7 +13,8 @@ class DataDetectorTypes_ {
static const NONE = const DataDetectorTypes_._internal("NONE");
///Phone numbers are detected and turned into links.
static const PHONE_NUMBER = const DataDetectorTypes_._internal("PHONE_NUMBER");
static const PHONE_NUMBER =
const DataDetectorTypes_._internal("PHONE_NUMBER");
///URLs in text are detected and turned into links.
static const LINK = const DataDetectorTypes_._internal("LINK");
@ -23,23 +24,23 @@ class DataDetectorTypes_ {
///Dates and times that are in the future are detected and turned into links.
static const CALENDAR_EVENT =
const DataDetectorTypes_._internal("CALENDAR_EVENT");
const DataDetectorTypes_._internal("CALENDAR_EVENT");
///Tracking numbers are detected and turned into links.
static const TRACKING_NUMBER =
const DataDetectorTypes_._internal("TRACKING_NUMBER");
const DataDetectorTypes_._internal("TRACKING_NUMBER");
///Flight numbers are detected and turned into links.
static const FLIGHT_NUMBER =
const DataDetectorTypes_._internal("FLIGHT_NUMBER");
const DataDetectorTypes_._internal("FLIGHT_NUMBER");
///Lookup suggestions are detected and turned into links.
static const LOOKUP_SUGGESTION =
const DataDetectorTypes_._internal("LOOKUP_SUGGESTION");
const DataDetectorTypes_._internal("LOOKUP_SUGGESTION");
///Spotlight suggestions are detected and turned into links.
static const SPOTLIGHT_SUGGESTION =
const DataDetectorTypes_._internal("SPOTLIGHT_SUGGESTION");
const DataDetectorTypes_._internal("SPOTLIGHT_SUGGESTION");
///All of the above data types are turned into links when detected. Choosing this value will automatically include any new detection type that is added.
static const ALL = const DataDetectorTypes_._internal("ALL");
@ -62,7 +63,7 @@ class IOSWKDataDetectorTypes_ {
///Phone numbers are detected and turned into links.
static const PHONE_NUMBER =
const IOSWKDataDetectorTypes_._internal("PHONE_NUMBER");
const IOSWKDataDetectorTypes_._internal("PHONE_NUMBER");
///URLs in text are detected and turned into links.
static const LINK = const IOSWKDataDetectorTypes_._internal("LINK");
@ -72,24 +73,24 @@ class IOSWKDataDetectorTypes_ {
///Dates and times that are in the future are detected and turned into links.
static const CALENDAR_EVENT =
const IOSWKDataDetectorTypes_._internal("CALENDAR_EVENT");
const IOSWKDataDetectorTypes_._internal("CALENDAR_EVENT");
///Tracking numbers are detected and turned into links.
static const TRACKING_NUMBER =
const IOSWKDataDetectorTypes_._internal("TRACKING_NUMBER");
const IOSWKDataDetectorTypes_._internal("TRACKING_NUMBER");
///Flight numbers are detected and turned into links.
static const FLIGHT_NUMBER =
const IOSWKDataDetectorTypes_._internal("FLIGHT_NUMBER");
const IOSWKDataDetectorTypes_._internal("FLIGHT_NUMBER");
///Lookup suggestions are detected and turned into links.
static const LOOKUP_SUGGESTION =
const IOSWKDataDetectorTypes_._internal("LOOKUP_SUGGESTION");
const IOSWKDataDetectorTypes_._internal("LOOKUP_SUGGESTION");
///Spotlight suggestions are detected and turned into links.
static const SPOTLIGHT_SUGGESTION =
const IOSWKDataDetectorTypes_._internal("SPOTLIGHT_SUGGESTION");
const IOSWKDataDetectorTypes_._internal("SPOTLIGHT_SUGGESTION");
///All of the above data types are turned into links when detected. Choosing this value will automatically include any new detection type that is added.
static const ALL = const IOSWKDataDetectorTypes_._internal("ALL");
}
}

View File

@ -39,4 +39,4 @@ class IOSSafariDismissButtonStyle_ {
///Makes the button title the localized string "Cancel".
static const CANCEL = const IOSSafariDismissButtonStyle_._internal(2);
}
}

View File

@ -1,3 +1,3 @@
abstract class Disposable {
void dispose();
}
}

View File

@ -30,10 +30,10 @@ class DownloadStartRequest_ {
DownloadStartRequest_(
{required this.url,
this.userAgent,
this.contentDisposition,
this.mimeType,
required this.contentLength,
this.suggestedFilename,
this.textEncodingName});
}
this.userAgent,
this.contentDisposition,
this.mimeType,
required this.contentLength,
this.suggestedFilename,
this.textEncodingName});
}

View File

@ -20,4 +20,4 @@ class Favicon_ {
int? height;
Favicon_({required this.url, this.rel, this.width, this.height});
}
}

View File

@ -43,9 +43,7 @@ class FetchRequest_ {
String? mode;
///The request credentials used by the request.
@ExchangeableObjectProperty(
deserializer: _fetchRequestCredentialDeserializer
)
@ExchangeableObjectProperty(deserializer: _fetchRequestCredentialDeserializer)
FetchRequestCredential_? credentials;
///The cache mode used by the request.
@ -71,16 +69,16 @@ class FetchRequest_ {
FetchRequest_(
{this.url,
this.method,
this.headers,
this.body,
this.mode,
this.credentials,
this.cache,
this.redirect,
this.referrer,
this.referrerPolicy,
this.integrity,
this.keepalive,
this.action = FetchRequestAction_.PROCEED});
}
this.method,
this.headers,
this.body,
this.mode,
this.credentials,
this.cache,
this.redirect,
this.referrer,
this.referrerPolicy,
this.integrity,
this.keepalive,
this.action = FetchRequestAction_.PROCEED});
}

View File

@ -16,4 +16,4 @@ class FetchRequestAction_ {
///Proceeds with the fetch request.
static const PROCEED = const FetchRequestAction_._internal(1);
}
}

View File

@ -13,4 +13,4 @@ class FetchRequestCredential_ {
String? type;
FetchRequestCredential_({this.type});
}
}

View File

@ -12,4 +12,4 @@ class FetchRequestCredentialDefault_ extends FetchRequestCredential_ {
String? value;
FetchRequestCredentialDefault_({type, this.value}) : super(type: type);
}
}

View File

@ -25,4 +25,4 @@ class FetchRequestFederatedCredential_ extends FetchRequestCredential_ {
FetchRequestFederatedCredential_(
{type, this.id, this.name, this.protocol, this.provider, this.iconURL})
: super(type: type);
}
}

View File

@ -22,4 +22,4 @@ class FetchRequestPasswordCredential_ extends FetchRequestCredential_ {
FetchRequestPasswordCredential_(
{type, this.id, this.name, this.password, this.iconURL})
: super(type: type);
}
}

View File

@ -16,9 +16,8 @@ class FindSession_ {
/// Defines how results are reported through the find panel's UI.
SearchResultDisplayStyle_ searchResultDisplayStyle;
FindSession_({
required this.resultCount,
required this.highlightedResultIndex,
required this.searchResultDisplayStyle
});
}
FindSession_(
{required this.resultCount,
required this.highlightedResultIndex,
required this.searchResultDisplayStyle});
}

View File

@ -41,4 +41,4 @@ class AndroidForceDark_ {
///Unconditionally enable force dark. In this mode WebView content will always be rendered so as to emulate a dark theme.
static const FORCE_DARK_ON = const AndroidForceDark_._internal(2);
}
}

View File

@ -15,7 +15,8 @@ class ForceDarkStrategy_ {
///To avoid mixing two different darkening strategies, the `prefers-color-scheme` media query will evaluate to light.
///
///See [specification](https://drafts.csswg.org/css-color-adjust-1/) for more information.
static const USER_AGENT_DARKENING_ONLY = const ForceDarkStrategy_._internal(0);
static const USER_AGENT_DARKENING_ONLY =
const ForceDarkStrategy_._internal(0);
///In this mode [WebView] content will always be darkened using dark theme provided by web page.
///If web page does not provide dark theme support [WebView] content will be rendered with a default theme.
@ -29,5 +30,6 @@ class ForceDarkStrategy_ {
///If the metadata is not presented [WebView] content will be darkened by a user agent and `prefers-color-scheme` media query will evaluate to light.
///
///See [specification](https://drafts.csswg.org/css-color-adjust-1/) for more information.
static const PREFER_WEB_THEME_OVER_USER_AGENT_DARKENING = const ForceDarkStrategy_._internal(2);
static const PREFER_WEB_THEME_OVER_USER_AGENT_DARKENING =
const ForceDarkStrategy_._internal(2);
}

View File

@ -16,4 +16,4 @@ class FormResubmissionAction_ {
///Don't resend data
static const DONT_RESEND = const FormResubmissionAction_._internal(1);
}
}

View File

@ -40,4 +40,4 @@ class IOSWKFrameInfo_ {
IOSWKFrameInfo_(
{required this.isMainFrame, required this.request, this.securityOrigin});
}
}

View File

@ -19,4 +19,4 @@ class GeolocationPermissionShowPromptResponse_ {
GeolocationPermissionShowPromptResponse_(
{required this.origin, required this.allow, this.retain = false});
}
}

View File

@ -22,7 +22,7 @@ class HttpAuthResponse_ {
HttpAuthResponse_(
{this.username = "",
this.password = "",
this.permanentPersistence = false,
this.action = HttpAuthResponseAction_.CANCEL});
}
this.password = "",
this.permanentPersistence = false,
this.action = HttpAuthResponseAction_.CANCEL});
}

View File

@ -10,6 +10,7 @@ class HttpAuthResponseAction_ {
// ignore: unused_field
final int _value;
const HttpAuthResponseAction_._internal(this._value);
///Instructs the WebView to cancel the authentication request.
static const CANCEL = const HttpAuthResponseAction_._internal(0);
@ -18,5 +19,5 @@ class HttpAuthResponseAction_ {
///Uses the credentials stored for the current host.
static const USE_SAVED_HTTP_AUTH_CREDENTIALS =
const HttpAuthResponseAction_._internal(2);
}
const HttpAuthResponseAction_._internal(2);
}

View File

@ -45,11 +45,11 @@ class HttpAuthenticationChallenge_ extends URLAuthenticationChallenge_ {
HttpAuthenticationChallenge_(
{required this.previousFailureCount,
required URLProtectionSpace_ protectionSpace,
@Deprecated("Use failureResponse instead") this.iosFailureResponse,
this.failureResponse,
this.proposedCredential,
@Deprecated("Use error instead") this.iosError,
this.error})
required URLProtectionSpace_ protectionSpace,
@Deprecated("Use failureResponse instead") this.iosFailureResponse,
this.failureResponse,
this.proposedCredential,
@Deprecated("Use error instead") this.iosError,
this.error})
: super(protectionSpace: protectionSpace);
}
}

View File

@ -27,4 +27,4 @@ class HTTPCookieSameSitePolicy_ {
///Cookies will be sent in all contexts, i.e sending cross-origin is allowed.
///`None` requires the `Secure` attribute in latest browser versions.
static const NONE = const HTTPCookieSameSitePolicy_._internal("None");
}
}

View File

@ -14,4 +14,4 @@ class InAppWebViewHitTestResult_ {
String? extra;
InAppWebViewHitTestResult_({this.type, this.extra});
}
}

View File

@ -26,13 +26,13 @@ class InAppWebViewHitTestResultType_ {
///[InAppWebViewHitTestResult] for hitting a HTML::a tag with src=http.
static const SRC_ANCHOR_TYPE =
const InAppWebViewHitTestResultType_._internal(7);
const InAppWebViewHitTestResultType_._internal(7);
///[InAppWebViewHitTestResult] for hitting a HTML::a tag with src=http + HTML::img.
static const SRC_IMAGE_ANCHOR_TYPE =
const InAppWebViewHitTestResultType_._internal(8);
const InAppWebViewHitTestResultType_._internal(8);
///[InAppWebViewHitTestResult] for hitting an edit text area.
static const EDIT_TEXT_TYPE =
const InAppWebViewHitTestResultType_._internal(9);
}
const InAppWebViewHitTestResultType_._internal(9);
}

View File

@ -24,16 +24,14 @@ class InAppWebViewInitialData_ {
Uri? androidHistoryUrl;
///The URL to use as the history entry. If `null` defaults to `about:blank`. If non-null, this must be a valid URL.
@SupportedPlatforms(platforms: [
AndroidPlatform()
])
@SupportedPlatforms(platforms: [AndroidPlatform()])
Uri? historyUrl;
InAppWebViewInitialData_(
{required this.data,
this.mimeType = "text/html",
this.encoding = "utf8",
this.baseUrl,
@Deprecated('Use historyUrl instead') this.androidHistoryUrl,
this.historyUrl});
}
this.mimeType = "text/html",
this.encoding = "utf8",
this.baseUrl,
@Deprecated('Use historyUrl instead') this.androidHistoryUrl,
this.historyUrl});
}

View File

@ -20,9 +20,9 @@ class InAppWebViewRect_ {
@ExchangeableObjectConstructor()
InAppWebViewRect_(
{required this.x,
required this.y,
required this.width,
required this.height}) {
required this.y,
required this.width,
required this.height}) {
assert(this.x >= 0 && this.y >= 0 && this.width >= 0 && this.height >= 0);
}
}
}

View File

@ -12,4 +12,4 @@ import '../in_app_webview/in_app_webview_controller.dart';
///
///Also, a [JavaScriptHandlerCallback] can return json data to the JavaScript side.
///In this case, simply return data that you want to send and it will be automatically json encoded using [jsonEncode] from the `dart:convert` library.
typedef dynamic JavaScriptHandlerCallback(List<dynamic> arguments);
typedef dynamic JavaScriptHandlerCallback(List<dynamic> arguments);

View File

@ -23,7 +23,7 @@ class JsAlertRequest_ {
JsAlertRequest_(
{this.url,
this.message,
@Deprecated("Use isMainFrame instead") this.iosIsMainFrame,
this.isMainFrame});
}
this.message,
@Deprecated("Use isMainFrame instead") this.iosIsMainFrame,
this.isMainFrame});
}

View File

@ -23,7 +23,7 @@ class JsAlertResponse_ {
JsAlertResponse_(
{this.message = "",
this.handledByClient = false,
this.confirmButtonTitle = "",
this.action = JsAlertResponseAction_.CONFIRM});
}
this.handledByClient = false,
this.confirmButtonTitle = "",
this.action = JsAlertResponseAction_.CONFIRM});
}

View File

@ -13,4 +13,4 @@ class JsAlertResponseAction_ {
///Confirm that the user hit confirm button.
static const CONFIRM = const JsAlertResponseAction_._internal(0);
}
}

View File

@ -14,4 +14,4 @@ class JsBeforeUnloadRequest_ {
String? message;
JsBeforeUnloadRequest_({this.url, this.message});
}
}

View File

@ -26,8 +26,8 @@ class JsBeforeUnloadResponse_ {
JsBeforeUnloadResponse_(
{this.message = "",
this.handledByClient = false,
this.confirmButtonTitle = "",
this.cancelButtonTitle = "",
this.action = JsBeforeUnloadResponseAction_.CONFIRM});
}
this.handledByClient = false,
this.confirmButtonTitle = "",
this.cancelButtonTitle = "",
this.action = JsBeforeUnloadResponseAction_.CONFIRM});
}

View File

@ -16,4 +16,4 @@ class JsBeforeUnloadResponseAction_ {
///Confirm that the user hit cancel button.
static const CANCEL = const JsBeforeUnloadResponseAction_._internal(1);
}
}

View File

@ -23,7 +23,7 @@ class JsConfirmRequest_ {
JsConfirmRequest_(
{this.url,
this.message,
@Deprecated("Use isMainFrame instead") this.iosIsMainFrame,
this.isMainFrame});
}
this.message,
@Deprecated("Use isMainFrame instead") this.iosIsMainFrame,
this.isMainFrame});
}

View File

@ -26,8 +26,8 @@ class JsConfirmResponse_ {
JsConfirmResponse_(
{this.message = "",
this.handledByClient = false,
this.confirmButtonTitle = "",
this.cancelButtonTitle = "",
this.action = JsConfirmResponseAction_.CANCEL});
}
this.handledByClient = false,
this.confirmButtonTitle = "",
this.cancelButtonTitle = "",
this.action = JsConfirmResponseAction_.CANCEL});
}

Some files were not shown because too many files have changed in this diff Show More