<feed xmlns='http://www.w3.org/2005/Atom'>
<title>decky-loader/plugin_loader/injector.py, branch beebles/icon-error-boundary</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/'/>
<entry>
<title>Work on react frontend loader</title>
<updated>2022-05-13T17:14:47+00:00</updated>
<author>
<name>Jonas Dellinger</name>
<email>jonas@dellinger.dev</email>
</author>
<published>2022-05-13T17:14:47+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=74438a31458af8bddd08d90eacc6d63677bab844'/>
<id>74438a31458af8bddd08d90eacc6d63677bab844</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>method call listener retry bug fix, method call response serializaiton failure fix,</title>
<updated>2022-04-26T20:37:01+00:00</updated>
<author>
<name>marios</name>
<email>marios8543@gmail.com</email>
</author>
<published>2022-04-26T20:37:01+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=fe1f6473e9324be5a3ae7bf5c641d1a652c7b5a6'/>
<id>fe1f6473e9324be5a3ae7bf5c641d1a652c7b5a6</id>
<content type='text'>
- Added retry logic to the QuickAccess tab fetching in the method call listener.
- Added exception handling, in case a plugin method returns something that can't be serialized as JSON.
- Changed a few log calls from info to debug to prevent spam
- Added a filter for asyncio base_event log records, since they get spamy and don't provide any useful info most of the time. This can be turned off with the LOG_BASE_EVENTS envar.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Added retry logic to the QuickAccess tab fetching in the method call listener.
- Added exception handling, in case a plugin method returns something that can't be serialized as JSON.
- Changed a few log calls from info to debug to prevent spam
- Added a filter for asyncio base_event log records, since they get spamy and don't provide any useful info most of the time. This can be turned off with the LOG_BASE_EVENTS envar.
</pre>
</div>
</content>
</entry>
<entry>
<title>added default value to injector tab run_async</title>
<updated>2022-04-13T21:01:35+00:00</updated>
<author>
<name>tza</name>
<email>marios8543@gmail.com</email>
</author>
<published>2022-04-13T21:01:35+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=de435e22fb0f01df81b2781f38e5890dbbb728ba'/>
<id>de435e22fb0f01df81b2781f38e5890dbbb728ba</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use f-strings instead of .format</title>
<updated>2022-04-12T20:27:46+00:00</updated>
<author>
<name>WerWolv</name>
<email>werwolv98@gmail.com</email>
</author>
<published>2022-04-12T20:27:46+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=0359fd966a5a33cd646202d0349ad5bdf01a6d1a'/>
<id>0359fd966a5a33cd646202d0349ad5bdf01a6d1a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Added library function to execute code in a different tab</title>
<updated>2022-04-12T19:15:36+00:00</updated>
<author>
<name>WerWolv</name>
<email>werwolv98@gmail.com</email>
</author>
<published>2022-04-12T19:15:31+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=012274b1a09f6959d41e9aa8bd69f5c30cc8f871'/>
<id>012274b1a09f6959d41e9aa8bd69f5c30cc8f871</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>initial browser/installer commit, injector get_tab and stateful utils</title>
<updated>2022-04-07T19:38:26+00:00</updated>
<author>
<name>tza</name>
<email>marios8543@gmail.com</email>
</author>
<published>2022-04-07T19:38:26+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=c65427e693daf3ee96cfd707e74efcb8d9d985f2'/>
<id>c65427e693daf3ee96cfd707e74efcb8d9d985f2</id>
<content type='text'>
- Integrated plugin downloader/installer. It accepts POST requests at /browser/install_plugin, containing an artifact (basically an author/repo string like you'd find on github), and a release version, then fetches the zip file from the repo releases and unzips it inside the plugin dir, after asking for user confirmation (pop-up message in the plugin menu).
- Injector get_tab method. Basically get_tabs with the usual search for a specific tab. Decided to implement this because it was needed again and again, and we kept pasting the same list search one-liner.
- Utilities now have access to the main PluginManager class
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Integrated plugin downloader/installer. It accepts POST requests at /browser/install_plugin, containing an artifact (basically an author/repo string like you'd find on github), and a release version, then fetches the zip file from the repo releases and unzips it inside the plugin dir, after asking for user confirmation (pop-up message in the plugin menu).
- Injector get_tab method. Basically get_tabs with the usual search for a specific tab. Decided to implement this because it was needed again and again, and we kept pasting the same list search one-liner.
- Utilities now have access to the main PluginManager class
</pre>
</div>
</content>
</entry>
<entry>
<title>Reinject loader if steam got restarted</title>
<updated>2022-04-07T07:58:26+00:00</updated>
<author>
<name>WerWolv</name>
<email>werwolv98@gmail.com</email>
</author>
<published>2022-04-07T07:58:26+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=3dec82672a76eec0c4630afa7c2125780be57d0a'/>
<id>3dec82672a76eec0c4630afa7c2125780be57d0a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>enabled logging, fixed loader refresh bug, removed template</title>
<updated>2022-04-06T09:53:19+00:00</updated>
<author>
<name>tza</name>
<email>marios8543@gmail.com</email>
</author>
<published>2022-04-06T09:53:19+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=a6943dd7a25d0d787308897f6f55d44e89c216cf'/>
<id>a6943dd7a25d0d787308897f6f55d44e89c216cf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Python rewrite (#6)</title>
<updated>2022-04-03T20:50:26+00:00</updated>
<author>
<name>marios</name>
<email>marios8543@gmail.com</email>
</author>
<published>2022-04-03T20:50:26+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=5e9c12bac838730d4e216b3779227a9a94447e40'/>
<id>5e9c12bac838730d4e216b3779227a9a94447e40</id>
<content type='text'>
* Initial commit. Untested

* various fixes

Core functionality confirmed working:
 - Iframe injection into steam client
 - Plugin fetching from the iframe
 - Plugin opening

* Added function to fetch resources from steam

* Improved injector module, added server-js communication

- Injector module now has methods for better lower-level manipulation of the tab debug websocket.
- Our "front-end" can now communicate with the manager (2-way), completely bypassing the chromium sandbox. This works via a dirty debug console trick, whoever wants to know how it works can take a look at the code.
- Added utility methods file, along with an implementation of the aiohttp client that our "front-end" can access, via the system described above.
- Added js implementations of the communication system described above, which can be imported by plugins.

* Added steam_resource endpoint

* Added basic installer script

* retry logic bug fix

* fixed library injection, event propagation, websocket handling

- library is injected directly into the plugins as well as the plugin list
- resolveMethodCall is implemented in the plugin_list.js file, which in turns calls window.sendMessage on the iframe to propagate the event
- websocket method calls are processed in their own tasks now, so as not to block on long-running calls.

Co-authored-by: tza &lt;tza@hidden&gt;
Co-authored-by: WerWolv &lt;werwolv98@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Initial commit. Untested

* various fixes

Core functionality confirmed working:
 - Iframe injection into steam client
 - Plugin fetching from the iframe
 - Plugin opening

* Added function to fetch resources from steam

* Improved injector module, added server-js communication

- Injector module now has methods for better lower-level manipulation of the tab debug websocket.
- Our "front-end" can now communicate with the manager (2-way), completely bypassing the chromium sandbox. This works via a dirty debug console trick, whoever wants to know how it works can take a look at the code.
- Added utility methods file, along with an implementation of the aiohttp client that our "front-end" can access, via the system described above.
- Added js implementations of the communication system described above, which can be imported by plugins.

* Added steam_resource endpoint

* Added basic installer script

* retry logic bug fix

* fixed library injection, event propagation, websocket handling

- library is injected directly into the plugins as well as the plugin list
- resolveMethodCall is implemented in the plugin_list.js file, which in turns calls window.sendMessage on the iframe to propagate the event
- websocket method calls are processed in their own tasks now, so as not to block on long-running calls.

Co-authored-by: tza &lt;tza@hidden&gt;
Co-authored-by: WerWolv &lt;werwolv98@gmail.com&gt;</pre>
</div>
</content>
</entry>
</feed>
