-
Notifications
You must be signed in to change notification settings - Fork 9.8k
[webview_flutter_wkwebview] Add support for cookie manager #5203
Conversation
@@ -1,5 +1,5 @@ | |||
// Mocks generated by Mockito 5.1.0 from annotations | |||
// in webview_flutter_wkwebview/test/src/web_kit/web_kit_test.dart. | |||
// in webview_flutter_wkwebview/example/ios/.symlinks/plugins/webview_flutter_wkwebview/test/src/web_kit/web_kit_test.dart. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still don't know why it uses symlinks sometimes :(
Future<void> removeDataOfTypes( | ||
/// | ||
/// Returns whether any data was removed. | ||
Future<bool> removeDataOfTypes( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This Objective-C method doesn't return a bool
, but I decided to just add this feature for simplicity of adding CookieManager.setCookie
.
import 'package:webview_flutter_wkwebview/src/web_kit/web_kit.dart'; | ||
|
||
/// Handles all cookie operations for the WebView platform. | ||
class WebKitCookieManager extends WebViewCookieManagerPlatform { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the WebKit library, the clearCookies
and setCookies
methods can be called for a single WKWebView
by changing the WKWebViewConfiguration.websiteDatastore. For Android there is only a single global CookieManager instance. To accommodate platforms like WebKit
, I think the new interface should move both of these methods to WebViewController
or there should be an instanced WebViewController.cookieManager
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with nit.
return false; | ||
} | ||
} | ||
return true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: This can just be written as:
return !path.codeUnits.any((int char) => (char < 0x20 || char > 0x3A) && (char < 0x3C || char > 0x7E));
No version change:
Part of flutter/flutter#93732 and doesn't make any changes to the current implementation.
No CHANGELOG change: Incremental unused code doesn't need to be noted in the CHANGELOG.
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style.///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.