You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Andrew Grieve (JIRA)" <ji...@apache.org> on 2015/02/19 18:24:11 UTC

[jira] [Commented] (CB-8510) Delete copy&paste between AndroidWebView and XWalkWebView

    [ https://issues.apache.org/jira/browse/CB-8510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14327752#comment-14327752 ] 

Andrew Grieve commented on CB-8510:
-----------------------------------

Pull requests:
https://github.com/apache/cordova-android/pull/158
https://github.com/MobileChromeApps/cordova-crosswalk-engine/pull/18

CordovaWebView:
	•	Main API for plugin devs and embedders.
CordovaWebViewEngine
	•	Main API that must be provided to be used as a WebView


Designs I tried:
CordovaWebView as a class that extends View
	•	Fixed almost all compile issues with third-party plugins
	•	Backwards-compatible with "pluginManager" field and no need for .getView()
	•	Works perfect in XML layouts (can still create a CordovaWebView in xml)
	•	But is maybe too subtle:
		◦	May have perf issue (makes view hierarchy deeper)
		◦	Makes setting background color more complicated
		◦	View.getScrollY() exists on all views… *some* compile errors would have been nice!

CordovaWebView as a class that does *not* extend View
	•	Causes compile error on our reflection-code for (View)webView cast
		◦	affects splashscreen, com.rjfun.cordova.ext.CordovaPluginExt
	▪	fix via: (View)(Object) webView;

CordovaWebView as an interface
	•	Still get code sharing via CordovaWebViewImpl
	•	Fixes compile issue with cast-to-View
	•	Better for unit tests (more easily mocked)
	•	It's what we already have on 4.0.x
	•	This is what I settled on.


CordovaWebViewEngine as a base class
	•	Not really much you can add in terms of new methods that are meaningful.
	•	Allows sharing of a couple methods (e.g. getCordovaWebView)
	•	Prevents subclasses from extending other things (good for consistency?)

CordovaWebViewEngine as an interface
	•	Not able to add new methods without breaking compatibility
	•	Good for unit tests
	•	Consistent with CordovaWebView being an interface
	•	We could always create a CordovaWebViewEngineImpl if there was value.


> Delete copy&paste between AndroidWebView and XWalkWebView
> ---------------------------------------------------------
>
>                 Key: CB-8510
>                 URL: https://issues.apache.org/jira/browse/CB-8510
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>            Reporter: Andrew Grieve
>            Assignee: Andrew Grieve
>
> Right now there is a lot of copy & paste between the two, and bugs that have been fixed on master have not all made it into XWalkWebView. Copy & paste was a great way to get the concept off the ground, but it would be vastly more maintainable to have it shared in some way.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org