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:bows...@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...@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: mmo...@google.com [mailto:mmo...@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...@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:bows...@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 > >> > > <mmo...@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 <bows...@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 > >> > > >> <bows...@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 > >> > > >> > <bows...@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 > >> > > >> >>> <bows...@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 > >> > > >> >>>> <bows...@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 > >> > > >> >>>> > <mmo...@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 > >> > > >> >>>> >> <mmo...@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 < > >> > > >> agri...@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 > >> > > >> >>>> >>>> <bows...@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 > >> > > >> >>>> >>>> > > >> > > >> >>>> >>>> > >> > > >> >>>> >>> > >> > > >> >>>> >>> > >> > > >> >>>> > >> > > >> > >> >