Hello, On Fri, Sep 12, 2014 at 5:36 PM, Schroeder, Henning <[email protected]> wrote: > Short term you would do the following: > 1.) You do have a Media Manager interface definitions in fidl. > 2.) You have a Media Manager implementation binding to d-bus. > 3.) You open the fidl file in Franca Editor and export to d-bus > introspection. (You also may be able to introspect the Media Manager?) > 4.) You take that introspection file and open it in cloudeebus. > 5.) You implement in javascript against this interface.
This will work, but it has to be in separate source tree from crosswalk. The generic bits here are the introspection, and the python/cloudeebus+extension mechanism. How the D-Bus methods are specified/implemented are not interesting, from crosswalk point of view the whole thing is a python extension. > > Long term: > 1.) You add fidl support to cloudeebus. This sounds like a specialized extension, and it is doable today. For hardwiring fidl support to generic crosswalk extensions you need to make Franca IDL a W3C spec. > 2.) You create code generators for the crosswalk extension to map WebAPI > defined Javascript calls onto Common API based implementations. Putting it in a slightly different form, what would be interesting is generating from WebIDL a stub+test cases for the JS shim of an extension (which stub you still need to revisit in practice, e.g. for performance reasons, examples would make this mail too long but believe me it's needed), and a native stub for the native part of the extension. Stop there as a generic mechanism for crosswalk extension, and do the rest by connecting the dots with the platform-specific bindings (which may include WebIDL-->Franca--> native API's + implementations, or Android extensions etc). Whether to use code generators is detachable from the design. I would keep exposed the extension mechanism anyway, and this tooling would be a convenient extra. > 3.) You make the cloudeebus API look like a WebAPI. What do you mean here? It already has to look like a web api. > 4.) You use Franca to translate from WebIDL via Franca IDL into D-Bus > introspection and vice versa. > 5.) You integrate the Tizen Security capabilities into the generated code so > you do not have to touch existing implementations. The security/permission model is coming from W3C, native platform and the app store, therefore one single global unified flow will not solve it. Instead, we just need flexible/modular design and the mechanisms allowing to implement the security policies you need. > 6.) you make the IDENTICAL interface available into HTML5 (via Crosswalk > extension AND cloudeebus) and Native via Common API based code generation. > You may have to define one interface with low complexity for app environments > (App stores) and one with full capability for the main HMI. Do you mean then 2 interfaces... I was under the impression that the Web IDL serves as the basis, out of which we generate both web and native interfaces, implement the native, and use that in implementing the web API in a crosswalk extension. Anyway, this is all platform specific, we could choose to have a Web IDL and a superset API another IDL, no problem. Crosswalk is only concerned with the web API, the extension can use the native implementation, the developers can do whatever they want there, the extension will encapsulate it anyway. The web app is deployed together with the extension in the app store. As far as I can see no extra mechanisms are needed in Crosswalk for this. So for long term the xwalk feature-wish is only a nice-to-have code+test generation from WebIDL. However, this has a lot of problems to be solved in order to be generic enough, and things are moving fast in JS world. It is currently much easier reading a spec and writing JavaScript directly. But I agree that even a basic code generator would save about a day's worth of development time. Best regards, Zoltan > > Kind Regards > Henning > > > -----Original Message----- > From: Dev [mailto:[email protected]] On Behalf Of Kis, Zoltan > Sent: 12 September, 2014 14:06 > To: Ohly, Patrick > Cc: Yriarte, Luc; Tizen Dev; Santos, Thiago; Jonatan Pålsson > Subject: Re: [Dev] D-Bus bindings for Crosswalk, Crosswalk extensions in > Python > > This way one could prototype very fast and deploy apps/extensions and test > user interest: if it's high enough, could do a native extension to make it > somewhat faster (but I doubt it would be much faster, or better said, with > less latency). > > Technically this will not be a significantly better solution than writing > native extensions. Hosting Cloudeebus in the browser process will not work > because security reasons (or need to include a security manager too which > identifies and restricts apps). If we drop this, then 2 serializations need > to be done anyway, one to/from D-Bus, and one to/from the JS shim. But indeed > would result in somewhat less code to be written in certain/many extensions, > and don't have to deal with mainloop integration issues since this one will > be solved by the addition. So this would be very useful, ideal for > prototyping, and even production in many cases, but cannot cover everything > exclusively. > > However, when we also need C/C++ API's (i.e. there can be native apps and > equivalent web apps too), it is better to use them directly in the native > extensions, and some developers may just want to use D-Bus from their native > extension code since they are used with it and goes fast, or just use their > native libraries for a given service. > > Best regards, > Zoltan > > On Fri, Sep 12, 2014 at 12:13 PM, Patrick Ohly <[email protected]> wrote: >> On Fri, 2014-09-12 at 10:31 +0200, Jonatan Pålsson wrote: >> >>> On 12 September 2014 10:14, Patrick >>> Ohly <[email protected]> wrote: >>> Cloudeebus [1] is able to connect JavaScript apps to the D-Bus >>> session >>> or service bus. It can generate JavaProxy proxy objects >>> automatically >>> based on D-Bus introspection, pretty much like python-dbus >>> does it. >>> >>> >>> I think this sounds like a good approach. In the case of Media >>> Manager it would have been even more beneficial if the introspection >>> worked on the CommonAPI level. >> >> I agree, this would have some benefits. But it will be both more work >> (someone needs to write a Franca code generator for >> JavaScript/Crosswalk that works with CommonAPI services) and has a >> bigger impact on Tizen (can we use and ship the Franca tools in >> Tizen), so I'd like to defer the discussion of that to some other time. >> >> -- >> Best Regards, Patrick Ohly >> >> The content of this message is my personal opinion only and although I >> am an employee of Intel, the statements I make here in no way >> represent Intel's position on the issue, nor am I authorized to speak >> on behalf of Intel on this matter. >> >> >> >> _______________________________________________ >> Dev mailing list >> [email protected] >> https://lists.tizen.org/listinfo/dev > _______________________________________________ > Dev mailing list > [email protected] > https://lists.tizen.org/listinfo/dev > Intel GmbH > Dornacher Strasse 1 > 85622 Feldkirchen/Muenchen, Deutschland > Sitz der Gesellschaft: Feldkirchen bei Muenchen > Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk > Registergericht: Muenchen HRB 47456 > Ust.-IdNr./VAT Registration No.: DE129385895 > Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052 _______________________________________________ Dev mailing list [email protected] https://lists.tizen.org/listinfo/dev
