cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Grieve <agri...@chromium.org>
Subject Re: cordova-android 4.0 JUnit tests
Date Wed, 28 Jan 2015 18:41:56 GMT
I think we're talking about the same thing.

You can have an XWalkCordovaView within a layout, and then attach
a XWalkCordovaWebView to it in code afterwards.

What might be even better though, is if we made CordovaWebView extend View
(probably AbsoluteLayout), and then you wouldn't have to change anything at
all, and the XML inflation would work with either engine.

On Wed, Jan 28, 2015 at 1:25 PM, Joe Bowser <bowserj@gmail.com> wrote:

> What is your definition of embedding a view? I think we're talking about
> two different things.  What I'm talking about is being able to embed
> AndroidWebView as an embedded view without having to change any code other
> than the name of the class.  This means that you don't have to worry about
> the container or any other thing.
>
> I have never seen an example of Crosswalk using Android XML layouts, and as
> far as I'm currently aware, embedding Crosswalk is less straightforward
> than embedding AndroidWebView or MozillaWebView.
>
> On Wed Jan 28 2015 at 10:07:18 AM Andrew Grieve <agrieve@chromium.org>
> wrote:
>
> > You can still embed a view using composition. We are not providing any
> > backwards compatibility right now, even with inheritance, because
> > CordovaWebView is no longer a View (it's an interface, which requires an
> > explicit cast to (View), or a call to .getView() to be considered as a
> > View)
> >
> > On Wed, Jan 28, 2015 at 11:26 AM, Joe Bowser <bowserj@gmail.com> wrote:
> >
> > > I completely disagree, and think we should go the inheritance pattern.
> > The
> > > reason for that is that we have to provide backwards compatibility for
> > some
> > > views where the implementation is a view, and there's no dual
> inheritance
> > > in Java, which is the only way that I can see us accommodating both
> types
> > > of implementations.  If we didn't already have users embedding
> > > CordovaWebView (and seriously guys, if you're reading this, please
> don't
> > > keep leaving me hanging here, I want you to step up into this
> > > conversation).  Also, other views, such as the prototype MozillaView
> > that I
> > > worked on, are implemented so that they inherit from a view.
> > >
> > > Just because it may offer some us some flexibility doesn't mean that
> it's
> > > worth taking away an entire feature from other users.  My most popular
> > > repository after Cordova itself is the example where I show how to
> embed
> > a
> > > CordovaWebView, so people have been using this feature.
> > >
> > > On Wed Jan 28 2015 at 6:49:18 AM Andrew Grieve <agrieve@chromium.org>
> > > wrote:
> > >
> > > > 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.hu@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.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
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message