<feed xmlns='http://www.w3.org/2005/Atom'>
<title>webao/webAO/__tests__, branch master</title>
<subtitle>WebAO fork</subtitle>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/'/>
<entry>
<title>Remove safeTags, decodeChat, and prepChat</title>
<updated>2026-06-06T03:09:27+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-06-03T11:23:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=fd75f3116aa30eb4958cc747f944f202ec69a484'/>
<id>fd75f3116aa30eb4958cc747f944f202ec69a484</id>
<content type='text'>
Following the removal of innerHTML manipulation, we no longer need these
sanitization functions.

I've reviewed every safeTags call site to make sure the outputs don't
end up anywhere unsafe, and malicious input can't malipulate DOM or
execute code. These values either end up either as plain text
(textContent, innerText, createTextNode, title, option) or as a URL
path to request assets to the server (encoded using encodeURI).

That is, if safeTags was even effective, considering all that function
did was replace '&lt;' and '&gt;' symbols with Unicode lookalikes. Even the
comment was suggesting the use of fundamentally safer functions instead
of these hacks.

Replace remaining uses of prepChat with unescapeChat as we still need
to do the token substitution (like "&lt;and&gt;" to "&amp;"). decodeChat was
escaping Unicode sequences like \uXXXX, but I don't see the reason for
this, AO2 Client doesn't have this feature, and considering WebSocket
text frames are strictly UTF-8, we don't need these encodings.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Following the removal of innerHTML manipulation, we no longer need these
sanitization functions.

I've reviewed every safeTags call site to make sure the outputs don't
end up anywhere unsafe, and malicious input can't malipulate DOM or
execute code. These values either end up either as plain text
(textContent, innerText, createTextNode, title, option) or as a URL
path to request assets to the server (encoded using encodeURI).

That is, if safeTags was even effective, considering all that function
did was replace '&lt;' and '&gt;' symbols with Unicode lookalikes. Even the
comment was suggesting the use of fundamentally safer functions instead
of these hacks.

Replace remaining uses of prepChat with unescapeChat as we still need
to do the token substitution (like "&lt;and&gt;" to "&amp;"). decodeChat was
escaping Unicode sequences like \uXXXX, but I don't see the reason for
this, AO2 Client doesn't have this feature, and considering WebSocket
text frames are strictly UTF-8, we don't need these encodings.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update dependencies and ECMAScript target</title>
<updated>2026-06-06T03:09:27+00:00</updated>
<author>
<name>Osmium Sorcerer</name>
<email>os@sof.beauty</email>
</author>
<published>2026-04-06T14:48:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=31275da317fd58739974ac49c995bca2f7dbcc08'/>
<id>31275da317fd58739974ac49c995bca2f7dbcc08</id>
<content type='text'>
Fix relevant breaking changes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix relevant breaking changes.
</pre>
</div>
</content>
</entry>
<entry>
<title>deal with this properly</title>
<updated>2026-01-01T15:56:17+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2026-01-01T15:56:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=01ecb948edb015613e05bc2b6da4021137957745'/>
<id>01ecb948edb015613e05bc2b6da4021137957745</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>reorder</title>
<updated>2026-01-01T15:46:44+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2026-01-01T15:46:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=70f8c13634f1ae13cdf52994c7b6c44a20398c02'/>
<id>70f8c13634f1ae13cdf52994c7b6c44a20398c02</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>try this</title>
<updated>2026-01-01T15:44:28+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2026-01-01T15:44:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=b247ed9347921e395e34e5cf19085f529de4c307'/>
<id>b247ed9347921e395e34e5cf19085f529de4c307</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>weird ci fail</title>
<updated>2026-01-01T15:41:27+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2026-01-01T15:41:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=56db8cc6d68748ecdd163c27d4cf7e5dfd8e295f'/>
<id>56db8cc6d68748ecdd163c27d4cf7e5dfd8e295f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>url</title>
<updated>2026-01-01T15:37:47+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2026-01-01T15:37:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=3e17eb9e5695fdf64f125914ee60c26ac7d96d12'/>
<id>3e17eb9e5695fdf64f125914ee60c26ac7d96d12</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>this is stupid to test in console</title>
<updated>2026-01-01T15:34:27+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2026-01-01T15:34:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=6cac3d30e4c59c3b97935de747e4984189c1acf5'/>
<id>6cac3d30e4c59c3b97935de747e4984189c1acf5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>low memory test</title>
<updated>2026-01-01T15:34:10+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2026-01-01T15:34:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=3ffcb40d20fb09cbe44f4da2d231889f2e06dc14'/>
<id>3ffcb40d20fb09cbe44f4da2d231889f2e06dc14</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>pass aoml test</title>
<updated>2026-01-01T15:34:03+00:00</updated>
<author>
<name>stonedDiscord</name>
<email>Tukz@gmx.de</email>
</author>
<published>2026-01-01T15:34:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sof.beauty/webao/commit/?id=e7a7afa4527a2289ebbbad659048f4db368e9c4c'/>
<id>e7a7afa4527a2289ebbbad659048f4db368e9c4c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
