使用 WASM shaper 在 gedit 中播放 Bad Apple!

250 天前
 hsfzxjy

事先说明:这个想法不是我原创的,最早的出处在 BadAppleFont。我将字体构建和 HarfBuzz 编译的流程做了整理和简化,放到了 Github 上: https://github.com/hsfzxjy/Bad-Apple-Font

https://www.youtube.com/embed/qFd8vsr8nag

2377 次点击
所在节点    分享创造
12 条回复
hsfzxjy
250 天前
额,V 站该如何嵌入 Youtube 视频?

https://www.youtube.com/embed/qFd8vsr8nag
hsfzxjy
250 天前
懂了

<amp-youtube data-videoid="qFd8vsr8nag" layout="responsive" width="480" height="270"></amp-youtube>
favourstreet
250 天前
绷不住了,用 WASM ,写赛博书法。

谁想到给字体里塞 wasm 这个主意的?
这次是在字体里塞了个视频播放器,下次是不是要在字体里塞一个 3d 引擎了?

怎么保证安全性?众所周知停机问题不可判定,那是不是给字体里塞一个死循环就能卡爆用户的 cpu 了?
favourstreet
250 天前
看了视频。感觉这个 shaper 威力有点大,没什么限制的话,迟早有人往字体里直接塞一整个操作系统,在文本框里靠 layout engine 跑操作系统,谁不怕啊~
hsfzxjy
250 天前
@favourstreet
> Harfbuzz is therefore restricted to turning a buffer of codepoints for a segmented run of the same script, language, font, and variation settings, into glyphs and positioning them. This is also all that you can do with the WASM shaper; you can influence the process of mapping a string of characters into an array of glyphs, you can determine how those glyphs are positioned and their advance widths, but you cannot manipulate outlines, variations, line breaks, or affect text layout between texts of different font, variation, language, script or OpenType feature selection.

https://github.com/harfbuzz/harfbuzz/blob/main/docs/wasm-shaper.md

看起来这种 shaper 功能十分有限,但是你说的运行过久也确实是个问题,目前没看到官方有说如何处理
Mitt
249 天前
@favourstreet #3 其实如果 WASM 的话套个容器,安全性应该不是啥问题,死循环卡爆 CPU 可以靠配额限制 CPU 时钟来解决,包括内存等其他资源都可以限制
favourstreet
249 天前
@Mitt 其实 wasm 本身就是个容器,它已经考虑到了接受任意输入情况下的安全性。但我朴素地认为能整活就等于不安全,太过自由就让人不放心。

另外,文本 buffer 好像也没什么限制,那岂不是可以实现大部分键盘交互了?既然已经有 Bad Apple 了,期待有人实现在 gedit 中玩东方正作。
favourstreet
249 天前
@Mitt 刚刚想到,wasm 虚拟机本身可以保证接受任意输入情况下的安全性,但 harfbuzz 里跑的 wasm shaper 本身也是接受用户输入的,在这一层上,就难以保证 shaper 不被构造的恶意输入炸了,这一炸谁知道是炸了 wasm 虚拟机、炸了 harfbuzz 、炸了文本框,还是炸了整个进程甚至整个操作系统呢,众所周知,文本框是系统级 bug 的高发地带。
7gugu
249 天前
啊这...,牛的
zthxxx
249 天前
可以用来播彩六吗
hsfzxjy
249 天前
@zthxxx 可以哦( doge )
proxychains
249 天前
@zthxxx 一种基于 wasm 的 R6 直播方案

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/970178

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX