
Show HN: An experimental Web Browser - pierre
https://github.com/hexapode/zenbrowser
======
twerkmonsta
I think supporting such a small feature-set of the web is basically rolling
back the clock. This is putting people back in the Web 1.0 days, although with
a browser built using more modern tools. Even with performance in mind, you
might achieve better performance with a closer-to-the-metal language than JS.

I commend the effort but I'm not sure about the ultimate goal. If "trying To
show the important content only" is the main goal then you are discarding a
lot of the richness of the modern web. The web is not strictly about the text
content of pages. That was what BBS's were all about. Even then people used
ASCII and ANSI art to make pages feel more illustrative and rich.

I'd be more interested in someone tackling the complexity and un-elegance of
the modern website tech. CSS is pretty un-elegant, but there definitely exists
a strong desire to dictate style, how a page is laid out, and to present
models outside the text + image article format.

I'd love someone to re-engineer the status quo of the code content of
webpages, effectively making modern complex and un-elegant browser
implementations unnecessary. I don't think the world needs a more minimalistic
browser, we've already been down that road in the past, but rather a more
minimalistic coding system for webpages in general.

~~~
pierre
> I think supporting such a small feature-set of the web is basically rolling
> back the clock. This is putting people back in the Web 1.0 days, although
> with a browser built using more modern tools. Even with performance in mind,
> you might achieve better performance with a closer-to-the-metal language
> than JS.

The goal is not to support the whole web experience, just the news reading /
information seeking part. Recently, more and more site are getting into the
way of the content by adding distraction that can break your flow when you try
to inform yourself. Did your eyes never get attracted by a Taboola 'Read more
story here' or a buzzfeed '10 most productive trick for programers' link when
you was reading some news?

As for JS, I choose it so I can prototype fast, I optimise implementation time
vs performance (it take me a couple of hours vs ??? if I have try to do that
in C for examples).

> I don't think the world needs a more minimalistic browser, we've already
> been down that road in the past, but rather a more minimalistic coding
> system for webpages in general.

I agree with you, CSS/HTML/DOM is a pain, but it seems to be the best we have
today. I prefer wrote some interface using them than Qt, X or SDL.

~~~
sfeng
> Did your eyes never get attracted by a Taboola 'Read more story here' or a
> buzzfeed '10 most productive trick for programers' link when you was reading
> some news?

It sounds like you just need an ad blocking extension perhaps?

------
braythwayt

      No wireless.
      Less space than a Nomad.
      Lame.
    

And, I’ll bet, a lot of fun to make, a real learning experience, and the code
is instructive for others who want to look at it, play with it, or try their
hand at extending it.

Unlike an iPod, this is not a product designed by a Fortune 500 company that
must become #1 in its market or be considered an abject failure.

Bravo.

------
guard-of-terra
Why not just use Dillo? It's around since forever and it renders web pages
vitrually before you strike enter. Description seems to match Dillo exactly.

~~~
pierre
My goal are not the same. Dillo optimise for the smallest footprint. I try to
do a proof of concept of a web browser that will render web page in a way that
will make it almost impossible to display ad, social network or merchants
sites.

Also I used Nw.js not in search of speed or performance, but in search of fast
implementation (it take me ±3hours to code the browser)

------
jonrx
I smiled when I saw that a javascript browser has no javascript support. :)

I like it. I tend to usually remove the style when I read longer documents.
This is prettier while doing the same thing.

What are your next goals with it?

~~~
S4M
Actually, since javascript has an _eval_ function, shouldn't it be
straightforward to support it in the browser?

~~~
0x0
Straight-up eval() would be the most blatant case of a remote code execution
vulnerability the web has ever seen. I don't think it's easy or even possible
to build a foolproof sandbox out of eval(). And even then you open yourself to
a denial of service since you cannot interrupt the eval().

~~~
PuercoPop
You can build a foolproof sandbox, but at the 'OS-level', not at the
'language' level. By disabling syscalls and setting resource limits.

You can read more here:
[http://www.eelis.net/geordi/#faq](http://www.eelis.net/geordi/#faq)

~~~
geofft
I think the link to Geordi is not quite relevant here (although it is super
cool): the claim was that it's hard to build a foolproof sandbox out of
eval(). If you're using Geordi, since it's a separate process in a chroot, you
can't use eval(). If you're giving up on eval(), you _can_ write a foolproof
sandboxed JS evaluator in JS alone.

Besides, the hard part with all sandboxes is not making the sandboxing itself
solid; that's straightforward. The hard part is giving it a sufficiently rich
interface to the outside world to do useful things, while not giving it so
rich an interface that it can escape _through that hole_. All the semi-recent
vulnerabilities in qemu, for instance, have been in virtual devices, not in
actually emulating a processor.

Geordi's story is relatively easy, since all it does is compile code and
execute it in an intentionally-minimal interface. JS on a web page has
thousands of things it can do to the web page or to the outside world, if you
want to implement it according to spec.

~~~
PuercoPop
My mistake, You are right. I had read the question as foolproof sandbox that
included eval.

One can see the banning the syscalls approach as cutting the Gordian knot.

------
Sanddancer
I'm curious if you've ever used Firefox's reader view. It's a bit spotty as to
what sites it can simplify to the core of what's being described, but it seems
like a better way to get just the facts, while keeping a more featureful
browser for pages that need it.

------
z3t4
You should put a screen-shot at the info page!

~~~
pierre
Thanks! That's now fixed.

------
hodwik
I love this sort of functionality.

I feel like I just saw this recently in another browser, either Firefox,
Chromium, or Midori. I can't recall which. You press a button and it switches
to reader mode, press again and it goes back to the normal layout.

Can anyone remind me what browser that is?

~~~
callahad
The latest release of Firefox added support for Reader View :)

~~~
joshuapants
Safari has it also, along with Microsoft Edge (formerly Project Spartan)

~~~
abrowne
Windows 8(.1?) IE even (Metro only).

------
jitl
Briefly reminded me of Vivaldi, a browser built in NodeWebKit (or Atom?) with
a React-based UI.

[https://vivaldi.com/](https://vivaldi.com/)

~~~
hodwik
Vivaldi is miserably slow

~~~
tacone
Yet it's got a great name.

That said, I'm defiant of any browser that's not on Github.

------
barakstout
I think we can't have a web today without JavaScript. We keep trying to go
back to what things were, instead of moving forward and excepting the web for
what it is.

------
nfoz
Finally. I've been wanting this for ages.

------
drivers99
"No AD"

What does AD stand for here?

~~~
pierre
It stands for Ads. I fixed that, Thanks!

------
task_queue
A web browser built on a single thread, a web browser I'd like to use.

------
romanovcode
Ironic that browser that is built on javascript has no javascript support.

------
FalconOut
Although it is a good idea to focus on "important: content, this browser seems
to be something from the 90s. We should be creating new, beautiful and simple
technology and not going back to an uglier tech age that we are glad we are
out of.

