[
https://issues.apache.org/jira/browse/CB-5059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14041811#comment-14041811
]
ASF GitHub Bot commented on CB-5059:
------------------------------------
Github user junmin-zhu commented on the pull request:
https://github.com/apache/cordova-plugin-file-transfer/pull/8#issuecomment-46939573
As you known, we try to replace the default webview with crosswalk as
backend of the Cordova. And there is forked project
(https://github.com/crosswalk-project/crosswalk-cordova-android) for this.
But the filetransfer plugin requests the cookie support, which would crash
the application in our solution. Because the cookie support requires
android.webkit.CookieManager, which is highly depended on the default webview,
which is missed in our solution.
If you still want cookie support, I suggest to add
"CookieSyncManager.createInstance(Context)" before use the CookieManager as the
android official document
(http://developer.android.com/reference/android/webkit/CookieManager.html#getInstance%28%29)
. Or you may have better suggestion for this.
Anyway, I will close this PR.
> The android implementation of file transfer plugin should not depend on the
> concrete class android.webkit.CookieManager
> -----------------------------------------------------------------------------------------------------------------------
>
> Key: CB-5059
> URL: https://issues.apache.org/jira/browse/CB-5059
> Project: Apache Cordova
> Issue Type: Improvement
> Components: Plugin File Transfer
> Affects Versions: Master
> Environment: cordova-android, git branch 3.0.x
> Reporter: Junmin
> Fix For: Master
>
>
> The android implementation of file transfer plugin leverages the class
> android.webkit.CookieManager, which depends on the concrete web
> infrastructure android.webkit.WebView. This dependence ruins the portability
> of the plugin. For example, it could not run on a substantial implementation
> of CordovaWebView which based on a android third party component(such as
> chromium for android).
> Following is the crash log when initializing the CookieManager without
> android.webkit.WebView:
> I/dalvikvm(5006): java.lang.IllegalStateException: Call
> CookieSyncManager::createInstance() or create a webview before using this
> class
> I/dalvikvm(5006): at
> android.webkit.JniUtil.checkInitialized(JniUtil.java:44)
> I/dalvikvm(5006): at
> android.webkit.JniUtil.getDatabaseDirectory(JniUtil.java:65)
> I/dalvikvm(5006): at
> android.webkit.CookieManagerClassic.nativeGetCookie(Native Method)
> I/dalvikvm(5006): at
> android.webkit.CookieManagerClassic.getCookie(CookieManagerClassic.java:109)
> I/dalvikvm(5006): at
> android.webkit.CookieManagerClassic.getCookie(CookieManagerClassic.java:96)
> I/dalvikvm(5006): at
> org.apache.cordova.filetransfer.FileTransfer$4.run(FileTransfer.java:747)
--
This message was sent by Atlassian JIRA
(v6.2#6252)