> On 2011-08-22 22:09:28, johnfargo wrote:
> > This solution looks pretty good to me. Removing from the map in the 
> > gadgetSite.close() sounds like a reasonable solution to me. Another is just 
> > to remove the sameDomain function map from rpc.
> > 
> > The potential downside to the latter is that more lookups will occur 
> > attempting to find the function, which in some browsers could cause the 
> > weird "Unsafe JavaScript access" error in the non-SD case.

Committed revision 1160787.
Thanks John!


- Ryan


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1428/#review1592
-----------------------------------------------------------


On 2011-08-22 12:57:34, Ryan Baxter wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/1428/
> -----------------------------------------------------------
> 
> (Updated 2011-08-22 12:57:34)
> 
> 
> Review request for shindig, johnfargo and Dan Dumont.
> 
> 
> Summary
> -------
> 
> I think I found a bug which was introduced by a recent change to how we 
> create gadget site ids. 
> Looks like it was these changes https://reviews.apache.org/r/1011/#. 
> 
> The change in the code above changed how we generate site ids. We used to 
> increment a counter every time a new site is created. Now if the DOM element 
> has an id attribute we use that as the site id. If the container chooses to 
> use the same DOM element for two different instances of a gadget site, (for 
> example closing an existing gadget site and using the DOM element of the 
> previous gadget site for a new gadget site) the site id will be the same 
> between both instances. We also use the gadget site id to generate the iFrame 
> id. In rpc.js there is a variable called sameDomain which appears to keep a 
> map of gadget iFrame ids to the the iFrame window's same domain function. It 
> doesn't look like we ever remove these functions when the gadget iframe is 
> removed from the DOM. Since now you can now generate two different site 
> instances with the same id it will be possible to use the previous gadget 
> window's same domain function (which is no longer exist when the gadget is 
> close) for RPC requests coming from the new window 
> 
> I do not think the solution is to revert the gadget site changes, I think the 
> correct solution is to remove the function from the sameDomain map. The 
> question I have is what is the best way to do this? A strait forward solution 
> is to have the gadget sites close function remove the function from the map 
> when it removes the iFrame from the DOM.
> 
> 
> This addresses bug SHINDIG-1565.
>     https://issues.apache.org/jira/browse/SHINDIG-1565
> 
> 
> Diffs
> -----
> 
>   
> http://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/rpc/rpc.js
>  1155104 
> 
> Diff: https://reviews.apache.org/r/1428/diff
> 
> 
> Testing
> -------
> 
> Tested reference implementations which were broken do to this bug
> 
> 
> Thanks,
> 
> Ryan
> 
>

Reply via email to