After some tracing, I think I found a bug.

When calling an RPC service, execution arrives at rpc.js, to the function
   function process(rpc)

In that function, there is a line:
   var result = service.apply(rpc, rpc.a);

Where :
 * service is a function, typically registered by gadgets.IfrGadgetService,
in this case, it is the function
gadgets.IfrGadgetService.prototype.requestNavigateTo
 * rpc is a struct containing 5 fields related to the request (s, f, c, a,
t).

According to the Javascript documentation:

http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Function:apply

The "apply" function takes two arguments: the first it the "this" variable
and the second is the array of arguments.

So, in this case, the "this" variable is the rpc struct, but it is passed to
a function that belongs to the gadgets.IfrGadgetService class!

This seems like a bug, don't you think?

2008/7/31, Erel Segal <[EMAIL PROTECTED]>:
>
> "It would seem that gadgets.js (the sample container js code)
> requestNavigateTo is erroring out, i get the same thing if i try an app that
> navigates in the sample container" - Do you mean that there is a bug in
> gadgets.js ?
>
> 2008/7/29, Chris Chabot <[EMAIL PROTECTED]>:
>>
>> Hey Erel,
>>
>> It would seem that gadgets.js (the sample container js code)
>> requestNavigateTo is erroring out, i get the same thing if i try an app that
>> navigates in the sample container (see http://www.shindig-demo.org/ for a
>> hosted java based demo).
>>
>> If you'd run this in a container with a working requestNavigateTo rpc
>> implementation you'd be able to get past that point, however unfortunately
>> typeracer is tied to specific platforms (
>> http://typeracer.com/orkut/gadget.xml and
>> http://typeracer.com/hi5/gadget.xml for instance) and they don't have a
>> 'open social compliant version' that will work on any open social container
>> ;(
>>
>> To be completely honest most social apps are tied to specific containers
>> at the moment, and the rare few that are not either require your public key
>> to be able to verify your signed requests (and often work on their end to
>> add your container, etc), or require a version that works on your specific
>> container..  So what that leaves you with is either the sample gadgets,
>> iGoogle style gadget's that are not social, or a very few rare apps that are
>> social but don't do signed requests / require back-end configuration on
>> their end.
>>
>> http://opensocial.musicmazaa.com/app/index.xml is such an gadget for
>> instance that is social and works 'everywhere', but with the obvious
>> downside that if requests are not signed ... well there is no way to
>> validate the owner / viewer so 'hacking' the info is as simple as changing
>> an ID in firebug.
>>
>>        -- Chris
>>
>>
>> On Jul 29, 2008, at 5:04 PM, Erel Segal wrote:
>>
>>  OK, I picked at random some application that looked both simple and fun -
>>> the TypeRacer application
>>>  ( http://typeracer.com/orkut/gadget.xml ).
>>>
>>> It works fine on Orkut, so I am sure it has no bugs.
>>>
>>> I put the link inside javcascript/container/sample2.html, so that I can
>>> be
>>> sure that all javascript files are included correctly.
>>>
>>> When I clicked the "play now" link, I got a javascript error:
>>>  "this.getGadgetIdFromModuleId is not a function"
>>>
>>> The trace shows:
>>>  * gadgets.IfrGadgetService.prototype.requestNavigateTo  (in gadgets.js)
>>>  * process (in rpc.js)
>>>  * getRelayUrl (in rpc.js)
>>>
>>> Probably, the gadget tried to call "requestNavigateTo" to navigate to a
>>> different view, but got an error.
>>>
>>> Do you have any clue, what have gone wrong?
>>>
>>
>>
>

Reply via email to