shadow
shadow copied to clipboard
Shadow is a new novel web engine made (almost) entirely in JS from scratch
checkRule@https://shadow.goose.icu/engine/layout.js:307:72 css@https://shadow.goose.icu/engine/layout.js:364:16 css@https://shadow.goose.icu/engine/layout.js:278:29 css@https://shadow.goose.icu/engine/layout.js:278:29 display@https://shadow.goose.icu/engine/layout.js:421:20 @https://shadow.goose.icu/engine/layout.js:91:32 isBlock@https://shadow.goose.icu/engine/layout.js:512:24 @https://shadow.goose.icu/engine/layout.js:91:32 @https://shadow.goose.icu/engine/layout.js:510:42 some@[native code] isBlock@https://shadow.goose.icu/engine/layout.js:510:27 @https://shadow.goose.icu/engine/layout.js:91:32 @https://shadow.goose.icu/engine/layout.js:510:42 some@[native code] isBlock@https://shadow.goose.icu/engine/layout.js:510:27 @https://shadow.goose.icu/engine/layout.js:91:32 @https://shadow.goose.icu/engine/layout.js:510:42 some@[native code] isBlock@https://shadow.goose.icu/engine/layout.js:510:27 @https://shadow.goose.icu/engine/layout.js:91:32 @https://shadow.goose.icu/engine/layout.js:510:42 some@[native code] isBlock@https://shadow.goose.icu/engine/layout.js:510:27 @https://shadow.goose.icu/engine/layout.js:91:32 @https://shadow.goose.icu/engine/layout.js:510:42 some@[native...
Options: - Node GTK (`node-gtk`): tried, not great. awful perf - Node Skia (`skia-canvas`): tried, eh. bad perf - Electron: not tried. probably best for least annoying but eh.
pros: - modularity/choice is cool! like js engine - we do not have to make our own html parser cons: - we would not have our own html parser. not...
We need a browser chrome (especially if we end up finding a good native frontend). It would be cool to make it in HTML and render it ourselves ala Firefox...
RangeError: Maximum call stack size exceeded at LayoutNode.availableWidth (https://shadow.goose.icu/engine/layout.js:722:17) at LayoutNode. (https://shadow.goose.icu/engine/layout.js:91:27) at LayoutNode.textChunks (https://shadow.goose.icu/engine/layout.js:748:26) at LayoutNode. (https://shadow.goose.icu/engine/layout.js:91:27) at LayoutNode.width (https://shadow.goose.icu/engine/layout.js:903:27) at LayoutNode. (https://shadow.goose.icu/engine/layout.js:91:27) at LayoutNode.contentWidth (https://shadow.goose.icu/engine/layout.js:824:18) at LayoutNode. (https://shadow.goose.icu/engine/layout.js:91:27)...
My hope for tests is just™ "simply" reftest real (simple) sites instead of creating our own tests. Eg, we have `test/reftest/example.com.png` and a runner which *somehow* opens a headless browser[^1]...
informal talking on how(/why?) Shadow is unique. more unique things isn't necessarily good but it is interesting. - made in JS - made to run in a browser engine already...
RangeError: Maximum call stack size exceeded at String.replace () at LayoutNode.resolveValue (http://localhost:1337/engine/layout.js:369:14) at LayoutNode.lengthAbs (http://localhost:1337/engine/layout.js:502:20) at LayoutNode.contentHeight (http://localhost:1337/engine/layout.js:792:19) at LayoutNode. (http://localhost:1337/engine/layout.js:89:27) at LayoutNode.height (http://localhost:1337/engine/layout.js:895:17) at LayoutNode. (http://localhost:1337/engine/layout.js:89:27) at LayoutNode.endY (http://localhost:1337/engine/layout.js:946:35)...
RangeError: Maximum call stack size exceeded at LayoutNode.resolveValue (https://shadow.goose.icu/engine/layout.js:362:15) at LayoutNode.lengthAbs (https://shadow.goose.icu/engine/layout.js:502:20) at LayoutNode.marginTop (https://shadow.goose.icu/engine/layout.js:1133:17) at LayoutNode. (https://shadow.goose.icu/engine/layout.js:89:27) at LayoutNode.y (https://shadow.goose.icu/engine/layout.js:1025:18) at LayoutNode. (https://shadow.goose.icu/engine/layout.js:89:27) at LayoutNode.endY (https://shadow.goose.icu/engine/layout.js:943:18) at LayoutNode. (https://shadow.goose.icu/engine/layout.js:89:27)...