Yep, that worked and it's the simplest approach; thanks again. What I
thought was strange, however, was that the debugger right-hand side
window shows the four vars as undefined, but when I hovered over them
the debugger showed their actual values. I wonder if this is a known
bug in the debugger.

On Dec 30, 11:53 pm, PAEz <cdkp...@gmail.com> wrote:
> The whole asynchronous way of doing things did my head in to start
> with.
> You know you can send a bunch of variables in one request so you dont
> have to keep playing ping pong.
> Heres an example of what you can do....
> //content
> chrome.extension.sendRequest({request: "hostDetails"},
>   function(response)
>     {
> var server = "https://"; + response.hostname + ":" + response.port;
> //do the rest of your script here
>     });
>
> //background
> //Wait for request for the host name, port, e-mail address and
> password from content script
> chrome.extension.onRequest.addListener(
>   function(request, sender, sendResponse)
>   {
>   if (request.request == "hostDetails")
>     {
> sendResponse({"hostname": localStorage["hostname"], "port":
> localStorage["port"], "passwd": localStorage["passwd"], "email_addr":
> localStorage["email_addr"]});
>     } else sendResponse({}); // snub them.
>   }
>   );
>
> ....didnt test it, but it should work
>
> On Dec 31, 4:04 pm, PhistucK <phist...@gmail.com> wrote:
>
>
>
> > Well, you can put there a set of IFs and load other functions that will
> > actually do whatever you want.
> > There is no nice way of doing it, sorry.
>
> > ☆PhistucK
>
> > On Wed, Dec 30, 2009 at 19:37, FractalBob <ruom...@gmail.com> wrote:
>
> > > Thanks for your suggestion, PhistucK. It helps but it's not quite
> > > there. The problem is that I need to handle several responses, so in
> > > GetResponseAndAct() I need to determine which response I'm receiving,
> > > store it in a variable and move the server declaration outside the
> > > function. How do I interrogate GetResponseAndAct for the response?
>
> > > On Dec 30, 4:04 am, PhistucK <phist...@gmail.com> wrote:
> > > > Yes, everything is asynchronous.
>
> > > > You have sent a request. The response will not be received immediately.
> > > > You put a "return" in the function you have assigned to the callback, it
> > > > returns this value to... nothing.
>
> > > > What you should do, is something like that -
> > > > function GetResponseAndAct(Response)
> > > > {
> > > >  var server = "https://"; + Response.hostname + ":" + Response.port;}
>
> > > > function getHostParm(parm)
> > > > {
> > > > chrome.extension.sendRequest({name: parm}, GetResponseAndAct)}
>
> > > > getHostParm("hostname");
>
> > > > ☆PhistucK
>
> > > > On Wed, Dec 30, 2009 at 10:27, FractalBob <ruom...@gmail.com> wrote:
> > > > > Hi,
>
> > > > > I thought I had this problem licked in my last extension. And I did.
> > > > > But now it's happening again and I don't see how this context is any
> > > > > different from the last.
>
> > > > > The following code, in the content script, is sending a couple of
> > > > > requests to background.html for data in local storage:
>
> > > > > background.html waits for requests:
>
> > > > > //Wait for request for the host name, port, e-mail address and
> > > > > password from content script
> > > > > chrome.extension.onRequest.addListener(
> > > > >  function(request, sender, sendResponse)
> > > > >  {
> > > > >  if (request.name == "hostname")
> > > > >    {
> > > > >    sendResponse({hostname: localStorage["hostname"]});
> > > > >    }
> > > > >  if (request.name == "port")
> > > > >    {
> > > > >    sendResponse({port: localStorage["port"]});
> > > > >    }
> > > > >  if (request.name == "passwd")
> > > > >    {
> > > > >    sendResponse({passwd: localStorage["passwd"]});
> > > > >    }
> > > > >  if (request.name == "email_addr")
> > > > >    {
> > > > >    sendResponse({email_addr: localStorage["email_addr"]});
> > > > >    }
> > > > >  }
> > > > >  );
>
> > > > > However, when I ran the debugger, it seemed that getHostParm()
> > > > > completed before the listener could respond. In any case, getHostParm
> > > > > () returns "undefined". I know the requested data is on disk, because
> > > > > it's part of my options processing and I know that works. Anyone have
> > > > > any ideas?
>
> > > > > --
>
> > > > > You received this message because you are subscribed to the Google
> > > Groups
> > > > > "Chromium-extensions" group.
> > > > > To post to this group, send email to
> > > chromium-extensi...@googlegroups.com.
> > > > > To unsubscribe from this group, send email to
> > > > > chromium-extensions+unsubscr...@googlegroups.com<chromium-extensions%2Bunsu
> > > > >  bscr...@googlegroups.com><chromium-extensions%2Bunsu
> > > bscr...@googlegroups.com>
> > > > > .
> > > > > For more options, visit this group at
> > > > >http://groups.google.com/group/chromium-extensions?hl=en.
>
> > > --
>
> > > You received this message because you are subscribed to the Google Groups
> > > "Chromium-extensions" group.
> > > To post to this group, send email to chromium-extensi...@googlegroups.com.
> > > To unsubscribe from this group, send email to
> > > chromium-extensions+unsubscr...@googlegroups.com<chromium-extensions%2Bunsu
> > >  bscr...@googlegroups.com>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/chromium-extensions?hl=en.

--

You received this message because you are subscribed to the Google Groups 
"Chromium-extensions" group.
To post to this group, send email to chromium-extensi...@googlegroups.com.
To unsubscribe from this group, send email to 
chromium-extensions+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/chromium-extensions?hl=en.


Reply via email to