On 19/01/2014 18:51, Shea Levy wrote:
Hi Alp,

On Sun, Jan 19, 2014 at 06:43:10PM +0000, Alp Toker wrote:
On 19/01/2014 18:34, Shea Levy wrote:
Hi all,

I'd like to have a browser that can be used from the terminal but
actually supports modern HTML, js, etc. to the extent that is reasonable
for a console. It seems no such browser currently exists, so I was
thinking about trying to port webkit to use a curses backend. Is such a
thing a reasonable project? Ideally I'd just be able to plug some
rendering logic on top of an unmodified webkit core...
HI Shea,

It is possible as a full-blown port, but moreover would be straightforward
to get done using just the standard API and DOM binding of any existing port
that supports operation without an on-screen view.

Ah, great! Can you give me a pointer to how to get started with such
existing ports? Particularly interested in running on Linux,

A simple implementation would use the ordinary ordinary load WebView/WebFrame resource load functions (load_uri), then access the DOM (get_dom_document) and iterate through nodes, converting them to text and hyperlinks to be represented in your curses UI. Hook into ordinary DOM mutation events to update the text UI if the port doesn't have more suitable callbacks.

If you want something like classic 'lynx' you're basically already there at that point. If you want to get layout like 'w3m' that's obviously more work but you can still get there using layout positions from the DOM.

The best way to think about this assuming you're more familiar with web programming is "How would I implement this in JavaScript using the W3 DOM?" -- then port the logic to native code.

ideally without bringing in dependencies on gtk or qt.

As for dependencies, it's a cost/benefit weigh-off and the cost of maintaining a port is very high.

There's very little runtime overhead to having something like GTK+ in the background, or even Mac WebView with a hidden view. There are also some out-of-tree ports focusing on headless operation -- I'm sure someone will be able to advise if you go that route.

Alp.



Alp.

Cheers,
Shea

Cheers,
Shea Levy
_______________________________________________
webkit-dev mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-dev
--
http://www.nuanti.com
the browser experts


--
http://www.nuanti.com
the browser experts

_______________________________________________
webkit-dev mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to