func (pk *ProxyKeyring) Serve() error { if pk.listener == nil { return errors.New("Not listening") } for { c, err := pk.listener.Accept() if err != nil { return err } go agent.ServeAgent(pk, c) } }
func launch(mga *Agent) { js.Global.Set("agent", js.MakeWrapper(mga)) if isBackgroundPage() { log.Printf("Starting agent") js.Global.Get("chrome"). Get("runtime"). Get("onConnectExternal"). Call("addListener", func(port *js.Object) { p := NewAgentPort(port) go agent.ServeAgent(mga, p) }) } else if isOptionsPage() { js.Global.Get("document"). Call("addEventListener", "DOMContentLoaded", func() { go func() { textarea := js.Global.Get("document"). Call("getElementById", "keys") textarea.Set("textContent", mga.PubKeys()) textarea.Get("style").Set("height", textarea.Get("scrollHeight").String()+"px") textarea.Call("addEventListener", "click", func() { textarea.Call("focus") textarea.Call("select") }) }() }) } }