incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jesse <purplecabb...@gmail.com>
Subject Re: Changing iOS's exec bridge
Date Mon, 30 Jul 2012 18:37:07 GMT
I meant, different types of objects.

It would be much easier on WP7 if the method did this:

exec(successCallback, fail, 'FileTransfer', 'upload', [filePath,
server, fileKey, fileName, mimeType,
JSON.stringify(params), trustAllHosts, chunkedMode, JSON.stringify
(headers)]);

I will look at handling this inside exec. Generally though, I don't like to
see us moving towards huge lists of params (nothing to do with your contrib
Andrew).

Cheers,
Jesse

On Fri, Jul 27, 2012 at 7:30 PM, Andrew Grieve <agrieve@chromium.org> wrote:

> 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
> >
>



-- 
@purplecabbage
risingj.com

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