From afa3f333283d4c4614c918c89dcbb58d4ff59146 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 5 May 2022 21:01:09 +0200 Subject: [PATCH 001/130] fix #1168 --- CHANGELOG.md | 5 + .../HeadlessInAppWebView.java | 24 +- .../in_app_browser/InAppBrowserActivity.java | 101 +++-- .../in_app_webview/InputAwareWebView.java | 7 + example/ios/Flutter/Flutter.podspec | 18 - .../ios/Flutter/flutter_export_environment.sh | 7 +- .../package-lock.json | 358 ++++++++++++++---- pubspec.yaml | 2 +- 8 files changed, 383 insertions(+), 139 deletions(-) delete mode 100644 example/ios/Flutter/Flutter.podspec diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bdbcac5..477b18f0 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 5.4.3+5 + +- Fixed possible java.lang.NullPointerException in `Runnable` of `InputAwareWebView.setInputConnectionTarget` method +- Fixed "Android Crash in latest 5.4.3+4 - java.lang.NullPointerException: Attempt to invoke virtual method java.lang.String android.webkit.WebView.getUrl()" [#1168](https://github.com/pichillilorenzo/flutter_inappwebview/issues/1168) + ## 5.4.3+4 - Updated docs for `ChromeSafariBrowser.open` and throw error on iOS if the `url` parameter use a different scheme then `http` or `https` diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/headless_in_app_webview/HeadlessInAppWebView.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/headless_in_app_webview/HeadlessInAppWebView.java index 315db61b..3f5de5c3 100644 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/headless_in_app_webview/HeadlessInAppWebView.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/headless_in_app_webview/HeadlessInAppWebView.java @@ -74,18 +74,20 @@ public class HeadlessInAppWebView implements MethodChannel.MethodCallHandler { // Add the headless WebView to the view hierarchy. // This way is also possible to take screenshots. ViewGroup contentView = (ViewGroup) plugin.activity.findViewById(android.R.id.content); - ViewGroup mainView = (ViewGroup) (contentView).getChildAt(0); - if (mainView != null && flutterWebView != null) { - View view = flutterWebView.getView(); - final Map initialSize = (Map) params.get("initialSize"); - Size2D size = Size2D.fromMap(initialSize); - if (size != null) { - setSize(size); - } else { - view.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); + if (contentView != null) { + ViewGroup mainView = (ViewGroup) (contentView).getChildAt(0); + if (mainView != null && flutterWebView != null) { + View view = flutterWebView.getView(); + final Map initialSize = (Map) params.get("initialSize"); + Size2D size = Size2D.fromMap(initialSize); + if (size != null) { + setSize(size); + } else { + view.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); + } + mainView.addView(view, 0); + view.setVisibility(View.INVISIBLE); } - mainView.addView(view, 0); - view.setVisibility(View.INVISIBLE); } } } diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_browser/InAppBrowserActivity.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_browser/InAppBrowserActivity.java index 40276aeb..23687766 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_browser/InAppBrowserActivity.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_browser/InAppBrowserActivity.java @@ -49,18 +49,26 @@ public class InAppBrowserActivity extends AppCompatActivity implements InAppBrow public MethodChannel channel; public Integer windowId; public String id; + @Nullable public InAppWebView webView; + @Nullable public PullToRefreshLayout pullToRefreshLayout; @Nullable public ActionBar actionBar; + @Nullable public Menu menu; + @Nullable public SearchView searchView; public InAppBrowserOptions options = new InAppBrowserOptions(); + @Nullable public ProgressBar progressBar; public boolean isHidden = false; + @Nullable public String fromActivity; private List activityResultListeners = new ArrayList<>(); + @Nullable public InAppWebViewMethodHandler methodCallDelegate; + @Nullable public InAppBrowserManager manager; @Override @@ -199,58 +207,69 @@ public class InAppBrowserActivity extends AppCompatActivity implements InAppBrow public boolean onCreateOptionsMenu(Menu m) { menu = m; + if (actionBar != null && (options.toolbarTopFixedTitle == null || options.toolbarTopFixedTitle.isEmpty())) + actionBar.setTitle(webView.getTitle()); + + if (menu == null) + return super.onCreateOptionsMenu(m); + MenuInflater inflater = getMenuInflater(); // Inflate menu to add items to action bar if it is present. inflater.inflate(R.menu.menu_main, menu); - searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); - searchView.setFocusable(true); + MenuItem menuItem = menu.findItem(R.id.menu_search); + if (menuItem != null) { + if (options.hideUrlBar) + menuItem.setVisible(false); - if (options.hideUrlBar) - menu.findItem(R.id.menu_search).setVisible(false); + searchView = (SearchView) menuItem.getActionView(); + if (searchView != null) { + searchView.setFocusable(true); - searchView.setQuery(webView.getUrl(), false); + searchView.setQuery(webView != null ? webView.getUrl() : "", false); - if (actionBar != null && (options.toolbarTopFixedTitle == null || options.toolbarTopFixedTitle.isEmpty())) - actionBar.setTitle(webView.getTitle()); + searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + @Override + public boolean onQueryTextSubmit(String query) { + if (!query.isEmpty()) { + if (webView != null) + webView.loadUrl(query); + if (searchView != null) { + searchView.setQuery("", false); + searchView.setIconified(true); + } + return true; + } + return false; + } - searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { - @Override - public boolean onQueryTextSubmit(String query) { - if (!query.isEmpty()) { - webView.loadUrl(query); - searchView.setQuery("", false); - searchView.setIconified(true); - return true; - } - return false; - } + @Override + public boolean onQueryTextChange(String newText) { + return false; + } - @Override - public boolean onQueryTextChange(String newText) { - return false; - } + }); - }); + searchView.setOnCloseListener(new SearchView.OnCloseListener() { + @Override + public boolean onClose() { + if (searchView != null && searchView.getQuery().toString().isEmpty()) + searchView.setQuery(webView != null ? webView.getUrl() : "", false); + return false; + } + }); - searchView.setOnCloseListener(new SearchView.OnCloseListener() { - @Override - public boolean onClose() { - if (searchView.getQuery().toString().isEmpty()) - searchView.setQuery(webView.getUrl(), false); - return false; - } - }); - - searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() { - @Override - public void onFocusChange(View view, boolean b) { - if (!b) { - searchView.setQuery("", false); - searchView.setIconified(true); - } - } - }); + searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View view, boolean b) { + if (!b && searchView != null) { + searchView.setQuery("", false); + searchView.setIconified(true); + } + } + }); + } + } return true; } diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InputAwareWebView.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InputAwareWebView.java index e67c0e5d..50effb1f 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InputAwareWebView.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InputAwareWebView.java @@ -196,6 +196,13 @@ public class InputAwareWebView extends WebView { new Runnable() { @Override public void run() { + if (containerView == null) { + Log.e( + LOG_TAG, + "Can't set the input connection target because there is no containerView to use as a handler."); + return; + } + InputMethodManager imm = (InputMethodManager) getContext().getSystemService(INPUT_METHOD_SERVICE); // This is a hack to make InputMethodManager believe that the target view now has focus. diff --git a/example/ios/Flutter/Flutter.podspec b/example/ios/Flutter/Flutter.podspec deleted file mode 100644 index 663d5b29..00000000 --- a/example/ios/Flutter/Flutter.podspec +++ /dev/null @@ -1,18 +0,0 @@ -# -# NOTE: This podspec is NOT to be published. It is only used as a local source! -# This is a generated file; do not edit or check into version control. -# - -Pod::Spec.new do |s| - s.name = 'Flutter' - s.version = '1.0.0' - s.summary = 'High-performance, high-fidelity mobile apps.' - s.homepage = 'https://flutter.io' - s.license = { :type => 'MIT' } - s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' } - s.source = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s } - s.ios.deployment_target = '9.0' - # Framework linking is handled by Flutter tooling, not CocoaPods. - # Add a placeholder to satisfy `s.dependency 'Flutter'` plugin podspecs. - s.vendored_frameworks = 'path/to/nothing' -end diff --git a/example/ios/Flutter/flutter_export_environment.sh b/example/ios/Flutter/flutter_export_environment.sh index 9e98dd5e..dad54015 100755 --- a/example/ios/Flutter/flutter_export_environment.sh +++ b/example/ios/Flutter/flutter_export_environment.sh @@ -3,12 +3,11 @@ export "FLUTTER_ROOT=/Users/lorenzopichilli/fvm/versions/2.10.4" export "FLUTTER_APPLICATION_PATH=/Users/lorenzopichilli/Desktop/flutter_inappwebview/example" export "COCOAPODS_PARALLEL_CODE_SIGN=true" -export "FLUTTER_TARGET=/Users/lorenzopichilli/Desktop/flutter_inappwebview/example/lib/main.dart" +export "FLUTTER_TARGET=lib/main.dart" export "FLUTTER_BUILD_DIR=build" export "FLUTTER_BUILD_NAME=1.0.0" export "FLUTTER_BUILD_NUMBER=1" -export "DART_DEFINES=Zmx1dHRlci5pbnNwZWN0b3Iuc3RydWN0dXJlZEVycm9ycz10cnVl,RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ==" export "DART_OBFUSCATION=false" -export "TRACK_WIDGET_CREATION=true" +export "TRACK_WIDGET_CREATION=false" export "TREE_SHAKE_ICONS=false" -export "PACKAGE_CONFIG=/Users/lorenzopichilli/Desktop/flutter_inappwebview/example/.dart_tool/package_config.json" +export "PACKAGE_CONFIG=.packages" diff --git a/nodejs_server_test_auth_basic_and_ssl/package-lock.json b/nodejs_server_test_auth_basic_and_ssl/package-lock.json index 04f0a5dc..d914c657 100755 --- a/nodejs_server_test_auth_basic_and_ssl/package-lock.json +++ b/nodejs_server_test_auth_basic_and_ssl/package-lock.json @@ -5,12 +5,27 @@ "requires": true, "dependencies": { "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "dependencies": { + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + } } }, "array-flatten": { @@ -48,12 +63,28 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "requires": { - "safe-buffer": "5.1.2" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } } }, "content-type": { @@ -62,9 +93,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, "cookie-signature": { "version": "1.0.6", @@ -94,9 +125,9 @@ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, "ee-first": { "version": "1.1.1", @@ -119,66 +150,205 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", "requires": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.0", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" + }, + "dependencies": { + "body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + } } }, "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" + }, + "dependencies": { + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + } } }, "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -292,15 +462,20 @@ } }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -320,11 +495,11 @@ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "requires": { - "forwarded": "~0.1.2", + "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, @@ -365,41 +540,86 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "~1.7.2", + "http-errors": "2.0.0", "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", + "ms": "2.1.3", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" } } }, "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.1" + "send": "0.18.0" } }, "setprototypeof": { @@ -407,6 +627,16 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", diff --git a/pubspec.yaml b/pubspec.yaml index 2d8cc5f5..acc70580 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. -version: 5.4.3+4 +version: 5.4.3+5 homepage: https://github.com/pichillilorenzo/flutter_inappwebview environment: From 8e06d1d1b4477fb9a8eb88f5cdf4b338459e613f Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 5 May 2022 21:23:00 +0200 Subject: [PATCH 002/130] fix deprecated reference in doc --- example/ios/Flutter/flutter_export_environment.sh | 2 +- lib/src/in_app_webview/in_app_webview_options.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/example/ios/Flutter/flutter_export_environment.sh b/example/ios/Flutter/flutter_export_environment.sh index dad54015..a7327a33 100755 --- a/example/ios/Flutter/flutter_export_environment.sh +++ b/example/ios/Flutter/flutter_export_environment.sh @@ -1,7 +1,7 @@ #!/bin/sh # This is a generated file; do not edit or check into version control. export "FLUTTER_ROOT=/Users/lorenzopichilli/fvm/versions/2.10.4" -export "FLUTTER_APPLICATION_PATH=/Users/lorenzopichilli/Desktop/flutter_inappwebview/example" +export "FLUTTER_APPLICATION_PATH=/Users/lorenzopichilli/flutter_inappwebview_v5/example" export "COCOAPODS_PARALLEL_CODE_SIGN=true" export "FLUTTER_TARGET=lib/main.dart" export "FLUTTER_BUILD_DIR=build" diff --git a/lib/src/in_app_webview/in_app_webview_options.dart b/lib/src/in_app_webview/in_app_webview_options.dart index cad4d874..7c272034 100755 --- a/lib/src/in_app_webview/in_app_webview_options.dart +++ b/lib/src/in_app_webview/in_app_webview_options.dart @@ -99,7 +99,7 @@ class InAppWebViewOptions ///Set to `true` to be able to listen at the [WebView.onLoadResource] event. The default value is `false`. bool useOnLoadResource; - ///Set to `true` to be able to listen at the [WebView.onDownloadStart] event. The default value is `false`. + ///Set to `true` to be able to listen at the [WebView.onDownloadStartRequest] event. The default value is `false`. bool useOnDownloadStart; ///Set to `true` to have all the browser's cache cleared before the new WebView is opened. The default value is `false`. From a6cb4105b11ad6ccd23404981d75e03ed2d6525d Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 5 May 2022 21:46:14 +0200 Subject: [PATCH 003/130] fix #1173 --- CHANGELOG.md | 4 ++++ .../flutter_inappwebview/types/URLRequest.java | 17 +++++++++-------- example/ios/Flutter/Flutter.podspec | 18 ++++++++++++++++++ .../ios/Flutter/flutter_export_environment.sh | 7 ++++--- ios/Classes/Types/URLRequest.swift | 7 +++++-- lib/src/types.dart | 2 +- pubspec.yaml | 2 +- 7 files changed, 42 insertions(+), 15 deletions(-) create mode 100644 example/ios/Flutter/Flutter.podspec diff --git a/CHANGELOG.md b/CHANGELOG.md index 477b18f0..b6b18dc5 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.4.3+6 + +- Fixed "iOS flutter_inappwebview/URLRequest.swift:13: Fatal error: Unexpectedly found nil while unwrapping an Optional value" [#1173](https://github.com/pichillilorenzo/flutter_inappwebview/issues/1173) + ## 5.4.3+5 - Fixed possible java.lang.NullPointerException in `Runnable` of `InputAwareWebView.setInputConnectionTarget` method diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/types/URLRequest.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/types/URLRequest.java index 5dd33c14..e4037775 100644 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/types/URLRequest.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/types/URLRequest.java @@ -1,6 +1,5 @@ package com.pichillilorenzo.flutter_inappwebview.types; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; import java.util.Arrays; @@ -8,7 +7,7 @@ import java.util.HashMap; import java.util.Map; public class URLRequest { - @NonNull + @Nullable private String url; @Nullable private String method; @@ -17,7 +16,7 @@ public class URLRequest { @Nullable private Map headers; - public URLRequest(@NonNull String url, @Nullable String method, @Nullable byte[] body, @Nullable Map headers) { + public URLRequest(@Nullable String url, @Nullable String method, @Nullable byte[] body, @Nullable Map headers) { this.url = url; this.method = method; this.body = body; @@ -30,10 +29,12 @@ public class URLRequest { return null; } String url = (String) map.get("url"); + if (url == null) { + url = "about:blank"; + } String method = (String) map.get("method"); byte[] body = (byte[]) map.get("body"); Map headers = (Map) map.get("headers"); - assert url != null; return new URLRequest(url, method, body, headers); } @@ -45,12 +46,12 @@ public class URLRequest { return urlRequestMap; } - @NonNull + @Nullable public String getUrl() { return url; } - public void setUrl(@NonNull String url) { + public void setUrl(@Nullable String url) { this.url = url; } @@ -88,7 +89,7 @@ public class URLRequest { URLRequest that = (URLRequest) o; - if (!url.equals(that.url)) return false; + if (url != null ? !url.equals(that.url) : that.url != null) return false; if (method != null ? !method.equals(that.method) : that.method != null) return false; if (!Arrays.equals(body, that.body)) return false; return headers != null ? headers.equals(that.headers) : that.headers == null; @@ -96,7 +97,7 @@ public class URLRequest { @Override public int hashCode() { - int result = url.hashCode(); + int result = url != null ? url.hashCode() : 0; result = 31 * result + (method != null ? method.hashCode() : 0); result = 31 * result + Arrays.hashCode(body); result = 31 * result + (headers != null ? headers.hashCode() : 0); diff --git a/example/ios/Flutter/Flutter.podspec b/example/ios/Flutter/Flutter.podspec new file mode 100644 index 00000000..663d5b29 --- /dev/null +++ b/example/ios/Flutter/Flutter.podspec @@ -0,0 +1,18 @@ +# +# NOTE: This podspec is NOT to be published. It is only used as a local source! +# This is a generated file; do not edit or check into version control. +# + +Pod::Spec.new do |s| + s.name = 'Flutter' + s.version = '1.0.0' + s.summary = 'High-performance, high-fidelity mobile apps.' + s.homepage = 'https://flutter.io' + s.license = { :type => 'MIT' } + s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' } + s.source = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s } + s.ios.deployment_target = '9.0' + # Framework linking is handled by Flutter tooling, not CocoaPods. + # Add a placeholder to satisfy `s.dependency 'Flutter'` plugin podspecs. + s.vendored_frameworks = 'path/to/nothing' +end diff --git a/example/ios/Flutter/flutter_export_environment.sh b/example/ios/Flutter/flutter_export_environment.sh index a7327a33..de544d92 100755 --- a/example/ios/Flutter/flutter_export_environment.sh +++ b/example/ios/Flutter/flutter_export_environment.sh @@ -3,11 +3,12 @@ export "FLUTTER_ROOT=/Users/lorenzopichilli/fvm/versions/2.10.4" export "FLUTTER_APPLICATION_PATH=/Users/lorenzopichilli/flutter_inappwebview_v5/example" export "COCOAPODS_PARALLEL_CODE_SIGN=true" -export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_TARGET=integration_test/webview_flutter_test.dart" export "FLUTTER_BUILD_DIR=build" export "FLUTTER_BUILD_NAME=1.0.0" export "FLUTTER_BUILD_NUMBER=1" +export "DART_DEFINES=RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ==" export "DART_OBFUSCATION=false" -export "TRACK_WIDGET_CREATION=false" +export "TRACK_WIDGET_CREATION=true" export "TREE_SHAKE_ICONS=false" -export "PACKAGE_CONFIG=.packages" +export "PACKAGE_CONFIG=/Users/lorenzopichilli/flutter_inappwebview_v5/example/.dart_tool/package_config.json" diff --git a/ios/Classes/Types/URLRequest.swift b/ios/Classes/Types/URLRequest.swift index efaf3e3c..86704686 100644 --- a/ios/Classes/Types/URLRequest.swift +++ b/ios/Classes/Types/URLRequest.swift @@ -9,8 +9,11 @@ import Foundation extension URLRequest { public init(fromPluginMap: [String:Any?]) { - let url = fromPluginMap["url"] as! String - self.init(url: URL(string: url)!) + if let urlString = fromPluginMap["url"] as? String, let url = URL(string: urlString) { + self.init(url: url) + } else { + self.init(url: URL(string: "about:blank")!) + } if let method = fromPluginMap["method"] as? String { httpMethod = method diff --git a/lib/src/types.dart b/lib/src/types.dart index 198777cb..be9eebb3 100755 --- a/lib/src/types.dart +++ b/lib/src/types.dart @@ -6328,7 +6328,7 @@ class IOSShouldAllowDeprecatedTLSAction { ///A URL load request that is independent of protocol or URL scheme. class URLRequest { - ///The URL of the request. + ///The URL of the request. Setting this to `null` will load `about:blank`. Uri? url; ///The HTTP request method. diff --git a/pubspec.yaml b/pubspec.yaml index acc70580..56c02568 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. -version: 5.4.3+5 +version: 5.4.3+6 homepage: https://github.com/pichillilorenzo/flutter_inappwebview environment: From ef9580b287fdba269840e666444507eb417e88f3 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 5 May 2022 22:00:44 +0200 Subject: [PATCH 004/130] Fixed possible Android java.lang.NullPointerException in InAppBrowserActivity.onCreateOptionsMenu about webView.getTitle() --- CHANGELOG.md | 4 ++++ .../in_app_browser/InAppBrowserActivity.java | 2 +- pubspec.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6b18dc5..de330bb6 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.4.3+7 + +- Fixed possible Android java.lang.NullPointerException in InAppBrowserActivity.onCreateOptionsMenu about webView.getTitle() + ## 5.4.3+6 - Fixed "iOS flutter_inappwebview/URLRequest.swift:13: Fatal error: Unexpectedly found nil while unwrapping an Optional value" [#1173](https://github.com/pichillilorenzo/flutter_inappwebview/issues/1173) diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_browser/InAppBrowserActivity.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_browser/InAppBrowserActivity.java index 23687766..108ef0f4 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_browser/InAppBrowserActivity.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_browser/InAppBrowserActivity.java @@ -208,7 +208,7 @@ public class InAppBrowserActivity extends AppCompatActivity implements InAppBrow menu = m; if (actionBar != null && (options.toolbarTopFixedTitle == null || options.toolbarTopFixedTitle.isEmpty())) - actionBar.setTitle(webView.getTitle()); + actionBar.setTitle(webView != null ? webView.getTitle() : ""); if (menu == null) return super.onCreateOptionsMenu(m); diff --git a/pubspec.yaml b/pubspec.yaml index 56c02568..32ce620c 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. -version: 5.4.3+6 +version: 5.4.3+7 homepage: https://github.com/pichillilorenzo/flutter_inappwebview environment: From ee1b0d7ff754a49e9f995c68505da3556b9c830d Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 5 May 2022 22:00:54 +0200 Subject: [PATCH 005/130] Fixed possible Android java.lang.NullPointerException in InAppBrowserActivity.onCreateOptionsMenu about webView.getTitle() --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index de330bb6..b53591d1 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## 5.4.3+7 -- Fixed possible Android java.lang.NullPointerException in InAppBrowserActivity.onCreateOptionsMenu about webView.getTitle() +- Fixed possible Android java.lang.NullPointerException in "InAppBrowserActivity.onCreateOptionsMenu" about "webView.getTitle()" ## 5.4.3+6 From bd6e2548fc5c2280287cf9d9ecd46561cfc45081 Mon Sep 17 00:00:00 2001 From: Eugene Makar Date: Fri, 27 May 2022 09:29:50 +0300 Subject: [PATCH 006/130] fix leaking MethodChannel through anonymous class --- .../ServiceWorkerManager.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/ServiceWorkerManager.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/ServiceWorkerManager.java index ac2a654f..b9ff2958 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/ServiceWorkerManager.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/ServiceWorkerManager.java @@ -168,13 +168,7 @@ public class ServiceWorkerManager implements MethodChannel.MethodCallHandler { } private ServiceWorkerClientCompat dummyServiceWorkerClientCompat() { - return new ServiceWorkerClientCompat() { - @Nullable - @Override - public WebResourceResponse shouldInterceptRequest(@NonNull WebResourceRequest request) { - return null; - } - }; + return DummyServiceWorkerClientCompat.INSTANCE; } public void dispose() { @@ -185,4 +179,14 @@ public class ServiceWorkerManager implements MethodChannel.MethodCallHandler { } plugin = null; } + + private static final class DummyServiceWorkerClientCompat extends ServiceWorkerClientCompat { + static final ServiceWorkerClientCompat INSTANCE = new DummyServiceWorkerClientCompat(); + + @Nullable + @Override + public WebResourceResponse shouldInterceptRequest(@NonNull WebResourceRequest request) { + return null; + } + } } From 4fa28b0798aa27fd21247c77682758e396662ff0 Mon Sep 17 00:00:00 2001 From: liasica Date: Sun, 5 Jun 2022 00:41:27 +0800 Subject: [PATCH 007/130] Fix RangeError: Maximum call stack size exceeded --- .../plugin_scripts_js/JavaScriptBridgeJS.java | 4 +++- ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/plugin_scripts_js/JavaScriptBridgeJS.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/plugin_scripts_js/JavaScriptBridgeJS.java index 565a6120..f36fc042 100644 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/plugin_scripts_js/JavaScriptBridgeJS.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/plugin_scripts_js/JavaScriptBridgeJS.java @@ -147,7 +147,9 @@ public class JavaScriptBridgeJS { " });" + " }," + " arrayBufferToString: function(arrayBuffer) {" + - " return String.fromCharCode.apply(String, arrayBuffer);" + + " const uint8Array = new Uint8Array(arrayBuffer);" + + " const data = uint8Array.reduce((acc, i) => acc += String.fromCharCode.apply(null, [i]), '');" + + " return data;" + " }," + " isBodyFormData: function(bodyString) {" + " return bodyString.indexOf('------WebKitFormBoundary') >= 0;" + diff --git a/ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift b/ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift index 9aa6334d..8f9aa385 100644 --- a/ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift +++ b/ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift @@ -175,7 +175,9 @@ let UTIL_JS_SOURCE = """ }); }, arrayBufferToString: function(arrayBuffer) { - return String.fromCharCode.apply(String, arrayBuffer); + const uint8Array = new Uint8Array(arrayBuffer); + const data = uint8Array.reduce((acc, i) => acc += String.fromCharCode.apply(null, [i]), ''); + return data; }, isBodyFormData: function(bodyString) { return bodyString.indexOf('------WebKitFormBoundary') >= 0; From 65f045957982f0be732b3ce2a43a3c4dfa0e2cf8 Mon Sep 17 00:00:00 2001 From: Eiichiro Adachi Date: Mon, 27 Jun 2022 12:44:36 +0900 Subject: [PATCH 008/130] fix: try to open with Chrome if default browser app does not support custom tabs --- .../chrome_custom_tabs/CustomTabsHelper.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/CustomTabsHelper.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/CustomTabsHelper.java index c3f0198d..ce707253 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/CustomTabsHelper.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/CustomTabsHelper.java @@ -6,6 +6,7 @@ import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.net.Uri; +import android.os.Build; import android.text.TextUtils; import android.util.Log; @@ -59,7 +60,11 @@ public class CustomTabsHelper { } // Get all apps that can handle VIEW intents. - List resolvedActivityList = pm.queryIntentActivities(activityIntent, 0); + int flags = 0; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + flags |= PackageManager.MATCH_ALL; + } + List resolvedActivityList = pm.queryIntentActivities(activityIntent, flags); List packagesSupportingCustomTabs = new ArrayList<>(); for (ResolveInfo info : resolvedActivityList) { Intent serviceIntent = new Intent(); From 609ce9704abdd21b1fba68e1c2f4b0f27c68be5a Mon Sep 17 00:00:00 2001 From: Eiichiro Adachi Date: Mon, 27 Jun 2022 15:09:29 +0900 Subject: [PATCH 009/130] fix: set category to browser search intent to avoid unexpected query result --- .../chrome_custom_tabs/CustomTabsHelper.java | 1 + 1 file changed, 1 insertion(+) diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/CustomTabsHelper.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/CustomTabsHelper.java index ce707253..f49e3470 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/CustomTabsHelper.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/CustomTabsHelper.java @@ -53,6 +53,7 @@ public class CustomTabsHelper { PackageManager pm = context.getPackageManager(); // Get default VIEW intent handler. Intent activityIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com")); + activityIntent.addCategory(Intent.CATEGORY_BROWSABLE); ResolveInfo defaultViewHandlerInfo = pm.resolveActivity(activityIntent, 0); String defaultViewHandlerPackageName = null; if (defaultViewHandlerInfo != null) { From 06f87e81c4f55b7b251a149ec0db60442bb351c3 Mon Sep 17 00:00:00 2001 From: CodeEagle Date: Wed, 29 Jun 2022 14:51:45 +0800 Subject: [PATCH 010/130] change: fixed Xcode 14 build error --- ios/Classes/Types/UserScript.swift | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ios/Classes/Types/UserScript.swift b/ios/Classes/Types/UserScript.swift index c843e2b8..fe5a0517 100644 --- a/ios/Classes/Types/UserScript.swift +++ b/ios/Classes/Types/UserScript.swift @@ -10,8 +10,19 @@ import WebKit public class UserScript : WKUserScript { var groupName: String? + + var contentWorldWrapper: Any? @available(iOS 14.0, *) - lazy var contentWorld: WKContentWorld = WKContentWorld.page + var contentWorld: WKContentWorld { + get { + if let value = contentWorldWrapper as? WKContentWorld { + return value + } + return .page + } + set { contentWorldWrapper = newValue } + } + public override init(source: String, injectionTime: WKUserScriptInjectionTime, forMainFrameOnly: Bool) { super.init(source: source, injectionTime: injectionTime, forMainFrameOnly: forMainFrameOnly) From 5efb54284d09b6b9d528df7652e340409d7701a4 Mon Sep 17 00:00:00 2001 From: Akio Yamamoto Date: Sat, 2 Jul 2022 16:56:00 +0900 Subject: [PATCH 011/130] Client certificate from local storage Added a feature to read a client certificate from local storage. --- .../com/pichillilorenzo/flutter_inappwebview/Util.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java index fceaffbf..485297a1 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java @@ -19,6 +19,7 @@ import org.json.JSONObject; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; +import java.io.FileInputStream; import java.net.Inet6Address; import java.net.InetAddress; import java.net.UnknownHostException; @@ -141,7 +142,13 @@ public class Util { PrivateKeyAndCertificates privateKeyAndCertificates = null; try { - InputStream certificateFileStream = getFileAsset(plugin, certificatePath); + InputStream certificateFileStream = null; + if(certificatePath.startsWith("/") == true) { + certificateFileStream = new FileInputStream(certificatePath); + } + else { + certificateFileStream = getFileAsset(plugin, certificatePath); + } KeyStore keyStore = KeyStore.getInstance(keyStoreType); keyStore.load(certificateFileStream, certificatePassword != null ? certificatePassword.toCharArray() : null); From 038c64321a1cca3ebaf5e80e92d96bd6d67c8372 Mon Sep 17 00:00:00 2001 From: qinjc Date: Tue, 26 Jul 2022 12:52:12 +0800 Subject: [PATCH 012/130] fix #1260 issue fix when gradle.properties set `android.nonTransitiveRClass=true` , `Theme_AppCompat_Dialog_Alert` can not find issue --- .../in_app_webview/InAppWebViewChromeClient.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewChromeClient.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewChromeClient.java index 0cb92643..f8de9541 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewChromeClient.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewChromeClient.java @@ -246,7 +246,7 @@ public class InAppWebViewChromeClient extends WebChromeClient implements PluginR return; } - AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity, R.style.Theme_AppCompat_Dialog_Alert); + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity, androidx.appcompat.R.style.Theme_AppCompat_Dialog_Alert); alertDialogBuilder.setMessage(alertMessage); if (confirmButtonTitle != null && !confirmButtonTitle.isEmpty()) { alertDialogBuilder.setPositiveButton(confirmButtonTitle, clickListener); @@ -342,7 +342,7 @@ public class InAppWebViewChromeClient extends WebChromeClient implements PluginR return; } - AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity, R.style.Theme_AppCompat_Dialog_Alert); + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity, androidx.appcompat.R.style.Theme_AppCompat_Dialog_Alert); alertDialogBuilder.setMessage(alertMessage); if (confirmButtonTitle != null && !confirmButtonTitle.isEmpty()) { alertDialogBuilder.setPositiveButton(confirmButtonTitle, confirmClickListener); @@ -464,7 +464,7 @@ public class InAppWebViewChromeClient extends WebChromeClient implements PluginR return; } - AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity, R.style.Theme_AppCompat_Dialog_Alert); + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity, androidx.appcompat.R.style.Theme_AppCompat_Dialog_Alert); alertDialogBuilder.setMessage(alertMessage); if (confirmButtonTitle != null && !confirmButtonTitle.isEmpty()) { alertDialogBuilder.setPositiveButton(confirmButtonTitle, confirmClickListener); @@ -565,7 +565,7 @@ public class InAppWebViewChromeClient extends WebChromeClient implements PluginR return; } - AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity, R.style.Theme_AppCompat_Dialog_Alert); + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity, androidx.appcompat.R.style.Theme_AppCompat_Dialog_Alert); alertDialogBuilder.setMessage(alertMessage); if (confirmButtonTitle != null && !confirmButtonTitle.isEmpty()) { alertDialogBuilder.setPositiveButton(confirmButtonTitle, confirmClickListener); From 252d836d52bff32870ed1b72231e428b0009e89e Mon Sep 17 00:00:00 2001 From: CodeEagle Date: Wed, 24 Aug 2022 18:46:17 +0800 Subject: [PATCH 013/130] change: make contentWorldWrapper private --- ios/Classes/Types/UserScript.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/Classes/Types/UserScript.swift b/ios/Classes/Types/UserScript.swift index fe5a0517..e03b6de2 100644 --- a/ios/Classes/Types/UserScript.swift +++ b/ios/Classes/Types/UserScript.swift @@ -11,7 +11,7 @@ import WebKit public class UserScript : WKUserScript { var groupName: String? - var contentWorldWrapper: Any? + private var contentWorldWrapper: Any? @available(iOS 14.0, *) var contentWorld: WKContentWorld { get { From a5be2c59be414b78f27a347e81f236c8f6b592d5 Mon Sep 17 00:00:00 2001 From: Ben Anderson Date: Tue, 30 Aug 2022 12:16:43 +1200 Subject: [PATCH 014/130] Allow a cookie without a domain to be set on Android The other CookieManager implementations in Flutter allow for no domain, as the Android CookieManager implementation. By providing a default domain, applications cannot opt-out of the default CookieManager.setCookie behaviour (which prepends a "period" to the domain), which is treated as a different domain by Webkit on Android. This leads to multiple cookies for the same URL if the server serves a cookie without a domain, or with a domain that does not contain a leading period. Note, iOS's setCookie doesn't take a url parameter (at least in the way it's called from flutter_inappwebview) and instead this is passed an attribute on the HTTPCookie object itself (originURL). When constructing a HTTPCookie you must supply either originURL OR domain. Both a permitted, but at least one must be present. [1] By making domain optional, without a default, on both platforms, consumers can now set cookies that don't use the domain attribute but still allows for setting a domain when required. [1] https://developer.apple.com/documentation/foundation/httpcookie/1392975-init --- .../flutter_inappwebview/MyCookieManager.java | 5 ++++- ios/Classes/MyCookieManager.swift | 12 ++++++++---- lib/src/cookie_manager.dart | 10 ++++------ 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/MyCookieManager.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/MyCookieManager.java index 5ed98435..a6ba6d9e 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/MyCookieManager.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/MyCookieManager.java @@ -140,7 +140,10 @@ public class MyCookieManager implements MethodChannel.MethodCallHandler { cookieManager = getCookieManager(); if (cookieManager == null) return; - String cookieValue = name + "=" + value + "; Domain=" + domain + "; Path=" + path; + String cookieValue = name + "=" + value + "; Path=" + path; + + if (domain != null) + cookieValue += "; Domain=" + domain; if (expiresDate != null) cookieValue += "; Expires=" + getCookieExpirationDate(expiresDate); diff --git a/ios/Classes/MyCookieManager.swift b/ios/Classes/MyCookieManager.swift index 1f892d87..1e13d88f 100755 --- a/ios/Classes/MyCookieManager.swift +++ b/ios/Classes/MyCookieManager.swift @@ -35,7 +35,6 @@ class MyCookieManager: NSObject, FlutterPlugin { let url = arguments!["url"] as! String let name = arguments!["name"] as! String let value = arguments!["value"] as! String - let domain = arguments!["domain"] as! String let path = arguments!["path"] as! String var expiresDate: Int64? @@ -47,12 +46,13 @@ class MyCookieManager: NSObject, FlutterPlugin { let isSecure = arguments!["isSecure"] as? Bool let isHttpOnly = arguments!["isHttpOnly"] as? Bool let sameSite = arguments!["sameSite"] as? String + let domain = arguments!["domain"] as? String MyCookieManager.setCookie(url: url, name: name, value: value, - domain: domain, path: path, + domain: domain, expiresDate: expiresDate, maxAge: maxAge, isSecure: isSecure, @@ -92,8 +92,8 @@ class MyCookieManager: NSObject, FlutterPlugin { public static func setCookie(url: String, name: String, value: String, - domain: String, path: String, + domain: String?, expiresDate: Int64?, maxAge: Int64?, isSecure: Bool?, @@ -109,8 +109,12 @@ class MyCookieManager: NSObject, FlutterPlugin { properties[.originURL] = url properties[.name] = name properties[.value] = value - properties[.domain] = domain properties[.path] = path + + if domain != nil { + properties[.domain] = domain + } + if expiresDate != nil { // convert from milliseconds properties[.expires] = Date(timeIntervalSince1970: TimeInterval(Double(expiresDate!)/1000)) diff --git a/lib/src/cookie_manager.dart b/lib/src/cookie_manager.dart index 7839a501..fbfdaac0 100755 --- a/lib/src/cookie_manager.dart +++ b/lib/src/cookie_manager.dart @@ -63,12 +63,9 @@ class CookieManager { bool? isHttpOnly, HTTPCookieSameSitePolicy? sameSite, InAppWebViewController? iosBelow11WebViewController}) async { - if (domain == null) domain = _getDomainName(url); - assert(url.toString().isNotEmpty); assert(name.isNotEmpty); assert(value.isNotEmpty); - assert(domain.isNotEmpty); assert(path.isNotEmpty); if (defaultTargetPlatform == TargetPlatform.iOS) { @@ -109,15 +106,16 @@ class CookieManager { {required Uri url, required String name, required String value, - required String domain, String path = "/", + String? domain, int? expiresDate, int? maxAge, bool? isSecure, HTTPCookieSameSitePolicy? sameSite, InAppWebViewController? webViewController}) async { - var cookieValue = - name + "=" + value + "; Domain=" + domain + "; Path=" + path; + var cookieValue = name + "=" + value + "; Path=" + path; + + if (domain != null) cookieValue += "; Domain=" + domain; if (expiresDate != null) cookieValue += "; Expires=" + await _getCookieExpirationDate(expiresDate); From 3b735a79658242227cf09995e9637fbc98847c03 Mon Sep 17 00:00:00 2001 From: Doflatango Date: Fri, 2 Sep 2022 19:48:35 +0800 Subject: [PATCH 015/130] Catch and ignore utf8 format exception in getFavicons() --- .../in_app_webview_controller.dart | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/src/in_app_webview/in_app_webview_controller.dart b/lib/src/in_app_webview/in_app_webview_controller.dart index b2be39c4..09fae84f 100644 --- a/lib/src/in_app_webview/in_app_webview_controller.dart +++ b/lib/src/in_app_webview/in_app_webview_controller.dart @@ -1096,13 +1096,18 @@ class InAppWebViewController { } if (manifestFound) { - Map manifest = - json.decode(await manifestResponse!.transform(Utf8Decoder()).join()); - if (manifest.containsKey("icons")) { - for (Map icon in manifest["icons"]) { - favicons.addAll(_createFavicons(webviewUrl, assetPathBase, - icon["src"], icon["rel"], icon["sizes"], true)); + try { + Map manifest = + json.decode(await manifestResponse!.transform(Utf8Decoder()).join()); + if (manifest.containsKey("icons")) { + for (Map icon in manifest["icons"]) { + favicons.addAll(_createFavicons(webviewUrl, assetPathBase, + icon["src"], icon["rel"], icon["sizes"], true)); + } } + } on FormatException catch (_) { + /// The [manifestResponse] might not has a valid JSON string, catch and + /// ignore the error } } From cf27507cfe6e7d869d4212b83115da9c16fd7fef Mon Sep 17 00:00:00 2001 From: Daan Poron Date: Tue, 13 Sep 2022 15:04:58 +0200 Subject: [PATCH 016/130] Disable exporting activities for Android --- android/src/main/AndroidManifest.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 4f8a4911..c509a1fe 100755 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -4,25 +4,25 @@ Date: Fri, 16 Sep 2022 03:55:52 +0900 Subject: [PATCH 017/130] add directoryIndex option --- lib/src/in_app_localhost_server.dart | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/src/in_app_localhost_server.dart b/lib/src/in_app_localhost_server.dart index 2c7d2c5d..e9df92f2 100755 --- a/lib/src/in_app_localhost_server.dart +++ b/lib/src/in_app_localhost_server.dart @@ -11,9 +11,14 @@ class InAppLocalhostServer { bool _started = false; HttpServer? _server; int _port = 8080; + String _directoryIndex = 'index.html'; - InAppLocalhostServer({int port = 8080}) { + InAppLocalhostServer({ + int port = 8080, + String directoryIndex = 'index.html', + }) { this._port = port; + this._directoryIndex = directoryIndex; } ///Starts the server on `http://localhost:[port]/`. @@ -46,7 +51,7 @@ class InAppLocalhostServer { var path = request.requestedUri.path; path = (path.startsWith('/')) ? path.substring(1) : path; - path += (path.endsWith('/')) ? 'index.html' : ''; + path += (path.endsWith('/')) ? _directoryIndex : ''; try { body = (await rootBundle.load(path)).buffer.asUint8List(); From 99c083a02b7d2e2e9dd063c93718b44ea2e9dad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= <34892635+fa0311@users.noreply.github.com> Date: Fri, 16 Sep 2022 03:57:15 +0900 Subject: [PATCH 018/130] add documentRoot option --- lib/src/in_app_localhost_server.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/src/in_app_localhost_server.dart b/lib/src/in_app_localhost_server.dart index e9df92f2..91acb5bf 100755 --- a/lib/src/in_app_localhost_server.dart +++ b/lib/src/in_app_localhost_server.dart @@ -12,13 +12,16 @@ class InAppLocalhostServer { HttpServer? _server; int _port = 8080; String _directoryIndex = 'index.html'; + String _documentRoot = './'; InAppLocalhostServer({ int port = 8080, String directoryIndex = 'index.html', + String documentRoot = './', }) { this._port = port; this._directoryIndex = directoryIndex; + this._documentRoot = (documentRoot.endsWith('/')) ? documentRoot : '$documentRoot/'; } ///Starts the server on `http://localhost:[port]/`. @@ -52,6 +55,7 @@ class InAppLocalhostServer { var path = request.requestedUri.path; path = (path.startsWith('/')) ? path.substring(1) : path; path += (path.endsWith('/')) ? _directoryIndex : ''; + path = _documentRoot + path; try { body = (await rootBundle.load(path)).buffer.asUint8List(); From 2f48b814031a0423585b03cfa2d63183364afe4d Mon Sep 17 00:00:00 2001 From: Serjke Sorochinskiy Date: Fri, 30 Sep 2022 15:42:37 +0400 Subject: [PATCH 019/130] fix(ios): invoke onBrowserCreated when viewDidLoad is called with windowId --- ios/Classes/InAppBrowser/InAppBrowserWebViewController.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/ios/Classes/InAppBrowser/InAppBrowserWebViewController.swift b/ios/Classes/InAppBrowser/InAppBrowserWebViewController.swift index ffcc6f7f..e4292fdc 100755 --- a/ios/Classes/InAppBrowser/InAppBrowserWebViewController.swift +++ b/ios/Classes/InAppBrowser/InAppBrowserWebViewController.swift @@ -116,6 +116,7 @@ public class InAppBrowserWebViewController: UIViewController, InAppBrowserDelega if let wId = windowId, let webViewTransport = InAppWebView.windowWebViews[wId] { webView.load(webViewTransport.request) + onBrowserCreated() } else { if #available(iOS 11.0, *) { if let contentBlockers = webView.options?.contentBlockers, contentBlockers.count > 0 { From 6c0daad20e57d17c8c0a222ededf7ce9f412b500 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 13:58:40 +0200 Subject: [PATCH 020/130] fixed example for iOS --- CHANGELOG.md | 5 + example/ios/Flutter/AppFrameworkInfo.plist | 2 +- example/ios/Flutter/Flutter.podspec | 8 +- example/ios/Podfile | 2 +- example/ios/Runner.xcodeproj/project.pbxproj | 8 +- example/ios/Runner/Info.plist | 2 + example/test_assets/certificate.pfx | Bin 5629 -> 5637 bytes .../ca-crt.srl | 2 +- .../certificate.pfx | Bin 5629 -> 5637 bytes .../client.js | 20 +++ .../client1-crt.pem | 56 ++++---- .../client2-crt.pem | 56 ++++---- .../index.js | 10 ++ .../package-lock.json | 135 +++++++++--------- .../package.json | 4 +- .../server-crt.pem | 56 ++++---- pubspec.yaml | 2 +- 17 files changed, 205 insertions(+), 163 deletions(-) create mode 100644 nodejs_server_test_auth_basic_and_ssl/client.js mode change 100755 => 100644 nodejs_server_test_auth_basic_and_ssl/client1-crt.pem mode change 100755 => 100644 nodejs_server_test_auth_basic_and_ssl/client2-crt.pem diff --git a/CHANGELOG.md b/CHANGELOG.md index b53591d1..c6ff5675 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 5.4.3+8 + +- Merged "Xcode 14 build error: Stored properties cannot be marked potentially unavailable with '@available'" [#1216](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1216) (thanks to [chreck](https://github.com/SethuSenthil)) +- Fixed example for iOS + ## 5.4.3+7 - Fixed possible Android java.lang.NullPointerException in "InAppBrowserActivity.onCreateOptionsMenu" about "webView.getTitle()" diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist index 8d4492f9..9625e105 100755 --- a/example/ios/Flutter/AppFrameworkInfo.plist +++ b/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 9.0 + 11.0 diff --git a/example/ios/Flutter/Flutter.podspec b/example/ios/Flutter/Flutter.podspec index 663d5b29..8ce43943 100644 --- a/example/ios/Flutter/Flutter.podspec +++ b/example/ios/Flutter/Flutter.podspec @@ -6,12 +6,12 @@ Pod::Spec.new do |s| s.name = 'Flutter' s.version = '1.0.0' - s.summary = 'High-performance, high-fidelity mobile apps.' - s.homepage = 'https://flutter.io' - s.license = { :type => 'MIT' } + s.summary = 'A UI toolkit for beautiful and fast apps.' + s.homepage = 'https://flutter.dev' + s.license = { :type => 'BSD' } s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' } s.source = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s } - s.ios.deployment_target = '9.0' + s.ios.deployment_target = '11.0' # Framework linking is handled by Flutter tooling, not CocoaPods. # Add a placeholder to satisfy `s.dependency 'Flutter'` plugin podspecs. s.vendored_frameworks = 'path/to/nothing' diff --git a/example/ios/Podfile b/example/ios/Podfile index 1e8c3c90..88359b22 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '9.0' +# platform :ios, '11.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index da4b6637..179e1dde 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -375,7 +375,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -427,7 +427,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; @@ -456,7 +456,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.pichillilorenzo.flutter-inappwebview-Example"; + PRODUCT_BUNDLE_IDENTIFIER = "com.pichillilorenzo.flutter-inappwebview--Example"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -484,7 +484,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.pichillilorenzo.flutter-inappwebview-Example"; + PRODUCT_BUNDLE_IDENTIFIER = "com.pichillilorenzo.flutter-inappwebview--Example"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist index d78c9615..fe8e5ffd 100755 --- a/example/ios/Runner/Info.plist +++ b/example/ios/Runner/Info.plist @@ -73,5 +73,7 @@ UIViewControllerBasedStatusBarAppearance + CADisableMinimumFrameDurationOnPhone + diff --git a/example/test_assets/certificate.pfx b/example/test_assets/certificate.pfx index 3225678f2496fe0a2c632dde05acc7337b66b44c..6e3621075d27a5d473303fb4a3dfff59b003ff23 100755 GIT binary patch delta 5594 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 delta 5586 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 diff --git a/nodejs_server_test_auth_basic_and_ssl/ca-crt.srl b/nodejs_server_test_auth_basic_and_ssl/ca-crt.srl index 06b1afb8..24cec440 100755 --- a/nodejs_server_test_auth_basic_and_ssl/ca-crt.srl +++ b/nodejs_server_test_auth_basic_and_ssl/ca-crt.srl @@ -1 +1 @@ -B83E5BFA72399E6B +B83E5BFA72399E73 diff --git a/nodejs_server_test_auth_basic_and_ssl/certificate.pfx b/nodejs_server_test_auth_basic_and_ssl/certificate.pfx index 3225678f2496fe0a2c632dde05acc7337b66b44c..6e3621075d27a5d473303fb4a3dfff59b003ff23 100755 GIT binary patch delta 5594 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 delta 5586 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 diff --git a/nodejs_server_test_auth_basic_and_ssl/client.js b/nodejs_server_test_auth_basic_and_ssl/client.js new file mode 100644 index 00000000..2ac4d2fe --- /dev/null +++ b/nodejs_server_test_auth_basic_and_ssl/client.js @@ -0,0 +1,20 @@ +var fs = require('fs'); +var https = require('https'); +var options = { + hostname: 'localhost', + port: 4433, + path: '/', + method: 'GET', + key: fs.readFileSync('client1-key.pem'), + cert: fs.readFileSync('client1-crt.pem'), + // pfx: fs.readFileSync('certificate.pfx'), + ca: fs.readFileSync('ca-crt.pem') }; +var req = https.request(options, function(res) { + res.on('data', function(data) { + process.stdout.write(data); + }); +}); +req.end(); +req.on('error', function(e) { + console.error(e); +}); \ No newline at end of file diff --git a/nodejs_server_test_auth_basic_and_ssl/client1-crt.pem b/nodejs_server_test_auth_basic_and_ssl/client1-crt.pem old mode 100755 new mode 100644 index 3f32b538..6df405aa --- a/nodejs_server_test_auth_basic_and_ssl/client1-crt.pem +++ b/nodejs_server_test_auth_basic_and_ssl/client1-crt.pem @@ -1,32 +1,32 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- diff --git a/nodejs_server_test_auth_basic_and_ssl/client2-crt.pem b/nodejs_server_test_auth_basic_and_ssl/client2-crt.pem old mode 100755 new mode 100644 index 2eceb939..a97991f5 --- a/nodejs_server_test_auth_basic_and_ssl/client2-crt.pem +++ b/nodejs_server_test_auth_basic_and_ssl/client2-crt.pem @@ -1,32 +1,32 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- diff --git a/nodejs_server_test_auth_basic_and_ssl/index.js b/nodejs_server_test_auth_basic_and_ssl/index.js index f6bcdb16..602c7244 100755 --- a/nodejs_server_test_auth_basic_and_ssl/index.js +++ b/nodejs_server_test_auth_basic_and_ssl/index.js @@ -1,5 +1,15 @@ // Example of the server https is taken from here: https://engineering.circle.com/https-authorized-certs-with-node-js-315e548354a2 +// Renew certificates: +// - openssl x509 -req -extfile server.cnf -days 9999 -passin "pass:password" -in server-csr.pem -CA ca-crt.pem -CAkey ca-key.pem -CAcreateserial -out server-crt.pem +// - openssl x509 -req -extfile client1.cnf -days 9999 -passin "pass:password" -in client1-csr.pem -CA ca-crt.pem -CAkey ca-key.pem -CAcreateserial -out client1-crt.pem +// - openssl x509 -req -extfile client2.cnf -days 9999 -passin "pass:password" -in client2-csr.pem -CA ca-crt.pem -CAkey ca-key.pem -CAcreateserial -out client2-crt.pem +// Verify certificates: +// - openssl verify -CAfile ca-crt.pem server-crt.pem +// - openssl verify -CAfile ca-crt.pem client1-crt.pem +// - openssl verify -CAfile ca-crt.pem client2-crt.pem // Conversion of client1-crt.pem to certificate.pfx: https://stackoverflow.com/a/38408666/4637638 +// - openssl pkcs12 -export -out certificate.pfx -inkey client1-key.pem -in client1-crt.pem -certfile ca-crt.pem +// - Overwrite certificate.pfx to example/test_assets/certificate.pfx const express = require('express') const https = require('https') const cors = require('cors') diff --git a/nodejs_server_test_auth_basic_and_ssl/package-lock.json b/nodejs_server_test_auth_basic_and_ssl/package-lock.json index d914c657..295ca7b9 100755 --- a/nodejs_server_test_auth_basic_and_ssl/package-lock.json +++ b/nodejs_server_test_auth_basic_and_ssl/package-lock.json @@ -42,26 +42,28 @@ } }, "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", "requires": { - "bytes": "3.1.0", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" } }, "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, "call-bind": { "version": "1.0.2", @@ -120,9 +122,9 @@ } }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, "destroy": { "version": "1.2.0", @@ -350,15 +352,15 @@ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" } }, "https": { @@ -375,9 +377,9 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ipaddr.js": { "version": "1.9.1", @@ -423,41 +425,41 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multiparty": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-4.2.2.tgz", - "integrity": "sha512-NtZLjlvsjcoGrzojtwQwn/Tm90aWJ6XXtPppYF4WmOk/6ncdwMMKggFY2NlRRN9yiCEIVxpOfPWahVEG2HAG8Q==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-4.2.3.tgz", + "integrity": "sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ==", "requires": { - "http-errors": "~1.8.0", + "http-errors": "~1.8.1", "safe-buffer": "5.2.1", "uid-safe": "2.1.5" }, "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + }, "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "requires": { "depd": "~1.1.2", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "toidentifier": "1.0.1" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" } } }, @@ -477,9 +479,9 @@ "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" }, "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "requires": { "ee-first": "1.1.1" } @@ -504,14 +506,17 @@ } }, "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } }, "random-bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==" }, "range-parser": { "version": "1.2.1", @@ -519,12 +524,12 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } @@ -623,9 +628,9 @@ } }, "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "side-channel": { "version": "1.0.4", @@ -638,14 +643,14 @@ } }, "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, "type-is": { "version": "1.6.18", diff --git a/nodejs_server_test_auth_basic_and_ssl/package.json b/nodejs_server_test_auth_basic_and_ssl/package.json index 6feac6cc..ef405936 100755 --- a/nodejs_server_test_auth_basic_and_ssl/package.json +++ b/nodejs_server_test_auth_basic_and_ssl/package.json @@ -10,10 +10,10 @@ "license": "ISC", "dependencies": { "basic-auth": "latest", - "body-parser": "^1.19.0", + "body-parser": "^1.20.0", "cors": "^2.8.5", "express": "latest", "https": "latest", - "multiparty": "^4.2.2" + "multiparty": "^4.2.3" } } diff --git a/nodejs_server_test_auth_basic_and_ssl/server-crt.pem b/nodejs_server_test_auth_basic_and_ssl/server-crt.pem index b1f82664..4878b880 100755 --- a/nodejs_server_test_auth_basic_and_ssl/server-crt.pem +++ b/nodejs_server_test_auth_basic_and_ssl/server-crt.pem @@ -1,32 +1,32 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- diff --git a/pubspec.yaml b/pubspec.yaml index 32ce620c..30bce434 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. -version: 5.4.3+7 +version: 5.4.3+8 homepage: https://github.com/pichillilorenzo/flutter_inappwebview environment: From c2f37fd2956e36aa465f61efbb47dbfa735cd387 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 14:08:02 +0200 Subject: [PATCH 021/130] updated LICENSE --- LICENSE | 197 +++----------------------------------------------------- 1 file changed, 10 insertions(+), 187 deletions(-) diff --git a/LICENSE b/LICENSE index d6493fe1..ce6d86e5 100755 --- a/LICENSE +++ b/LICENSE @@ -1,190 +1,13 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ +Copyright 2018-2022 Lorenzo Pichilli - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at - 1. Definitions. + http://www.apache.org/licenses/LICENSE-2.0 - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2018-2020 Lorenzo Pichilli - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. \ No newline at end of file From 7d17a6a6975bacd6f60459b439d595ed64cce579 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 14:45:36 +0200 Subject: [PATCH 022/130] fixed CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c6ff5675..54b90338 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## 5.4.3+8 -- Merged "Xcode 14 build error: Stored properties cannot be marked potentially unavailable with '@available'" [#1216](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1216) (thanks to [chreck](https://github.com/SethuSenthil)) +- Merged "Xcode 14 build error: Stored properties cannot be marked potentially unavailable with '@available'" [#1238](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1238) (thanks to [CodeEagle](https://github.com/CodeEagle)) - Fixed example for iOS ## 5.4.3+7 From dd5a2fdacbcdbfabacdd0709638f3df3397d9fc6 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:47 +0200 Subject: [PATCH 023/130] Add @AlexV525 as a contributor --- .all-contributorsrc | 25 +++++++++++++++++++++++++ README.md | 30 +++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 .all-contributorsrc diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 00000000..e81ad53b --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,25 @@ +{ + "projectName": "flutter_inappwebview", + "projectOwner": "pichillilorenzo", + "repoType": "github", + "repoHost": "https://github.com", + "files": [ + "README.md" + ], + "imageSize": 100, + "commit": true, + "commitConvention": "none", + "contributors": [ + { + "login": "AlexV525", + "name": "Alex Li", + "avatar_url": "https://avatars.githubusercontent.com/u/15884415?v=4", + "profile": "https://blog.alexv525.com/", + "contributions": [ + "code" + ] + } + ], + "contributorsPerLine": 7, + "linkToUsage": false +} diff --git a/README.md b/README.md index 3b0f4b04..5d93ec5c 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) + +[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-) + [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) [![pub points](https://badges.bar/flutter_inappwebview/pub%20points)](https://pub.dev/packages/flutter_inappwebview/score) @@ -59,4 +62,29 @@ Add `flutter_inappwebview` as a [dependency in your pubspec.yaml file](https://f ## Support -Did you find this plugin useful? Please consider to [make a donation](https://inappwebview.dev/donate/) to help improve it! \ No newline at end of file +Did you find this plugin useful? Please consider to [make a donation](https://inappwebview.dev/donate/) to help improve it! + +## Contributors ✨ + +Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + + + + + +
Alex Li
Alex Li

