Hafiz,

I had the same issue that you are seeing and it had to do with the NIX 
transport setup.  When a gadget is rendered the first time, the NIX transport 
sets up both the container and gadget hook at the same time.  Since I was not 
re-rendering the page when switching to canvas view, when the gadget was told 
to render in canvas view it was failing to establish the connection with the 
NIX transport on the container side since the container's side of the NIX 
transport setup was already running.

I put a hack in place to force the rpc.js to setup the frame when I called 
setAuthToken after switching to canvas view.  I am still trying to work out a 
better solution so that I can submit a bug.

I am quite a bit behind at this point, since I haven't downloaded the latest 
BETA for Shindig, but the problem for me exists in the setupFrame function in 
the rpc.js file for the rpc feature.  If you look, the setup array on the 
container shows that the frame has already been setup when switching to canvas 
view so it just returns.  In the case of the NIX transport with IE7, switching 
to canvas view kills the frames reference to the VBScript for the NIX transport 
and its link to the container.

Hopefully this points you in the right direction.  I need to download the 
latest code for Shindig so I can put together a sensible fix for this issue.

Steve T.

-----Original Message-----
From: Hafiz A Haq [mailto:[email protected]]
Sent: Wednesday, December 02, 2009 12:42 AM
To: [email protected]
Subject: Re: Issue with different secure domains for container and shindig

Thank you John for the helping hand.

I just noticed one more strange behavior, probably is already discussed in the 
thread - http://markmail.org/thread/zorpp3exisyei76w

When i maximize the gadget, i change the view to canvas, and the rpcs fail in 
ie7. I could fix the issue by rerendering the gadget with a new moduleId.

Any recommendation on the proper fix for this one?

Thanks and Regards,
Hafiz

2009/12/1 John Hjelmstad <[email protected]>

