Advertisement
norsebear

4chan builds the ideal browser

Apr 20th, 2020
373
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.26 KB | None | 0 0
  1. Here we ask the question "What would the ideal browser be like?"
  2.  
  3. > Decided So Far
  4. privacy by default
  5. open sourced and reviewable code
  6. modular design
  7. uses less than 9000 GB of RAM
  8. support for https, html5, css3, js, webm, and other commonly expected features
  9. at least a few essential add-ons/extensions
  10. nice look and feel
  11. fast
  12.  
  13. > Previous Threads Consensus
  14. NOT chromium based
  15. users should have to turn off privacy, max privacy should be the default setting
  16. js should easily toggle on and off by the user
  17. must pass acid1, acid2, and acid3 tests
  18. have skins/themes or at least be customizable
  19. as small a codebase as possible while still maintaining functionality
  20. likely made in C or C++
  21.  
  22. > !ESSENTIAL READING!
  23. http://taligarsiel.com/Projects/howbrowserswork1.htm#Introduction
  24. https://html.spec.whatwg.org/#parsing
  25.  
  26. > Forking Options (if it's going to even be forked)
  27. firefox
  28. falkon
  29. surf
  30. icecat
  31. serenityOS's browser + js engine
  32. gecko engine
  33.  
  34. > Building From Scratch Option
  35. modular
  36. likely in c++
  37. build a single module first
  38.  
  39. > Fast & Dirty Approach
  40. Fork firefox based browser, add a worthy user.js, include privacy extensions, and call it done
  41.  
  42. > Current Items To Discuss:
  43. [put new decisions to decide here]
  44.  
  45. >INB4 muh netrunner
  46.  
  47. ---------------------------------------------------------------------------------------
  48.  
  49. > Recap
  50.  
  51. "see, what you want here is a modular design and a protocol to communicate the different parts of it. it would be stupid to pretend that a group like /g/ (or any group of hobbyist) can develop something so big with a cathedral approach.
  52. the bazaar approach and modular design would let /g/ do things like develop basic prototypes for all the modules and then start replacing the module prototypes and third party libraries with more efficient and superior /g/ modules and libraries.
  53. that way you can develop a working prototype in a short time-span, and then use it as a base for improvements.
  54. imagine it lika a pipeline where you have the main program which is basically a message hub for all the components.
  55. gui components say the user has entered an url -> network component gets the content -> the parser makes a tree of the html structure -> the render component renders the tree, sending the javascript parts to the javascript module"
  56.  
  57. "We need a data interchange format first. It doesn't have to be custom, it could be something like a msgpack. Then you can communicate either between processes if two components should be separate, or between modules in the same process, or through any other kind of pipe."
  58.  
  59. "Just fork Firefox ESR, strip the bloat and ship it with a good and well documented user.js and everyone who gives a shit about privacy will at least give it a try. We just need a more up to date IceCat without the LibreJS shit"
  60.  
  61. "If we want extensions, it is probably wise to have compatibility with extensions from another browser so that trusted addons like ublock origin can be used without porting them."
  62.  
  63. "mans literally eating a tub of butter. what a guy"
  64.  
  65. "[on modular design] if you want a more technical approach, you can read chapters 8, 10, 11 and 12 of Randal's "Computer Systems. A Programmer’s Perspective" (they made me read this in college, don't know if there are better alternatives) as those chapters cover the most common ways of passing data from one process/thread to another.
  66. for the serialization part, you can read msgpack and similar software documentation."
  67.  
  68. "IceCat makes zero unsolicited connections. Fuck, ship it with uBlock Origin in medium mode and HTTPZ and it's a deal."
  69.  
  70. "Icecat is just a set of patches that remove certain functionality from firefox, and add their own branding logos etc, you can see this if you build it from source from the AUR. My guess is they don't make "normal" release versions because they feel ESR is "stable enough". If someone were to maintain the patchset and just change whatever was needed occasionally for every firefox release, and stick ublock in there, you'd have a much better, up to date icecat. beyond me why nobody has done this."
  71.  
  72. "I guess you could just make an "Ungoogled" Firefox where you strip out all the telemetry and shit"
  73.  
  74. "for a realistic idea of what building a browser from scratch entails, look at the one in Serenity OS"
  75.  
  76. "Alright, I'll make the logo"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement