Also a bunch of somewhat less heinous cringe shit.

  • Sailor Sega Saturn@awful.systems
    link
    fedilink
    English
    arrow-up
    8
    ·
    edit-2
    11 months ago

    My estimate (source: sounds good in my head) is you’d need a dozen or so browser experts working full time for years to build a browser capable of rendering most modern “web-app” style websites.

    The core specs have a lot of integration tests (one of the shittier ones written by yours truly!), and most of the specs are pretty readable for experts (I hate the CSS Device Adaptation Module Level 1 spec though).

    There’s just a lot of it and a lot of subtle interactions which is where the time would go.

    If you were foolish enough to set many millions of dollars on fire* to do this you’d end up with a browser lacking in key non-core-spec areas too. Off the top of my head: print layout, security, JIT performance, HTTP2 / HTTP3, general browser performance, UI polish, PDF rendering, mobile version, plugins, and DRM “support” (good luck getting the DRM gatekeepers to let you bundle that stuff with your browser). Add some more years for all of that.

    * and/or smart enough to make it an open source project and convince people to do it for free, see the other commenter’s link to Ladybird below

    • Sailor Sega Saturn@awful.systems
      link
      fedilink
      English
      arrow-up
      7
      ·
      11 months ago

      This appears to be a good excuse to hate on CSS Device Adaptation Module Level 1, let me quote from it so you understand the great sorrow I had when I needed to understand it:

      This section is not normative. This section describes a mapping from the content attribute of the viewport element, first implemented by Apple in the iPhone Safari browser, to the descriptors of the @viewport rule described in this specification.

      Below is an algorithm for parsing the content attribute of the tag produced from testing Safari on the iPhone. The testing was done on an iPod touch running iPhone OS 4. The UA string of the browser: “Mozilla/5.0 (iPod; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7”. The pseudo code notation used is based on the notation used in [Algorithms].

      If a prefix of property-value can be converted to a number using strtod, the value will be that number. The remainder of the string is ignored.