💻
+ + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! \ No newline at end of file From 06233c574f75ad4297acfb7f1f484e2c853badaa Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:48 +0200 Subject: [PATCH 024/130] Add @crazecoder as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index e81ad53b..28ffd6e2 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -18,6 +18,15 @@ "contributions": [ "code" ] + }, + { + "login": "crazecoder", + "name": "1/2", + "avatar_url": "https://avatars.githubusercontent.com/u/18387906?v=4", + "profile": "https://github.com/crazecoder", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 5d93ec5c..f0165d36 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -75,6 +75,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Alex Li
Alex Li

💻 + 1/2
1/2

💻 From 7f91370ff7dd635a47cc2002c884405bbbdb60ff Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:48 +0200 Subject: [PATCH 025/130] Add @cbodin as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 28ffd6e2..9bee427c 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -27,6 +27,15 @@ "contributions": [ "code" ] + }, + { + "login": "cbodin", + "name": "Christofer Bodin", + "avatar_url": "https://avatars.githubusercontent.com/u/220255?v=4", + "profile": "https://github.com/cbodin", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index f0165d36..45b85d53 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-3-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -76,6 +76,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Alex Li
Alex Li

💻 1/2
1/2

💻 + Christofer Bodin
Christofer Bodin

💻 From 7bfd0a8c1c062e1270493d86953d4315d150ccce Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:49 +0200 Subject: [PATCH 026/130] Add @matthewlloyd as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 9bee427c..6bb8e65b 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -36,6 +36,15 @@ "contributions": [ "code" ] + }, + { + "login": "matthewlloyd", + "name": "Matthew Lloyd", + "avatar_url": "https://avatars.githubusercontent.com/u/2041996?v=4", + "profile": "https://github.com/matthewlloyd", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 45b85d53..ed776ad3 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-3-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-4-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -77,6 +77,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Alex Li
Alex Li

💻 1/2
1/2

💻 Christofer Bodin
Christofer Bodin

💻 + Matthew Lloyd
Matthew Lloyd

💻 From fd2ca1f66c7141fb8f70ada8481499c52d4dd3bc Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:49 +0200 Subject: [PATCH 027/130] Add @carloserazo47 as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 6bb8e65b..07e78d26 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -45,6 +45,15 @@ "contributions": [ "code" ] + }, + { + "login": "carloserazo47", + "name": "C E", + "avatar_url": "https://avatars.githubusercontent.com/u/83635384?v=4", + "profile": "https://github.com/carloserazo47", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index ed776ad3..3b091772 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-4-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -78,6 +78,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d 1/2
1/2

💻 Christofer Bodin
Christofer Bodin

💻 Matthew Lloyd
Matthew Lloyd

💻 + C E
C E

💻 From 88e026d857de19df66f938dbfcf9364c71725126 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:50 +0200 Subject: [PATCH 028/130] Add @robsonmeemo as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 07e78d26..481395dd 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -54,6 +54,15 @@ "contributions": [ "code" ] + }, + { + "login": "robsonmeemo", + "name": "Robson Araujo", + "avatar_url": "https://avatars.githubusercontent.com/u/47990393?v=4", + "profile": "https://github.com/robsonmeemo", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 3b091772..0e735f57 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-6-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -79,6 +79,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Christofer Bodin
Christofer Bodin

💻 Matthew Lloyd
Matthew Lloyd

💻 C E
C E

💻 + Robson Araujo
Robson Araujo

💻 From 1c3a1ccd19fb2824a899bbec9acfc9cecdd170ee Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:51 +0200 Subject: [PATCH 029/130] Add @ryanhz as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 481395dd..e9c04d60 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -63,6 +63,15 @@ "contributions": [ "code" ] + }, + { + "login": "ryanhz", + "name": "Ryan", + "avatar_url": "https://avatars.githubusercontent.com/u/1142612?v=4", + "profile": "https://github.com/ryanhz", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 0e735f57..0dba175d 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-6-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-7-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -80,6 +80,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Matthew Lloyd
Matthew Lloyd

💻 C E
C E

💻 Robson Araujo
Robson Araujo

💻 + Ryan
Ryan

💻 From c4ba53bfdb3c54ecc92aba334069a2625b8b6cec Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:51 +0200 Subject: [PATCH 030/130] Add @CodeEagle as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index e9c04d60..bae5663a 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -72,6 +72,15 @@ "contributions": [ "code" ] + }, + { + "login": "CodeEagle", + "name": "CodeEagle", + "avatar_url": "https://avatars.githubusercontent.com/u/2311352?v=4", + "profile": "https://codeeagle.github.io/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 0dba175d..5dc343a3 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-7-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-8-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -82,6 +82,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Robson Araujo
Robson Araujo

💻 Ryan
Ryan

💻 + + CodeEagle
CodeEagle

💻 + From ead10df6cbdaad2f3a8757fb6445824d50e5e3ee Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:52 +0200 Subject: [PATCH 031/130] Add @tneotia as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index bae5663a..b58fd8e4 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -81,6 +81,15 @@ "contributions": [ "code" ] + }, + { + "login": "tneotia", + "name": "Tanay Neotia", + "avatar_url": "https://avatars.githubusercontent.com/u/50850142?v=4", + "profile": "https://github.com/tneotia", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 5dc343a3..d27ec76e 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-8-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-9-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -84,6 +84,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d CodeEagle
CodeEagle

💻 + Tanay Neotia
Tanay Neotia

💻 From 4a20ae933c11e9d62eec0ca98f15097f29e23edd Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:53 +0200 Subject: [PATCH 032/130] Add @panndoraBoo as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index b58fd8e4..888cf804 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -90,6 +90,15 @@ "contributions": [ "code" ] + }, + { + "login": "panndoraBoo", + "name": "Jamie Joost", + "avatar_url": "https://avatars.githubusercontent.com/u/8928207?v=4", + "profile": "https://github.com/panndoraBoo", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index d27ec76e..488aba09 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-9-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-10-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -85,6 +85,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d CodeEagle
CodeEagle

💻 Tanay Neotia
Tanay Neotia

💻 + Jamie Joost
Jamie Joost

💻 From 9f8b290cd588c79792c3105ea6b45b31c25636d5 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:53 +0200 Subject: [PATCH 033/130] Add @deandreamatias as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 888cf804..fc823a83 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -99,6 +99,15 @@ "contributions": [ "code" ] + }, + { + "login": "deandreamatias", + "name": "Matias de Andrea", + "avatar_url": "https://avatars.githubusercontent.com/u/21011641?v=4", + "profile": "https://deandreamatias.com/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 488aba09..ce0c15a9 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-10-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-11-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -86,6 +86,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d CodeEagle
CodeEagle

💻 Tanay Neotia
Tanay Neotia

💻 Jamie Joost
Jamie Joost

💻 + Matias de Andrea
Matias de Andrea

💻 From 9c8be573093f8b7f5eae98243ba32b575841430f Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:54 +0200 Subject: [PATCH 034/130] Add @YouCii as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index fc823a83..f5793f82 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -108,6 +108,15 @@ "contributions": [ "code" ] + }, + { + "login": "YouCii", + "name": "YouCii", + "avatar_url": "https://avatars.githubusercontent.com/u/17899073?v=4", + "profile": "https://blog.csdn.net/j550341130", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index ce0c15a9..6ef88d08 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-11-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-12-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -87,6 +87,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Tanay Neotia
Tanay Neotia

💻 Jamie Joost
Jamie Joost

💻 Matias de Andrea
Matias de Andrea

💻 + YouCii
YouCii

💻 From dc80397e892eae2cded53cd8bcf3c12ec2bc4b4e Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:55 +0200 Subject: [PATCH 035/130] Add @cutzmf as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index f5793f82..c15a0209 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -117,6 +117,15 @@ "contributions": [ "code" ] + }, + { + "login": "cutzmf", + "name": "Salnikov Sergey", + "avatar_url": "https://avatars.githubusercontent.com/u/1662033?v=4", + "profile": "https://github.com/cutzmf", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 6ef88d08..37335119 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-12-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-13-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -88,6 +88,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Jamie Joost
Jamie Joost

💻 Matias de Andrea
Matias de Andrea

💻 YouCii
YouCii

💻 + Salnikov Sergey
Salnikov Sergey

💻 From 710355178ef67eb07b2743e69e61dfb39b39c7fc Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:55 +0200 Subject: [PATCH 036/130] Add @a00012025 as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index c15a0209..2ab4f276 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -126,6 +126,15 @@ "contributions": [ "code" ] + }, + { + "login": "a00012025", + "name": "Po-Jui Chen", + "avatar_url": "https://avatars.githubusercontent.com/u/12824216?v=4", + "profile": "https://github.com/a00012025", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 37335119..a50e87da 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-13-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-14-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -89,6 +89,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Matias de Andrea
Matias de Andrea

💻 YouCii
YouCii

💻 Salnikov Sergey
Salnikov Sergey

💻 + Po-Jui Chen
Po-Jui Chen

💻 From f4815f9dcfc7960b2df21e3b138671a74e7e2de3 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:56 +0200 Subject: [PATCH 037/130] Add @Manuito83 as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 2ab4f276..7015ce31 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -135,6 +135,15 @@ "contributions": [ "code" ] + }, + { + "login": "Manuito83", + "name": "Manuito", + "avatar_url": "https://avatars.githubusercontent.com/u/4816367?v=4", + "profile": "https://github.com/Manuito83", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index a50e87da..34225050 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-14-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-15-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -91,6 +91,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Salnikov Sergey
Salnikov Sergey

💻 Po-Jui Chen
Po-Jui Chen

💻 + + Manuito
Manuito

💻 + From 3946e70ad1036607a3f713352e3ffe21ce78b392 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:57 +0200 Subject: [PATCH 038/130] Add @setcy as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 7015ce31..db9b4dc0 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -144,6 +144,15 @@ "contributions": [ "code" ] + }, + { + "login": "setcy", + "name": "setcy", + "avatar_url": "https://avatars.githubusercontent.com/u/86180691?v=4", + "profile": "https://github.com/setcy", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 34225050..a43dfa90 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-15-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-16-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -93,6 +93,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Manuito
Manuito

💻 + setcy
setcy

💻 From 87e4974cabfe671e81bc59dad717ef0ad3aa39aa Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:57 +0200 Subject: [PATCH 039/130] Add @EArminjon2 as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index db9b4dc0..83eca8d5 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -153,6 +153,15 @@ "contributions": [ "code" ] + }, + { + "login": "EArminjon2", + "name": "EArminjon", + "avatar_url": "https://avatars.githubusercontent.com/u/92172436?v=4", + "profile": "https://github.com/EArminjon2", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index a43dfa90..bcb13635 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-16-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-17-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -94,6 +94,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Manuito
Manuito

💻 setcy
setcy

💻 + EArminjon
EArminjon

💻 From ee7271a4ce73636a7d09c9d560172f893779419b Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:58 +0200 Subject: [PATCH 040/130] Add @ashank96 as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 83eca8d5..4fbb9d78 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -162,6 +162,15 @@ "contributions": [ "code" ] + }, + { + "login": "ashank96", + "name": "Ashank Bharati", + "avatar_url": "https://avatars.githubusercontent.com/u/22197948?v=4", + "profile": "https://www.linkedin.com/in/ashank-bharati-497989127/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index bcb13635..14029402 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-17-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-18-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -95,6 +95,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Manuito
Manuito

💻 setcy
setcy

💻 EArminjon
EArminjon

💻 + Ashank Bharati
Ashank Bharati

💻 From dc99b350b2115d4c1c7a56c53103fd9d2d1340dd Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:59 +0200 Subject: [PATCH 041/130] Add @chownation as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 4fbb9d78..467d3735 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -171,6 +171,15 @@ "contributions": [ "code" ] + }, + { + "login": "chownation", + "name": "Michael Chow", + "avatar_url": "https://avatars.githubusercontent.com/u/1755207?v=4", + "profile": "https://dart.art/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 14029402..b785302a 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-18-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-19-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -96,6 +96,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d setcy
setcy

💻 EArminjon
EArminjon

💻 Ashank Bharati
Ashank Bharati

💻 + Michael Chow
Michael Chow

💻 From 6dfa9278daf02c6a2895daad1a34c2b9a40c95d3 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:04:59 +0200 Subject: [PATCH 042/130] Add @RodXander as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 467d3735..70fe585b 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -180,6 +180,15 @@ "contributions": [ "code" ] + }, + { + "login": "RodXander", + "name": "Osvaldo Saez", + "avatar_url": "https://avatars.githubusercontent.com/u/23609784?v=4", + "profile": "https://github.com/RodXander", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index b785302a..8ae2a424 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-19-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-20-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -97,6 +97,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d EArminjon
EArminjon

💻 Ashank Bharati
Ashank Bharati

💻 Michael Chow
Michael Chow

💻 + Osvaldo Saez
Osvaldo Saez

💻 From ddfc5140a52b9b3ad4fd051462b8b2d699b8fedc Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:00 +0200 Subject: [PATCH 043/130] Add @rsydor as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 70fe585b..49733b98 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -189,6 +189,15 @@ "contributions": [ "code" ] + }, + { + "login": "rsydor", + "name": "rsydor", + "avatar_url": "https://avatars.githubusercontent.com/u/79581663?v=4", + "profile": "https://github.com/rsydor", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 8ae2a424..adbbc609 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-20-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-21-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -98,6 +98,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Ashank Bharati
Ashank Bharati

💻 Michael Chow
Michael Chow

💻 Osvaldo Saez
Osvaldo Saez

💻 + rsydor
rsydor

💻 From a79170ba1a8acb664d7070647030e1593be69133 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:01 +0200 Subject: [PATCH 044/130] Add @hoanglm4 as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 49733b98..5a47f7f4 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -198,6 +198,15 @@ "contributions": [ "code" ] + }, + { + "login": "hoanglm4", + "name": "Le Minh Hoang", + "avatar_url": "https://avatars.githubusercontent.com/u/7067757?v=4", + "profile": "https://github.com/hoanglm4", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index adbbc609..375b1add 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-21-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-22-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -100,6 +100,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Osvaldo Saez
Osvaldo Saez

💻 rsydor
rsydor

💻 + + Le Minh Hoang
Le Minh Hoang

💻 + From 588c3fc778efb65077335e898b3aceecf8e22778 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:01 +0200 Subject: [PATCH 045/130] Add @Miiha as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 5a47f7f4..ae4b4464 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -207,6 +207,15 @@ "contributions": [ "code" ] + }, + { + "login": "Miiha", + "name": "Michael Kao", + "avatar_url": "https://avatars.githubusercontent.com/u/3897167?v=4", + "profile": "https://github.com/Miiha", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 375b1add..0abebc64 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-22-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-23-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -102,6 +102,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Le Minh Hoang
Le Minh Hoang

💻 + Michael Kao
Michael Kao

💻 From ce999e2347d8c3cdb391bc4dbceb61ad668ea93d Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:02 +0200 Subject: [PATCH 046/130] Add @cloudygeek as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index ae4b4464..f1eaea57 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -216,6 +216,15 @@ "contributions": [ "code" ] + }, + { + "login": "cloudygeek", + "name": "cloudygeek", + "avatar_url": "https://avatars.githubusercontent.com/u/6059542?v=4", + "profile": "https://github.com/cloudygeek", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 0abebc64..21aecae1 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-23-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-24-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -103,6 +103,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Le Minh Hoang
Le Minh Hoang

💻 Michael Kao
Michael Kao

💻 + cloudygeek
cloudygeek

💻 From bb82a15360e97cb5bd1b104493a333b907e5a5d7 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:03 +0200 Subject: [PATCH 047/130] Add @chreck as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index f1eaea57..ae4753fe 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -225,6 +225,15 @@ "contributions": [ "code" ] + }, + { + "login": "chreck", + "name": "Christoph Eck", + "avatar_url": "https://avatars.githubusercontent.com/u/8030398?v=4", + "profile": "https://github.com/chreck", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 21aecae1..bbc0e6e9 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-24-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-25-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -104,6 +104,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Le Minh Hoang
Le Minh Hoang

💻 Michael Kao
Michael Kao

💻 cloudygeek
cloudygeek

💻 + Christoph Eck
Christoph Eck

💻 From 23969895903175bbd27f1a313d251f7023e2b01b Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:03 +0200 Subject: [PATCH 048/130] Add @Ser1ous as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index ae4753fe..3f8cf70e 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -234,6 +234,15 @@ "contributions": [ "code" ] + }, + { + "login": "Ser1ous", + "name": "Ser1ous", + "avatar_url": "https://avatars.githubusercontent.com/u/4497968?v=4", + "profile": "https://github.com/Ser1ous", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index bbc0e6e9..110f20a0 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-25-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-26-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -105,6 +105,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Michael Kao
Michael Kao

💻 cloudygeek
cloudygeek

💻 Christoph Eck
Christoph Eck

💻 + Ser1ous
Ser1ous

💻 From 44f20d1116a685dc9194d2d89d2bc17adc571c53 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:04 +0200 Subject: [PATCH 049/130] Add @ItsCalebJones as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 3f8cf70e..10311898 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -243,6 +243,15 @@ "contributions": [ "code" ] + }, + { + "login": "ItsCalebJones", + "name": "Caleb Jones", + "avatar_url": "https://avatars.githubusercontent.com/u/4519230?v=4", + "profile": "https://spacelaunchnow.me/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 110f20a0..fcb366e5 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-26-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-27-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -106,6 +106,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d cloudygeek
cloudygeek

💻 Christoph Eck
Christoph Eck

💻 Ser1ous
Ser1ous

💻 + Caleb Jones
Caleb Jones

💻 From 572a40cda16fd4539d8153b3b79fb1f8c929e47c Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:05 +0200 Subject: [PATCH 050/130] Add @savy-91 as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 10311898..e31b3898 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -252,6 +252,15 @@ "contributions": [ "code" ] + }, + { + "login": "savy-91", + "name": "Saverio Murgia", + "avatar_url": "https://avatars.githubusercontent.com/u/6215122?v=4", + "profile": "https://sungazer.io/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index fcb366e5..d3c87b34 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-27-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-28-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -107,6 +107,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Christoph Eck
Christoph Eck

💻 Ser1ous
Ser1ous

💻 Caleb Jones
Caleb Jones

💻 + Saverio Murgia
Saverio Murgia

💻 From 1b4e2aa812691b7a195ff68376a8f041c55bb86a Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:05 +0200 Subject: [PATCH 051/130] Add @tranductam2802 as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index e31b3898..46febd32 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -261,6 +261,15 @@ "contributions": [ "code" ] + }, + { + "login": "tranductam2802", + "name": "Trần Đức Tâm", + "avatar_url": "https://avatars.githubusercontent.com/u/4957579?v=4", + "profile": "https://github.com/tranductam2802", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index d3c87b34..013aaa1e 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-28-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-29-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -109,6 +109,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Caleb Jones
Caleb Jones

💻 Saverio Murgia
Saverio Murgia

💻 + + Trần Đức Tâm
Trần Đức Tâm

💻 + From 24b278bae5fe8f1d153a2a17476ece523658c9c3 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:06 +0200 Subject: [PATCH 052/130] Add @pcqpcq as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 46febd32..9bcf59b2 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -270,6 +270,15 @@ "contributions": [ "code" ] + }, + { + "login": "pcqpcq", + "name": "Joker", + "avatar_url": "https://avatars.githubusercontent.com/u/1411571?v=4", + "profile": "http://pcqpcq.me/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 013aaa1e..7f403014 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-29-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-30-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -111,6 +111,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Trần Đức Tâm
Trần Đức Tâm

💻 + Joker
Joker

💻 From cfb42e03269f2238ad051b6c28e1530997285fed Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:07 +0200 Subject: [PATCH 053/130] Add @ycv005 as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 9bcf59b2..99a42f96 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -279,6 +279,15 @@ "contributions": [ "code" ] + }, + { + "login": "ycv005", + "name": "Yash Chandra Verma", + "avatar_url": "https://avatars.githubusercontent.com/u/26734819?v=4", + "profile": "https://www.linkedin.com/in/ycv005/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 7f403014..c2ba6b8d 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-30-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-31-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -112,6 +112,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Trần Đức Tâm
Trần Đức Tâm

💻 Joker
Joker

💻 + Yash Chandra Verma
Yash Chandra Verma

💻 From da916e163a4580e1f4d0a20b1885d2496f83e23e Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:07 +0200 Subject: [PATCH 054/130] Add @arneke as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 99a42f96..fe25ddfa 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -288,6 +288,15 @@ "contributions": [ "code" ] + }, + { + "login": "arneke", + "name": "Arne Kepp", + "avatar_url": "https://avatars.githubusercontent.com/u/425235?v=4", + "profile": "https://github.com/arneke", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index c2ba6b8d..e25c2507 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-31-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-32-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -113,6 +113,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Trần Đức Tâm
Trần Đức Tâm

💻 Joker
Joker

💻 Yash Chandra Verma
Yash Chandra Verma

💻 + Arne Kepp
Arne Kepp

💻 From ccb1bfda25bdb88a7c461acb011dfb503ac712fe Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:08 +0200 Subject: [PATCH 055/130] Add @omralcrt as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index fe25ddfa..86885810 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -297,6 +297,15 @@ "contributions": [ "code" ] + }, + { + "login": "omralcrt", + "name": "Ömral Cörüt", + "avatar_url": "https://avatars.githubusercontent.com/u/12418327?v=4", + "profile": "https://omralcrt.github.io/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index e25c2507..810c8103 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-32-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-33-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -114,6 +114,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Joker
Joker

💻 Yash Chandra Verma
Yash Chandra Verma

💻 Arne Kepp
Arne Kepp

💻 + Ömral Cörüt
Ömral Cörüt

💻 From db2783a431449e67de3f44ef0e8457c58caf2a92 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:09 +0200 Subject: [PATCH 056/130] Add @albatrosify as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 86885810..15a4dd36 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -306,6 +306,15 @@ "contributions": [ "code" ] + }, + { + "login": "albatrosify", + "name": "LrdHelmchen", + "avatar_url": "https://avatars.githubusercontent.com/u/64252708?v=4", + "profile": "https://github.com/albatrosify", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 810c8103..dbc4f39f 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-33-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-34-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -115,6 +115,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Yash Chandra Verma
Yash Chandra Verma

💻 Arne Kepp
Arne Kepp

💻 Ömral Cörüt
Ömral Cörüt

💻 + LrdHelmchen
LrdHelmchen

💻 From b92cb7666b01616b34ad7cb77ea3262131a39853 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:09 +0200 Subject: [PATCH 057/130] Add @gunantosteven as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 15a4dd36..a82a9646 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -315,6 +315,15 @@ "contributions": [ "code" ] + }, + { + "login": "gunantosteven", + "name": "Steven Gunanto", + "avatar_url": "https://avatars.githubusercontent.com/u/8141036?v=4", + "profile": "https://ungapps.com/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index dbc4f39f..d27849d7 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-34-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-35-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -116,6 +116,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Arne Kepp
Arne Kepp

💻 Ömral Cörüt
Ömral Cörüt

💻 LrdHelmchen
LrdHelmchen

💻 + Steven Gunanto
Steven Gunanto

💻 From 35f8a35cfff3cba7512138128ae09255c87134bf Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:10 +0200 Subject: [PATCH 058/130] Add @DRSchlaubi as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index a82a9646..b1c373fc 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -324,6 +324,15 @@ "contributions": [ "code" ] + }, + { + "login": "DRSchlaubi", + "name": "Michael Rittmeister", + "avatar_url": "https://avatars.githubusercontent.com/u/16060205?v=4", + "profile": "https://schlau.bi/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index d27849d7..80653ee7 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-35-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-36-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -118,6 +118,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d LrdHelmchen
LrdHelmchen

💻 Steven Gunanto
Steven Gunanto

💻 + + Michael Rittmeister
Michael Rittmeister

💻 + From 6b56761704d5be28c04954841a0bc4c79f6eaba6 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:11 +0200 Subject: [PATCH 059/130] Add @AAkira as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index b1c373fc..aaae7bd1 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -333,6 +333,15 @@ "contributions": [ "code" ] + }, + { + "login": "AAkira", + "name": "Akira Aratani", + "avatar_url": "https://avatars.githubusercontent.com/u/3386962?v=4", + "profile": "https://aakira.app/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 80653ee7..c5caf87b 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-36-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-37-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -120,6 +120,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Michael Rittmeister
Michael Rittmeister

💻 + Akira Aratani
Akira Aratani

💻 From 5fe0a0743b88804faf6070c40398724b3594454c Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:11 +0200 Subject: [PATCH 060/130] Add @Doflatango as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index aaae7bd1..edde1765 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -342,6 +342,15 @@ "contributions": [ "code" ] + }, + { + "login": "Doflatango", + "name": "Doflatango", + "avatar_url": "https://avatars.githubusercontent.com/u/3091033?v=4", + "profile": "https://github.com/Doflatango", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index c5caf87b..abd42d63 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-37-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-38-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -121,6 +121,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Michael Rittmeister
Michael Rittmeister

💻 Akira Aratani
Akira Aratani

💻 + Doflatango
Doflatango

💻 From 87bd04777e298ad366e030b4b381518c78d124bb Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:12 +0200 Subject: [PATCH 061/130] Add @Eddayy as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index edde1765..6c48d487 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -351,6 +351,15 @@ "contributions": [ "code" ] + }, + { + "login": "Eddayy", + "name": "Edmund Tay", + "avatar_url": "https://avatars.githubusercontent.com/u/17043852?v=4", + "profile": "https://github.com/Eddayy", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index abd42d63..43705e3c 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-38-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-39-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -122,6 +122,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Michael Rittmeister
Michael Rittmeister

💻 Akira Aratani
Akira Aratani

💻 Doflatango
Doflatango

💻 + Edmund Tay
Edmund Tay

💻 From c37c9df01ac69b1079e7e139ada869e889cf4496 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:13 +0200 Subject: [PATCH 062/130] Add @andreidiaconu as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 6c48d487..a6f221a1 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -360,6 +360,15 @@ "contributions": [ "code" ] + }, + { + "login": "andreidiaconu", + "name": "Andrei Diaconu", + "avatar_url": "https://avatars.githubusercontent.com/u/1402046?v=4", + "profile": "http://andreidiaconu.com/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 43705e3c..3df1cc8d 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-39-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-40-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -123,6 +123,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Akira Aratani
Akira Aratani

💻 Doflatango
Doflatango

💻 Edmund Tay
Edmund Tay

💻 + Andrei Diaconu
Andrei Diaconu

💻 From 2ebf2c289354f7bb010b2624351b7ffb8f7a296c Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:13 +0200 Subject: [PATCH 063/130] Add @plateaukao as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index a6f221a1..dadf5186 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -369,6 +369,15 @@ "contributions": [ "code" ] + }, + { + "login": "plateaukao", + "name": "Daniel Kao", + "avatar_url": "https://avatars.githubusercontent.com/u/4084738?v=4", + "profile": "https://github.com/plateaukao", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 3df1cc8d..81491a96 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-40-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-41-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -124,6 +124,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Doflatango
Doflatango

💻 Edmund Tay
Edmund Tay

💻 Andrei Diaconu
Andrei Diaconu

💻 + Daniel Kao
Daniel Kao

💻 From eadda155bd73122d141c39e1a88ae4768578c87b Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:14 +0200 Subject: [PATCH 064/130] Add @xtyxtyx as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index dadf5186..99e80f95 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -378,6 +378,15 @@ "contributions": [ "code" ] + }, + { + "login": "xtyxtyx", + "name": "xuty", + "avatar_url": "https://avatars.githubusercontent.com/u/15033141?v=4", + "profile": "https://github.com/xtyxtyx", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 81491a96..c94b9ed1 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-41-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-42-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -125,6 +125,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Edmund Tay
Edmund Tay

💻 Andrei Diaconu
Andrei Diaconu

💻 Daniel Kao
Daniel Kao

💻 + xuty
xuty

💻 From 7ffd77ef90c92b9d5f5386f79de7c0f0c9b8fab5 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:15 +0200 Subject: [PATCH 065/130] Add @wwwdata as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 99e80f95..3adaec76 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -387,6 +387,15 @@ "contributions": [ "code" ] + }, + { + "login": "wwwdata", + "name": "Ben Bieker", + "avatar_url": "https://avatars.githubusercontent.com/u/818880?v=4", + "profile": "https://bieker.ninja/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index c94b9ed1..41564c3d 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-42-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-43-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -127,6 +127,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Daniel Kao
Daniel Kao

💻 xuty
xuty

💻 + + Ben Bieker
Ben Bieker

💻 + From 2e923b3aadaee9b915d0d113e5a0dd2df319ae33 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:15 +0200 Subject: [PATCH 066/130] Add @phamnhuvu-dev as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 3adaec76..779762b2 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -396,6 +396,15 @@ "contributions": [ "code" ] + }, + { + "login": "phamnhuvu-dev", + "name": "Phạm Như Vũ", + "avatar_url": "https://avatars.githubusercontent.com/u/22906656?v=4", + "profile": "https://github.com/phamnhuvu-dev", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 41564c3d..9078e253 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-43-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-44-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -129,6 +129,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Ben Bieker
Ben Bieker

💻 + Phạm Như Vũ
Phạm Như Vũ

💻 From 963cc1070f51750faa1293307ba27a1698fa0ae4 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:16 +0200 Subject: [PATCH 067/130] Add @SebastienBtr as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 779762b2..7bb0b2d2 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -405,6 +405,15 @@ "contributions": [ "code" ] + }, + { + "login": "SebastienBtr", + "name": "SebastienBtr", + "avatar_url": "https://avatars.githubusercontent.com/u/18089010?v=4", + "profile": "https://github.com/SebastienBtr", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 9078e253..a80a438f 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-44-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-45-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -130,6 +130,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Ben Bieker
Ben Bieker

💻 Phạm Như Vũ
Phạm Như Vũ

💻 + SebastienBtr
SebastienBtr

💻 From dfd5fc6a83f990cd93d7e4dee77c76646e3f2eb8 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:17 +0200 Subject: [PATCH 068/130] Add @fattiger00 as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 7bb0b2d2..624d3edf 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -414,6 +414,15 @@ "contributions": [ "code" ] + }, + { + "login": "fattiger00", + "name": "NeZha", + "avatar_url": "https://avatars.githubusercontent.com/u/38494401?v=4", + "profile": "https://github.com/fattiger00", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index a80a438f..dc85709e 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-45-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-46-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -131,6 +131,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Ben Bieker
Ben Bieker

💻 Phạm Như Vũ
Phạm Như Vũ

💻 SebastienBtr
SebastienBtr

💻 + NeZha
NeZha

💻 From 3cae3fc2634c7f58acc7d73b670519c68f51c189 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:17 +0200 Subject: [PATCH 069/130] Add @klydra as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 624d3edf..9e661835 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -423,6 +423,15 @@ "contributions": [ "code" ] + }, + { + "login": "klydra", + "name": "Jan Klinge", + "avatar_url": "https://avatars.githubusercontent.com/u/40038209?v=4", + "profile": "https://github.com/klydra", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index dc85709e..27931547 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-46-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-47-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -132,6 +132,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Phạm Như Vũ
Phạm Như Vũ

💻 SebastienBtr
SebastienBtr

💻 NeZha
NeZha

💻 + Jan Klinge
Jan Klinge

💻 From eb4f9199b1a2d889cb6b46575c18a12ff3fe037a Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:18 +0200 Subject: [PATCH 070/130] Add @PauloDurrerMelo as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 9e661835..e9da0af4 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -432,6 +432,15 @@ "contributions": [ "code" ] + }, + { + "login": "PauloDurrerMelo", + "name": "PauloDurrerMelo", + "avatar_url": "https://avatars.githubusercontent.com/u/29310557?v=4", + "profile": "https://github.com/PauloDurrerMelo", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 27931547..58e03634 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-47-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-48-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -133,6 +133,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d SebastienBtr
SebastienBtr

💻 NeZha
NeZha

💻 Jan Klinge
Jan Klinge

💻 + PauloDurrerMelo
PauloDurrerMelo

💻 From 041299447652c98b0dee5f8f11ac730cd14e98fb Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:19 +0200 Subject: [PATCH 071/130] Add @benmeemo as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index e9da0af4..2bf42891 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -441,6 +441,15 @@ "contributions": [ "code" ] + }, + { + "login": "benmeemo", + "name": "benmeemo", + "avatar_url": "https://avatars.githubusercontent.com/u/47991706?v=4", + "profile": "https://github.com/benmeemo", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 58e03634..b68ebab9 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-48-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-49-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -134,6 +134,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d NeZha
NeZha

💻 Jan Klinge
Jan Klinge

💻 PauloDurrerMelo
PauloDurrerMelo

💻 + benmeemo
benmeemo

💻 From 575f6d55fdc4f96c5da0dd978b3bc94047aa7d65 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:19 +0200 Subject: [PATCH 072/130] Add @cinos1 as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 2bf42891..e35bf846 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -450,6 +450,15 @@ "contributions": [ "code" ] + }, + { + "login": "cinos1", + "name": "cinos", + "avatar_url": "https://avatars.githubusercontent.com/u/19343437?v=4", + "profile": "https://github.com/cinos1", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index b68ebab9..5d6bde57 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-49-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-50-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -136,6 +136,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d PauloDurrerMelo
PauloDurrerMelo

💻 benmeemo
benmeemo

💻 + + cinos
cinos

💻 + From f31672bf7e7789be50265b02b521e856325e2afb Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:20 +0200 Subject: [PATCH 073/130] Add @juicycleff as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index e35bf846..1df4683e 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -459,6 +459,15 @@ "contributions": [ "code" ] + }, + { + "login": "juicycleff", + "name": "Rex Raphael", + "avatar_url": "https://avatars.githubusercontent.com/u/11243590?v=4", + "profile": "https://xraph.com/", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 5d6bde57..92b99965 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-50-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-51-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -138,6 +138,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d cinos
cinos

💻 + Rex Raphael
Rex Raphael

💻 From 550fb6ce84a8ce2226d27cd9580fd0cfcb0447cd Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:21 +0200 Subject: [PATCH 074/130] Add @Sense545 as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 1df4683e..a5a866ef 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -468,6 +468,15 @@ "contributions": [ "code" ] + }, + { + "login": "Sense545", + "name": "Jan Henrik Høiland", + "avatar_url": "https://avatars.githubusercontent.com/u/769406?v=4", + "profile": "https://github.com/Sense545", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 92b99965..ee6eea03 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-51-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-52-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -139,6 +139,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d cinos
cinos

💻 Rex Raphael
Rex Raphael

💻 + Jan Henrik Høiland
Jan Henrik Høiland

💻 From da36d79756b02bec1c19bf9f3467ba06be51cdbc Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:05:21 +0200 Subject: [PATCH 075/130] Add @igtm as a contributor --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index a5a866ef..9a84ab1e 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -477,6 +477,15 @@ "contributions": [ "code" ] + }, + { + "login": "igtm", + "name": "Iguchi Tomokatsu", + "avatar_url": "https://avatars.githubusercontent.com/u/6331737?v=4", + "profile": "https://github.com/igtm", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index ee6eea03..665bd1d5 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-52-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-53-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -140,6 +140,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d cinos
cinos

💻 Rex Raphael
Rex Raphael

💻 Jan Henrik Høiland
Jan Henrik Høiland

💻 + Iguchi Tomokatsu
Iguchi Tomokatsu

💻 From 2eabeb3b7135beaf702d9b7b170594e26fc9c7c0 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Mon, 3 Oct 2022 15:19:00 +0200 Subject: [PATCH 076/130] added all-contributors --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 665bd1d5..7bf63623 100755 --- a/README.md +++ b/README.md @@ -11,7 +11,6 @@ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](/LICENSE) [![Donate to this project](https://img.shields.io/badge/support-donate-yellow.svg)](https://inappwebview.dev/donate/) -[![GitHub contributors](https://img.shields.io/github/contributors/pichillilorenzo/flutter_inappwebview)](https://github.com/pichillilorenzo/flutter_inappwebview/graphs/contributors) [![GitHub forks](https://img.shields.io/github/forks/pichillilorenzo/flutter_inappwebview?style=social)](https://github.com/pichillilorenzo/flutter_inappwebview) [![GitHub stars](https://img.shields.io/github/stars/pichillilorenzo/flutter_inappwebview?style=social)](https://github.com/pichillilorenzo/flutter_inappwebview) From f5b474cd3b074fbc2e2377fbc7f9fdf2627f4c02 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Tue, 4 Oct 2022 12:12:07 +0200 Subject: [PATCH 077/130] Added support for Android 33, Fixed possible null pointer exception in Android ChromeCustomTabsActivity.java, fix #1299, fix #1223, fix #1269, fix #1234, close #1307 --- CHANGELOG.md | 5 +++ android/build.gradle | 6 +-- .../flutter_inappwebview/Util.java | 21 +++++++++- .../ActionBroadcastReceiver.java | 18 ++++---- .../ChromeCustomTabsActivity.java | 21 +++++++--- .../in_app_webview/InAppWebView.java | 41 +++++++++++++++---- example/android/app/build.gradle | 6 +-- .../webview_flutter_test.dart | 6 +-- example/ios/Flutter/Flutter.podspec | 18 -------- .../ios/Flutter/flutter_export_environment.sh | 5 +-- example/pubspec.yaml | 2 +- pubspec.yaml | 2 +- 12 files changed, 95 insertions(+), 56 deletions(-) delete mode 100644 example/ios/Flutter/Flutter.podspec diff --git a/CHANGELOG.md b/CHANGELOG.md index 54b90338..df723ca3 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 5.4.4 + +- Added support for Android 33 +- Fixed possible null pointer exception in Android `ChromeCustomTabsActivity.java` + ## 5.4.3+8 - Merged "Xcode 14 build error: Stored properties cannot be marked potentially unavailable with '@available'" [#1238](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1238) (thanks to [CodeEagle](https://github.com/CodeEagle)) diff --git a/android/build.gradle b/android/build.gradle index a6642d58..f6bfa929 100755 --- a/android/build.gradle +++ b/android/build.gradle @@ -22,7 +22,7 @@ rootProject.allprojects { apply plugin: 'com.android.library' android { - compileSdkVersion 31 + compileSdkVersion 33 defaultConfig { minSdkVersion 17 @@ -45,9 +45,9 @@ android { } } dependencies { - implementation 'androidx.webkit:webkit:1.4.0' + implementation 'androidx.webkit:webkit:1.5.0' implementation 'androidx.browser:browser:1.4.0' - implementation 'androidx.appcompat:appcompat:1.4.1' + implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.squareup.okhttp3:okhttp:3.14.9' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' } diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java index fceaffbf..bbe1e4f1 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java @@ -19,6 +19,8 @@ import org.json.JSONObject; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.net.Inet6Address; import java.net.InetAddress; import java.net.UnknownHostException; @@ -29,7 +31,6 @@ import java.security.cert.Certificate; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; -import java.util.ArrayList; import java.util.Enumeration; import java.util.HashMap; import java.util.List; @@ -37,7 +38,6 @@ import java.util.Map; import java.util.Objects; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; -import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.net.ssl.HostnameVerifier; @@ -321,4 +321,21 @@ public class Util { public static Object getOrDefault(Map map, String key, Object defaultValue) { return map.containsKey(key) ? map.get(key) : defaultValue; } + + @Nullable + public static Object invokeMethodIfExists(final O o, final String methodName, Object... args) { + Method[] methods = o.getClass().getMethods(); + for (Method method : methods) { + if (method.getName().equals(methodName)) { + try { + method.invoke(o, args); + } catch (IllegalAccessException e) { + return null; + } catch (InvocationTargetException e) { + return null; + } + } + } + return null; + } } diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/ActionBroadcastReceiver.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/ActionBroadcastReceiver.java index 1d3bb700..4e215e83 100644 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/ActionBroadcastReceiver.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/ActionBroadcastReceiver.java @@ -27,14 +27,16 @@ public class ActionBroadcastReceiver extends BroadcastReceiver { String title = b.getString(KEY_URL_TITLE); String managerId = b.getString(CHROME_MANAGER_ID); - ChromeSafariBrowserManager manager = (ChromeSafariBrowserManager) ChromeSafariBrowserManager.shared.get(managerId); - - MethodChannel channel = new MethodChannel(manager.plugin.messenger, "com.pichillilorenzo/flutter_chromesafaribrowser_" + viewId); - Map obj = new HashMap<>(); - obj.put("url", url); - obj.put("title", title); - obj.put("id", id); - channel.invokeMethod("onChromeSafariBrowserItemActionPerform", obj); + if (managerId != null) { + ChromeSafariBrowserManager manager = (ChromeSafariBrowserManager) ChromeSafariBrowserManager.shared.get(managerId); + if (manager == null || manager.plugin == null|| manager.plugin.messenger == null) return; + MethodChannel channel = new MethodChannel(manager.plugin.messenger, "com.pichillilorenzo/flutter_chromesafaribrowser_" + viewId); + Map obj = new HashMap<>(); + obj.put("url", url); + obj.put("title", title); + obj.put("id", id); + channel.invokeMethod("onChromeSafariBrowserItemActionPerform", obj); + } } } } diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/ChromeCustomTabsActivity.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/ChromeCustomTabsActivity.java index 5533ddc9..7be959bf 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/ChromeCustomTabsActivity.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/chrome_custom_tabs/ChromeCustomTabsActivity.java @@ -190,8 +190,10 @@ public class ChromeCustomTabsActivity extends Activity implements MethodChannel. builder.setInstantAppsEnabled(options.instantAppsEnabled); for (CustomTabsMenuItem menuItem : menuItems) { - builder.addMenuItem(menuItem.getLabel(), - createPendingIntent(menuItem.getId())); + PendingIntent pendingIntent = createPendingIntent(menuItem.getId()); + if (pendingIntent != null) { + builder.addMenuItem(menuItem.getLabel(), pendingIntent); + } } if (actionButton != null) { @@ -201,9 +203,12 @@ public class ChromeCustomTabsActivity extends Activity implements MethodChannel. Bitmap bmp = BitmapFactory.decodeByteArray( data, 0, data.length, bitmapOptions ); - builder.setActionButton(bmp, actionButton.getDescription(), - createPendingIntent(actionButton.getId()), - actionButton.isShouldTint()); + PendingIntent pendingIntent = createPendingIntent(actionButton.getId()); + if (pendingIntent != null) { + builder.setActionButton(bmp, actionButton.getDescription(), + pendingIntent, + actionButton.isShouldTint()); + } } } @@ -237,7 +242,9 @@ public class ChromeCustomTabsActivity extends Activity implements MethodChannel. } } + @Nullable private PendingIntent createPendingIntent(int actionSourceId) { + if (manager == null) return null; Intent actionIntent = new Intent(this, ActionBroadcastReceiver.class); Bundle extras = new Bundle(); @@ -256,11 +263,15 @@ public class ChromeCustomTabsActivity extends Activity implements MethodChannel. } public void dispose() { + onStop(); + onDestroy(); channel.setMethodCallHandler(null); manager = null; } public void close() { + onStop(); + onDestroy(); customTabsSession = null; finish(); Map obj = new HashMap<>(); diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebView.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebView.java index a1951e6b..6bfca2bb 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebView.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebView.java @@ -276,8 +276,11 @@ final public class InAppWebView extends InputAwareWebView implements InAppWebVie settings.setAllowFileAccessFromFileURLs(options.allowFileAccessFromFileURLs); settings.setAllowUniversalAccessFromFileURLs(options.allowUniversalAccessFromFileURLs); setCacheEnabled(options.cacheEnabled); - if (options.appCachePath != null && !options.appCachePath.isEmpty() && options.cacheEnabled) - settings.setAppCachePath(options.appCachePath); + if (options.appCachePath != null && !options.appCachePath.isEmpty() && options.cacheEnabled) { + // removed from Android API 33+ (https://developer.android.com/sdk/api_diff/33/changes) + // settings.setAppCachePath(options.appCachePath); + Util.invokeMethodIfExists(settings, "setAppCachePath", options.appCachePath); + } settings.setBlockNetworkImage(options.blockNetworkImage); settings.setBlockNetworkLoads(options.blockNetworkLoads); if (options.cacheMode != null) @@ -491,7 +494,11 @@ final public class InAppWebView extends InputAwareWebView implements InAppWebVie // Disable caching settings.setCacheMode(WebSettings.LOAD_NO_CACHE); - settings.setAppCacheEnabled(false); + + // removed from Android API 33+ (https://developer.android.com/sdk/api_diff/33/changes) + // settings.setAppCacheEnabled(false); + Util.invokeMethodIfExists(settings, "setAppCacheEnabled", false); + clearHistory(); clearCache(true); @@ -501,7 +508,11 @@ final public class InAppWebView extends InputAwareWebView implements InAppWebVie settings.setSaveFormData(false); } else { settings.setCacheMode(WebSettings.LOAD_DEFAULT); - settings.setAppCacheEnabled(true); + + // removed from Android API 33+ (https://developer.android.com/sdk/api_diff/33/changes) + // settings.setAppCacheEnabled(true); + Util.invokeMethodIfExists(settings, "setAppCacheEnabled", true); + settings.setSavePassword(true); settings.setSaveFormData(true); } @@ -512,13 +523,22 @@ final public class InAppWebView extends InputAwareWebView implements InAppWebVie if (enabled) { Context ctx = getContext(); if (ctx != null) { - settings.setAppCachePath(ctx.getCacheDir().getAbsolutePath()); + // removed from Android API 33+ (https://developer.android.com/sdk/api_diff/33/changes) + // settings.setAppCachePath(ctx.getCacheDir().getAbsolutePath()); + Util.invokeMethodIfExists(settings, "setAppCachePath", ctx.getCacheDir().getAbsolutePath()); + settings.setCacheMode(WebSettings.LOAD_DEFAULT); - settings.setAppCacheEnabled(true); + + // removed from Android API 33+ (https://developer.android.com/sdk/api_diff/33/changes) + // settings.setAppCacheEnabled(true); + Util.invokeMethodIfExists(settings, "setAppCacheEnabled", true); } } else { settings.setCacheMode(WebSettings.LOAD_NO_CACHE); - settings.setAppCacheEnabled(false); + + // removed from Android API 33+ (https://developer.android.com/sdk/api_diff/33/changes) + // settings.setAppCacheEnabled(false); + Util.invokeMethodIfExists(settings, "setAppCacheEnabled", false); } } @@ -763,8 +783,11 @@ final public class InAppWebView extends InputAwareWebView implements InAppWebVie if (newOptionsMap.get("cacheEnabled") != null && options.cacheEnabled != newOptions.cacheEnabled) setCacheEnabled(newOptions.cacheEnabled); - if (newOptionsMap.get("appCachePath") != null && (options.appCachePath == null || !options.appCachePath.equals(newOptions.appCachePath))) - settings.setAppCachePath(newOptions.appCachePath); + if (newOptionsMap.get("appCachePath") != null && (options.appCachePath == null || !options.appCachePath.equals(newOptions.appCachePath))) { + // removed from Android API 33+ (https://developer.android.com/sdk/api_diff/33/changes) + // settings.setAppCachePath(newOptions.appCachePath); + Util.invokeMethodIfExists(settings, "setAppCachePath", newOptions.appCachePath); + } if (newOptionsMap.get("blockNetworkImage") != null && options.blockNetworkImage != newOptions.blockNetworkImage) settings.setBlockNetworkImage(newOptions.blockNetworkImage); diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index de44914a..4b28f2e2 100755 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -30,7 +30,7 @@ android { targetCompatibility 1.8 } - compileSdkVersion 31 + compileSdkVersion 33 lintOptions { disable 'InvalidPackage' @@ -40,7 +40,7 @@ android { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.pichillilorenzo.flutter_inappwebviewexample" minSdkVersion 17 - targetSdkVersion 31 + targetSdkVersion 33 versionCode flutterVersionCode.toInteger() versionName flutterVersionName testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -64,6 +64,6 @@ dependencies { testImplementation 'junit:junit:4.13' androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' - implementation 'com.google.android.material:material:1.3.0' + implementation 'com.google.android.material:material:1.6.1' implementation 'com.android.support:multidex:1.0.3' } diff --git a/example/integration_test/webview_flutter_test.dart b/example/integration_test/webview_flutter_test.dart index 9b62063f..e73e1397 100644 --- a/example/integration_test/webview_flutter_test.dart +++ b/example/integration_test/webview_flutter_test.dart @@ -5495,7 +5495,7 @@ setTimeout(function() { child: InAppWebView( key: GlobalKey(), initialUrlRequest: - URLRequest(url: Uri.parse('https://mdn.github.io/sw-test/')), + URLRequest(url: Uri.parse('https://mdn.github.io/dom-examples/service-worker/simple-service-worker/')), ), ), ); @@ -5524,7 +5524,7 @@ setTimeout(function() { child: InAppWebView( key: GlobalKey(), initialUrlRequest: - URLRequest(url: Uri.parse('https://mdn.github.io/sw-test/')), + URLRequest(url: Uri.parse('https://mdn.github.io/dom-examples/service-worker/simple-service-worker/')), onLoadStop: (controller, url) { pageLoaded.complete(url!.toString()); }, @@ -5533,7 +5533,7 @@ setTimeout(function() { ); final String url = await pageLoaded.future; - expect(url, "https://mdn.github.io/sw-test/"); + expect(url, "https://mdn.github.io/dom-examples/service-worker/simple-service-worker/"); }, skip: !Platform.isAndroid); }); diff --git a/example/ios/Flutter/Flutter.podspec b/example/ios/Flutter/Flutter.podspec deleted file mode 100644 index 8ce43943..00000000 --- a/example/ios/Flutter/Flutter.podspec +++ /dev/null @@ -1,18 +0,0 @@ -# -# NOTE: This podspec is NOT to be published. It is only used as a local source! -# This is a generated file; do not edit or check into version control. -# - -Pod::Spec.new do |s| - s.name = 'Flutter' - s.version = '1.0.0' - s.summary = 'A UI toolkit for beautiful and fast apps.' - s.homepage = 'https://flutter.dev' - s.license = { :type => 'BSD' } - s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' } - s.source = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s } - s.ios.deployment_target = '11.0' - # Framework linking is handled by Flutter tooling, not CocoaPods. - # Add a placeholder to satisfy `s.dependency 'Flutter'` plugin podspecs. - s.vendored_frameworks = 'path/to/nothing' -end diff --git a/example/ios/Flutter/flutter_export_environment.sh b/example/ios/Flutter/flutter_export_environment.sh index de544d92..ee7ac300 100755 --- a/example/ios/Flutter/flutter_export_environment.sh +++ b/example/ios/Flutter/flutter_export_environment.sh @@ -3,12 +3,11 @@ export "FLUTTER_ROOT=/Users/lorenzopichilli/fvm/versions/2.10.4" export "FLUTTER_APPLICATION_PATH=/Users/lorenzopichilli/flutter_inappwebview_v5/example" export "COCOAPODS_PARALLEL_CODE_SIGN=true" -export "FLUTTER_TARGET=integration_test/webview_flutter_test.dart" +export "FLUTTER_TARGET=lib/main.dart" export "FLUTTER_BUILD_DIR=build" export "FLUTTER_BUILD_NAME=1.0.0" export "FLUTTER_BUILD_NUMBER=1" -export "DART_DEFINES=RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ==" export "DART_OBFUSCATION=false" export "TRACK_WIDGET_CREATION=true" export "TREE_SHAKE_ICONS=false" -export "PACKAGE_CONFIG=/Users/lorenzopichilli/flutter_inappwebview_v5/example/.dart_tool/package_config.json" +export "PACKAGE_CONFIG=.dart_tool/package_config.json" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 7789db22..9ddc5ce6 100755 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -24,7 +24,7 @@ dependencies: cupertino_icons: ^1.0.4 flutter_downloader: ^1.7.3 path_provider: ^2.0.9 - permission_handler: ^9.2.0 + permission_handler: ^10.0.2 url_launcher: ^6.0.20 # connectivity: ^0.4.5+6 flutter_inappwebview: diff --git a/pubspec.yaml b/pubspec.yaml index 30bce434..6f0eb864 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. -version: 5.4.3+8 +version: 5.4.4 homepage: https://github.com/pichillilorenzo/flutter_inappwebview environment: From 9a3ae09fb4b1113d9bb4f139c87ec4213b08a09a Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Tue, 4 Oct 2022 12:21:50 +0200 Subject: [PATCH 078/130] added missin return to Util.invokeMethodIfExists --- .../java/com/pichillilorenzo/flutter_inappwebview/Util.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java index bbe1e4f1..c7ce0534 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java @@ -328,7 +328,7 @@ public class Util { for (Method method : methods) { if (method.getName().equals(methodName)) { try { - method.invoke(o, args); + return method.invoke(o, args); } catch (IllegalAccessException e) { return null; } catch (InvocationTargetException e) { From 916fabf7048509d53d69a4ca71a2959ffa31df6d Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Tue, 4 Oct 2022 12:25:07 +0200 Subject: [PATCH 079/130] disable android and ios github workflows --- .../workflows/android-integration-test.yml | 140 +++++++++--------- .github/workflows/ios-integration-test.yml | 138 ++++++++--------- 2 files changed, 139 insertions(+), 139 deletions(-) diff --git a/.github/workflows/android-integration-test.yml b/.github/workflows/android-integration-test.yml index 1dd606ff..3f8d83f7 100644 --- a/.github/workflows/android-integration-test.yml +++ b/.github/workflows/android-integration-test.yml @@ -1,70 +1,70 @@ -# Name of your workflow. -name: Android Integration Tests -on: - # Trigger the workflow on push or pull request, - # but only for the main branch - push: - branches: - - master - pull_request: - branches: - - master -# A workflow run is made up of one or more jobs. -jobs: - # id of job, a string that is unique to the "jobs" node above. - android_integration_tests: - # Creates a build matrix for your jobs. You can define different - # variations of an environment to run each job in. - strategy: - # A set of different configurations of the virtual - # environment. - # matrix: - # When set to true, GitHub cancels all in-progress jobs if any - # matrix job fails. - fail-fast: false - # The type of machine to run the job on. - runs-on: macOS-latest - timeout-minutes: 60 - # Contains a sequence of tasks. - steps: - # The branch or tag ref that triggered the workflow will be - # checked out. - # https://github.com/actions/checkout - - uses: actions/checkout@v2 - # Sets up cache - - name: Cache multiple paths - uses: actions/cache@v2 - with: - path: | - ~/.pub-cache - ~/.npm - key: ${{ runner.os }}-pub-and-npm-cache - # Sets up a flutter environment. - # https://github.com/marketplace/actions/flutter-action - - name: "Install Flutter" - uses: subosito/flutter-action@v1.4.0 - with: - channel: 'dev' # 'stable' or 'dev' or 'beta' - - name: "Change Flutter channel to master" - run: | - flutter channel master - flutter upgrade - - uses: actions/setup-node@v2 - with: - node-version: '14' - - name: "Install npm dependencies" - run: | - cd ./nodejs_server_test_auth_basic_and_ssl - npm install - cd .. - - name: "Install flutter dependencies" - run: | - flutter pub get - # Sets up android emulator - - name: "Run Android Flutter Integration Test" - uses: ReactiveCircus/android-emulator-runner@v2.14.3 - with: - api-level: 29 - target: default - avd-name: Flutter-Android - script: ./scripts/test.sh $(ipconfig getifaddr en0) \ No newline at end of file +## Name of your workflow. +#name: Android Integration Tests +#on: +# # Trigger the workflow on push or pull request, +# # but only for the main branch +# push: +# branches: +# - master +# pull_request: +# branches: +# - master +## A workflow run is made up of one or more jobs. +#jobs: +# # id of job, a string that is unique to the "jobs" node above. +# android_integration_tests: +# # Creates a build matrix for your jobs. You can define different +# # variations of an environment to run each job in. +# strategy: +# # A set of different configurations of the virtual +# # environment. +# # matrix: +# # When set to true, GitHub cancels all in-progress jobs if any +# # matrix job fails. +# fail-fast: false +# # The type of machine to run the job on. +# runs-on: macOS-latest +# timeout-minutes: 60 +# # Contains a sequence of tasks. +# steps: +# # The branch or tag ref that triggered the workflow will be +# # checked out. +# # https://github.com/actions/checkout +# - uses: actions/checkout@v2 +# # Sets up cache +# - name: Cache multiple paths +# uses: actions/cache@v2 +# with: +# path: | +# ~/.pub-cache +# ~/.npm +# key: ${{ runner.os }}-pub-and-npm-cache +# # Sets up a flutter environment. +# # https://github.com/marketplace/actions/flutter-action +# - name: "Install Flutter" +# uses: subosito/flutter-action@v1.4.0 +# with: +# channel: 'dev' # 'stable' or 'dev' or 'beta' +# - name: "Change Flutter channel to master" +# run: | +# flutter channel master +# flutter upgrade +# - uses: actions/setup-node@v2 +# with: +# node-version: '14' +# - name: "Install npm dependencies" +# run: | +# cd ./nodejs_server_test_auth_basic_and_ssl +# npm install +# cd .. +# - name: "Install flutter dependencies" +# run: | +# flutter pub get +# # Sets up android emulator +# - name: "Run Android Flutter Integration Test" +# uses: ReactiveCircus/android-emulator-runner@v2.14.3 +# with: +# api-level: 29 +# target: default +# avd-name: Flutter-Android +# script: ./scripts/test.sh $(ipconfig getifaddr en0) \ No newline at end of file diff --git a/.github/workflows/ios-integration-test.yml b/.github/workflows/ios-integration-test.yml index cb790158..d9c99a5a 100644 --- a/.github/workflows/ios-integration-test.yml +++ b/.github/workflows/ios-integration-test.yml @@ -1,69 +1,69 @@ -# Name of your workflow. -name: iOS Integration Tests -on: - # Trigger the workflow on push or pull request, - # but only for the main branch - push: - branches: - - master - pull_request: - branches: - - master -# A workflow run is made up of one or more jobs. -jobs: - # id of job, a string that is unique to the "jobs" node above. - ios_integration_tests: - # Creates a build matrix for your jobs. You can define different - # variations of an environment to run each job in. - strategy: - # A set of different configurations of the virtual - # environment. - # matrix: - # When set to true, GitHub cancels all in-progress jobs if any - # matrix job fails. - fail-fast: false - # The type of machine to run the job on. - runs-on: macOS-latest - timeout-minutes: 60 - # Contains a sequence of tasks. - steps: - # A name for your step to display on GitHub. - - name: "Start Simulator" - run: | - xcrun simctl list - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-12 com.apple.CoreSimulator.SimRuntime.iOS-14-3 | xargs xcrun simctl boot - # The branch or tag ref that triggered the workflow will be - # checked out. - # https://github.com/actions/checkout - - uses: actions/checkout@v2 - # Sets up cache - - name: Cache multiple paths - uses: actions/cache@v2 - with: - path: | - ~/.pub-cache - ~/.npm - key: ${{ runner.os }}-pub-and-npm-cache - # Sets up a flutter environment. - # https://github.com/marketplace/actions/flutter-action - - name: "Install Flutter" - uses: subosito/flutter-action@v1.4.0 - with: - channel: 'dev' # 'stable' or 'dev' or 'beta' - - name: "Change Flutter channel to master" - run: | - flutter channel master - flutter upgrade - - uses: actions/setup-node@v2 - with: - node-version: '14' - - name: "Install npm dependencies" - run: | - cd ./nodejs_server_test_auth_basic_and_ssl - npm install - cd .. - - name: "Run iOS Flutter Integration Test" - run: | - flutter pub get - flutter devices - ./scripts/test.sh $(ipconfig getifaddr en0) \ No newline at end of file +## Name of your workflow. +#name: iOS Integration Tests +#on: +# # Trigger the workflow on push or pull request, +# # but only for the main branch +# push: +# branches: +# - master +# pull_request: +# branches: +# - master +## A workflow run is made up of one or more jobs. +#jobs: +# # id of job, a string that is unique to the "jobs" node above. +# ios_integration_tests: +# # Creates a build matrix for your jobs. You can define different +# # variations of an environment to run each job in. +# strategy: +# # A set of different configurations of the virtual +# # environment. +# # matrix: +# # When set to true, GitHub cancels all in-progress jobs if any +# # matrix job fails. +# fail-fast: false +# # The type of machine to run the job on. +# runs-on: macOS-latest +# timeout-minutes: 60 +# # Contains a sequence of tasks. +# steps: +# # A name for your step to display on GitHub. +# - name: "Start Simulator" +# run: | +# xcrun simctl list +# xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-12 com.apple.CoreSimulator.SimRuntime.iOS-14-3 | xargs xcrun simctl boot +# # The branch or tag ref that triggered the workflow will be +# # checked out. +# # https://github.com/actions/checkout +# - uses: actions/checkout@v2 +# # Sets up cache +# - name: Cache multiple paths +# uses: actions/cache@v2 +# with: +# path: | +# ~/.pub-cache +# ~/.npm +# key: ${{ runner.os }}-pub-and-npm-cache +# # Sets up a flutter environment. +# # https://github.com/marketplace/actions/flutter-action +# - name: "Install Flutter" +# uses: subosito/flutter-action@v1.4.0 +# with: +# channel: 'dev' # 'stable' or 'dev' or 'beta' +# - name: "Change Flutter channel to master" +# run: | +# flutter channel master +# flutter upgrade +# - uses: actions/setup-node@v2 +# with: +# node-version: '14' +# - name: "Install npm dependencies" +# run: | +# cd ./nodejs_server_test_auth_basic_and_ssl +# npm install +# cd .. +# - name: "Run iOS Flutter Integration Test" +# run: | +# flutter pub get +# flutter devices +# ./scripts/test.sh $(ipconfig getifaddr en0) \ No newline at end of file From 2d7f2eea29103e58f9f717785027c0ee0d4bd9aa Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Tue, 4 Oct 2022 12:36:10 +0200 Subject: [PATCH 080/130] updated README --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7bf63623..2875e25a 100755 --- a/README.md +++ b/README.md @@ -3,10 +3,10 @@ [![All Contributors](https://img.shields.io/badge/all_contributors-53-orange.svg?style=flat-square)](#contributors-) -[![Pub](https://img.shields.io/pub/v/flutter_inappwebview.svg)](https://pub.dartlang.org/packages/flutter_inappwebview) -[![pub points](https://badges.bar/flutter_inappwebview/pub%20points)](https://pub.dev/packages/flutter_inappwebview/score) -[![popularity](https://badges.bar/flutter_inappwebview/popularity)](https://pub.dev/packages/flutter_inappwebview/score) -[![likes](https://badges.bar/flutter_inappwebview/likes)](https://pub.dev/packages/flutter_inappwebview/score) +[![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) +[![Pub Points](https://img.shields.io/pub/points/flutter_inappwebview)](https://pub.dev/packages/flutter_inappwebview/score) +[![Pub Popularity](https://img.shields.io/pub/popularity/flutter_inappwebview)](https://pub.dev/packages/flutter_inappwebview/score) +[![Pub Likes](https://img.shields.io/pub/likes/flutter_inappwebview)](https://pub.dev/packages/flutter_inappwebview/score) [![Awesome Flutter](https://img.shields.io/badge/Awesome-Flutter-blue.svg?longCache=true&style=flat-square)](https://stackoverflow.com/questions/tagged/flutter-inappwebview) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](/LICENSE) From 73bef1e4c272df390aeea3abc15250497978524c Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Tue, 4 Oct 2022 12:37:34 +0200 Subject: [PATCH 081/130] updated workflows --- .../workflows/android-integration-test.yml | 140 +++++++++--------- .github/workflows/ios-integration-test.yml | 138 ++++++++--------- 2 files changed, 139 insertions(+), 139 deletions(-) diff --git a/.github/workflows/android-integration-test.yml b/.github/workflows/android-integration-test.yml index 3f8d83f7..1dd606ff 100644 --- a/.github/workflows/android-integration-test.yml +++ b/.github/workflows/android-integration-test.yml @@ -1,70 +1,70 @@ -## Name of your workflow. -#name: Android Integration Tests -#on: -# # Trigger the workflow on push or pull request, -# # but only for the main branch -# push: -# branches: -# - master -# pull_request: -# branches: -# - master -## A workflow run is made up of one or more jobs. -#jobs: -# # id of job, a string that is unique to the "jobs" node above. -# android_integration_tests: -# # Creates a build matrix for your jobs. You can define different -# # variations of an environment to run each job in. -# strategy: -# # A set of different configurations of the virtual -# # environment. -# # matrix: -# # When set to true, GitHub cancels all in-progress jobs if any -# # matrix job fails. -# fail-fast: false -# # The type of machine to run the job on. -# runs-on: macOS-latest -# timeout-minutes: 60 -# # Contains a sequence of tasks. -# steps: -# # The branch or tag ref that triggered the workflow will be -# # checked out. -# # https://github.com/actions/checkout -# - uses: actions/checkout@v2 -# # Sets up cache -# - name: Cache multiple paths -# uses: actions/cache@v2 -# with: -# path: | -# ~/.pub-cache -# ~/.npm -# key: ${{ runner.os }}-pub-and-npm-cache -# # Sets up a flutter environment. -# # https://github.com/marketplace/actions/flutter-action -# - name: "Install Flutter" -# uses: subosito/flutter-action@v1.4.0 -# with: -# channel: 'dev' # 'stable' or 'dev' or 'beta' -# - name: "Change Flutter channel to master" -# run: | -# flutter channel master -# flutter upgrade -# - uses: actions/setup-node@v2 -# with: -# node-version: '14' -# - name: "Install npm dependencies" -# run: | -# cd ./nodejs_server_test_auth_basic_and_ssl -# npm install -# cd .. -# - name: "Install flutter dependencies" -# run: | -# flutter pub get -# # Sets up android emulator -# - name: "Run Android Flutter Integration Test" -# uses: ReactiveCircus/android-emulator-runner@v2.14.3 -# with: -# api-level: 29 -# target: default -# avd-name: Flutter-Android -# script: ./scripts/test.sh $(ipconfig getifaddr en0) \ No newline at end of file +# Name of your workflow. +name: Android Integration Tests +on: + # Trigger the workflow on push or pull request, + # but only for the main branch + push: + branches: + - master + pull_request: + branches: + - master +# A workflow run is made up of one or more jobs. +jobs: + # id of job, a string that is unique to the "jobs" node above. + android_integration_tests: + # Creates a build matrix for your jobs. You can define different + # variations of an environment to run each job in. + strategy: + # A set of different configurations of the virtual + # environment. + # matrix: + # When set to true, GitHub cancels all in-progress jobs if any + # matrix job fails. + fail-fast: false + # The type of machine to run the job on. + runs-on: macOS-latest + timeout-minutes: 60 + # Contains a sequence of tasks. + steps: + # The branch or tag ref that triggered the workflow will be + # checked out. + # https://github.com/actions/checkout + - uses: actions/checkout@v2 + # Sets up cache + - name: Cache multiple paths + uses: actions/cache@v2 + with: + path: | + ~/.pub-cache + ~/.npm + key: ${{ runner.os }}-pub-and-npm-cache + # Sets up a flutter environment. + # https://github.com/marketplace/actions/flutter-action + - name: "Install Flutter" + uses: subosito/flutter-action@v1.4.0 + with: + channel: 'dev' # 'stable' or 'dev' or 'beta' + - name: "Change Flutter channel to master" + run: | + flutter channel master + flutter upgrade + - uses: actions/setup-node@v2 + with: + node-version: '14' + - name: "Install npm dependencies" + run: | + cd ./nodejs_server_test_auth_basic_and_ssl + npm install + cd .. + - name: "Install flutter dependencies" + run: | + flutter pub get + # Sets up android emulator + - name: "Run Android Flutter Integration Test" + uses: ReactiveCircus/android-emulator-runner@v2.14.3 + with: + api-level: 29 + target: default + avd-name: Flutter-Android + script: ./scripts/test.sh $(ipconfig getifaddr en0) \ No newline at end of file diff --git a/.github/workflows/ios-integration-test.yml b/.github/workflows/ios-integration-test.yml index d9c99a5a..cb790158 100644 --- a/.github/workflows/ios-integration-test.yml +++ b/.github/workflows/ios-integration-test.yml @@ -1,69 +1,69 @@ -## Name of your workflow. -#name: iOS Integration Tests -#on: -# # Trigger the workflow on push or pull request, -# # but only for the main branch -# push: -# branches: -# - master -# pull_request: -# branches: -# - master -## A workflow run is made up of one or more jobs. -#jobs: -# # id of job, a string that is unique to the "jobs" node above. -# ios_integration_tests: -# # Creates a build matrix for your jobs. You can define different -# # variations of an environment to run each job in. -# strategy: -# # A set of different configurations of the virtual -# # environment. -# # matrix: -# # When set to true, GitHub cancels all in-progress jobs if any -# # matrix job fails. -# fail-fast: false -# # The type of machine to run the job on. -# runs-on: macOS-latest -# timeout-minutes: 60 -# # Contains a sequence of tasks. -# steps: -# # A name for your step to display on GitHub. -# - name: "Start Simulator" -# run: | -# xcrun simctl list -# xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-12 com.apple.CoreSimulator.SimRuntime.iOS-14-3 | xargs xcrun simctl boot -# # The branch or tag ref that triggered the workflow will be -# # checked out. -# # https://github.com/actions/checkout -# - uses: actions/checkout@v2 -# # Sets up cache -# - name: Cache multiple paths -# uses: actions/cache@v2 -# with: -# path: | -# ~/.pub-cache -# ~/.npm -# key: ${{ runner.os }}-pub-and-npm-cache -# # Sets up a flutter environment. -# # https://github.com/marketplace/actions/flutter-action -# - name: "Install Flutter" -# uses: subosito/flutter-action@v1.4.0 -# with: -# channel: 'dev' # 'stable' or 'dev' or 'beta' -# - name: "Change Flutter channel to master" -# run: | -# flutter channel master -# flutter upgrade -# - uses: actions/setup-node@v2 -# with: -# node-version: '14' -# - name: "Install npm dependencies" -# run: | -# cd ./nodejs_server_test_auth_basic_and_ssl -# npm install -# cd .. -# - name: "Run iOS Flutter Integration Test" -# run: | -# flutter pub get -# flutter devices -# ./scripts/test.sh $(ipconfig getifaddr en0) \ No newline at end of file +# Name of your workflow. +name: iOS Integration Tests +on: + # Trigger the workflow on push or pull request, + # but only for the main branch + push: + branches: + - master + pull_request: + branches: + - master +# A workflow run is made up of one or more jobs. +jobs: + # id of job, a string that is unique to the "jobs" node above. + ios_integration_tests: + # Creates a build matrix for your jobs. You can define different + # variations of an environment to run each job in. + strategy: + # A set of different configurations of the virtual + # environment. + # matrix: + # When set to true, GitHub cancels all in-progress jobs if any + # matrix job fails. + fail-fast: false + # The type of machine to run the job on. + runs-on: macOS-latest + timeout-minutes: 60 + # Contains a sequence of tasks. + steps: + # A name for your step to display on GitHub. + - name: "Start Simulator" + run: | + xcrun simctl list + xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-12 com.apple.CoreSimulator.SimRuntime.iOS-14-3 | xargs xcrun simctl boot + # The branch or tag ref that triggered the workflow will be + # checked out. + # https://github.com/actions/checkout + - uses: actions/checkout@v2 + # Sets up cache + - name: Cache multiple paths + uses: actions/cache@v2 + with: + path: | + ~/.pub-cache + ~/.npm + key: ${{ runner.os }}-pub-and-npm-cache + # Sets up a flutter environment. + # https://github.com/marketplace/actions/flutter-action + - name: "Install Flutter" + uses: subosito/flutter-action@v1.4.0 + with: + channel: 'dev' # 'stable' or 'dev' or 'beta' + - name: "Change Flutter channel to master" + run: | + flutter channel master + flutter upgrade + - uses: actions/setup-node@v2 + with: + node-version: '14' + - name: "Install npm dependencies" + run: | + cd ./nodejs_server_test_auth_basic_and_ssl + npm install + cd .. + - name: "Run iOS Flutter Integration Test" + run: | + flutter pub get + flutter devices + ./scripts/test.sh $(ipconfig getifaddr en0) \ No newline at end of file From d17130023474f53216a3cf8a8a19a960521dfef3 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Tue, 4 Oct 2022 13:02:04 +0200 Subject: [PATCH 082/130] Fixed README --- .all-contributorsrc | 4 ++-- CHANGELOG.md | 4 ++++ README.md | 4 ++-- pubspec.yaml | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 9a84ab1e..9bb8ce01 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -275,7 +275,7 @@ "login": "pcqpcq", "name": "Joker", "avatar_url": "https://avatars.githubusercontent.com/u/1411571?v=4", - "profile": "http://pcqpcq.me/", + "profile": "https://pcqpcq.me/", "contributions": [ "code" ] @@ -365,7 +365,7 @@ "login": "andreidiaconu", "name": "Andrei Diaconu", "avatar_url": "https://avatars.githubusercontent.com/u/1402046?v=4", - "profile": "http://andreidiaconu.com/", + "profile": "https://andreidiaconu.com/", "contributions": [ "code" ] diff --git a/CHANGELOG.md b/CHANGELOG.md index df723ca3..324d8760 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.4.4+1 + +- Fixed README + ## 5.4.4 - Added support for Android 33 diff --git a/README.md b/README.md index 2875e25a..f851ef0a 100755 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Trần Đức Tâm
Trần Đức Tâm

💻 - Joker
Joker

💻 + Joker
Joker

💻 Yash Chandra Verma
Yash Chandra Verma

💻 Arne Kepp
Arne Kepp

💻 Ömral Cörüt
Ömral Cörüt

💻 @@ -122,7 +122,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Akira Aratani
Akira Aratani

💻 Doflatango
Doflatango

💻 Edmund Tay
Edmund Tay

💻 - Andrei Diaconu
Andrei Diaconu

💻 + Andrei Diaconu
Andrei Diaconu

💻 Daniel Kao
Daniel Kao

💻 xuty
xuty

💻 diff --git a/pubspec.yaml b/pubspec.yaml index 6f0eb864..d03f5816 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. -version: 5.4.4 +version: 5.4.4+1 homepage: https://github.com/pichillilorenzo/flutter_inappwebview environment: From e19cb26852473ae2cfcd294b667e570b1fef4056 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Tue, 4 Oct 2022 13:12:47 +0200 Subject: [PATCH 083/130] Update LICENSE --- LICENSE | 208 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 198 insertions(+), 10 deletions(-) diff --git a/LICENSE b/LICENSE index ce6d86e5..4dada16d 100755 --- a/LICENSE +++ b/LICENSE @@ -1,13 +1,201 @@ -Copyright 2018-2022 Lorenzo Pichilli + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - http://www.apache.org/licenses/LICENSE-2.0 + 1. Definitions. -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. \ No newline at end of file + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2022 Lorenzo Pichilli + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. From 0579de9f9cca2264a759968c20bd4b52f5ad8c39 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Tue, 4 Oct 2022 13:14:29 +0200 Subject: [PATCH 084/130] updated pubspec.yaml version --- CHANGELOG.md | 4 ++++ pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 324d8760..bef3f7bb 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.4.4+2 + +- Fixed LICENSE + ## 5.4.4+1 - Fixed README diff --git a/pubspec.yaml b/pubspec.yaml index d03f5816..900c26e6 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. -version: 5.4.4+1 +version: 5.4.4+2 homepage: https://github.com/pichillilorenzo/flutter_inappwebview environment: From 93d9b41ed888c8fc95b792c259c235a86555dc9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Powa=C5=82owski?= Date: Mon, 27 Jun 2022 16:58:12 +0200 Subject: [PATCH 085/130] fix: Prevent Android java.lang.NullPointerException in InAppWebViewClient.onReceivedHttpAuthRequest view.getUrl() --- .../in_app_webview/InAppWebViewClient.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewClient.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewClient.java index 68d0e0b0..86e31013 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewClient.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewClient.java @@ -331,7 +331,9 @@ public class InAppWebViewClient extends WebViewClient { URI uri; try { - uri = new URI(view.getUrl()); + String url = view.getUrl(); + if (url == null) return; + uri = new URI(url); } catch (URISyntaxException e) { e.printStackTrace(); From 95576129053d88d93faa52d32e697412e7da1e86 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Wed, 5 Oct 2022 17:00:56 +0200 Subject: [PATCH 086/130] Removed Android unsafe trust manager, fix #593 --- CHANGELOG.md | 4 ++ .../flutter_inappwebview/Util.java | 50 +++---------------- .../ContentBlockerHandler.java | 19 ++++--- pubspec.yaml | 2 +- 4 files changed, 23 insertions(+), 52 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bef3f7bb..24fb1b96 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.4.4+3 + +- Removed Android unsafe trust manager + ## 5.4.4+2 - Fixed LICENSE diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java index c7ce0534..88e50483 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java @@ -177,50 +177,12 @@ public class Util { } } - public static OkHttpClient getUnsafeOkHttpClient() { - try { - // Create a trust manager that does not validate certificate chains - final TrustManager[] trustAllCerts = new TrustManager[] { - new X509TrustManager() { - @Override - public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { - } - - @Override - public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { - } - - @Override - public java.security.cert.X509Certificate[] getAcceptedIssuers() { - return new java.security.cert.X509Certificate[]{}; - } - } - }; - - // Install the all-trusting trust manager - final SSLContext sslContext = SSLContext.getInstance("SSL"); - sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); - // Create an ssl socket factory with our all-trusting manager - final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); - - OkHttpClient.Builder builder = new OkHttpClient.Builder(); - builder.sslSocketFactory(sslSocketFactory, (X509TrustManager)trustAllCerts[0]); - builder.hostnameVerifier(new HostnameVerifier() { - @Override - public boolean verify(String hostname, SSLSession session) { - return true; - } - }); - - OkHttpClient okHttpClient = builder - .connectTimeout(15, TimeUnit.SECONDS) - .writeTimeout(15, TimeUnit.SECONDS) - .readTimeout(15, TimeUnit.SECONDS) - .build(); - return okHttpClient; - } catch (Exception e) { - throw new RuntimeException(e); - } + public static OkHttpClient getBasicOkHttpClient() { + return new OkHttpClient.Builder() + .connectTimeout(15, TimeUnit.SECONDS) + .writeTimeout(15, TimeUnit.SECONDS) + .readTimeout(15, TimeUnit.SECONDS) + .build(); } /** diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/content_blocker/ContentBlockerHandler.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/content_blocker/ContentBlockerHandler.java index 3b9e279b..78cdfcbb 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/content_blocker/ContentBlockerHandler.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/content_blocker/ContentBlockerHandler.java @@ -2,7 +2,6 @@ package com.pichillilorenzo.flutter_inappwebview.content_blocker; import android.os.Build; import android.os.Handler; -import android.os.Looper; import android.util.Log; import android.webkit.WebResourceResponse; @@ -21,6 +20,8 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CountDownLatch; import java.util.regex.Matcher; +import javax.net.ssl.SSLHandshakeException; + import okhttp3.Request; import okhttp3.Response; @@ -181,7 +182,7 @@ public class ContentBlockerHandler { Response response = null; try { - response = Util.getUnsafeOkHttpClient().newCall(mRequest).execute(); + response = Util.getBasicOkHttpClient().newCall(mRequest).execute(); byte[] dataBytes = response.body().bytes(); InputStream dataStream = new ByteArrayInputStream(dataBytes); @@ -198,12 +199,14 @@ public class ContentBlockerHandler { return new WebResourceResponse(contentType, encoding, dataStream); } catch (Exception e) { - e.printStackTrace(); if (response != null) { response.body().close(); response.close(); } - Log.e(LOG_TAG, e.getMessage()); + if (!(e instanceof SSLHandshakeException)) { + e.printStackTrace(); + Log.e(LOG_TAG, e.getMessage()); + } } } break; @@ -231,7 +234,7 @@ public class ContentBlockerHandler { Request mRequest = new Request.Builder().url(url).head().build(); Response response = null; try { - response = Util.getUnsafeOkHttpClient().newCall(mRequest).execute(); + response = Util.getBasicOkHttpClient().newCall(mRequest).execute(); if (response.header("content-type") != null) { String[] contentTypeSplitted = response.header("content-type").split(";"); @@ -251,8 +254,10 @@ public class ContentBlockerHandler { response.body().close(); response.close(); } - e.printStackTrace(); - Log.e(LOG_TAG, e.getMessage()); + if (!(e instanceof SSLHandshakeException)) { + e.printStackTrace(); + Log.e(LOG_TAG, e.getMessage()); + } } } return responseResourceType; diff --git a/pubspec.yaml b/pubspec.yaml index 900c26e6..0c267d5f 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. -version: 5.4.4+2 +version: 5.4.4+3 homepage: https://github.com/pichillilorenzo/flutter_inappwebview environment: From c87d475c0a660c26c3686631eb7701ceb26258b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Uek=C3=B6tter?= Date: Mon, 10 Oct 2022 09:17:06 +0200 Subject: [PATCH 087/130] Update pubspec.yaml --- pubspec.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index 0c267d5f..0ca91445 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,8 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. version: 5.4.4+3 -homepage: https://github.com/pichillilorenzo/flutter_inappwebview +repository: https://github.com/pichillilorenzo/flutter_inappwebview +issue_tracker: https://github.com/pichillilorenzo/flutter_inappwebview/issues environment: sdk: ">=2.14.0 <3.0.0" @@ -65,4 +66,4 @@ flutter: false_secrets: - /nodejs_server_test_auth_basic_and_ssl/*.pem - - /nodejs_server_test_auth_basic_and_ssl/*.pfx \ No newline at end of file + - /nodejs_server_test_auth_basic_and_ssl/*.pfx From 68ee40b7e77d9033387cdea4c7fee192123722a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Uek=C3=B6tter?= Date: Mon, 10 Oct 2022 09:18:25 +0200 Subject: [PATCH 088/130] Update pubspec.yaml --- pubspec.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/pubspec.yaml b/pubspec.yaml index 0ca91445..3eaba629 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,7 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. version: 5.4.4+3 +homepage: https://inappwebview.dev/ repository: https://github.com/pichillilorenzo/flutter_inappwebview issue_tracker: https://github.com/pichillilorenzo/flutter_inappwebview/issues From 4e3c17842d3602cda456d78777a32edf5b23db66 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Wed, 12 Oct 2022 21:25:49 +0200 Subject: [PATCH 089/130] Fixed missing PullToRefreshController.isRefreshing iOS implementation, Fixed Android PullToRefreshController.setEnabled at runtime, Fixed iOS findNext --- CHANGELOG.md | 6 ++++++ .../pull_to_refresh/PullToRefreshLayout.java | 1 + example/ios/Flutter/Flutter.podspec | 18 ++++++++++++++++++ .../ios/Flutter/flutter_export_environment.sh | 5 +++-- example/ios/Runner.xcodeproj/project.pbxproj | 6 +++--- example/ios/Runner/Info.plist | 4 ++-- example/lib/in_app_webiew_example.screen.dart | 6 +++--- .../PluginScriptsJS/FindTextHighlightJS.swift | 2 +- .../PullToRefresh/PullToRefreshControl.swift | 3 +++ pubspec.yaml | 2 +- 10 files changed, 41 insertions(+), 12 deletions(-) create mode 100644 example/ios/Flutter/Flutter.podspec diff --git a/CHANGELOG.md b/CHANGELOG.md index 24fb1b96..32a98d91 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 5.4.4+4 + +- Fixed missing `PullToRefreshController.isRefreshing` iOS implementation +- Fixed Android `PullToRefreshController.setEnabled` at runtime +- Fixed iOS `findNext` + ## 5.4.4+3 - Removed Android unsafe trust manager diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/pull_to_refresh/PullToRefreshLayout.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/pull_to_refresh/PullToRefreshLayout.java index 0d009a4d..5db895b6 100644 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/pull_to_refresh/PullToRefreshLayout.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/pull_to_refresh/PullToRefreshLayout.java @@ -94,6 +94,7 @@ public class PullToRefreshLayout extends SwipeRefreshLayout implements MethodCha case "setEnabled": { Boolean enabled = (Boolean) call.argument("enabled"); + options.enabled = enabled; // used by InAppWebView.onOverScrolled setEnabled(enabled); } result.success(true); diff --git a/example/ios/Flutter/Flutter.podspec b/example/ios/Flutter/Flutter.podspec new file mode 100644 index 00000000..8ce43943 --- /dev/null +++ b/example/ios/Flutter/Flutter.podspec @@ -0,0 +1,18 @@ +# +# NOTE: This podspec is NOT to be published. It is only used as a local source! +# This is a generated file; do not edit or check into version control. +# + +Pod::Spec.new do |s| + s.name = 'Flutter' + s.version = '1.0.0' + s.summary = 'A UI toolkit for beautiful and fast apps.' + s.homepage = 'https://flutter.dev' + s.license = { :type => 'BSD' } + s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' } + s.source = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s } + s.ios.deployment_target = '11.0' + # Framework linking is handled by Flutter tooling, not CocoaPods. + # Add a placeholder to satisfy `s.dependency 'Flutter'` plugin podspecs. + s.vendored_frameworks = 'path/to/nothing' +end diff --git a/example/ios/Flutter/flutter_export_environment.sh b/example/ios/Flutter/flutter_export_environment.sh index ee7ac300..fdf299a5 100755 --- a/example/ios/Flutter/flutter_export_environment.sh +++ b/example/ios/Flutter/flutter_export_environment.sh @@ -3,11 +3,12 @@ export "FLUTTER_ROOT=/Users/lorenzopichilli/fvm/versions/2.10.4" export "FLUTTER_APPLICATION_PATH=/Users/lorenzopichilli/flutter_inappwebview_v5/example" export "COCOAPODS_PARALLEL_CODE_SIGN=true" -export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_TARGET=/Users/lorenzopichilli/flutter_inappwebview_v5/example/lib/main.dart" export "FLUTTER_BUILD_DIR=build" export "FLUTTER_BUILD_NAME=1.0.0" export "FLUTTER_BUILD_NUMBER=1" +export "DART_DEFINES=Zmx1dHRlci5pbnNwZWN0b3Iuc3RydWN0dXJlZEVycm9ycz10cnVl,RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ==" export "DART_OBFUSCATION=false" export "TRACK_WIDGET_CREATION=true" export "TREE_SHAKE_ICONS=false" -export "PACKAGE_CONFIG=.dart_tool/package_config.json" +export "PACKAGE_CONFIG=/Users/lorenzopichilli/flutter_inappwebview_v5/example/.dart_tool/package_config.json" diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 179e1dde..d1530a3f 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 46; objects = { /* Begin PBXBuildFile section */ @@ -456,7 +456,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.pichillilorenzo.flutter-inappwebview--Example"; + PRODUCT_BUNDLE_IDENTIFIER = "com.pichillilorenzo.flutter-inappwebview-Example"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -484,7 +484,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = "com.pichillilorenzo.flutter-inappwebview--Example"; + PRODUCT_BUNDLE_IDENTIFIER = "com.pichillilorenzo.flutter-inappwebview-Example"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist index fe8e5ffd..d13650c0 100755 --- a/example/ios/Runner/Info.plist +++ b/example/ios/Runner/Info.plist @@ -2,6 +2,8 @@ + CADisableMinimumFrameDurationOnPhone + CFBundleDevelopmentRegion en CFBundleExecutable @@ -73,7 +75,5 @@ UIViewControllerBasedStatusBarAppearance - CADisableMinimumFrameDurationOnPhone - diff --git a/example/lib/in_app_webiew_example.screen.dart b/example/lib/in_app_webiew_example.screen.dart index b656d6fe..a42b9b45 100755 --- a/example/lib/in_app_webiew_example.screen.dart +++ b/example/lib/in_app_webiew_example.screen.dart @@ -151,10 +151,10 @@ class _InAppWebViewExampleScreenState extends State { "javascript", "about" ].contains(uri.scheme)) { - if (await canLaunch(url)) { + if (await canLaunchUrl(uri)) { // Launch the App - await launch( - url, + await launchUrl( + uri, ); // and cancel the request return NavigationActionPolicy.CANCEL; diff --git a/ios/Classes/PluginScriptsJS/FindTextHighlightJS.swift b/ios/Classes/PluginScriptsJS/FindTextHighlightJS.swift index ac93adf0..a61a05b7 100644 --- a/ios/Classes/PluginScriptsJS/FindTextHighlightJS.swift +++ b/ios/Classes/PluginScriptsJS/FindTextHighlightJS.swift @@ -42,7 +42,7 @@ window.\(JAVASCRIPT_BRIDGE_NAME)._findAllAsyncForElement = function(element, key span.setAttribute( "id", - "WKWEBVIEW_SEARCH_WORD_" + \(FIND_TEXT_HIGHLIGHT_SEARCH_RESULT_COUNT_JS_SOURCE) + "\(JAVASCRIPT_BRIDGE_NAME)_SEARCH_WORD_" + \(FIND_TEXT_HIGHLIGHT_SEARCH_RESULT_COUNT_JS_SOURCE) ); span.setAttribute("class", "\(JAVASCRIPT_BRIDGE_NAME)_Highlight"); var backgroundColor = \(FIND_TEXT_HIGHLIGHT_SEARCH_RESULT_COUNT_JS_SOURCE) == 0 ? "#FF9732" : "#FFFF00"; diff --git a/ios/Classes/PullToRefresh/PullToRefreshControl.swift b/ios/Classes/PullToRefresh/PullToRefreshControl.swift index 481bf8d9..2d55d3ea 100644 --- a/ios/Classes/PullToRefresh/PullToRefreshControl.swift +++ b/ios/Classes/PullToRefresh/PullToRefreshControl.swift @@ -70,6 +70,9 @@ public class PullToRefreshControl : UIRefreshControl, FlutterPlugin { } result(true) break + case "isRefreshing": + result(isRefreshing) + break case "setColor": let color = arguments!["color"] as! String tintColor = UIColor(hexString: color) diff --git a/pubspec.yaml b/pubspec.yaml index 0c267d5f..59252cc3 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. -version: 5.4.4+3 +version: 5.4.4+4 homepage: https://github.com/pichillilorenzo/flutter_inappwebview environment: From 752a5d2ad884767d6985a91bb8e31cb076821582 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 12 Oct 2022 19:30:29 +0000 Subject: [PATCH 090/130] update README.md --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f851ef0a..f2f6b479 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) -[![All Contributors](https://img.shields.io/badge/all_contributors-53-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-54-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -140,11 +140,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Rex Raphael
Rex Raphael

💻 Jan Henrik Høiland
Jan Henrik Høiland

💻 Iguchi Tomokatsu
Iguchi Tomokatsu

💻 + Jonas Uekötter
Jonas Uekötter

📖 - - - From fe0a8fdcb3f84e6b313543e5cc58b56c0b2d481d Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 12 Oct 2022 19:30:30 +0000 Subject: [PATCH 091/130] update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 9bb8ce01..a0ae5fc5 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -486,6 +486,15 @@ "contributions": [ "code" ] + }, + { + "login": "ueman", + "name": "Jonas Uekötter", + "avatar_url": "https://avatars.githubusercontent.com/u/1270149?v=4", + "profile": "https://uekoetter.dev/", + "contributions": [ + "doc" + ] } ], "contributorsPerLine": 7, From 4aa2875410612887cb43e88239b87b4e4423f205 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Wed, 12 Oct 2022 21:35:21 +0200 Subject: [PATCH 092/130] updated README.md --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f2f6b479..504cf95f 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@ +
+ # Flutter InAppWebView Plugin [![Share on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Flutter%20InAppBrowser%20plugin!&url=https://github.com/pichillilorenzo/flutter_inappwebview&hashtags=flutter,flutterio,dart,dartlang,webview) [![Share on Facebook](https://img.shields.io/badge/share-facebook-blue.svg?longCache=true&style=flat&colorB=%234267b2)](https://www.facebook.com/sharer/sharer.php?u=https%3A//github.com/pichillilorenzo/flutter_inappwebview) + +![InAppWebView-logo](https://user-images.githubusercontent.com/5956938/195422744-bdcfed16-73f0-4bc9-94ab-ecf10771a1c4.png) + -[![All Contributors](https://img.shields.io/badge/all_contributors-54-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-53-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -14,11 +19,10 @@ [![GitHub forks](https://img.shields.io/github/forks/pichillilorenzo/flutter_inappwebview?style=social)](https://github.com/pichillilorenzo/flutter_inappwebview) [![GitHub stars](https://img.shields.io/github/stars/pichillilorenzo/flutter_inappwebview?style=social)](https://github.com/pichillilorenzo/flutter_inappwebview) - -![InAppWebView-logo](https://user-images.githubusercontent.com/5956938/110180687-8751f480-7e0a-11eb-89cc-d62f85c148cb.png) - A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. +
+ ## Articles/Resources - [Official documentation: inappwebview.dev/docs](https://inappwebview.dev/docs/) From 4955443e6caf6408280a9a638425f6c2b652c70e Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Wed, 12 Oct 2022 21:36:06 +0200 Subject: [PATCH 093/130] updated README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 504cf95f..a29a15ca 100755 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![InAppWebView-logo](https://user-images.githubusercontent.com/5956938/195422744-bdcfed16-73f0-4bc9-94ab-ecf10771a1c4.png) -[![All Contributors](https://img.shields.io/badge/all_contributors-53-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-54-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) From 25cb58dce76e28d88fb03b2e9bc4b92677e127b6 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Wed, 12 Oct 2022 22:09:24 +0200 Subject: [PATCH 094/130] Fixed Android RendererPriorityPolicy.waivedWhenNotVisible type 'Null' is not a subtype of type 'bool' #1334 --- CHANGELOG.md | 1 + .../flutter_inappwebview/in_app_webview/InAppWebView.java | 8 ++------ .../in_app_webview/InAppWebViewOptions.java | 3 ++- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32a98d91..baa8846f 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ - Fixed missing `PullToRefreshController.isRefreshing` iOS implementation - Fixed Android `PullToRefreshController.setEnabled` at runtime - Fixed iOS `findNext` +- Fixed Android `RendererPriorityPolicy.waivedWhenNotVisible` type 'Null' is not a subtype of type 'bool' ## 5.4.4+3 diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebView.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebView.java index 6bfca2bb..f061381c 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebView.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebView.java @@ -360,10 +360,6 @@ final public class InAppWebView extends InputAwareWebView implements InAppWebVie setRendererPriorityPolicy( (int) options.rendererPriorityPolicy.get("rendererRequestedPriority"), (boolean) options.rendererPriorityPolicy.get("waivedWhenNotVisible")); - } else if ((options.rendererPriorityPolicy == null || (options.rendererPriorityPolicy != null && options.rendererPriorityPolicy.isEmpty())) && - Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - options.rendererPriorityPolicy.put("rendererRequestedPriority", getRendererRequestedPriority()); - options.rendererPriorityPolicy.put("waivedWhenNotVisible", getRendererPriorityWaivedWhenNotVisible()); } contentBlockerHandler.getRuleList().clear(); @@ -939,9 +935,9 @@ final public class InAppWebView extends InputAwareWebView implements InAppWebVie if (newOptionsMap.get("networkAvailable") != null && options.networkAvailable != newOptions.networkAvailable) setNetworkAvailable(newOptions.networkAvailable); - if (newOptionsMap.get("rendererPriorityPolicy") != null && + if (newOptionsMap.get("rendererPriorityPolicy") != null && (options.rendererPriorityPolicy == null || (options.rendererPriorityPolicy.get("rendererRequestedPriority") != newOptions.rendererPriorityPolicy.get("rendererRequestedPriority") || - options.rendererPriorityPolicy.get("waivedWhenNotVisible") != newOptions.rendererPriorityPolicy.get("waivedWhenNotVisible")) && + options.rendererPriorityPolicy.get("waivedWhenNotVisible") != newOptions.rendererPriorityPolicy.get("waivedWhenNotVisible"))) && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { setRendererPriorityPolicy( (int) newOptions.rendererPriorityPolicy.get("rendererRequestedPriority"), diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewOptions.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewOptions.java index 21917383..1418af9b 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewOptions.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewOptions.java @@ -95,7 +95,8 @@ public class InAppWebViewOptions implements Options { public Integer scrollBarDefaultDelayBeforeFade = null; public Boolean scrollbarFadingEnabled = true; public Integer scrollBarFadeDuration = null; - public Map rendererPriorityPolicy = new HashMap<>(); + @Nullable + public Map rendererPriorityPolicy = null; public Boolean useShouldInterceptRequest = false; public Boolean useOnRenderProcessGone = false; public Boolean disableDefaultErrorPage = false; From 6abf958b317dce804e6fe7945b5c8ed2e4dcef4b Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 13 Oct 2022 10:18:08 +0200 Subject: [PATCH 095/130] Added Android direct camera capture feature --- CHANGELOG.md | 3 +- .../InAppWebViewChromeClient.java | 103 ++++++++++++------ pubspec.yaml | 2 +- 3 files changed, 70 insertions(+), 38 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index baa8846f..7902a962 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ -## 5.4.4+4 +## 5.4.5 +- Added Android direct camera capture feature - Fixed missing `PullToRefreshController.isRefreshing` iOS implementation - Fixed Android `PullToRefreshController.setEnabled` at runtime - Fixed iOS `findNext` diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewChromeClient.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewChromeClient.java index 0cb92643..67f3eef9 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewChromeClient.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewChromeClient.java @@ -780,15 +780,15 @@ public class InAppWebViewChromeClient extends WebChromeClient implements PluginR } protected void openFileChooser(ValueCallback filePathCallback, String acceptType) { - startPhotoPickerIntent(filePathCallback, acceptType); + startPickerIntent(filePathCallback, acceptType, null); } protected void openFileChooser(ValueCallback filePathCallback) { - startPhotoPickerIntent(filePathCallback, ""); + startPickerIntent(filePathCallback, "", null); } protected void openFileChooser(ValueCallback filePathCallback, String acceptType, String capture) { - startPhotoPickerIntent(filePathCallback, acceptType); + startPickerIntent(filePathCallback, acceptType, capture); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) @@ -796,8 +796,8 @@ public class InAppWebViewChromeClient extends WebChromeClient implements PluginR public boolean onShowFileChooser(WebView webView, ValueCallback filePathCallback, FileChooserParams fileChooserParams) { String[] acceptTypes = fileChooserParams.getAcceptTypes(); boolean allowMultiple = fileChooserParams.getMode() == WebChromeClient.FileChooserParams.MODE_OPEN_MULTIPLE; - Intent intent = fileChooserParams.createIntent(); - return startPhotoPickerIntent(filePathCallback, intent, acceptTypes, allowMultiple); + boolean captureEnabled = fileChooserParams.isCaptureEnabled(); + return startPickerIntent(filePathCallback, acceptTypes, allowMultiple, captureEnabled); } @Override @@ -898,58 +898,89 @@ public class InAppWebViewChromeClient extends WebChromeClient implements PluginR return null; } - public void startPhotoPickerIntent(ValueCallback filePathCallback, String acceptType) { + public void startPickerIntent(ValueCallback filePathCallback, String acceptType, @Nullable String capture) { InAppWebViewFlutterPlugin.filePathCallbackLegacy = filePathCallback; - Intent fileChooserIntent = getFileChooserIntent(acceptType); - Intent chooserIntent = Intent.createChooser(fileChooserIntent, ""); + boolean images = acceptsImages(acceptType); + boolean video = acceptsVideo(acceptType); - ArrayList extraIntents = new ArrayList<>(); - if (acceptsImages(acceptType)) { - extraIntents.add(getPhotoIntent()); + Intent pickerIntent = null; + + if (capture != null) { + if (!needsCameraPermission()) { + if (images) { + pickerIntent = getPhotoIntent(); + } + else if (video) { + pickerIntent = getVideoIntent(); + } + } } - if (acceptsVideo(acceptType)) { - extraIntents.add(getVideoIntent()); + if (pickerIntent == null) { + Intent fileChooserIntent = getFileChooserIntent(acceptType); + pickerIntent = Intent.createChooser(fileChooserIntent, ""); + + ArrayList extraIntents = new ArrayList<>(); + if (!needsCameraPermission()) { + if (images) { + extraIntents.add(getPhotoIntent()); + } + if (video) { + extraIntents.add(getVideoIntent()); + } + } + pickerIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents.toArray(new Parcelable[]{})); } - chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents.toArray(new Parcelable[]{})); Activity activity = getActivity(); - if (activity == null) { - return; - } - if (chooserIntent.resolveActivity(activity.getPackageManager()) != null) { - activity.startActivityForResult(chooserIntent, PICKER_LEGACY); + if (activity != null && pickerIntent.resolveActivity(activity.getPackageManager()) != null) { + activity.startActivityForResult(pickerIntent, PICKER_LEGACY); } else { Log.d(LOG_TAG, "there is no Activity to handle this Intent"); } } @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) - public boolean startPhotoPickerIntent(final ValueCallback callback, final Intent intent, final String[] acceptTypes, final boolean allowMultiple) { + public boolean startPickerIntent(final ValueCallback callback, final String[] acceptTypes, + final boolean allowMultiple, final boolean captureEnabled) { InAppWebViewFlutterPlugin.filePathCallback = callback; - ArrayList extraIntents = new ArrayList<>(); - if (!needsCameraPermission()) { - if (acceptsImages(acceptTypes)) { - extraIntents.add(getPhotoIntent()); - } - if (acceptsVideo(acceptTypes)) { - extraIntents.add(getVideoIntent()); + boolean images = acceptsImages(acceptTypes); + boolean video = acceptsVideo(acceptTypes); + + Intent pickerIntent = null; + + if (captureEnabled) { + if (!needsCameraPermission()) { + if (images) { + pickerIntent = getPhotoIntent(); + } + else if (video) { + pickerIntent = getVideoIntent(); + } } } + if (pickerIntent == null) { + ArrayList extraIntents = new ArrayList<>(); + if (!needsCameraPermission()) { + if (images) { + extraIntents.add(getPhotoIntent()); + } + if (video) { + extraIntents.add(getVideoIntent()); + } + } - Intent fileSelectionIntent = getFileChooserIntent(acceptTypes, allowMultiple); + Intent fileSelectionIntent = getFileChooserIntent(acceptTypes, allowMultiple); - Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER); - chooserIntent.putExtra(Intent.EXTRA_INTENT, fileSelectionIntent); - chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents.toArray(new Parcelable[]{})); + pickerIntent = new Intent(Intent.ACTION_CHOOSER); + pickerIntent.putExtra(Intent.EXTRA_INTENT, fileSelectionIntent); + pickerIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents.toArray(new Parcelable[]{})); + } Activity activity = getActivity(); - if (activity == null) { - return true; - } - if (chooserIntent.resolveActivity(activity.getPackageManager()) != null) { - activity.startActivityForResult(chooserIntent, PICKER); + if (activity != null && pickerIntent.resolveActivity(activity.getPackageManager()) != null) { + activity.startActivityForResult(pickerIntent, PICKER); } else { Log.d(LOG_TAG, "there is no Activity to handle this Intent"); } diff --git a/pubspec.yaml b/pubspec.yaml index da1c0897..22e7066d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. -version: 5.4.4+4 +version: 5.4.5 homepage: https://inappwebview.dev/ repository: https://github.com/pichillilorenzo/flutter_inappwebview issue_tracker: https://github.com/pichillilorenzo/flutter_inappwebview/issues From e46523aef333080dbba05a3b7b888ed054c6d3c4 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 13 Oct 2022 14:21:26 +0200 Subject: [PATCH 096/130] Fixed iOS 14.0 crash when calling callAsyncJavaScript method --- CHANGELOG.md | 1 + ios/Classes/InAppWebViewMethodHandler.swift | 2 +- lib/src/in_app_webview/in_app_webview_controller.dart | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7902a962..c9499daa 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Fixed Android `PullToRefreshController.setEnabled` at runtime - Fixed iOS `findNext` - Fixed Android `RendererPriorityPolicy.waivedWhenNotVisible` type 'Null' is not a subtype of type 'bool' +- Fixed iOS 14.0 crash when calling `callAsyncJavaScript` method ## 5.4.4+3 diff --git a/ios/Classes/InAppWebViewMethodHandler.swift b/ios/Classes/InAppWebViewMethodHandler.swift index fe45528d..a908a9a0 100644 --- a/ios/Classes/InAppWebViewMethodHandler.swift +++ b/ios/Classes/InAppWebViewMethodHandler.swift @@ -417,7 +417,7 @@ public class InAppWebViewMethodHandler: FlutterMethodCallDelegate { break case "callAsyncJavaScript": if let webView = webView, #available(iOS 10.3, *) { - if #available(iOS 14.0, *) { + if #available(iOS 14.3, *) { // on iOS 14.0, for some reason, it crashes let functionBody = arguments!["functionBody"] as! String let functionArguments = arguments!["arguments"] as! [String:Any] var contentWorld = WKContentWorld.page diff --git a/lib/src/in_app_webview/in_app_webview_controller.dart b/lib/src/in_app_webview/in_app_webview_controller.dart index b2be39c4..ece08df9 100644 --- a/lib/src/in_app_webview/in_app_webview_controller.dart +++ b/lib/src/in_app_webview/in_app_webview_controller.dart @@ -2218,7 +2218,7 @@ class InAppWebViewController { ///This parameter doesn’t apply to changes you make to the underlying web content, such as the document’s DOM structure. ///Those changes remain visible to all scripts, regardless of which content world you specify. ///For more information about content worlds, see [ContentWorld]. - ///Available on iOS 14.0+. + ///Available on iOS 14.3+. /// ///**NOTE**: This method shouldn't be called in the [WebView.onWebViewCreated] or [WebView.onLoadStart] events, ///because, in these events, the [WebView] is not ready to handle it yet. From a64b31122333d28e5ae3cc71995d1f3fb7c80b9b Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 13:36:28 +0000 Subject: [PATCH 097/130] update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a29a15ca..52068c01 100755 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![InAppWebView-logo](https://user-images.githubusercontent.com/5956938/195422744-bdcfed16-73f0-4bc9-94ab-ecf10771a1c4.png) -[![All Contributors](https://img.shields.io/badge/all_contributors-54-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-55-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -145,6 +145,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Jan Henrik Høiland
Jan Henrik Høiland

💻 Iguchi Tomokatsu
Iguchi Tomokatsu

💻 Jonas Uekötter
Jonas Uekötter

📖 + emakar
emakar

💻 From 4f9f2e66d048aed7b13b2f2a3fa562e976ad2ce2 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 13:36:29 +0000 Subject: [PATCH 098/130] update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index a0ae5fc5..2bfca833 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -495,6 +495,15 @@ "contributions": [ "doc" ] + }, + { + "login": "emakar", + "name": "emakar", + "avatar_url": "https://avatars.githubusercontent.com/u/7767193?v=4", + "profile": "https://github.com/emakar", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, From 0f9896aedf5fd36ac7b2ebae21e89da1fad74bdd Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 13 Oct 2022 15:48:04 +0200 Subject: [PATCH 099/130] Update JavaScriptBridgeJS.java replaced js arrayBufferToString uint8Array.reduce arrow function with normal function --- .../plugin_scripts_js/JavaScriptBridgeJS.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/plugin_scripts_js/JavaScriptBridgeJS.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/plugin_scripts_js/JavaScriptBridgeJS.java index f36fc042..d624eadb 100644 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/plugin_scripts_js/JavaScriptBridgeJS.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/plugin_scripts_js/JavaScriptBridgeJS.java @@ -148,7 +148,7 @@ public class JavaScriptBridgeJS { " }," + " arrayBufferToString: function(arrayBuffer) {" + " const uint8Array = new Uint8Array(arrayBuffer);" + - " const data = uint8Array.reduce((acc, i) => acc += String.fromCharCode.apply(null, [i]), '');" + + " const data = uint8Array.reduce(function(acc, i) { return acc += String.fromCharCode.apply(null, [i]); }, '');" + " return data;" + " }," + " isBodyFormData: function(bodyString) {" + From 4d41b1b4df403ef864713822d6cc95ed6fb526dd Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 13 Oct 2022 15:49:09 +0200 Subject: [PATCH 100/130] Update JavaScriptBridgeJS.swift replaced js arrayBufferToString uint8Array.reduce arrow function with normal function --- ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift b/ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift index 8f9aa385..3c65decc 100644 --- a/ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift +++ b/ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift @@ -176,7 +176,7 @@ let UTIL_JS_SOURCE = """ }, arrayBufferToString: function(arrayBuffer) { const uint8Array = new Uint8Array(arrayBuffer); - const data = uint8Array.reduce((acc, i) => acc += String.fromCharCode.apply(null, [i]), ''); + const data = uint8Array.reduce(function(acc, i) { return acc += String.fromCharCode.apply(null, [i]); }, ''); return data; }, isBodyFormData: function(bodyString) { From 3481ac94f3670b4de9e4672752231851ae016b32 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 13:52:43 +0000 Subject: [PATCH 101/130] update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 52068c01..28f8d057 100755 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![InAppWebView-logo](https://user-images.githubusercontent.com/5956938/195422744-bdcfed16-73f0-4bc9-94ab-ecf10771a1c4.png) -[![All Contributors](https://img.shields.io/badge/all_contributors-55-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-56-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -146,6 +146,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Iguchi Tomokatsu
Iguchi Tomokatsu

💻 Jonas Uekötter
Jonas Uekötter

📖 emakar
emakar

💻 + liasica
liasica

💻 From 211d0d762144419a23de20557b880491da3c37c6 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 13:52:44 +0000 Subject: [PATCH 102/130] update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 2bfca833..d9bf70a8 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -504,6 +504,15 @@ "contributions": [ "code" ] + }, + { + "login": "liasica", + "name": "liasica", + "avatar_url": "https://avatars.githubusercontent.com/u/671431?v=4", + "profile": "http://weibo.com/magicrolan", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, From 53812ba07e876a05893d7b3655065b1df9d9cdc5 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 13 Oct 2022 15:54:11 +0200 Subject: [PATCH 103/130] Update .all-contributorsrc --- .all-contributorsrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index d9bf70a8..223ead32 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -509,7 +509,7 @@ "login": "liasica", "name": "liasica", "avatar_url": "https://avatars.githubusercontent.com/u/671431?v=4", - "profile": "http://weibo.com/magicrolan", + "profile": "https://weibo.com/magicrolan", "contributions": [ "code" ] From 8681c453d25cde3fa927e797a8b7c192958a7e9b Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 13 Oct 2022 15:54:48 +0200 Subject: [PATCH 104/130] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 28f8d057..67798bb6 100755 --- a/README.md +++ b/README.md @@ -146,7 +146,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Iguchi Tomokatsu
Iguchi Tomokatsu

💻 Jonas Uekötter
Jonas Uekötter

📖 emakar
emakar

💻 - liasica
liasica

💻 + liasica
liasica

💻 @@ -156,4 +156,4 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d -This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! \ No newline at end of file +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! From fbc8e5decdcdd6a2213927e42e3ee02e05cc6fea Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 13 Oct 2022 15:59:50 +0200 Subject: [PATCH 105/130] updated js code arrayBufferToString --- CHANGELOG.md | 2 ++ .../plugin_scripts_js/JavaScriptBridgeJS.java | 5 ++--- example/ios/Runner.xcodeproj/project.pbxproj | 2 +- ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift | 5 ++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9499daa..45d36035 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ - Fixed iOS `findNext` - Fixed Android `RendererPriorityPolicy.waivedWhenNotVisible` type 'Null' is not a subtype of type 'bool' - Fixed iOS 14.0 crash when calling `callAsyncJavaScript` method +- Merged "Android fix leaking MethodChannel through anonymous class" [#1201](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1201) (thanks to [emakar](https://github.com/emakar)) +- Merged "Fix RangeError: Maximum call stack size exceeded" [#1208](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1208) (thanks to [liasica](https://github.com/liasica)) ## 5.4.4+3 diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/plugin_scripts_js/JavaScriptBridgeJS.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/plugin_scripts_js/JavaScriptBridgeJS.java index d624eadb..8187edc1 100644 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/plugin_scripts_js/JavaScriptBridgeJS.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/plugin_scripts_js/JavaScriptBridgeJS.java @@ -147,9 +147,8 @@ public class JavaScriptBridgeJS { " });" + " }," + " arrayBufferToString: function(arrayBuffer) {" + - " const uint8Array = new Uint8Array(arrayBuffer);" + - " const data = uint8Array.reduce(function(acc, i) { return acc += String.fromCharCode.apply(null, [i]); }, '');" + - " return data;" + + " var uint8Array = new Uint8Array(arrayBuffer);" + + " return uint8Array.reduce(function(acc, i) { return acc += String.fromCharCode.apply(null, [i]); }, '');" + " }," + " isBodyFormData: function(bodyString) {" + " return bodyString.indexOf('------WebKitFormBoundary') >= 0;" + diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index d1530a3f..95663621 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 50; objects = { /* Begin PBXBuildFile section */ diff --git a/ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift b/ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift index 3c65decc..cddca764 100644 --- a/ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift +++ b/ios/Classes/PluginScriptsJS/JavaScriptBridgeJS.swift @@ -175,9 +175,8 @@ let UTIL_JS_SOURCE = """ }); }, arrayBufferToString: function(arrayBuffer) { - const uint8Array = new Uint8Array(arrayBuffer); - const data = uint8Array.reduce(function(acc, i) { return acc += String.fromCharCode.apply(null, [i]); }, ''); - return data; + var uint8Array = new Uint8Array(arrayBuffer); + return uint8Array.reduce(function(acc, i) { return acc += String.fromCharCode.apply(null, [i]); }, ''); }, isBodyFormData: function(bodyString) { return bodyString.indexOf('------WebKitFormBoundary') >= 0; From 07a1336e3a4e139723c938e0a44e3ad47b4414a4 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 14:36:24 +0000 Subject: [PATCH 106/130] update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 67798bb6..a91d054a 100755 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![InAppWebView-logo](https://user-images.githubusercontent.com/5956938/195422744-bdcfed16-73f0-4bc9-94ab-ecf10771a1c4.png) -[![All Contributors](https://img.shields.io/badge/all_contributors-56-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-57-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -148,6 +148,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d emakar
emakar

💻 liasica
liasica

💻 + + Eiichiro Adachi
Eiichiro Adachi

💻 + From e8185c4cac607bfc86208db67e6a9154046b0999 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 14:36:25 +0000 Subject: [PATCH 107/130] update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 223ead32..627c57bc 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -513,6 +513,15 @@ "contributions": [ "code" ] + }, + { + "login": "addie9000", + "name": "Eiichiro Adachi", + "avatar_url": "https://avatars.githubusercontent.com/u/2036910?v=4", + "profile": "https://github.com/addie9000", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, From 169bf2d340c7a1b5d98332639530238bb0f760fd Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 13 Oct 2022 17:03:01 +0200 Subject: [PATCH 108/130] Update InAppWebViewClient.java Added more checks when trying to parse an URL using URI and allow the request to go to the flutter delegate. --- .../in_app_webview/InAppWebViewClient.java | 83 ++++++++----------- 1 file changed, 36 insertions(+), 47 deletions(-) diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewClient.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewClient.java index 86e31013..59aadaac 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewClient.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewClient.java @@ -328,34 +328,22 @@ public class InAppWebViewClient extends WebViewClient { @Override public void onReceivedHttpAuthRequest(final WebView view, final HttpAuthHandler handler, final String host, final String realm) { - - URI uri; - try { - String url = view.getUrl(); - if (url == null) return; - uri = new URI(url); - } catch (URISyntaxException e) { - e.printStackTrace(); - - credentialsProposed = null; - previousAuthRequestFailureCount = 0; - - handler.cancel(); - return; + final String url = view.getUrl(); + String protocol = "https"; + int port = 0; + + if (url != null) { + try { + URI uri = new URI(url); + protocol = uri.getScheme(); + port = uri.getPort(); + } catch (URISyntaxException e) { + e.printStackTrace(); + } } - final String protocol = uri.getScheme(); - final int port = uri.getPort(); - previousAuthRequestFailureCount++; - Map obj = new HashMap<>(); - obj.put("host", host); - obj.put("protocol", protocol); - obj.put("realm", realm); - obj.put("port", port); - obj.put("previousFailureCount", previousAuthRequestFailureCount); - if (credentialsProposed == null) credentialsProposed = CredentialDatabase.getInstance(view.getContext()).getHttpAuthCredentials(host, protocol, realm, port); @@ -367,6 +355,8 @@ public class InAppWebViewClient extends WebViewClient { URLProtectionSpace protectionSpace = new URLProtectionSpace(host, protocol, realm, port, view.getCertificate(), null); HttpAuthenticationChallenge challenge = new HttpAuthenticationChallenge(protectionSpace, previousAuthRequestFailureCount, credentialProposed); + final String finalProtocol = protocol; + final int finalPort = port; channel.invokeMethod("onReceivedHttpAuthRequest", challenge.toMap(), new MethodChannel.Result() { @Override public void success(Object response) { @@ -380,7 +370,7 @@ public class InAppWebViewClient extends WebViewClient { String password = (String) responseMap.get("password"); Boolean permanentPersistence = (Boolean) responseMap.get("permanentPersistence"); if (permanentPersistence != null && permanentPersistence) { - CredentialDatabase.getInstance(view.getContext()).setHttpAuthCredential(host, protocol, realm, port, username, password); + CredentialDatabase.getInstance(view.getContext()).setHttpAuthCredential(host, finalProtocol, realm, finalPort, username, password); } handler.proceed(username, password); return; @@ -421,20 +411,21 @@ public class InAppWebViewClient extends WebViewClient { @Override public void onReceivedSslError(final WebView view, final SslErrorHandler handler, final SslError sslError) { - URI uri; + final String url = sslError.getUrl(); + String host = ""; + String protocol = "https"; + final String realm = null; + int port = 0; + try { - uri = new URI(sslError.getUrl()); + URI uri = new URI(url); + host = uri.getHost(); + protocol = uri.getScheme(); + port = uri.getPort(); } catch (URISyntaxException e) { e.printStackTrace(); - handler.cancel(); - return; } - final String host = uri.getHost(); - final String protocol = uri.getScheme(); - final String realm = null; - final int port = uri.getPort(); - URLProtectionSpace protectionSpace = new URLProtectionSpace(host, protocol, realm, port, sslError.getCertificate(), sslError); ServerTrustChallenge challenge = new ServerTrustChallenge(protectionSpace); @@ -475,23 +466,21 @@ public class InAppWebViewClient extends WebViewClient { @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override public void onReceivedClientCertRequest(final WebView view, final ClientCertRequest request) { - - InAppWebView webView = (InAppWebView) view; - - URI uri; - try { - uri = new URI(view.getUrl()); - } catch (URISyntaxException e) { - e.printStackTrace(); - request.cancel(); - return; - } - + final String url = view.getUrl(); final String host = request.getHost(); - final String protocol = uri.getScheme(); + String protocol = "https"; final String realm = null; final int port = request.getPort(); + if (url != null) { + try { + URI uri = new URI(url); + protocol = uri.getScheme(); + } catch (URISyntaxException e) { + e.printStackTrace(); + } + } + URLProtectionSpace protectionSpace = new URLProtectionSpace(host, protocol, realm, port, view.getCertificate(), null); ClientCertChallenge challenge = new ClientCertChallenge(protectionSpace, request.getPrincipals(), request.getKeyTypes()); From c7db0d08c39ccfbcbd97017a2e71741faa964fa8 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 15:06:21 +0000 Subject: [PATCH 109/130] update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a91d054a..d8d33849 100755 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![InAppWebView-logo](https://user-images.githubusercontent.com/5956938/195422744-bdcfed16-73f0-4bc9-94ab-ecf10771a1c4.png) -[![All Contributors](https://img.shields.io/badge/all_contributors-57-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-58-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -150,6 +150,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Eiichiro Adachi
Eiichiro Adachi

💻 + Kamil Powałowski
Kamil Powałowski

💻 From c6195cde5822153aa4915eae4a87cfb6bf372347 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 15:06:22 +0000 Subject: [PATCH 110/130] update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 627c57bc..60880795 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -522,6 +522,15 @@ "contributions": [ "code" ] + }, + { + "login": "kamilpowalowski", + "name": "Kamil Powałowski", + "avatar_url": "https://avatars.githubusercontent.com/u/83073?v=4", + "profile": "https://github.com/kamilpowalowski", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, From d47fb67fef1ec26f71c78604aeea9c066756a53a Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 13 Oct 2022 17:33:46 +0200 Subject: [PATCH 111/130] Update Util.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Try `getFileAsset` first and then `new FileInputStream` --- .../flutter_inappwebview/Util.java | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java index d0618c05..a44855b1 100644 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/Util.java @@ -17,9 +17,9 @@ import org.json.JSONArray; import org.json.JSONObject; import java.io.ByteArrayInputStream; +import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; -import java.io.FileInputStream; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.Inet6Address; @@ -140,23 +140,23 @@ public class Util { public static PrivateKeyAndCertificates loadPrivateKeyAndCertificate(InAppWebViewFlutterPlugin plugin, String certificatePath, String certificatePassword, String keyStoreType) { PrivateKeyAndCertificates privateKeyAndCertificates = null; + InputStream certificateFileStream = null; try { - InputStream certificateFileStream = null; - if(certificatePath.startsWith("/") == true) { + certificateFileStream = getFileAsset(plugin, certificatePath); + } catch (IOException ignored) {} + + try { + if (certificateFileStream == null) { certificateFileStream = new FileInputStream(certificatePath); } - else { - certificateFileStream = getFileAsset(plugin, certificatePath); - } - KeyStore keyStore = KeyStore.getInstance(keyStoreType); - keyStore.load(certificateFileStream, certificatePassword != null ? certificatePassword.toCharArray() : null); + keyStore.load(certificateFileStream, (certificatePassword != null ? certificatePassword : "").toCharArray()); Enumeration aliases = keyStore.aliases(); String alias = aliases.nextElement(); - Key key = keyStore.getKey(alias, certificatePassword.toCharArray()); + Key key = keyStore.getKey(alias, (certificatePassword != null ? certificatePassword : "").toCharArray()); if (key instanceof PrivateKey) { PrivateKey privateKey = (PrivateKey)key; Certificate cert = keyStore.getCertificate(alias); @@ -168,6 +168,15 @@ public class Util { } catch (Exception e) { e.printStackTrace(); Log.e(LOG_TAG, e.getMessage()); + } finally { + if (certificateFileStream != null) { + try { + certificateFileStream.close(); + } catch (IOException ex) { + ex.printStackTrace(); + Log.e(LOG_TAG, ex.getMessage()); + } + } } return privateKeyAndCertificates; From 8455eaa3e128defe03c856d346f5a4e3018ae6f9 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 15:36:03 +0000 Subject: [PATCH 112/130] update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d8d33849..e7409795 100755 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![InAppWebView-logo](https://user-images.githubusercontent.com/5956938/195422744-bdcfed16-73f0-4bc9-94ab-ecf10771a1c4.png) -[![All Contributors](https://img.shields.io/badge/all_contributors-58-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-59-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -151,6 +151,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Eiichiro Adachi
Eiichiro Adachi

💻 Kamil Powałowski
Kamil Powałowski

💻 + Akio Yamamoto
Akio Yamamoto

💻 From 36ebf54ea68a96d575fd7db8131339769202fa7c Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 15:36:04 +0000 Subject: [PATCH 113/130] update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 60880795..cdb04a20 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -531,6 +531,15 @@ "contributions": [ "code" ] + }, + { + "login": "akioyamamoto1977", + "name": "Akio Yamamoto", + "avatar_url": "https://avatars.githubusercontent.com/u/429219?v=4", + "profile": "https://github.com/akioyamamoto1977", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, From 568079359d9931691fc7ddc9bd5cf8990c857241 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 13 Oct 2022 17:43:38 +0200 Subject: [PATCH 114/130] iOS - Load client certificate from local storage --- CHANGELOG.md | 3 +++ ios/Classes/InAppWebView/InAppWebView.swift | 26 ++++++++++----------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 45d36035..7a42bfc0 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ - Fixed iOS 14.0 crash when calling `callAsyncJavaScript` method - Merged "Android fix leaking MethodChannel through anonymous class" [#1201](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1201) (thanks to [emakar](https://github.com/emakar)) - Merged "Fix RangeError: Maximum call stack size exceeded" [#1208](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1208) (thanks to [liasica](https://github.com/liasica)) +- Merged "fix: try to open with Chrome if default browser app does not support custom tabs" [#1233](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1233) (thanks to [addie9000](https://github.com/addie9000)) +- Merged "fix: Prevent Android java.lang.NullPointerException in InAppWebViewCl…" [#1237](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1237) (thanks to [kamilpowalowski](https://github.com/kamilpowalowski)) +- Merged "Android - Load client certificate from local storage" [#1241](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1241) (thanks to [akioyamamoto1977](https://github.com/akioyamamoto1977)) ## 5.4.4+3 diff --git a/ios/Classes/InAppWebView/InAppWebView.swift b/ios/Classes/InAppWebView/InAppWebView.swift index 4e79f56b..69ecacab 100755 --- a/ios/Classes/InAppWebView/InAppWebView.swift +++ b/ios/Classes/InAppWebView/InAppWebView.swift @@ -1770,21 +1770,19 @@ public class InAppWebView: WKWebView, UIScrollViewDelegate, WKUIDelegate, WKNavi let certificatePath = response["certificatePath"] as! String; let certificatePassword = response["certificatePassword"] as? String ?? ""; + var path: String = certificatePath do { - let path = try Util.getAbsPathAsset(assetFilePath: certificatePath) - let PKCS12Data = NSData(contentsOfFile: path)! - - if let identityAndTrust: IdentityAndTrust = self.extractIdentity(PKCS12Data: PKCS12Data, password: certificatePassword) { - let urlCredential: URLCredential = URLCredential( - identity: identityAndTrust.identityRef, - certificates: identityAndTrust.certArray as? [AnyObject], - persistence: URLCredential.Persistence.forSession); - completionHandler(.useCredential, urlCredential) - } else { - completionHandler(.performDefaultHandling, nil) - } - } catch { - print(error.localizedDescription) + path = try Util.getAbsPathAsset(assetFilePath: certificatePath) + } catch {} + + if let PKCS12Data = NSData(contentsOfFile: path), + let identityAndTrust: IdentityAndTrust = self.extractIdentity(PKCS12Data: PKCS12Data, password: certificatePassword) { + let urlCredential: URLCredential = URLCredential( + identity: identityAndTrust.identityRef, + certificates: identityAndTrust.certArray as? [AnyObject], + persistence: URLCredential.Persistence.forSession); + completionHandler(.useCredential, urlCredential) + } else { completionHandler(.performDefaultHandling, nil) } From 36b2ea620f23b6ffd76dd6173129c2135edbaa10 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 15:54:13 +0000 Subject: [PATCH 115/130] update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e7409795..b80c5734 100755 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![InAppWebView-logo](https://user-images.githubusercontent.com/5956938/195422744-bdcfed16-73f0-4bc9-94ab-ecf10771a1c4.png) -[![All Contributors](https://img.shields.io/badge/all_contributors-59-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-60-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -152,6 +152,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Eiichiro Adachi
Eiichiro Adachi

💻 Kamil Powałowski
Kamil Powałowski

💻 Akio Yamamoto
Akio Yamamoto

💻 + mohenaxiba
mohenaxiba

💻 From 4d137cbf74d389f3ba002329d3161dc4a1eccbe9 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 15:54:14 +0000 Subject: [PATCH 116/130] update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index cdb04a20..23130c09 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -540,6 +540,15 @@ "contributions": [ "code" ] + }, + { + "login": "mohenaxiba", + "name": "mohenaxiba", + "avatar_url": "https://avatars.githubusercontent.com/u/7977540?v=4", + "profile": "https://github.com/mohenaxiba", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, From b20e6a51bbdea192e7fc84a9fc8c6911c0f8db5f Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 17:40:07 +0000 Subject: [PATCH 117/130] update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b80c5734..2165d8de 100755 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![InAppWebView-logo](https://user-images.githubusercontent.com/5956938/195422744-bdcfed16-73f0-4bc9-94ab-ecf10771a1c4.png) -[![All Contributors](https://img.shields.io/badge/all_contributors-60-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-61-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -153,6 +153,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Kamil Powałowski
Kamil Powałowski

💻 Akio Yamamoto
Akio Yamamoto

💻 mohenaxiba
mohenaxiba

💻 + Ben Anderson
Ben Anderson

💻 From 6018c93c03ce9856af4461feba17d075b616fc45 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 17:40:08 +0000 Subject: [PATCH 118/130] update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 23130c09..7e826cf9 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -549,6 +549,15 @@ "contributions": [ "code" ] + }, + { + "login": "bagedevimo", + "name": "Ben Anderson", + "avatar_url": "https://avatars.githubusercontent.com/u/1319813?v=4", + "profile": "http://www.acidic.co.nz", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, From ebd887846f4b00b2bbf90fa99fa741565065fe2d Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 13 Oct 2022 19:52:11 +0200 Subject: [PATCH 119/130] updated cookie manager setCookie docs --- CHANGELOG.md | 2 ++ .../in_app_webview/InAppWebViewChromeClient.java | 1 - lib/src/cookie_manager.dart | 3 +-- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a42bfc0..d58b2224 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ - Merged "fix: try to open with Chrome if default browser app does not support custom tabs" [#1233](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1233) (thanks to [addie9000](https://github.com/addie9000)) - Merged "fix: Prevent Android java.lang.NullPointerException in InAppWebViewCl…" [#1237](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1237) (thanks to [kamilpowalowski](https://github.com/kamilpowalowski)) - Merged "Android - Load client certificate from local storage" [#1241](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1241) (thanks to [akioyamamoto1977](https://github.com/akioyamamoto1977)) +- Merged "fix Theme_AppCompat_Dialog_Alert not found" [#1262](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1262) (thanks to [mohenaxiba](https://github.com/mohenaxiba)) +- Merged "Allow a cookie without a domain to be set on Android" [#1295](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1295) (thanks to [bagedevimo](https://github.com/bagedevimo)) ## 5.4.4+3 diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewChromeClient.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewChromeClient.java index af9e475d..bc6d512e 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewChromeClient.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebViewChromeClient.java @@ -44,7 +44,6 @@ import com.pichillilorenzo.flutter_inappwebview.types.CreateWindowAction; import com.pichillilorenzo.flutter_inappwebview.in_app_browser.ActivityResultListener; import com.pichillilorenzo.flutter_inappwebview.in_app_browser.InAppBrowserDelegate; import com.pichillilorenzo.flutter_inappwebview.InAppWebViewFlutterPlugin; -import com.pichillilorenzo.flutter_inappwebview.R; import com.pichillilorenzo.flutter_inappwebview.types.URLRequest; import java.io.ByteArrayOutputStream; diff --git a/lib/src/cookie_manager.dart b/lib/src/cookie_manager.dart index fbfdaac0..b53aee74 100755 --- a/lib/src/cookie_manager.dart +++ b/lib/src/cookie_manager.dart @@ -44,7 +44,6 @@ class CookieManager { ///The cookie being set will be ignored if it is expired. /// ///The default value of [path] is `"/"`. - ///If [domain] is `null`, its default value will be the domain name of [url]. /// ///[iosBelow11WebViewController] could be used if you need to set a session-only cookie using JavaScript (so [isHttpOnly] cannot be set, see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#restrict_access_to_cookies) ///on the current URL of the [WebView] managed by that controller when you need to target iOS below 11. In this case the [url] parameter is ignored. @@ -55,8 +54,8 @@ class CookieManager { {required Uri url, required String name, required String value, - String? domain, String path = "/", + String? domain, int? expiresDate, int? maxAge, bool? isSecure, From a82bc0d1e4a4f68aa25ef93eaa198235846b9b5c Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 18:01:01 +0000 Subject: [PATCH 120/130] update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2165d8de..e7c064a5 100755 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![InAppWebView-logo](https://user-images.githubusercontent.com/5956938/195422744-bdcfed16-73f0-4bc9-94ab-ecf10771a1c4.png) -[![All Contributors](https://img.shields.io/badge/all_contributors-61-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-62-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -154,6 +154,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Akio Yamamoto
Akio Yamamoto

💻 mohenaxiba
mohenaxiba

💻 Ben Anderson
Ben Anderson

💻 + Daan Poron
Daan Poron

🛡️ From f83930b54a748428a016de8fcb210f5ce19a3c19 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 18:01:02 +0000 Subject: [PATCH 121/130] update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 7e826cf9..760a2eb8 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -558,6 +558,15 @@ "contributions": [ "code" ] + }, + { + "login": "daanporon", + "name": "Daan Poron", + "avatar_url": "https://avatars.githubusercontent.com/u/71901?v=4", + "profile": "https://github.com/daanporon", + "contributions": [ + "security" + ] } ], "contributorsPerLine": 7, From f44c93795ca23020921d427bd9abb735ee31dc2b Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 18:14:22 +0000 Subject: [PATCH 122/130] update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e7c064a5..5f175fbb 100755 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![InAppWebView-logo](https://user-images.githubusercontent.com/5956938/195422744-bdcfed16-73f0-4bc9-94ab-ecf10771a1c4.png) -[![All Contributors](https://img.shields.io/badge/all_contributors-62-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-63-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -155,6 +155,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d mohenaxiba
mohenaxiba

💻 Ben Anderson
Ben Anderson

💻 Daan Poron
Daan Poron

🛡️ + ふぁ
ふぁ

💻 From 5f4da3aa720a6e817a182f1b8e821ab3ea556b5b Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 18:14:23 +0000 Subject: [PATCH 123/130] update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 760a2eb8..3aa12bf3 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -567,6 +567,15 @@ "contributions": [ "security" ] + }, + { + "login": "fa0311", + "name": "ふぁ", + "avatar_url": "https://avatars.githubusercontent.com/u/34892635?v=4", + "profile": "https://yuki0311.com", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, From b6db461c7081ba213668a4f8eb724c0b3a4320ee Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 13 Oct 2022 20:35:34 +0200 Subject: [PATCH 124/130] added default localhost server path with _directoryIndex if it is empty --- CHANGELOG.md | 3 +++ example/lib/main.dart | 2 +- lib/src/in_app_localhost_server.dart | 15 +++++++++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d58b2224..aa0353bd 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,9 @@ - Merged "Android - Load client certificate from local storage" [#1241](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1241) (thanks to [akioyamamoto1977](https://github.com/akioyamamoto1977)) - Merged "fix Theme_AppCompat_Dialog_Alert not found" [#1262](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1262) (thanks to [mohenaxiba](https://github.com/mohenaxiba)) - Merged "Allow a cookie without a domain to be set on Android" [#1295](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1295) (thanks to [bagedevimo](https://github.com/bagedevimo)) +- Merged "Catch and ignore utf8 format exception in getFavicons()" [#1302](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1302) (thanks to [Doflatango](https://github.com/Doflatango)) +- Merged "Disable exporting activity definitions for Android" [#1313](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1313) (thanks to [daanporon](https://github.com/daanporon)) +- Merged "Add directoryIndex and documentRoot to InAppLocalhostServer option" [#1319](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1319) (thanks to [fa0311](https://github.com/fa0311)) ## 5.4.4+3 diff --git a/example/lib/main.dart b/example/lib/main.dart index 3d9154cc..4d14c4fb 100755 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -11,7 +11,7 @@ import 'package:flutter_inappwebview_example/in_app_browser_example.screen.dart' // import 'package:path_provider/path_provider.dart'; // import 'package:permission_handler/permission_handler.dart'; -// InAppLocalhostServer localhostServer = new InAppLocalhostServer(); +// InAppLocalhostServer localhostServer = new InAppLocalhostServer(documentRoot: 'assets'); Future main() async { WidgetsFlutterBinding.ensureInitialized(); diff --git a/lib/src/in_app_localhost_server.dart b/lib/src/in_app_localhost_server.dart index 91acb5bf..08860973 100755 --- a/lib/src/in_app_localhost_server.dart +++ b/lib/src/in_app_localhost_server.dart @@ -6,7 +6,8 @@ import 'package:flutter/services.dart' show rootBundle; import 'mime_type_resolver.dart'; -///This class allows you to create a simple server on `http://localhost:[port]/` in order to be able to load your assets file on a server. The default [port] value is `8080`. +///This class allows you to create a simple server on `http://localhost:[port]/` in order to be able to load your assets file on a server. +///The default `port` value is `8080`. class InAppLocalhostServer { bool _started = false; HttpServer? _server; @@ -14,6 +15,11 @@ class InAppLocalhostServer { String _directoryIndex = 'index.html'; String _documentRoot = './'; + ///- [port] represents the port of the server. The default value is `8080`. + /// + ///- [directoryIndex] represents the index file to use. The default value is `index.html`. + /// + ///- [documentRoot] represents the document root path to serve. The default value is `./`. InAppLocalhostServer({ int port = 8080, String directoryIndex = 'index.html', @@ -26,7 +32,8 @@ class InAppLocalhostServer { ///Starts the server on `http://localhost:[port]/`. /// - ///**NOTE for iOS**: For the iOS Platform, you need to add the `NSAllowsLocalNetworking` key with `true` in the `Info.plist` file (See [ATS Configuration Basics](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW35)): + ///**NOTE for iOS**: For the iOS Platform, you need to add the `NSAllowsLocalNetworking` key with `true` in the `Info.plist` file + ///(See [ATS Configuration Basics](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW35)): ///```xml ///NSAppTransportSecurity /// @@ -55,6 +62,10 @@ class InAppLocalhostServer { var path = request.requestedUri.path; path = (path.startsWith('/')) ? path.substring(1) : path; path += (path.endsWith('/')) ? _directoryIndex : ''; + if (path == '') { + // if the path still empty, try to load the index file + path = _directoryIndex; + } path = _documentRoot + path; try { From b6c5990706bafef8afc5a70f263e75247966f495 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 19:08:12 +0000 Subject: [PATCH 125/130] update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f175fbb..00b60861 100755 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![InAppWebView-logo](https://user-images.githubusercontent.com/5956938/195422744-bdcfed16-73f0-4bc9-94ab-ecf10771a1c4.png) -[![All Contributors](https://img.shields.io/badge/all_contributors-63-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-64-orange.svg?style=flat-square)](#contributors-) [![Pub](https://img.shields.io/pub/v/flutter_inappwebview?include_prereleases)](https://pub.dartlang.org/packages/flutter_inappwebview) @@ -157,6 +157,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Daan Poron
Daan Poron

🛡️ ふぁ
ふぁ

💻 + + perffecto
perffecto

💻 + From 2a46583535e9907a8870791e5dc1df25a872997c Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 19:08:13 +0000 Subject: [PATCH 126/130] update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 3aa12bf3..c9e680d8 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -576,6 +576,15 @@ "contributions": [ "code" ] + }, + { + "login": "perffecto", + "name": "perffecto", + "avatar_url": "https://avatars.githubusercontent.com/u/2116618?v=4", + "profile": "https://github.com/perffecto", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, From 0da11b34ff39bc0414a73fc622c0c83ec5d39408 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Thu, 13 Oct 2022 22:31:26 +0200 Subject: [PATCH 127/130] updated pubspec.yaml version --- CHANGELOG.md | 3 ++- ios/Classes/InAppWebView/InAppWebView.swift | 30 ++++++++++----------- pubspec.yaml | 2 +- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aa0353bd..3ad84d35 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## 5.4.5 +## 5.5.0 - Added Android direct camera capture feature - Fixed missing `PullToRefreshController.isRefreshing` iOS implementation @@ -16,6 +16,7 @@ - Merged "Catch and ignore utf8 format exception in getFavicons()" [#1302](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1302) (thanks to [Doflatango](https://github.com/Doflatango)) - Merged "Disable exporting activity definitions for Android" [#1313](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1313) (thanks to [daanporon](https://github.com/daanporon)) - Merged "Add directoryIndex and documentRoot to InAppLocalhostServer option" [#1319](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1319) (thanks to [fa0311](https://github.com/fa0311)) +- Merged "fix(ios): invoke onBrowserCreated when viewDidLoad is called with win…" [#1344](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1344) (thanks to [perffecto](https://github.com/perffecto)) ## 5.4.4+3 diff --git a/ios/Classes/InAppWebView/InAppWebView.swift b/ios/Classes/InAppWebView/InAppWebView.swift index 69ecacab..1091b867 100755 --- a/ios/Classes/InAppWebView/InAppWebView.swift +++ b/ios/Classes/InAppWebView/InAppWebView.swift @@ -1770,21 +1770,21 @@ public class InAppWebView: WKWebView, UIScrollViewDelegate, WKUIDelegate, WKNavi let certificatePath = response["certificatePath"] as! String; let certificatePassword = response["certificatePassword"] as? String ?? ""; - var path: String = certificatePath - do { - path = try Util.getAbsPathAsset(assetFilePath: certificatePath) - } catch {} - - if let PKCS12Data = NSData(contentsOfFile: path), - let identityAndTrust: IdentityAndTrust = self.extractIdentity(PKCS12Data: PKCS12Data, password: certificatePassword) { - let urlCredential: URLCredential = URLCredential( - identity: identityAndTrust.identityRef, - certificates: identityAndTrust.certArray as? [AnyObject], - persistence: URLCredential.Persistence.forSession); - completionHandler(.useCredential, urlCredential) - } else { - completionHandler(.performDefaultHandling, nil) - } + var path: String = certificatePath + do { + path = try Util.getAbsPathAsset(assetFilePath: certificatePath) + } catch {} + + if let PKCS12Data = NSData(contentsOfFile: path), + let identityAndTrust: IdentityAndTrust = self.extractIdentity(PKCS12Data: PKCS12Data, password: certificatePassword) { + let urlCredential: URLCredential = URLCredential( + identity: identityAndTrust.identityRef, + certificates: identityAndTrust.certArray as? [AnyObject], + persistence: URLCredential.Persistence.forSession); + completionHandler(.useCredential, urlCredential) + } else { + completionHandler(.performDefaultHandling, nil) + } break case 2: diff --git a/pubspec.yaml b/pubspec.yaml index 22e7066d..af27fbd7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. -version: 5.4.5 +version: 5.5.0 homepage: https://inappwebview.dev/ repository: https://github.com/pichillilorenzo/flutter_inappwebview issue_tracker: https://github.com/pichillilorenzo/flutter_inappwebview/issues From 083d1ffffd310c8b0c8c201414ab36ace34a8658 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Fri, 14 Oct 2022 00:47:54 +0200 Subject: [PATCH 128/130] CookieManager.deleteCookie and CookieManager.deleteCookies now have the domain argument optional and without a default value --- CHANGELOG.md | 4 ++ .../flutter_inappwebview/MyCookieManager.java | 33 ++++++++++++--- .../webview_flutter_test.dart | 2 +- example/lib/in_app_webiew_example.screen.dart | 22 +++++++++- ios/Classes/MyCookieManager.swift | 42 ++++++++++++------- lib/src/cookie_manager.dart | 14 +------ 6 files changed, 81 insertions(+), 36 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ad84d35..8dca95b3 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,10 @@ - Merged "Add directoryIndex and documentRoot to InAppLocalhostServer option" [#1319](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1319) (thanks to [fa0311](https://github.com/fa0311)) - Merged "fix(ios): invoke onBrowserCreated when viewDidLoad is called with win…" [#1344](https://github.com/pichillilorenzo/flutter_inappwebview/pull/1344) (thanks to [perffecto](https://github.com/perffecto)) +### BREAKING CHANGES + +- `CookieManager.getCookie`, `CookieManager.deleteCookie` and `CookieManager.deleteCookies` have the `domain` argument optional and without a default value + ## 5.4.4+3 - Removed Android unsafe trust manager diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/MyCookieManager.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/MyCookieManager.java index a6ba6d9e..64765db0 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/MyCookieManager.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/MyCookieManager.java @@ -171,13 +171,16 @@ public class MyCookieManager implements MethodChannel.MethodCallHandler { }); cookieManager.flush(); } - else { + else if (plugin != null) { CookieSyncManager cookieSyncMngr = CookieSyncManager.createInstance(plugin.applicationContext); cookieSyncMngr.startSync(); cookieManager.setCookie(url, cookieValue); result.success(true); cookieSyncMngr.stopSync(); cookieSyncMngr.sync(); + } else { + cookieManager.setCookie(url, cookieValue); + result.success(true); } } @@ -218,7 +221,12 @@ public class MyCookieManager implements MethodChannel.MethodCallHandler { cookieManager = getCookieManager(); if (cookieManager == null) return; - String cookieValue = name + "=; Path=" + path + "; Domain=" + domain + "; Max-Age=-1;"; + String cookieValue = name + "=; Path=" + path + "; Max-Age=-1"; + + if (domain != null) + cookieValue += "; Domain=" + domain; + + cookieValue += ";"; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { cookieManager.setCookie(url, cookieValue, new ValueCallback() { @@ -229,13 +237,16 @@ public class MyCookieManager implements MethodChannel.MethodCallHandler { }); cookieManager.flush(); } - else { + else if (plugin != null) { CookieSyncManager cookieSyncMngr = CookieSyncManager.createInstance(plugin.applicationContext); cookieSyncMngr.startSync(); cookieManager.setCookie(url, cookieValue); result.success(true); cookieSyncMngr.stopSync(); cookieSyncMngr.sync(); + } else { + cookieManager.setCookie(url, cookieValue); + result.success(true); } } @@ -248,7 +259,7 @@ public class MyCookieManager implements MethodChannel.MethodCallHandler { String cookiesString = cookieManager.getCookie(url); if (cookiesString != null) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP && plugin != null) { cookieSyncMngr = CookieSyncManager.createInstance(plugin.applicationContext); cookieSyncMngr.startSync(); } @@ -257,7 +268,14 @@ public class MyCookieManager implements MethodChannel.MethodCallHandler { for (String cookie : cookies) { String[] nameValue = cookie.split("=", 2); String name = nameValue[0].trim(); - String cookieValue = name + "=; Path=" + path + "; Domain=" + domain + "; Max-Age=-1;"; + + String cookieValue = name + "=; Path=" + path + "; Max-Age=-1"; + + if (domain != null) + cookieValue += "; Domain=" + domain; + + cookieValue += ";"; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) cookieManager.setCookie(url, cookieValue, null); else @@ -286,13 +304,16 @@ public class MyCookieManager implements MethodChannel.MethodCallHandler { }); cookieManager.flush(); } - else { + else if (plugin != null) { CookieSyncManager cookieSyncMngr = CookieSyncManager.createInstance(plugin.applicationContext); cookieSyncMngr.startSync(); cookieManager.removeAllCookie(); result.success(true); cookieSyncMngr.stopSync(); cookieSyncMngr.sync(); + } else { + cookieManager.removeAllCookie(); + result.success(true); } } diff --git a/example/integration_test/webview_flutter_test.dart b/example/integration_test/webview_flutter_test.dart index e73e1397..8494c2db 100644 --- a/example/integration_test/webview_flutter_test.dart +++ b/example/integration_test/webview_flutter_test.dart @@ -5578,7 +5578,7 @@ setTimeout(function() { cookie = await cookieManager.getCookie(url: url, name: "myCookie"); expect(cookie, isNull); - await cookieManager.deleteCookies(url: url); + await cookieManager.deleteCookies(url: url, domain: ".flutter.dev"); cookies = await cookieManager.getCookies(url: url); expect(cookies, isEmpty); }); diff --git a/example/lib/in_app_webiew_example.screen.dart b/example/lib/in_app_webiew_example.screen.dart index a42b9b45..12929e1f 100755 --- a/example/lib/in_app_webiew_example.screen.dart +++ b/example/lib/in_app_webiew_example.screen.dart @@ -118,7 +118,7 @@ class _InAppWebViewExampleScreenState extends State { key: webViewKey, // contextMenu: contextMenu, initialUrlRequest: - URLRequest(url: Uri.parse("https://github.com/flutter")), + URLRequest(url: Uri.parse("https://flutter.dev/")), // initialFile: "assets/index.html", initialUserScripts: UnmodifiableListView([]), initialOptions: options, @@ -169,6 +169,26 @@ class _InAppWebViewExampleScreenState extends State { this.url = url.toString(); urlController.text = this.url; }); + + CookieManager cookieManager = CookieManager.instance(); + + await cookieManager.setCookie( + url: url!, name: "myCookie", value: "myValue"); + List cookies = await cookieManager.getCookies(url: url); + print(cookies); + + Cookie? cookie = + await cookieManager.getCookie(url: url, name: "myCookie"); + print(cookie); + + await cookieManager.deleteCookie(url: url, name: "myCookie", domain: ".flutter.dev"); + cookie = await cookieManager.getCookie(url: url, name: "myCookie"); + print(cookie); + + await cookieManager.deleteCookies(url: url, domain: ".flutter.dev"); + await Future.delayed(Duration(seconds: 1)); + cookies = await cookieManager.getCookies(url: url); + print(cookies); }, onLoadError: (controller, url, code, message) { pullToRefreshController.endRefreshing(); diff --git a/ios/Classes/MyCookieManager.swift b/ios/Classes/MyCookieManager.swift index 1e13d88f..fe777c6d 100755 --- a/ios/Classes/MyCookieManager.swift +++ b/ios/Classes/MyCookieManager.swift @@ -70,15 +70,15 @@ class MyCookieManager: NSObject, FlutterPlugin { case "deleteCookie": let url = arguments!["url"] as! String let name = arguments!["name"] as! String - let domain = arguments!["domain"] as! String let path = arguments!["path"] as! String - MyCookieManager.deleteCookie(url: url, name: name, domain: domain, path: path, result: result) + let domain = arguments!["domain"] as? String + MyCookieManager.deleteCookie(url: url, name: name, path: path, domain: domain, result: result) break; case "deleteCookies": let url = arguments!["url"] as! String - let domain = arguments!["domain"] as! String let path = arguments!["path"] as! String - MyCookieManager.deleteCookies(url: url, domain: domain, path: path, result: result) + let domain = arguments!["domain"] as? String + MyCookieManager.deleteCookies(url: url, path: path, domain: domain, result: result) break; case "deleteAllCookies": MyCookieManager.deleteAllCookies(result: result) @@ -239,25 +239,30 @@ class MyCookieManager: NSObject, FlutterPlugin { } } - public static func deleteCookie(url: String, name: String, domain: String, path: String, result: @escaping FlutterResult) { + public static func deleteCookie(url: String, name: String, path: String, domain: String?, result: @escaping FlutterResult) { guard let httpCookieStore = MyCookieManager.httpCookieStore else { result(false) return } - + + var domain = domain httpCookieStore.getAllCookies { (cookies) in for cookie in cookies { - var originURL = "" + var originURL = url if cookie.properties![.originURL] is String { originURL = cookie.properties![.originURL] as! String } else if cookie.properties![.originURL] is URL { originURL = (cookie.properties![.originURL] as! URL).absoluteString } - if (!originURL.isEmpty && originURL != url) { - continue + if domain == nil, let domainUrl = URL(string: originURL) { + if #available(iOS 16.0, *) { + domain = domainUrl.host() + } else { + domain = domainUrl.host + } } - if (cookie.domain == domain || cookie.domain == ".\(domain)" || ".\(cookie.domain)" == domain) && cookie.name == name && cookie.path == path { + if let domain = domain, cookie.domain == domain, cookie.name == name, cookie.path == path { httpCookieStore.delete(cookie, completionHandler: { result(true) }) @@ -268,25 +273,30 @@ class MyCookieManager: NSObject, FlutterPlugin { } } - public static func deleteCookies(url: String, domain: String, path: String, result: @escaping FlutterResult) { + public static func deleteCookies(url: String, path: String, domain: String?, result: @escaping FlutterResult) { guard let httpCookieStore = MyCookieManager.httpCookieStore else { result(false) return } + var domain = domain httpCookieStore.getAllCookies { (cookies) in for cookie in cookies { - var originURL = "" + var originURL = url if cookie.properties![.originURL] is String { originURL = cookie.properties![.originURL] as! String } - else if cookie.properties![.originURL] is URL{ + else if cookie.properties![.originURL] is URL { originURL = (cookie.properties![.originURL] as! URL).absoluteString } - if (!originURL.isEmpty && originURL != url) { - continue + if domain == nil, let domainUrl = URL(string: originURL) { + if #available(iOS 16.0, *) { + domain = domainUrl.host() + } else { + domain = domainUrl.host + } } - if (cookie.domain == domain || cookie.domain == ".\(domain)" || ".\(cookie.domain)" == domain) && cookie.path == path { + if let domain = domain, cookie.domain == domain, cookie.path == path { httpCookieStore.delete(cookie, completionHandler: nil) } } diff --git a/lib/src/cookie_manager.dart b/lib/src/cookie_manager.dart index b53aee74..2d5c9536 100755 --- a/lib/src/cookie_manager.dart +++ b/lib/src/cookie_manager.dart @@ -1,5 +1,4 @@ import 'dart:async'; -import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; @@ -300,7 +299,6 @@ class CookieManager { ///Removes a cookie by its [name] for the given [url], [domain] and [path]. /// ///The default value of [path] is `"/"`. - ///If [domain] is empty, its default value will be the domain name of [url]. /// ///[iosBelow11WebViewController] is used for deleting the cookie (also session-only cookie) using JavaScript (cookie with `isHttpOnly` enabled cannot be deleted, see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#restrict_access_to_cookies) ///from the current context of the [WebView] managed by that controller when you need to target iOS below 11. JavaScript must be enabled in order to work. @@ -311,10 +309,9 @@ class CookieManager { Future deleteCookie( {required Uri url, required String name, - String domain = "", String path = "/", + String? domain, InAppWebViewController? iosBelow11WebViewController}) async { - if (domain.isEmpty) domain = _getDomainName(url); assert(url.toString().isNotEmpty); assert(name.isNotEmpty); @@ -346,7 +343,6 @@ class CookieManager { ///Removes all cookies for the given [url], [domain] and [path]. /// ///The default value of [path] is `"/"`. - ///If [domain] is empty, its default value will be the domain name of [url]. /// ///[iosBelow11WebViewController] is used for deleting the cookies (also session-only cookies) using JavaScript (cookies with `isHttpOnly` enabled cannot be deleted, see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#restrict_access_to_cookies) ///from the current context of the [WebView] managed by that controller when you need to target iOS below 11. JavaScript must be enabled in order to work. @@ -356,10 +352,9 @@ class CookieManager { ///to delete the cookies (session-only cookies and cookies with `isHttpOnly` enabled won't be deleted!). Future deleteCookies( {required Uri url, - String domain = "", String path = "/", + String? domain, InAppWebViewController? iosBelow11WebViewController}) async { - if (domain.isEmpty) domain = _getDomainName(url); assert(url.toString().isNotEmpty); @@ -398,11 +393,6 @@ class CookieManager { await _channel.invokeMethod('deleteAllCookies', args); } - String _getDomainName(Uri url) { - String domain = url.host; - return domain.startsWith("www.") ? domain.substring(4) : domain; - } - Future _getCookieExpirationDate(int expiresDate) async { var platformUtil = PlatformUtil(); var dateTime = DateTime.fromMillisecondsSinceEpoch(expiresDate).toUtc(); From 476dc86cfb0af98b2e0ff4760faa88857388ea7e Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Fri, 14 Oct 2022 00:59:31 +0200 Subject: [PATCH 129/130] fixed example --- example/lib/in_app_webiew_example.screen.dart | 22 +------------------ 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/example/lib/in_app_webiew_example.screen.dart b/example/lib/in_app_webiew_example.screen.dart index 12929e1f..a42b9b45 100755 --- a/example/lib/in_app_webiew_example.screen.dart +++ b/example/lib/in_app_webiew_example.screen.dart @@ -118,7 +118,7 @@ class _InAppWebViewExampleScreenState extends State { key: webViewKey, // contextMenu: contextMenu, initialUrlRequest: - URLRequest(url: Uri.parse("https://flutter.dev/")), + URLRequest(url: Uri.parse("https://github.com/flutter")), // initialFile: "assets/index.html", initialUserScripts: UnmodifiableListView([]), initialOptions: options, @@ -169,26 +169,6 @@ class _InAppWebViewExampleScreenState extends State { this.url = url.toString(); urlController.text = this.url; }); - - CookieManager cookieManager = CookieManager.instance(); - - await cookieManager.setCookie( - url: url!, name: "myCookie", value: "myValue"); - List cookies = await cookieManager.getCookies(url: url); - print(cookies); - - Cookie? cookie = - await cookieManager.getCookie(url: url, name: "myCookie"); - print(cookie); - - await cookieManager.deleteCookie(url: url, name: "myCookie", domain: ".flutter.dev"); - cookie = await cookieManager.getCookie(url: url, name: "myCookie"); - print(cookie); - - await cookieManager.deleteCookies(url: url, domain: ".flutter.dev"); - await Future.delayed(Duration(seconds: 1)); - cookies = await cookieManager.getCookies(url: url); - print(cookies); }, onLoadError: (controller, url, code, message) { pullToRefreshController.endRefreshing(); From 6d1fbffb9cdb8fdd37f375343b2adfbf2d9586f0 Mon Sep 17 00:00:00 2001 From: Lorenzo Pichilli Date: Fri, 14 Oct 2022 01:59:40 +0200 Subject: [PATCH 130/130] Fixed README --- .all-contributorsrc | 2 +- CHANGELOG.md | 4 ++++ README.md | 2 +- pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index c9e680d8..52261445 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -554,7 +554,7 @@ "login": "bagedevimo", "name": "Ben Anderson", "avatar_url": "https://avatars.githubusercontent.com/u/1319813?v=4", - "profile": "http://www.acidic.co.nz", + "profile": "https://www.acidic.co.nz", "contributions": [ "code" ] diff --git a/CHANGELOG.md b/CHANGELOG.md index 8dca95b3..caaf6229 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.5.0+1 + +- Fixed README + ## 5.5.0 - Added Android direct camera capture feature diff --git a/README.md b/README.md index 00b60861..09823ddc 100755 --- a/README.md +++ b/README.md @@ -153,7 +153,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Kamil Powałowski
Kamil Powałowski

💻 Akio Yamamoto
Akio Yamamoto

💻 mohenaxiba
mohenaxiba

💻 - Ben Anderson
Ben Anderson

💻 + Ben Anderson
Ben Anderson

💻 Daan Poron
Daan Poron

🛡️ ふぁ
ふぁ

💻 diff --git a/pubspec.yaml b/pubspec.yaml index af27fbd7..26221a05 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_inappwebview description: A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window. -version: 5.5.0 +version: 5.5.0+1 homepage: https://inappwebview.dev/ repository: https://github.com/pichillilorenzo/flutter_inappwebview issue_tracker: https://github.com/pichillilorenzo/flutter_inappwebview/issues