incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Grieve <agri...@chromium.org>
Subject Re: Changing iOS's exec bridge
Date Sat, 28 Jul 2012 02:30:32 GMT
Hmm, shoot. This change is harmless I think, but I just committed a change
to FileTransfer to allow passing in a headers map, which does the exact
thing you warn against - it now has up to two JS objects being passed
within the arguments array. (https://issues.apache.org/jira/browse/CB-765)

Could elaborate on this restriction? Is it that the JSON parser on WP7
supports extracting only a single JS object within the top-level array?
Does it support nested objects?

I'm not sure what you mean by object types.




On Fri, Jul 27, 2012 at 9:11 PM, Jesse <purplecabbage@gmail.com> wrote:

> Windows 8, WP8 at least
> .net only supports basic JSON serialization without the inclusion of
> the 300KB JSON.net lib.
>
>
>
> On Fri, Jul 27, 2012 at 6:05 PM, Shazron Abdullah <shazron@gmail.com>
> wrote:
> > Thanks Jesse - seems like a doc issue we need to write for cross
> > platform plugins. Would you know if this is a concern for other
> > platforms as well besides WP7?
> >
> > On 2012-07-27, at 6:00 PM, Jesse <purplecabbage@gmail.com> wrote:
> >
> >> Okay, that all looks/sounds fine.
> >> However, we have to be careful not to encourage passing multiple
> >> objects in the array, in addition to multiple different object types.
> >> We should continue to strive to make sure that everything outside of
> >> exec is portable, so even though in iOS, exec can receive args of
> >> [{name:value}, {name:value}] the JS calling code will NOT be portable.
> >>
> >> I worry (just a little) we are opening a door we may have to close
> later.
> >>
> >>
> >>
> >>
> >>
> >> On Fri, Jul 27, 2012 at 5:37 PM, Shazron <shazron@gmail.com> wrote:
> >>> These changes transfer the decision that was done in JS to the
> Objective-C side.
> >>> The arguments are passed in as-is, if an object is passed in as an
> >>> array element, it is converted to a NSDictionary in objective-C. So if
> >>> you use the new plugin signature, you can pass in as many objects as
> >>> you want to the plugin method, they will be in order in the arguments
> >>> array as NSDictionary-s.
> >>>
> >>> The "extraction" occurs when we compare the plugin method signature -
> >>> if its a legacy signature, we extract the first NSDictionary from the
> >>> arguments, like we did in JS. If its not a legacy signature, we pass
> >>> the arguments unchanged.
> >>>
> >>> re:
> https://github.com/agrieve/incubator-cordova-ios/compare/legacy_exec#L3R63
> >>>
> >>>
> >>> On Fri, Jul 27, 2012 at 5:26 PM, Jesse <purplecabbage@gmail.com>
> wrote:
> >>>> Wait!
> >>>>
> >>>> Can we discuss the EXACT nature of the command array?
> >>>> I have had to work through a similar issue on WP7, it would be
> >>>> extremely valuable if we could agree on what the args to exec looks
> >>>> like.
> >>>>
> >>>> It looks like your changes are all inside and beyond exec, but I want
> >>>> to make sure.
> >>>>
> >>>> In the past we discussed removing the array altogether and passing
> >>>> named objects as args.
> >>>> On WP7 it is extremely difficult to interpret arrays that do not
> >>>> contain the same types of object.
> >>>> For example, if the command has args of
> ['what',23,{obj:literal},[1,2,3]]
> >>>>
> >>>> Do we still have a limitation of only passing 1 object literal?
> >>>>
> >>>>
> >>>>
> >>>> On Fri, Jul 27, 2012 at 5:08 PM, Andrew Grieve <agrieve@chromium.org>
> wrote:
> >>>>> Committed.
> >>>>> Sounds good! You update the dev guide, and I'll work to update the
> existing
> >>>>> core plugins.
> >>>>>
> >>>>>
> >>>>> On Fri, Jul 27, 2012 at 6:22 PM, Shazron <shazron@gmail.com>
wrote:
> >>>>>
> >>>>>> Thanks Andrew, this looks good!
> >>>>>>
> >>>>>> Once you merge it in, I'll add the doc issues, especially the
Plugin
> >>>>>> Dev Guide, we don't want people to start using the old way.
I was
> >>>>>> thinking, a deprecation NSLog would be great if they are using
the
> old
> >>>>>> way, but that will just be too much noise at this point...
> >>>>>>
> >>>>>> On Fri, Jul 27, 2012 at 2:06 PM, Andrew Grieve <
> agrieve@chromium.org>
> >>>>>> wrote:
> >>>>>>> Shaz,
> >>>>>>>
> >>>>>>> I mentioned doing such a change during PGD, but was hoping
you
> could
> >>>>>> give it
> >>>>>>> a sanity check over:
> >>>>>>>
> >>>>>>> https://issues.apache.org/jira/browse/CB-1150
> >>>>>>>
> https://github.com/agrieve/incubator-cordova-ios/compare/legacy_exec
> >>>>>>> https://github.com/agrieve/incubator-cordova-js/tree/better_exec
> >>>>>>>
> >>>>>>> I ensured mobile-spec and unit tests pass, so should be
good to go
> I
> >>>>>> think.
> >>>>>>>
> >>>>>>> Andrew
> >>>>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> @purplecabbage
> >>>> risingj.com
> >>
> >>
> >>
> >> --
> >> @purplecabbage
> >> risingj.com
>
>
>
> --
> @purplecabbage
> risingj.com
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message