henk's thoughts =============== 1. Power to the user! Protect privacy! Things the browser should only do with explicit consent from the user, if applicable the user should be able to choose which protocol/host/port triplets to white/blacklist: - load/run executable code, like js, flash, java applets, ... (think NoScript) - requests to other domains, ports or using a different protocol than what the user requested (think RequestPolicy) - accept cookies - storing/saving/caching things, e.g. open tabs ("session"), cookies, page contents, browsing/download history, form data, ... - send referrer - disclose any (presence, type, version, settings, capabilities, etc.) information about OS, browser, installed fonts, plugins, addons, etc. 2. Be efficient! I tend to leave a lot of tabs open and nobody can deny that some websites simply suck, so the browser should, unless told otherwise by the user: - load tabs only when needed - run code in tabs only when needed, i.e. when the tab is currently being used/viewed (background tabs doing some JS magic even when they are not being used can create a lot of unnecessary load on the machine) - finish requests to the domain the user requested (e.g. www.example.org) before doing any requests to other subdomains (e.g. images.example.org) and finish those before doing requests to thirdparty domains (e.g. example.com) 3. Be stable! - one site should not make the complete browser crash, only that site's tab Upstream Bugs ============= - Web inspector is blank unless .hide()/.show() is called. Asked on SO: http://stackoverflow.com/q/23499159/2085149 TODO: Report to PyQt/Qt - Report some other crashes /u/angelic_sedition's thoughts ============================== Well support for greasemonkey scripts and bookmarklets/js (which was mentioned in the arch forum post) would be a big addition. What I've usually missed when using other vim-like browsers is things that allow for different settings and key bindings for different contexts. With that implemented I think I could switch to a lightweight browser (and believe me, I'd like to) for the most part and only use firefox when I needed downthemall or something. For example, I have different bindings based on tab position that are reloaded with a pentadactyl autocmd so that will take me to tab 1-10 if I'm in that range or 2-20 if I'm in that range. I have an autocmd that will run on completed downloads that passes the file path to a script that will open ranger in a floating window with that file cut (this is basically like using ranger to save files instead of the crappy gui popup). I also have a few bindings based on tabgroups. Tabgroups are a firefox feature, but I find them very useful for sorting things by topic so that only the tabs I'm interested at the moment are visible. Pentadactyl has a feature it calls groups. You can create a group that will activate for sites/urls that match a pattern with some regex support. This allows me, for example, to set up different (more convenient) bindings for zooming only on images. I'll never need use the equivalent of vim n (next text search match), so I can bind that to zoom. This allows setting up custom quickmarks/gotos using the same keys for different websites. For example, on reddit I have different g(some key) bindings to go to different subreddits. This can also be used to pass certain keys directly to the site (e.g. for use with RES). For sites that don't have modifiable bindings, I can use this with pentadactyl's feedkeys or xdotool to create my own custom bindings. I even have a binding that will call out to bash script with different arguments depending on the site to download an image or an image gallery depending on the site (in some cases passing the url to some cli program). I've also noticed the lack of completion. For example, on "o" pentadactyl will show sites (e.g. from history) that can be completed. I think I've been spoiled by pentadactyl having completion for just about everything.