cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hu, Ningxin" <ningxin...@intel.com>
Subject RE: [Android] Refactoring for different engines
Date Tue, 22 Apr 2014 08:03:38 GMT
The PoC is great! Quite excited about the direction!

I've sent a PR to update the cordova-crosswalk-engine to latest crosswalk embedding API. It
works with xwalk_core_library at 6.35.124.0.

I've also changed the CordovaWebView interface slightly (adding getView() API) to allow XWalkCordovaWebView
to composite a XWalkView instead of extending it. It resolves some API naming issues for XWalkView
case.

Please review them at:
https://github.com/infil00p/cordova-crosswalk-engine/pull/3
https://github.com/infil00p/cordova-android/pull/2

Thanks,
-ningxin

> -----Original Message-----
> From: Joe Bowser [mailto:bowserj@gmail.com]
> Sent: Friday, April 11, 2014 12:45 AM
> To: dev
> Subject: Re: [Android] Refactoring for different engines
> 
> Yeah, I'd be cool with setting up a hangout.  Everyone should take a look at the
> PoC, I've basically distilled it down to four or five classes so far, but with some
> work, we may be able to get it down to three.  Due to legacy, we're pretty stuck
> with the Android WebView API calls, but these can probably be modified.
> 
> It'd be good to get Mozilla people on the call as well, since they have their
> WebView as well.
> 
> On Thu, Apr 10, 2014 at 9:38 AM, Hu, Ningxin <ningxin.hu@intel.com> wrote:
> > Hangout would be a good idea.
> >
> > FYI, I will be off next week. How about the week after next? If it works, please
> feel free to schedule one and count me in.
> >
> > Thanks,
> > -ningxin
> >
> >> -----Original Message-----
> >> From: mmocny@google.com [mailto:mmocny@google.com] On Behalf Of
> >> Michal Mocny
> >> Sent: Tuesday, April 08, 2014 11:39 PM
> >> To: dev
> >> Subject: Re: [Android] Refactoring for different engines
> >>
> >> Would it be alright to set up a Hangout some time to introduce everyone?
> >>
> >> Joe has been leading the effort here, but there are other cordova
> >> contributors for whom this is top priority.  It would be nice if we
> >> could all meet to say hello and make sure we are all going in the right
> direction.
> >>
> >> Quite exciting!
> >>
> >> -Michal
> >>
> >>
> >> On Tue, Apr 8, 2014 at 10:56 AM, Hu, Ningxin <ningxin.hu@intel.com> wrote:
> >>
> >> > Joe, thanks for this. I am very excited.
> >> >
> >> > FYI. Crosswalk team is working on refactoring the WebView API to
> >> > support embedding usage better [1]. (Previously the layer API was
> >> > not exposed as public usage).
> >> >
> >> > I would like to review the PoC and work with you to get Crosswalk
> >> > fits into the pluggable WebView architecture.
> >> >
> >> > Thanks,
> >> > -ningxin
> >> >
> >> > > -----Original Message-----
> >> > > From: Joe Bowser [mailto:bowserj@gmail.com]
> >> > > Sent: Wednesday, March 19, 2014 7:08 AM
> >> > > To: dev
> >> > > Subject: Re: [Android] Refactoring for different engines
> >> > >
> >> > > Hey
> >> > >
> >> > > After debugging, I did some minor updates to the plugin README.
> >> > > It
> >> > should be
> >> > > easier to get this up and running, although there's still the
> >> > > issue of
> >> > after-install
> >> > > hooks and the relative path weirdness with the Crosswalk Library itself.
> >> > >
> >> > > It still doesn't support the CLI at all, but it should be there
> >> > > with the
> >> > old flow.
> >> > >
> >> > > On Mon, Mar 17, 2014 at 1:14 PM, Michal Mocny
> >> > > <mmocny@chromium.org>
> >> > > wrote:
> >> > > > (Sorry Joe, Googlers are down in California and way busy.  Will
> >> > > > be back in a week.  Super excited about this, though.)
> >> > > >
> >> > > > -Michal
> >> > > >
> >> > > >
> >> > > > On Mon, Mar 17, 2014 at 2:53 PM, Joe Bowser <bowserj@gmail.com>
> >> wrote:
> >> > > >
> >> > > >> Reviving this thread!
> >> > > >>
> >> > > >> Can other people look at this, and see if/when we should
land this?
> >> > > >> I know that I have to re-write the tests still, but I would
> >> > > >> like some feedback before merging it in.  Also, it'd be super
> >> > > >> awesome if other people could try and make a WebView based
on
> >> > > >> the interfaces and recommend which methods should die.  I
want
> >> > > >> to get this released in the next month or so, so any time
and
> >> > > >> feedback would be greatly appreciated.
> >> > > >>
> >> > > >> Thanks
> >> > > >>
> >> > > >> On Thu, Mar 13, 2014 at 3:50 PM, Joe Bowser
> >> > > >> <bowserj@gmail.com>
> >> > wrote:
> >> > > >> > Hey, I created the following today to track various
WebView
> >> > progresses:
> >> > > >> > https://issues.apache.org/jira/browse/CB-6246
> >> > > >> >
> >> > > >> > I also have this repo created.  The licensing is ugly
as all
> >> > > >> > crap, but it's a Proof-Of-Concept:
> >> > > >> > https://github.com/infil00p/cordova-crosswalk-engine
> >> > > >> >
> >> > > >> > If I can get some help getting plugman to just load
> >> > > >> > Crosswalk, it'll
> >> > > >> look hawt.
> >> > > >> >
> >> > > >> > BTW: We should probably get this ready to go into Android
in
> >> > > >> > the next two months and deprecate the setProperty methods,
> >> > > >> > since all properties should be preferences in config.xml
now.
> >> > > >> >
> >> > > >> > On Mon, Mar 10, 2014 at 2:42 PM, Joe Bowser
> >> > > >> > <bowserj@gmail.com>
> >> > > wrote:
> >> > > >> >> Perhaps. There would be additional benefits to this
> >> > > >> >> approach, namely fixes being added to that platform
more
> >> > > >> >> quickly.  I'll probably take a look at that once
I have Crosswalk
> finalized.
> >> > > >> >>
> >> > > >> >> On Mon, Mar 10, 2014 at 9:49 AM, Brian LeRoux <b@brian.io>
> wrote:
> >> > > >> >>> this is great stuff
> >> > > >> >>>
> >> > > >> >>> do we think it may be possible to bring in amazon
fireos
> >> > > >> >>> stuff
> >> > > >> eventually
> >> > > >> >>> too?
> >> > > >> >>>
> >> > > >> >>>
> >> > > >> >>> On Fri, Mar 7, 2014 at 3:22 PM, Joe Bowser
> >> > > >> >>> <bowserj@gmail.com>
> >> > wrote:
> >> > > >> >>>
> >> > > >> >>>> BTW: I committed it in my repo, not the
main Apache one.
> >> > > >> >>>>
> >> > > >> >>>> On Fri, Mar 7, 2014 at 3:21 PM, Joe Bowser
> >> > > >> >>>> <bowserj@gmail.com>
> >> > > wrote:
> >> > > >> >>>> > Hey
> >> > > >> >>>> >
> >> > > >> >>>> > I just committed some code based on
their WebView
> >> > > >> >>>> > modifications that allows you to choose
your renderer
> >> > > >> >>>> > in the
> >> > config file
> >> > > with this:
> >> > > >> >>>> >
> >> > > >> >>>> >     <preference name="webView"
> >> > > >> >>>> > value="org.apache.cordova.engine.crosswalk.XWalkCordova
> >> > > >> >>>> > Web
> >> > > >> >>>> > View
> >> > > >> >>>> > " />
> >> > > >> >>>> >
> >> > > >> >>>> > You currently have to copy over the
*.pak file and the
> >> > > >> >>>> > jsapi from a Crosswalk Example project
to get this to
> >> > > >> >>>> > work.  The next thing that I'm going
to do is figure
> >> > > >> >>>> > out how to write this as a plugin and
have it install on a default
> project.
> >> > > >> >>>> > Also, right now the bridge doesn't
seem to work, and I
> >> > > >> >>>> > don't know why exactly.  That being
said, the
> >> > > >> fact
> >> > > >> >>>> > that I can choose which version of
Chrome/Chromium I'm
> >> > > >> >>>> > running with
> >> > > >> a
> >> > > >> >>>> > single XML preference is HUGE.
> >> > > >> >>>> >
> >> > > >> >>>> > There's definitely a lot more work
that needs to be
> >> > > >> >>>> > done, but as
> >> > > >> long
> >> > > >> >>>> > as we have something that we can fit
into the
> >> > > >> >>>> > interface, we should
> >> > > >> be
> >> > > >> >>>> > able to put in things like GeckoView
or other third
> >> > > >> >>>> > party
> >> > renderers.
> >> > > >> >>>> > The nightmare of being stuck with bullshit
WebView bugs
> >> > > >> >>>> > may soon be over.
> >> > > >> >>>> >
> >> > > >> >>>> > On Wed, Mar 5, 2014 at 8:59 PM, Michal
Mocny
> >> > > >> >>>> > <mmocny@chromium.org>
> >> > > >> >>>> wrote:
> >> > > >> >>>> >> https://github.com/crosswalk-project/crosswalk-cordova
> >> > > >> >>>> >> -an
> >> > > >> >>>> >> droi
> >> > > >> >>>> >> d
> >> > > >> >>>> >>
> >> > > >> >>>> >> First patch they landed, which
claims to have min
> >> > > >> >>>> >> viable xwalk
> >> > > >> webview:
> >> > > >> >>>> >>
> >> > > >> >>>>
> >> > > >> https://github.com/crosswalk-project/crosswalk-cordova-android
> >> > > >> /co
> >> > > >> mmit
> >> > > >> /a04dedeb0204e7542d190312c6ae70c795a26e04
> >> > > >> >>>> >>
> >> > > >> >>>> >>
> >> > > >> >>>> >> On Wed, Mar 5, 2014 at 11:37 PM,
Michal Mocny
> >> > > >> >>>> >> <mmocny@chromium.org
> >> > > >> >
> >> > > >> >>>> wrote:
> >> > > >> >>>> >>
> >> > > >> >>>> >>> I haven't looked yet, but did
you see:
> >> > > >> >>>> >>> https://crosswalk-project.org/#wiki/crosswalk-cordova
> >> > > >> >>>> >>> -an
> >> > > >> >>>> >>> droi
> >> > > >> >>>> >>> d
> >> > > >> >>>> >>>
> >> > > >> >>>> >>> ?
> >> > > >> >>>> >>>
> >> > > >> >>>> >>>
> >> > > >> >>>> >>> On Wed, Mar 5, 2014 at 10:20
PM, Andrew Grieve <
> >> > > >> agrieve@chromium.org
> >> > > >> >>>> >wrote:
> >> > > >> >>>> >>>
> >> > > >> >>>> >>>> First - very excited that
you're working on this!
> >> > > >> >>>> >>>>
> >> > > >> >>>> >>>> Had a quick look. Not sure
there's much to be gleaned yet.
> >> > > >> >>>> >>>> Once
> >> > > >> you
> >> > > >> >>>> start
> >> > > >> >>>> >>>> in on hooking up x-walk's
webview I think it will
> >> > > >> >>>> >>>> become more
> >> > > >> obvious
> >> > > >> >>>> what
> >> > > >> >>>> >>>> the interface should look
like. E.g., does x-walk
> >> > > >> >>>> >>>> even have the
> >> > > >> >>>> concept of
> >> > > >> >>>> >>>> ChromeClient vs WebViewClient
vs WebView? Also
> >> > > >> >>>> >>>> unsure whether the
> >> > > >> >>>> class
> >> > > >> >>>> >>>> should extend android.View
as well as implement our
> >> > interface.
> >> > > >> E.g.
> >> > > >> >>>> >>>> alternative is to have
a "getView()" method on the
> >> > interface.
> >> > > >> Might
> >> > > >> >>>> help
> >> > > >> >>>> >>>> to
> >> > > >> >>>> >>>> cut down on file sizes,
and API surface, but again,
> >> > > >> >>>> >>>> I'm not too
> >> > > >> sure.
> >> > > >> >>>> >>>>
> >> > > >> >>>> >>>> I've been pretty hesitant
to touch existing exposed
> >> > > >> >>>> >>>> members
> >> > > >> (e.g. the
> >> > > >> >>>> >>>> public fields you were
referring to) since touching
> >> > > >> >>>> >>>> anything
> >> > > >> public
> >> > > >> >>>> could
> >> > > >> >>>> >>>> break plugins. That said,
maybe now is a good time
> >> > > >> >>>> >>>> to @deprecate
> >> > > >> a
> >> > > >> >>>> bunch
> >> > > >> >>>> >>>> of
> >> > > >> >>>> >>>> them and either replace
them with getters, or just
> >> > > >> >>>> >>>> declare them
> >> > > >> to be
> >> > > >> >>>> not
> >> > > >> >>>> >>>> exposed to plugins.
> >> > > >> >>>> >>>>
> >> > > >> >>>> >>>>
> >> > > >> >>>> >>>> On Wed, Mar 5, 2014 at
6:57 PM, Joe Bowser
> >> > > >> >>>> >>>> <bowserj@gmail.com>
> >> > > >> wrote:
> >> > > >> >>>> >>>>
> >> > > >> >>>> >>>> > So, after looking
at the Crosswalk code again,
> >> > > >> >>>> >>>> > I've decided to
> >> > > >> take
> >> > > >> >>>> a
> >> > > >> >>>> >>>> > quick stab at making
things pluggable.  I don't
> >> > > >> >>>> >>>> > have a lot to
> >> > > >> show
> >> > > >> >>>> for
> >> > > >> >>>> >>>> > it, but with the help
of Eclipse (which is why the
> >> > > >> >>>> >>>> > generated interfaces
look so screwed up), I
> >> > > >> >>>> >>>> > managed to create
some
> >> > > >> interfaces
> >> > > >> >>>> so
> >> > > >> >>>> >>>> > we can start shoehorning
in other browser renderers.
> >> > > >> >>>> >>>> >
> >> > > >> >>>> >>>> >
> >> > > >> https://github.com/infil00p/cordova-android/tree/pluggable_web
> >> > > >> vie
> >> > > >> w
> >> > > >> >>>> >>>> >
> >> > > >> >>>> >>>> > I'm going to probably
start with Crosswalk,
> >> > > >> >>>> >>>> > because it's
> >> > > >> probably
> >> > > >> >>>> the
> >> > > >> >>>> >>>> > most mature primary
candidate in the Android
> >> > > >> >>>> >>>> > Third-Party
> >> > > >> WebView
> >> > > >> >>>> >>>> > thing, and I'm pretty
sure the GeckoView will be
> >> > > >> >>>> >>>> > happening
> >> > > >> shortly
> >> > > >> >>>> >>>> > after.
> >> > > >> >>>> >>>> >
> >> > > >> >>>> >>>> > I don't know how this
would work w.r.t. the CLI or
> >> > > >> >>>> >>>> > our
> >> > > >> workflow at
> >> > > >> >>>> >>>> > all, but at the moment,
I really just want to at
> >> > > >> >>>> >>>> > least start
> >> > > >> to have
> >> > > >> >>>> >>>> > some headway towards
4.x and PhoneGap day.
> >> > > >> >>>> >>>> >
> >> > > >> >>>> >>>> > What do people think
of this so far? I'm going to
> >> > > >> >>>> >>>> > try to clean
> >> > > >> >>>> things
> >> > > >> >>>> >>>> > up a bit, since we've
definitely done a lot of
> >> > > >> >>>> >>>> > things that
> >> > > >> would
> >> > > >> >>>> make
> >> > > >> >>>> >>>> > first year CS profs
freak the hell out (i.e.
> >> > > >> >>>> >>>> > public members in
> >> > > >> >>>> public
> >> > > >> >>>> >>>> > objects w.r.t. PluginManager).
> >> > > >> >>>> >>>> >
> >> > > >> >>>> >>>> > Thoughts?
> >> > > >> >>>> >>>> >
> >> > > >> >>>> >>>> > Joe
> >> > > >> >>>> >>>> >
> >> > > >> >>>> >>>>
> >> > > >> >>>> >>>
> >> > > >> >>>> >>>
> >> > > >> >>>>
> >> > > >>
> >> >

Mime
View raw message