Releases: Blobfolio/js-mate-poe
v1.4.2
Changed
- Simplify window boundary queries (performance)
- Use constructors for all DOM elements, rather than populating the inner bits with
innerHTML
(this removes a validation warning for the extension, but also just feels better) - Use the same Blob/URL for both sprites, instead of generating two different ones from the same source (memory/performance)
- Split library/extension build tasks
- Generate extension from a portable Docker to help Mozilla review team
Fixed
- Correct the browser extension's update feed URL
v1.4.1
JS Mate Poe has been completely re-written in Rust, and is now distributed as a wasm binary (albeit one wrapped up inside of Javascript, since browsers can't yet directly load wasm). This greatly improves the overall maintainability and coverage of the code, and results in significantly faster and more efficient processing at runtime.
Woo!
A lot has changed, obviously. If you notice any issues, please let me know!
Breaking
On the user-facing side, there are a few important changes to note. Refer to the linked docs for more information.
Installation-wise:
- The
js-mate-poe.min.js
script is nowasync
-friendly. - Poe now starts automatically as soon as the script has loaded.
- You can disable autostart and/or sound by adding
data-no-start
anddata-no-sound
attributes to the<script>
tag, respectively.
API-wise
Poe.start()
andPoe.stop()
have been merged into the single getter/setterPoe.active
.Poe.speed
andPoe.play
have been removed.
Other
- The sound and image assets are now linked using Blobs rather than Data URIs. If your site has a Content Security Policy in place, be sure it allows
blob:
sources for bothimg-src
andmedia-src
, otherwise they might get blocked.
New
- Added a "Blink" animation.
- Added a "Big Fish" entrance animation.
- Added a "Dangle Recovery" transitional sequence (when almost falling off the ceiling).
- Added a "Rest" animation.
- Added a "Run Down Wall" animation.
- Added a "Yo-Yo" entrance animation.
Changed
- Remastered the "Abduction" sequence.
- Fine-tuned various animation timings.
- Removed clipping from the yawn sound.
- The sound is now lossless Flac instead of lossy MP3.
- The "Sneeze" companion animation is no longer orientation-dependent.
- Various DOM I/O reductions (fewer reads, writes, and repaints).
- The "mate" elements are no longer custom elements, but still use
ShadowDOM
for isolation. - There are now always and only two "mate" elements (prior versions used a variable number as needed).
Firefox Browser Extension
Best of all: JS Mate Poe is now available as a Firefox browser extension! With the click of a button, you can now start/stop Poe on any web page for constant companionship!
Just download the js-mate-poe_firefox_1.4.1.xpi
file from the list below. Firefox should prompt you to install it then and there, but if not, simply go to the "Manage Your Extensions" settings page (about:addons
), click the gear/settings icon, and select "Install Add-on From File".
Note: Automatic updates probably won't work from this release, but should be in place for the next one. (If you install 1.4.1
, you'll probably need to follow the same process to update to 1.4.2
, but from then on it should be hands-off.)
v1.3.7
v1.3.6
Changes:
- Reduce CSS size;
- Reduce audio size;
- Use
display: contents
for<poe-ce>
elements;
v1.3.5
Changes:
- Bump ECMA 2022;
- Further reduce sprite (and resulting JS) size;
v1.3.4
Changes:
- Improve CSS compression;
v1.3.3
Changes:
- Fixed internal version string;
v1.3.2
Changes:
- Fix a few lint warnings.
- Rebuild with 2021 browser featureset yet.
v1.3.1
This release fixes an HD sprite issue that has cropped up in modern browsers.
v1.3.0
Custom elements are now used on the DOM side for improved render controls and style sandboxing.