Firefox Browser Add-ons
  • Extensions
  • Themes
    • for Firefox
    • Dictionaries & Language Packs
    • Other Browser Sites
    • Add-ons for Android
Log in
Add-on icon

MOC Source version history - 3 versions

MOC Source by moc-source

There are no ratings yet
0 Stars out of 5
5
0
4
0
3
0
2
0
1
0
MOC Source version history - 3 versions
  • Be careful with old versions! These versions are displayed for testing and reference purposes.You should always use the latest version of an add-on.

  • Latest version

    Version 0.4.18

    Released Jul 19, 2026 - 119.1 KB
    Works with firefox 142.0 and later
    • Fixed (actual root cause): every Wanted List / Cart detail page has been permanently unable to load PAB prices since v0.4.17. That release's Project-detail listener-stacking fix accidentally also touched attachDetailListeners (a completely unrelated function used by all list/cart detail pages), converting a working content.addEventListener("click", ...) call into addClick(...) — but addClick is only defined as a local helper inside renderProjectDetail, not here. Calling it threw ReferenceError: addClick is not defined on every single page visit, which aborted renderDetailView() — and since that call happens before renderListDetail's PAB-price fetch loop, the fetch loop never ran at all, leaving every row frozen at its initial "…" placeholder. (Confirmed via git log -p showing the accidental find-replace, and by reproducing the exact call chain in Node to verify the fetch never fires once the throw happens.) Gave attachDetailListeners its own cleanup-tracked addListener/addClick helpers (same pattern as renderProjectDetail's, since this function has the identical repeated-call-on-persistent-container structure) and converted its other two direct content.addEventListener calls to use them too, so they stop stacking across re-renders as well.
    • Hardened (real but secondary): renderListDetail and the Project pool section each fetch every part's PAB price in parallel via Promise.all, which fails the whole batch if even one chrome.runtime.sendMessage rejects (e.g. a transient MV3 message-channel hiccup). Switched to Promise.allSettled so one bad fetch can't block the rest of a page's prices from rendering. This wasn't the cause of the "stuck at …" reports above (the addClick crash was), but it's a legitimate robustness gap worth closing regardless.
    • Changed: standardized price rounding across the extension. User-facing prices now always show exactly 2 decimals — the BrickLink-page "below PAB"/"BL avg" caption dropped from 3 decimals, and the Cart Jigsaw SPA's Store Price columns (which previously showed BrickLink's raw scraped text verbatim, e.g. $0.0812US) now parse and format to $X.XX. Cart cost calculations still sum true, unrounded per-item prices as before (no change there — they already did this correctly) but the final "what you'll pay" totals (LEGO cart total, BrickLink cart total incl. shipping, Project Grand Total) now round up to the next cent instead of to the nearest cent, via a new ceilToCents() helper, so a total is never shown lower than what the real sum comes to. Per-channel subtotals and savings/delta figures (PAB Savings, "switch to save ~$X", Store Savings Scanner) are unaffected — still plain nearest-cent display, since they're informational breakdowns/estimates, not a standalone amount owed. Also widened content.js's scrapeRowPrice() regex, which previously truncated BrickLink's own displayed price to exactly 2 decimals before using it

    Source code released under GNU Affero General Public License v3.0 only

    Download Firefox and get the extension
    Download file
  • Older versions

    Version 0.4.17

    Released Jul 17, 2026 - 116.46 KB
    Works with firefox 142.0 and later
    Fixed: On the Project page, clicking things (dialogs, saving Scratch Space) could sometimes require multiple clicks or show duplicate popups after using the page for a while in one session. Now works correctly every time.
    Fixed: Projects now correctly account for parts you already have. If you want 4 of a part and already have 2, the Project pool now only counts 2 as still needed — previously it ignored "Have" and could try to source more than you actually needed.

    Source code released under GNU Affero General Public License v3.0 only

    Download file
  • Version 0.4.13

    Released Jul 14, 2026 - 115.62 KB
    Works with firefox 142.0 and later
    v0.4.13

    Fixed unescaped part/list names in a handful of DOM-rendering locations (BrickLink wanted-list picker, cart-update modal, and the Projects pool/scratch-space row renderers) — names now consistently pass through HTML-escaping before being inserted into the page, matching the pattern already used everywhere else in the codebase.
    Added browser_specific_settings.gecko.data_collection_permissions per Mozilla's new disclosure requirement (declared: websiteContent — part/color identifiers derived from BrickLink page content, sent to our own API for price lookups; nothing else is collected or transmitted).
    First submission built from a shared Chrome/Firefox source tree — functionality matches the existing Chrome Web Store listing (ID hoglacgnlglnbpeffbdndnhaokiojigh), no Firefox-specific behavior differences.

    Source code released under GNU Affero General Public License v3.0 only

    Download file
Go to Mozilla’s homepage

Add-ons

  • About
  • Firefox Add-ons Blog
  • Extension Workshop
  • Developer Hub
  • Developer Policies
  • Community Blog
  • Forum
  • Report a bug
  • Review Guide

Download

  • Download Firefox
  • Windows
  • macOS
  • iOS
  • Android
  • Linux
  • All

Latest Builds

  • Nightly
  • Beta

Firefox for Business

  • Enterprise

Community

  • Connect
  • Contribute
  • Developer

Follow

  • Instagram
  • YouTube
  • TikTok
  • Bluesky
  • Podcast
  • Privacy
  • Cookies
  • Legal

Except where otherwise noted, content on this site is licensed under the Creative Commons Attribution Share-Alike License v3.0 or any later version.