I'd prefer to go the other way, and change AndroidWebView to composition.
It's more flexible and does a better job of splitting up groups of APIs.

On Wed, Jan 28, 2015 at 12:49 AM, Hu, Ningxin <ningxin...@intel.com> wrote:

> 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...@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-unsubscr...@cordova.apache.org
> > > For additional commands, e-mail: dev-h...@cordova.apache.org
> > >
>

Reply via email to