Skip to content

v1.2.2 - webOS 3.x Compatibility & Installer Fix

Choose a tag to compare

@danielthejoker18 danielthejoker18 released this 22 Oct 18:09
· 7 commits to main since this release

Patch release - compatibility and installer reliability fixes. Closes #4.

Fixed

  • webOS 3.x / Chromium 38 (2014) compatibility. A report on an LG 55UJ634V (webOS 3.9) showed a completely blank app shelf. The root cause: async/await syntax (ES2017) is a parse error on that engine, which aborts the entire inline script - not just the weather/trending functions that used it. A full sweep of the app turned up a wider set of unsupported ES6+ features:
    • async function/await → rewritten as .then() promise chains
    • const/let → var throughout
    • String.prototype.padStart, Array.prototype.find/findIndex, Array.from, Object.assign → small ES5-safe helpers
    • Both network functions now guard against a missing fetch global (the Fetch API postdates Chromium 38 entirely), so a legacy engine degrades to the offline/curated fallback instead of throwing and skipping the rest of boot
    • Added flexbox fallbacks ahead of all 5 display: grid layouts, so engines without CSS Grid still get a usable layout
  • scripts/install.py PTY crash on some TVs. A TV whose sshd rejects forced PTY allocation (ssh -tt → "PTY allocation request failed on channel 0") would silently get empty command output and the script reported failure even when the install may have gone through. The script now retries once without forcing a PTY when it detects that rejection.

The icon-artwork rendering bug also reported in #4 was already fixed by #2/#3 (bundled brand logos + real iconUrl discovery) - no change needed there.

Not addressed: persistent Home-screen/autostart is a feature request tracked on the roadmap (requires root), not a bug. These compatibility fixes are based on documented Chromium 38 engine limitations, not a device-confirmed trace - I don't have webOS 3.x hardware to verify against directly.

Install

Download org.webos.freemytv_1.2.2_all.ipk below, or run python scripts/install.py from a clone of this repo.