
NetRunner: a web browser catering to powerusers - mabynogy
https://netrunner.cc/
======
drdaeman
For me a _perfect_ web browser is something hackable, made of tiny replaceable
blocks (buzzword: microservices) as small as realistically possible, not a
single binary. Everything I saw are basically monoliths. Even Surf and uzbl
are, except for they move tab management and UIs away.

Would, e.g., persistence (cookies) be handled by a completely separate
program, that just talks text-based protocol on the stdin/stdout, all sort of
stuff (containers/multiple identities, self-destructing cookies, various
tracking protection mechanisms, etc etc) would be a matter of wrapping it.

Would all networking be done by a separate process, adblocking (even in-
websocket), experimental protocols (like IPFS), ensuring all the traffic would
go through Tor, or just "user agent switcher" would be possible without core
being even aware such things are possible. Caching could be an another program
that facades this.

And non-core stuff, like history, bookmarks, saving passwords or syncing feels
like something that should be separate programs that only interact with the
core to obtain or inject the necessary information.

Of course, there needs to be a manager process that spawns necessary services
(including extensions sitting in the middle, so it's also an extension
manager, not just tab manager) and routes communications between them, so user
doesn't have to do any programming unless they actually want to.

That's not a design, just a general idea^W^W some musing that mostly came out
of frustration when I've tried to hack upon Firefox code, trying to rip out
their accounts+sync implementation and replace it with something sane and
simple.

I'm dreaming of this kind of thing for a few years, but haven't got anywhere -
just greased some paper with silly diagrams and toyed with Servo a little bit,
but nothing practical. Just writing this because I never saw similar
suggestions and maybe it would resonate with someone.

~~~
kevingadd
Chrome is already built this way - tons of independent services running in
separate processes or threads with limited permissions. The problem is that
all the systems are deeply interdependent, so debugging or modifying the
system involves reading and understanding the whole codebase.

~~~
skrowl
Too bad you can't remove or disable the spying microservices

~~~
MildlySerious
I imagine Chromium would be to your liking?

------
oscargrouch
They are doing it from scratch.. well, good luck with that.

Unless of course you just want to render private custom tailored stuff and
dont care about the rest of the Web.

If they want to be adventurous, why at least not helping a project like Servo?

Now, this would make a lot of sense, if they will use this in a custom
infrastructure. If you want to explore Tor or Bitcon in a particular way..
where you know sites will be made to be rendered in this particular browser.

Otherwise, its a multi-multi year project just to catch up where the big guys
were 8 years ago. Its great as a learning path, but if you are expecting this
to be the next Firefox..

~~~
odilitime
Our original lead developer has left to implement a browser using servo.

My goals are a little different. I want this to be a browsers by devs for
devs. And I'd rather learn how to make one by exploration instead of copying.

No expectations of this being a good browser, just hoping for the most dev
friendly and we'll see how far we can take it.

~~~
oscargrouch
> And I'd rather learn how to make one by exploration instead of copying.

> No expectations of this being a good browser, just hoping for the most dev
> friendly and we'll see how far we can take it.

Nice. So your primary goals and expectations are well balanced.

So giving you guys are doing this, you should maybe consider doing some
exploratory goals, taking some different paths and decisions from the current
browsers.

That may lead to some good innovations along the way.