> Hi Hafiz:
>
> Sounds like this has something to do with the way that numeric values
> are coerced to and from String values in JS. Forcing the value to be a
> String (w/ a non-numeric char) is a fine solution for the moment. A
> colleague recently saw this behavior as well. I'll take a look when I get 
> some time.
>
> Let me know if you run into any other troubles-
>
> --j
>
> On Mon, Nov 30, 2009 at 11:32 PM, Hafiz A Haq <[email protected]> wrote:
>
> > Seems appending a random character to the random number has fixed
> > the issue, atleast in my dev environment.
> >
> > I will update you once the build makes it to production. Waiting
> > with my fingers crossed.
> >
> > Thanks and Regards,
> > Hafiz
> >
> > 2009/11/25 John Hjelmstad <[email protected]>
> >
> > > Throwing a few ideas out there:
> > >
> > > 1. Rather than your rpctoken being (interpreted as) a number,
> > > ensure
> it's
> > a
> > > string by prepending "A" or something to it.
> > > 2. Any chance VBScript is disabled for you?
> > >
> > > -j-
> > >
> > > On Sun, Nov 22, 2009 at 10:30 PM, Hafiz A Haq
> > > <[email protected]>
> > wrote:
> > >
> > > > 2009/11/21 John Hjelmstad <[email protected]>
> > > >
> > > > > 1. Ah, version 1.1-beta2. I can't recall whether that version
> > > > > has
> the
> > > new
> > > > > NIX protocol in it or not. Does your /gadgets/js/rpc.js?c=1
> > > > > file
> > > contain
> > > > > symbols named gadgets.rpctx.nix*?
> > > > >
> > > > >
> > > > I tried 1.1beta2 and 1.1beta4 , i could find something like
> > > >
> > > > gadgets.rpctx.nix=function(){var C="GRPC____NIXVBS_wrapper";
> > > >
> > > > 2. Do you have a special container config for
> > > > container=smx-container
> > > that
> > > > > overrides any values for "gadgets.features":{"rpc"...?
> > > > >
> > > > >
> > > > "rpc" : {
> > > >    // Path to the relay file. Automatically appended to the parent
> > > >    /// parameter if it passes input validation and is not null.
> > > >    // This should never be on the same host in a production
> > environment!
> > > >    // Only use this for TESTING!
> > > >    "parentRelayUrl" : "/app/core/main/rpc_relay.html",
> > > >
> > > >    // If true, this will use the legacy ifpc wire format when
> > > > making
> > rpc
> > > >    // requests.
> > > >    "useLegacyProtocol" : false
> > > >  }
> > > >
> > > >
> > > > Anything amiss here?
> > > >
> > > > Thanks and Regards,
> > > > Hafiz
> > > >
> > > >
> > > > On Fri, Nov 20, 2009 at 4:51 AM, Hafiz A Haq
> > > > <[email protected]>
> > > wrote:
> > > > >
> > > > > > Thanks a ton John, I had almost given up.
> > > > > >
> > > > > > Yeah, First up i create the iframe url, which is like
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://shindig.company.com//app/shindig/gadgets/ifr?container=smx-con
> tainer&v=d84f1182fc1ef128c4c16095d561c3&lang=en&country=US&view=defaul
> t&up_appServiceCode=MY.CUSTOM.REPORT&up_chartTitle=My+Custom+Chart+For
> +Performance&up_reportSWFURL=https%3A%2F%2Flocalhost%3A8443%2Fapp%2Fco
> re%2Fmain%2Fswf%2Freporting.swf&up_reportingXmlStr=%3CreportPreference
> s%3E+%3Csettings%3E+%3CchartID%3Erankedbubblechart%3C%2FchartID%3E+%3C
> %2Fsettings%3E+%3Cquery%3E+%3CappServiceCode%3EMY.CUSTOM.REPORT%3C%2Fa
> ppServiceCode%3E+%3CfilterInstanceID%3EiNstance_fRom_tEmplate_11383%3C
> %2FfilterInstanceID%3E+%3Ctemplate%3Eacct-report-template.xml%3C%2Ftem
> plate%3E+%3CtimeHorizon%3E+%3CperiodTypeCode%3EHALFYEAR%3C%2FperiodTyp
> eCode%3E+%3CstartPeriod%2F%3E+%3CendPeriod%2F%3E+%3C%2FtimeHorizon%3E+
> %3C%2Fquery%3E%3C%2FreportPreferences%3E&url=https%3A%2F%2Fi-0029%3A84
> 43%2Fapp%2Fgadget%2Fcom.company.gadget.ReportingGadget%2Fcom.company.g
> adget.client.ReportingGadget.gadget.xml&libs=opensocial-0.8&parent=htt
> ps%3A%2F%2Fi-0029%3A8443%2Fapp%2Fcore%2Fmain%2F&nocache=0#rpctoken=0.2
> 649638729165247
> > > > > > <
> > > > > >
> > > > >
> > > >
> > >
> >
> https://i-0029:8443/https://i-0029:8443//app/shindig/gadgets/ifr?conta
> iner=smx-container&v=d84f1182fc1ef128c4c16095d561c3&lang=en&country=US
> &view=default&up_appServiceCode=MY.CUSTOM.REPORT&up_chartTitle=My+Cust
> om+Chart+For+Performance&up_reportSWFURL=https%3A%2F%2Flocalhost%3A844
> 3%2Fapp%2Fcore%2Fmain%2Fswf%2Freporting.swf&up_reportingXmlStr=%3Crepo
> rtPreferences%3E+%3Csettings%3E+%3CchartID%3Erankedbubblechart%3C%2Fch
> artID%3E+%3C%2Fsettings%3E+%3Cquery%3E+%3CappServiceCode%3EMY.CUSTOM.R
> EPORT%3C%2FappServiceCode%3E+%3CfilterInstanceID%3EiNstance_fRom_tEmpl
> ate_11383%3C%2FfilterInstanceID%3E+%3Ctemplate%3Eacct-report-template.
> xml%3C%2Ftemplate%3E+%3CtimeHorizon%3E+%3CperiodTypeCode%3EHALFYEAR%3C
> %2FperiodTypeCode%3E+%3CstartPeriod%2F%3E+%3CendPeriod%2F%3E+%3C%2Ftim
> eHorizon%3E+%3C%2Fquery%3E%3C%2FreportPreferences%3E&url=https%3A%2F%2
> Fi-0029%3A8443%2Fapp%2Fgadget%2Fcom.company.gadget.ReportingGadget%2Fc
> om.company.gadget.client.ReportingGadget.gadget.xml&libs=opensocial-0.
> 8&parent=https%3A%2F%2Fi-0029%3A8443%2Fapp%2Fcore%2Fmain%2F&nocache=0#
> rpctoken=0.2649638729165247
> > > > > > >
> > > > > >
> > > > > > then i set this as innerhtml to my gadget div and i follow
> > > > > > it up with
> > > > > >
> > > > > > gadgets.rpc.setRelayUrl(iframeId, iframeUrl, false);
> > > > > > gadgets.rpc.setAuthToken(iframeId, rpcToken);
> > > > > >
> > > > > > The browser versions having trouble are ie6 and ie7
> > > > > >
> > > > > > I tried
> > > > > > gadgets.rpc.setupReceiver(gadgetIFrameId);
> > > > > >
> > > > > > but it seems the method is not available in my version of
> > > > > > Shindig
> -
> > > > > > 1.1-Beta2
> > > > > >
> > > > > > Thanks in advance.
> > > > > >
> > > > > > Best Regards,
> > > > > > Hafiz
> > > > > >
> > > > > > 2009/11/20 John Hjelmstad <[email protected]>
> > > > > >
> > > > > > > Hi Hafiz:
> > > > > > >
> > > > > > > Order is everything. I want to confirm: you're first
> > > > > > > rendering
> > the
> > > > > > IFRAME,
> > > > > > > then immediately doing gadgets.rpc.setRelayUrl(...) and
> > > > > > > gadgets.rpc.setAuthToken(...) correct?
> > > > > > >
> > > > > > > To best deduce this issue, I'd need:
> > > > > > > 1. The exact IFRAME URL you're generating (you can remove
> > > > > > > the
> > > > security
> > > > > > > token
> > > > > > > if there is one)
> > > > > > > 2. The order in which you're generating the IFRAME URL and
> > calling
> > > > the
> > > > > > > setup
> > > > > > > commands.
> > > > > > > 3. The browser version(s) you're using.
> > > > > > >
> > > > > > > As well, you might try
> gadgets.rpc.setupReceiver(gadgetIFrameId);
> > > -->
> > > > > > this
> > > > > > > is the replacement to setRelayUrl and setAuthToken which
> ensures
> > > > proper
> > > > > > > ordering.
> > > > > > >
> > > > > > > --j
> > > > > > >
> > > > > > > On Wed, Nov 18, 2009 at 11:39 PM, Hafiz A Haq <
> > [email protected]
> > > >
> > > > > > wrote:
> > > > > > >
> > > > > > > > nix_channels[targetId] is not undefined, for the first
> > > > > > > > time
> > when
> > > i
> > > > > run
> > > > > > > the
> > > > > > > > app after a jboss restart... so basically the rpc goes
> through
> > > for
> > > > > the
> > > > > > > > first
> > > > > > > > gadget(if and only there is one gadget request while
> > > > > > > > starting
> > > > up)...
> > > > > > > >
> > > > > > > > Any clue, why this happens?
> > > > > > > >
> > > > > > > > Thanks and Regards,
> > > > > > > > Hafiz
> > > > > > > >
> > > > > > > > 2009/11/18 Hafiz A Haq <[email protected]>
> > > > > > > >
> > > > > > > > > Not sure if i am pestering you guys, but i dont have
> > > > > > > > > any
> > other
> > > > > > > option...
> > > > > > > > > :-(
> > > > > > > > >
> > > > > > > > > I am also invoking
> > > > > > > > > gadgets.rpc.setRelayUrl(iframeId, iframeUrl, false);
> > > > > > > > > gadgets.rpc.setAuthToken(iframeId, rpcToken);
> > > > > > > > >
> > > > > > > > > from the container for each gadget generated.
> > > > > > > > >
> > > > > > > > > and alert from nix.transport.js
> > > > > > > > >
> > > > > > > > > call: function(targetId, from, rpc) {
> > > > > > > > >       try {
> > > > > > > > >         // If we have a handler, call it.
> > > > > > > > >         alert(targetId+" = "+nix_channels[targetId]+"
> > > > > > > > > from
> > > > "+from+"
> > > > > > rpc
> > > > > > > > is
> > > > > > > > > "+gadgets.json.stringify(rpc));
> > > > > > > > >        ....
> > > > > > > > >     }
> > > > > > > > >
> > > > > > > > > gives
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > .. = from remote_iframe_0 rpc
> > > > > > > > > {"s":"set_title","f":"remote_iframe_0","c":0,"a"["Acco
> > > > > > > > > unt overview"],"t":"0.6466592220939002","I":false}
> > > > > > > > >
> > > > > > > > > works (once in a blue moon)
> > > > > > > > >
> > > > > > > > > .. = undefined from remote_iframe_2 rpc is
> > > > > > > > > {"s":"set_title","f":"remote_iframe_2","c":0,"a":["Acc
> > > > > > > > > ount summary"],"t":"0.33673688496145","I":false}
> > > > > > > > >
> > > > > > > > > doesnt work
> > > > > > > > >
> > > > > > > > > I don't understand why most of the times the undefined
> comes
> > up
> > > > and
> > > > > > > then
> > > > > > > > it
> > > > > > > > > fails...
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Please , all those gurus and experts, any tip,
> > > > > > > > > something i
> > > might
> > > > be
> > > > > > > > > missing...
> > > > > > > > >
> > > > > > > > > Thanks and Regards,
> > > > > > > > >  Hafiz
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > 2009/11/18 Hafiz A Haq <[email protected]>
> > > > > > > > >
> > > > > > > > >> I have also added rpctoken into the iframeurl like
> > > > > > > > >>
> > > > > > > > >> https://
> > > > > > > > >>
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> .../ifr?container=...&lang=en&country=US&view=default&nocache=1&rpctok
> en=0.9956869901138398,
> > > > > > > > >> which is essentially a random number
> > > > > > > > >>
> > > > > > > > >> still the rpc calls are not getting through.
> > > > > > > > >>
> > > > > > > > >> Anything else i might be missing.
> > > > > > > > >>
> > > > > > > > >> 2009/11/18 Hafiz A Haq <[email protected]>
> > > > > > > > >>
> > > > > > > > >> Any input would help me. Please provide a hint why
> > > > > > > > >> nix
> > > transport
> > > > > > fails
> > > > > > > > >>> when container and shindig is at 2 different secure
> > domains?
> > > > > > > > >>>
> > > > > > > > >>> 2009/10/28 Hafiz A Haq <[email protected]>
> > > > > > > > >>>
> > > > > > > > >>>> Seems there is something that makes the nix
> > > > > > > > >>>> transport
> > > > mechanism
> > > > > > fail
> > > > > > > > >>>> here, the call method is not going through , where
> > > > > > > > >>>> it
> > fails
> > > at
> > > > > the
> > > > > > > > check
> > > > > > > > >>>> if (nix_channels[targetId])
> > > > > > > > >>>>
> > > > > > > > >>>> In the call method the parameters targetId, from,
> > > > > > > > >>>> rpc
> > alerts
> > > > to
> > > > > > > > >>>>  '.. , remote_iframe_3 , [object Object]'
> > > > > > > > >>>>
> > > > > > > > >>>> Can anyone please give me a hint why the code
> > > > > > > > >>>>
> > > > > > > > >>>> if (nix_channels[..])
> > > > > > > > >>>>
> > > > > > > > >>>> is not going through as expected..
> > > > > > > > >>>>
> > > > > > > > >>>> Any help is appreciated.
> > > > > > > > >>>>
> > > > > > > > >>>> Thanks and REgards, Hafiz
> > > > > > > > >>>>
> > > > > > > > >>>> 2009/10/28 Hafiz A Haq <[email protected]>
> > > > > > > > >>>>
> > > > > > > > >>>> Hi All,
> > > > > > > > >>>>>
> > > > > > > > >>>>> My dashboard application is up and running in
> production,
> > > > > thanks
> > > > > > to
> > > > > > > > >>>>> Shindig and you guys. Due to some serious mistake
> > > > > > > > >>>>> from
> QA
> > > and
> > > > > IT
> > > > > > > guys
> > > > > > > > i have
> > > > > > > > >>>>> a bug at this last hour as rpc feature is broken
> > > > > > > > >>>>> in
> > > > production
> > > > > > and
> > > > > > > my
> > > > > > > > >>>>> clients are not so happy.. :(
> > > > > > > > >>>>>
> > > > > > > > >>>>> In production each client has individual
> > > > > > > > >>>>> subdomains and
> > > > shindig
> > > > > > is
> > > > > > > > >>>>> deployed in a common subdomain for all customers,
> > > > > > > > >>>>> both
> > over
> > > > > > https.
> > > > > > > > RPC is
> > > > > > > > >>>>> now broken in IE6,7 and setTitle, setHeight ...
> > > > > > > > >>>>> are not
> > > > > working.
> > > > > > > > >>>>>
> > > > > > > > >>>>> I assigned gadgets.parent in myContainer.js with a
> regex
> > > > > pattern
> > > > > > > like
> > > > > > > > >>>>>
> > > > > > > > >>>>> "gadgets.parent" : "(https://localhost:8443|
> > > > > > > > >>>>> https://customer1.app.company.com|
> > > > > > > https://customer2.app.company.com
> > > > > > > > )",
> > > > > > > > >>>>>
> > > > > > > > >>>>>
> > > > > > > > >>>>> and rpc like
> > > > > > > > >>>>>
> > > > > > > > >>>>>  "rpc" : {
> > > > > > > > >>>>>     // Path to the relay file. Automatically
> > > > > > > > >>>>> appended
> to
> > > the
> > > > > > parent
> > > > > > > > >>>>>     // parameter if it passes input validation and
> > > > > > > > >>>>> is
> not
> > > > null.
> > > > > > > > >>>>>     // This should never be on the same host in a
> > > production
> > > > > > > > >>>>> environment!
> > > > > > > > >>>>>     // Only use this for TESTING!
> > > > > > > > >>>>>     "parentRelayUrl" :
> > > > > > > > >>>>> "/app/core/main/rpc_relay.html",
> > > > > > > > >>>>>
> > > > > > > > >>>>>     // If true, this will use the legacy ifpc wire
> format
> > > > when
> > > > > > > making
> > > > > > > > >>>>> rpc
> > > > > > > > >>>>>     // requests.
> > > > > > > > >>>>>     "useLegacyProtocol" : false
> > > > > > > > >>>>>   }
> > > > > > > > >>>>>
> > > > > > > > >>>>> Now i tried
> > > > > > > > >>>>>
> > > > > > > > >>>>> var parentRelayUrl = window.location.protocol +
> > > > > > > > >>>>> "//" + window.location.host
> > > > > > > > >>>>> gadgets.container.setParentUrl(parentRelayUrl);
> > > > > > > > >>>>>
> > > > > > > > >>>>> from the container js file, which is loaded after
> loading
> > > all
> > > > > > > > required
> > > > > > > > >>>>> shindig js file dependencies. Still i am not able
> > > > > > > > >>>>> to
> get
> > > the
> > > > > rpcs
> > > > > > > to
> > > > > > > > work
> > > > > > > > >>>>> properly in IE6,7. Any help is greatly appreciated
> > > > > > > > >>>>> as
> > some
> > > of
> > > > > my
> > > > > > > > customers
> > > > > > > > >>>>> are tied down on IE7.
> > > > > > > > >>>>>
> > > > > > > > >>>>> Best Regards,
> > > > > > > > >>>>> Hafiz
> > > > > > > > >>>>> --
> > > > > > > > >>>>> He who asks is a fool for five minutes, but he who
> > > > > > > > >>>>> does
> > not
> > > > ask
> > > > > > > > remains
> > > > > > > > >>>>> a fool forever.
> > > > > > > > >>>>>
> > > > > > > > >>>>
> > > > > > > > >>>>
> > > > > > > > >>>>
> > > > > > > > >>>> --
> > > > > > > > >>>> He who asks is a fool for five minutes, but he who
> > > > > > > > >>>> does
> > not
> > > > ask
> > > > > > > > remains
> > > > > > > > >>>> a fool forever.
> > > > > > > > >>>>
> > > > > > > > >>>
> > > > > > > > >>>
> > > > > > > > >>>
> > > > > > > > >>> --
> > > > > > > > >>> He who asks is a fool for five minutes, but he who
> > > > > > > > >>> does
> not
> > > ask
> > > > > > > remains
> > > > > > > > a
> > > > > > > > >>> fool forever.
> > > > > > > > >>>
> > > > > > > > >>
> > > > > > > > >>
> > > > > > > > >>
> > > > > > > > >> --
> > > > > > > > >> He who asks is a fool for five minutes, but he who
> > > > > > > > >> does
> not
> > > ask
> > > > > > > remains
> > > > > > > > a
> > > > > > > > >> fool forever.
> > > > > > > > >>
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > He who asks is a fool for five minutes, but he who
> > > > > > > > > does not
> > ask
> > > > > > remains
> > > > > > > a
> > > > > > > > > fool forever.
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > He who asks is a fool for five minutes, but he who does
> > > > > > > > not
> ask
> > > > > remains
> > > > > > a
> > > > > > > > fool forever.
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > He who asks is a fool for five minutes, but he who does not
> > > > > > ask
> > > remains
> > > > a
> > > > > > fool forever.
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > He who asks is a fool for five minutes, but he who does not ask
> remains
> > a
> > > > fool forever.
> > > >
> > >
> >
> >
> >
> > --
> > He who asks is a fool for five minutes, but he who does not ask
> > remains a fool forever.
> >
>



--
He who asks is a fool for five minutes, but he who does not ask remains a fool 
forever.

Reply via email to