Shadow:新的浏览器引擎几乎完全由 JavaScript 编写
Shadow: New browser engine made almost entirely in JavaScript

原始链接: https://goose.icu/introducing-shadow/

介绍新的 Web 浏览器引擎“Shadow”:100 字摘要 “Shadow”是一个全新的网络浏览器引擎,主要使用纯 JavaScript 开发。 对于任何对编程感兴趣或只是喜欢摆弄技术的人来说,创建自己的定制浏览体验最近变得越来越流行。 “Shadow”允许用户在其范围内体验网页,而无需在其系统上安装任何其他软件或更改用户代理。 “Shadow”采用干净的红色主题,提供了另一种选择,同时严格遵守现有的浏览器标准,确保大多数网站正确显示。 除了娱乐价值之外,开发该软件还可以作为一种教育工具,因为构建功能齐全的浏览器需要掌握高级编程概念,例如解析 HTTP 请求、解释 CSS 代码和编译 JavaScript 脚本。 尽管最初被设想为个人项目,但“Shadow”的创作者欢迎反馈,并很乐意通过 Twitter 等社交媒体平台上的直接消息分享有关其开发过程的见解。 尽管与其他成熟的浏览器相比,某些功能可能有所缺乏,特别是在启动期间或加载时间方面,但这些小缺点不会阻止虔诚的编码爱好者寻求新的挑战和机遇。

Shadow 为 CSS“light-dark”提供了实验性支持,尽管它在实现方面落后于其他主要浏览器。 然而,未来几年,该功能可能会在各种浏览器中继续开发和改进。 虽然特定浏览器可能有某些特定功能,但最终目标是提供 Web 开发的一致性和标准化,而不是由专有或利基技术造成的碎片化。 最终,重点仍然是为用户提供更快、性能更强、兼容性更强的 Web 体验,无论使用哪种特定的浏览器引擎。
相关文章

原文

So I started making a browser engine (for fun) a few days ago, it felt kind of inevitable after starting a JS engine, so here we are. Here’s a short rundown. Source code too!

Screenshot of Shadow’s welcome page running inside Shadow (as of writing)

Screenshot of Shadow’s welcome page in shadow

What?

A browser(/web) engine essentially takes in a URL(/etc) and gives you it rendered into a window for you to view and interact with. Shadow does this too, almost entirely from scratch, made in JS. It runs in your browser! Node backend soon™ too? The host browser(/etc) is only used for networking (fetch) and renderer backend ().

Components of Shadow

Component flowchart (red = external/not me)

Why make it?

It’s just for fun, no really. Learning too. It will probably never work with 90% of websites, and that’s okay. Also it’s funny to see people react in many forms of “wtf?"

Screenshot of serenityos.org running inside Shadow (left) vs Firefox (right)

Pretty spot on! No list markers yet. Colors are different as UA/browser defined.

Name

As with all my recent projects, the name is because I thought it was kind of funny at the time. Shadow is named after the defunct element. I mostly stole this idea from Blink (was it intentional to name it after a dead HTML element at the time?). Also it sounds spooky and mysterious so that’s a bonus I guess?

It supports JavaScript??!

Yes, kind of. This is quite complicated (as you can probably imagine), so I’ll do it in a separate future dedicated post if you’re interested (DM/reply me on twitter).

Why publish it?

Why not? If someone can learn something or just find what I make fun/interesting, that makes me happy :)

But making a new browser engine is impossible!

No. It. Isn’t! (Also I don’t really care how possible/feasible something is.)

联系我们 contact @ memedata.com