------
tenkabuto
On Twitter they told me that by "In the face of recent changes in Firefox",
they mean "[Mozilla's] plan to remove plugins (and move to web extensions
which are quite limited)".
[https://twitter.com/Team_NetRunner/status/896549606200287232](https://twitter.com/Team_NetRunner/status/896549606200287232)

------
notamy
I think the title is a _bit_ misleading. Nowhere on the linked page does it
actually say "anonymous" other than that several people on 4chan's /g/ board
who don't use names/tripcodes/whatever-the-term-is - "anons" \- asked about
it.

That being said, a full browser from scratch is a pretty cool idea. I don't
think that it'll get to the point where I'd be fully able to replace my
"normal" browser with it, but really cool nonetheless.

~~~
odilitime
Title is definitely misleading. Nor do I think the project will stay under the
netrunner name as there's a distro with the same name.

The goal now isn't a browser but a framework that is easily modified, well
documented and can be embedded in other projects.

We realize how much work a real browser is but if you look at the source of
WebKit, blink or servo, it's a huge mess. We're trying to be low dependency
and multiple interface, perfect for scripting.

Our web page targets are simple just 4chan/g and stackoverflow. But we also
have plans where this framework can also be used for document viewing and
editing.

I'm thinking of the project as more of an electron replacement. But we'll see
where the future takes us.

Tabbed browsing by the end of this month is on track.

~~~
sctb
We've updated the title from “NetRunner: a web browser for anonymous” to one
derived from a representative phrase from the article, but we can change it
again if someone suggests a better one.

------
iuguy
I recently started using Qutebrowser[1] on OpenBSD, and it's really, really
good. There's a learning curve but it's well documented, and help's easily
available. If you use vi, you'll feel right at home.

[1] - [https://qutebrowser.org/](https://qutebrowser.org/)

~~~
odilitime
Yes, we've been in contact with the dev of that project. Some of 4chan's
complaints with it are as follows:

\- a ton of dependencies \- randomly hangs \- can't handle suspending \-
cursor blinks when not in insert mode \- doesn't work \- Python not C \- QT \-
Lacked security features

I'm not sure if all of these are true but this list was their complaints and
you'd have to ask them for more detail. A lot of them do sound like they're
fixable or just personal preference.

4chan has been discussing options since mid-June and probably has around 50
threads revolving around Netrunner project. And the current devs are not the
same people that started the initiative, so the project has evolved quite a
bit.

Netsurf, is another project that comes up quite a bit: [http://www.netsurf-
browser.org/](http://www.netsurf-browser.org/) As well as various forks of the
major browsers such as palemoon, icecat, unChromium, ungoogled-chromium,
waterfox, opera 12.x, vivaldi, and otter.

~~~
The-Compiler
That'd be me, most of those aren't really true, or not qutebrowser's fault ;-)

> a ton of dependencies

Only Qt and a handful of small Python libraries. Granted, Qt is big.

> randomly hangs > can't handle suspending

Detailed bugreports or it didn't happen - but that's probably due to people
using it with an old QtWebKit version. The latest release warns about that,
and v1.0 (coming later this year) will drop support for it entirely.

> cursor blinks when not in insert mode

True - there's an issue open about it, but nobody found a way to make it not
blink without other side-effects so far.

> doesn't work > Python not C > QT

¯\\_(ツ)_/¯

> Lacked security features

That's mostly referring to missing NoScript/uMatrix-like features, which will
come with per-domain settings later this year.

------
odilitime
Current lead dev here, Oh wow an HN thread. AMA

------
eugeniub
> In the face of recent changes in Firefox

I must have missed something. What recent changes?

~~~
jpalomaki
Probably referring to the move to web extensions. Borrowing from TylerDMozilla
[1]:

"The current way add-ons are developed gives add-ons complete control over
almost anything in the browser. This makes for very powerful add-ons, but add-
ons can also do really bad things (accidentally or on purpose) and we can't
make major changes to the browser without breaking all sorts of add-ons (which
makes people sad).

Web Extensions is a sort of building block set. It means add-ons can't touch
anything in the browser, but can only play with the blocks we provide. We can
make all sorts of blocks of different shapes, but it will never be as powerful
as the old system of add-ons (where developers could play with anything in the
house). However, this lets us do major changes to Firefox without having to
worry about breaking add-ons (since we know what the blocks are), and keeps
add-ons from doing bad things (accidentally or on purpose)"

[1]
[https://www.reddit.com/r/firefox/comments/6cw7ig/why_is_fire...](https://www.reddit.com/r/firefox/comments/6cw7ig/why_is_firefox_moving_to_web_extensions_and_why/)

So safer for the end user, better for the Mozilla developers but not so
powerful for the 3rd party developers.

~~~
odilitime
4chan is really upset at how this will affect the current wealth of privacy
addons

~~~
creatonez
I would just like to point out that I have used numerous privacy extensions
for firefox ever since I started using it. I've happily found WebExtensions
replacements for all of them except for HTTPS Everywhere, which AFAIK is
developing a WE replacement.

For me, the WebExtension transition isn't all doom and gloom. But I can't
assume everyone uses the same addons as me. The transition to WebExtensions is
nearing and a lot of extensions people use just don't have a viable
replacement.

~~~
drdaeman
Had you used Self-Destructing Cookies and if yes - have you, by chance, found
any replacement?

I only know about Cookie AutoDelete, and it's great that it exists but, sadly,
it's not yet mature enough - mostly because WE APIs are lacking. For example,
there is no localStorage support, and there are bugs like
[https://github.com/mrdokenny/Cookie-
AutoDelete/issues/83](https://github.com/mrdokenny/Cookie-
AutoDelete/issues/83)

------
j_s
Add it to the list on Wikipedia!

[https://en.wikipedia.org/wiki/Comparison_of_web_browsers](https://en.wikipedia.org/wiki/Comparison_of_web_browsers)

------
urlwolf
Otter browser is pretty fantastic. Use the weekly for the best results.

------
irishasaurus
Is there an open Repo? How can I contribute?

~~~
odilitime
[https://gitgud.io/odilitime/netrunner](https://gitgud.io/odilitime/netrunner)

irc.rizon.net #/g/netrunner

~~~
irishasaurus
Thanks for this,

Going to take a bit to get my head around it.

------
acdjuiamadfn
Does it support vim style navigation?

~~~
odilitime
It will be able to, we're planning a configureable key mappings.

------
retox
The developer [odilitime] is posting in this thread, but all their posts have
been killed by down voting. Turn on 'show dead posts' and you'll see that they
are all reasonable.

HN becoming is an echo chamber where posting while green will get you deleted
for no real reason, as I've said in the past.

[https://postimg.org/image/q2qu8uc1v/](https://postimg.org/image/q2qu8uc1v/)

[https://postimg.org/image/4w0ln83yb/](https://postimg.org/image/4w0ln83yb/)

~~~
sctb
> _...but all their posts have been killed by down voting._

That's not what happened here. Those comments were killed by anti-abuse
software that's particularly sensitive to new accounts. When false positives
like that happen, we rely on the community to vouch for them (you have to
click on the timestamp of the comment to go to the comment page and then click
'vouch') or email us at hn@ycombinator.com so we can be sure to see them.

We've unkilled these and marked the account so this shouldn't happen again.

~~~
odilitime
Ah, thank you for your quick resolution.

------
Helloworldboy
Why are all the comments by the dev being killed? This is ridiculous.

~~~
igravious
Why label it as ridiculous before you find out the reason?

~~~
pwdisswordfish
Because it's ridiculous regardless of the reason; even if nobody is doing this
on purpose.

