From: Daniel Colascione <danc@merrillpress.com>
To: Lennart Borgman <lennart.borgman@gmail.com>
Cc: Chong Yidong <cyd@stupidchicken.com>,
ferkiwi+a@gmail.com, joakim@verona.se, emacs-devel@gnu.org
Subject: Re: Why Emacs should have a good web-browser
Date: Thu, 13 Aug 2009 18:54:33 -0400 [thread overview]
Message-ID: <2154954C-8DB3-42DA-8CAA-A297B16E250A@merrillpress.com> (raw)
In-Reply-To: <e01d8a50907081542v109cec56ydfee37ced723577f@mail.gmail.com>
On Jul 8, 2009, at 6:42 PM, Lennart Borgman wrote:
> BTW, I have heard that espresso offers even better interaction than
> MozRepl but I am not sure. Is there anyone who knows more about this?
> Some examples of how to interact from Espresso/MozRepl?
Here is an example of some code from espresso (after the rename to js-
mode). I hope the JS interaction is self-explanatory, at least for
the purpose of discussion.
(FWIW, maybe the elisp<->js bridge really should be moved to moz.el?)
(defun js--get-tabs ()
"Enumerate all the contexts available. Each one is a list:
The list is (TITLE URL BROWSER TAB TABBROWSER) for content documents
The list is (TITLE URL WINDOW) for windows
All tabs of a given window are grouped together. The most
recent window is first. Within each window, the tabs are
returned left-to-right.
"
(with-js
(let (windows)
(loop with window-mediator = (js! ("Components" "classes"
"@mozilla.org/appshell/window-
mediator;1"
"getService")
(js< "Components" "interfaces"
"nsIWindowMediator"))
with enumerator = (js! (window-mediator "getEnumerator")
nil)
while (js? (js! (enumerator "hasMoreElements")))
for window = (js! (enumerator "getNext"))
for window-info = (js-list window
(js< window "document" "title")
(js! (window "location"
"toString"))
(js< window "closed")
(js< window "windowState"))
unless (or (js? (fourth window-info))
(eq (fifth window-info) 2))
do (push window-info windows))
(loop for window-info in windows
for window = (first window-info)
collect (list (second window-info)
(third window-info)
window)
for gbrowser = (js< window "gBrowser")
if (js-handle? gbrowser)
nconc (loop
for x below (js< gbrowser "browsers" "length")
collect (js-list (js< gbrowser
"browsers"
x
"contentDocument"
"title")
(js! (gbrowser
"browsers"
x
"contentWindow"
"location"
"toString"))
(js< gbrowser
"browsers"
x)
(js! (gbrowser
"tabContainer"
"childNodes"
"item")
x)
gbrowser))))))
next prev parent reply other threads:[~2009-08-13 22:54 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-08 20:11 Why Emacs should have a good web-browser Fernando
2009-07-08 20:54 ` Chong Yidong
2009-07-08 21:55 ` joakim
2009-07-08 22:42 ` Lennart Borgman
2009-08-13 22:54 ` Daniel Colascione [this message]
2009-07-08 22:55 ` Chong Yidong
2009-07-08 22:59 ` Lennart Borgman
2009-07-08 23:05 ` Davis Herring
2009-07-09 0:05 ` joakim
2009-07-09 12:36 ` Jason Rumney
2009-07-09 14:25 ` joakim
2009-07-09 16:01 ` Chong Yidong
2009-07-09 17:39 ` joakim
2009-07-09 22:19 ` Richard Stallman
2009-07-08 20:58 ` Richard Riley
2009-07-09 21:12 ` Paul R
2009-07-11 20:24 ` Stefan Monnier
2009-07-12 11:01 ` Robert D. Crawford
2009-07-13 7:18 ` Ken Raeburn
2009-07-17 15:59 ` Paul R
2009-07-18 1:29 ` Miles Bader
2009-07-21 9:18 ` Paul R
2009-07-21 15:52 ` Stefan Monnier
2009-07-21 16:31 ` Miles Bader
2009-07-21 17:25 ` Thomas Lord
2009-07-22 9:23 ` Paul R
2009-07-21 16:52 ` David Reitter
2009-07-21 20:34 ` Chong Yidong
2009-07-21 17:13 ` Thomas Lord
2009-07-21 18:21 ` Adam Wołk
2009-07-21 19:01 ` Lennart Borgman
2009-07-21 19:26 ` Adam Wołk
2009-07-21 19:33 ` Lennart Borgman
2009-07-21 19:47 ` Adam Wołk
2009-07-21 20:02 ` Robert D. Crawford
2009-07-21 20:08 ` Lennart Borgman
2009-07-21 20:37 ` Robert D. Crawford
2009-07-21 20:24 ` Adam Wołk
2009-07-21 21:27 ` Robert D. Crawford
2009-07-21 21:36 ` T.V. Raman
2009-07-21 22:14 ` Robert D. Crawford
2009-07-21 21:48 ` Adam Wołk
2009-07-21 22:24 ` Robert D. Crawford
2009-07-22 10:33 ` Tassilo Horn
2009-07-22 9:12 ` Paul R
2009-07-22 14:47 ` Stefan Monnier
[not found] ` <fxezoucvx5x8i57cbqUYAxe124vaj_firegpg@mail.gmail.com>
2009-07-21 22:09 ` Stephen Eilert
2009-07-21 23:05 ` Chong Yidong
2009-07-22 17:40 ` Stephen Eilert
2009-07-22 18:07 ` Chong Yidong
2009-08-30 18:22 ` joakim
2009-09-02 9:58 ` martin rudalics
2009-09-02 12:00 ` joakim
2009-09-12 19:03 ` Deniz Dogan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2154954C-8DB3-42DA-8CAA-A297B16E250A@merrillpress.com \
--to=danc@merrillpress.com \
--cc=cyd@stupidchicken.com \
--cc=emacs-devel@gnu.org \
--cc=ferkiwi+a@gmail.com \
--cc=joakim@verona.se \
--cc=lennart.borgman@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.