I would like to be able to perform the following actions from outside the browser, for example from a script
'''
Obtain a list of all tabs, and which URL is open
Obtain a list of all firefox windows and which tab is in each and in what order
Obtain a list of firefox running instances
Actions on tabs
Close a tab
Open a new tab and enter URL
move a tab in a window's tab order
move a tab to another window
mute/unmute a tab
make a tab hidden or unhide
pin/unpin a tab
select/unselect a tab
discard a tab
reload a tab
copy tab body or a specific xpath
run a javascript cmdlet, (bookmarklet ? )
Run a function of a script in somethingmonkey
bookmarks
list all bookmarks folder and bookmarks
move a bookmark to another folder
delete a bookmark
create a bookmark
get/change position of a firefox window
close a window/ open a new window
list installed addons
turn an addon on or off
'''
I would love to be able to write script, from outside firefox, and do these actions
I have found about the remote debugger, but I can't figure out if it's only for debugging firefox on android via adb ? Or can I use that directly from a script ?
https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#connecting-over-the-network
https://wiki.mozilla.org/Firefox_OS/Remote_Control
https://wiki.mozilla.org/Firefox/CommandLineOptions
devtools.debugger.remote-enabled
-start-debugger-server
?
Is any of this possible ?
thanks !
I think it would be much cleaner to make an addon that does this within the browser and exposes the functionality as a web API (or failing that, connects to a relay server locally). Then you can just use curl to send it commands.
You can look at how KDE Connect / Plasma Browser Integration does it, it does very similar things to integrate with Plasma like go to a tab via KRunner.
Also I specifically want that from the console. The console is the universal tgat doesn't require using some particulat language, or even programming at all
How can a browser add on receive commands from command line or open a port ?
They can't open a port, but they can connect to webservers (and similar things) on localhost.
There's also "native messaging", this might be a better choice if you go the addon route.