cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hu, Ningxin" <ningxin...@intel.com>
Subject RE: cordova-android 4.0 JUnit tests
Date Wed, 28 Jan 2015 05:49:48 GMT
Hi Joe,
> 
> The tests don't work with Crosswalk because Crosswalk's main class doesn't
> inherit from a view.  This is why we had to change the CordovaWebView
> from being a class to being an Interface in the first place.  I don't think there is
> a way for these tests to work with Crosswalk because of this incompatibility.
> I don't think there is a way to re-use these tests because of this fundamental
> change.

Crosswalk main class (XWalkView) actually inherits from a view (via FrameLayout). See https://crosswalk-project.org/apis/embeddingapidocs_v3/index.html

I inspected the commit that changed the XWalkCordovaWebView from inheritance to composition
(https://github.com/MobileChromeApps/cordova-crosswalk-engine/commit/26029ce8ae6d651a44a90222514cc6902ef8bb4a).
The reason was some APIs of CordovaWebView interface (e.g. CanGoBack) conflict with XWalkView
internal implementation at that time. And I remembered Ian and me thought CordovaWebView as
an interface and compositing of webview probably was a good decouple solution.

However, this changed in Crosswalk embedding API 3 (current version) that we separated the
public interface and implementation. I briefly checked that the inheritance approach works
with Crosswalk webview now.

Folks, do you think we need to align all webview engines to inheritance pattern?

Thanks,
-ningxin

> On Tue Jan 20 2015 at 5:11:54 AM Fu, Junwei <junwei.fu@intel.com> wrote:
> 
> > Hi,
> >
> > I pulled cordova-android 4.0 branch, and running JUnit test in /test
> > directory, but there are compiled error as below, and I want reuse the
> > JUnit tests to test Crosswalk pluggable webView,  so I request a PR
> > https://github.com/apache/cordova-android/pull/140, could someone
> help
> > me to review and merge it.
> >
> > /test/menus.java:37: error: method registerForContextMenu in class
> > Activity cannot be applied to given types;
> >     [javac]         super.registerForContextMenu(super.appView);
> > reason: actual argument CordovaWebView cannot be converted to View
> by
> > method invocation conversion
> >
> > test/splashscreen.java:33: error: method loadUrl in class
> > CordovaActivity cannot be applied to given types;
> >     [javac]
> super.loadUrl("file:///android_asset/www/splashscreen/index.html",
> > 2000);
> > reason: actual and formal argument lists differ in length
> >
> > Thanks,
> > Junwei.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > For additional commands, e-mail: dev-help@cordova.apache.org
> >
Mime
View raw message