Skip to content

cleanCookies method never returns and doesn't work on iOS #531

@cremor

Description

@cremor

System info

Issue occurs on: iOS 10.2 hardware device and iOS 12.4 simulator
Plugin version: 0.3.7
Flutter doctor output: See below

Steps to Reproduce

  1. Add breakpoints/debug prints around an await FlutterWebviewPlugin.cleanCookies() call.
  2. Call await FlutterWebviewPlugin.cleanCookies() on iOS.
  3. Note that the await FlutterWebviewPlugin.cleanCookies() call never returns (the Future never completes).
  4. Check if the cookies have actually been cleared, e.g. by testing something that relies on cookies on a site in the web view. Note that the cookies have not been cleared.

Note:
This has not been fixed by @charafau in PR #513 for version 0.3.7, as has been written in #464, which already reported this issue. Seems like the PR only changed the clearCookies flag for the WebviewScaffold and the FlutterWebviewPlugin.launch() method, but not the actual FlutterWebviewPlugin.cleanCookies() method.

Note 2:
If I read the code of PR #513 correctly, the clearCookies flag seems to only be fixed for iOS 9+. For older versions it now does nothing. Please also support iOS 8 for the FlutterWebviewPlugin.cleanCookies() method!

Logs

There is no output from the FlutterWebviewPlugin.cleanCookies() call when run with flutter run --verbose on my iOS 10.2 hardware device. But on an iOS 12.4 simulator it outputs the following:

[DEVICE LOG] 2019-08-26 09:06:25.786294+0200  localhost Runner[4647]: (Security) Created Activity ID: 0xb601, Description: SecItemCopyMatching_ios
[DEVICE LOG] 2019-08-26 09:06:25.787684+0200  localhost Runner[4647]: (CFNetwork) CredStore - performQuery - Error copying matching creds.  Error=-25300, query={
[DEVICE LOG]     class = inet;
[DEVICE LOG]     "m_Limit" = "m_LimitAll";
[DEVICE LOG]     "r_Attributes" = 1;
[DEVICE LOG]     sync = syna;
[DEVICE LOG] }
    class = inet;
    "m_Limit" = "m_LimitAll";
    "r_Attributes" = 1;
    sync = syna;
}

flutter analyze:

No issues found! (ran in 7.4s)

flutter doctor -v:

[✓] Flutter (Channel stable, v1.7.8+hotfix.4, on Mac OS X 10.14.6 18G87, locale de-AT)
    • Flutter version 1.7.8+hotfix.4 at /Users/myuser/Documents/Dev/flutter
    • Framework revision 20e59316b8 (5 weeks ago), 2019-07-18 20:04:33 -0700
    • Engine revision fee001c93f
    • Dart version 2.4.0

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/setup/#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, set ANDROID_HOME to that location.
      You may also want to add it to your PATH environment variable.


[✓] Xcode - develop for iOS and macOS (Xcode 10.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.3, Build version 10G8
    • CocoaPods version 1.7.5

[✓] iOS tools - develop for iOS devices
    • ios-deploy 1.9.4

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/setup/#android-setup for detailed instructions).

[✓] Connected device (1 available)
    • iPhone von user • a0e031bae94e30a99225e2aa92c2b8d025429269 • ios • iOS 10.2

! Doctor found issues in 2 categories.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions