História doplnku OPFS Explorer - 5 verzií
OPFS Explorer Autor: Hasan Bayat
História doplnku OPFS Explorer - 5 verzií
So starými verziami buďte opatrní! Tieto verzie sú zobrazené za účelom testovania a referencie.Vždy by ste mali používať najnovšiu verziu doplnku.
Najnovšia verzia
Verzia 0.1.3
Vydaná 6. júl 2026 - 428,5 kBFunguje s: firefox verzia 109.0 a novšia- Stuck "ghost" files/folders that can't be deleted, renamed, or opened: OPFS can occasionally leave behind a corrupted directory entry — one that still shows up when listing a folder's contents, but throws
NotFoundError("A requested file or directory could not be found") when the extension tries to resolve it directly. This could happen after an operation was interrupted (e.g. the inspected page was paused at a debugger breakpoint mid-write) or due to underlying browser storage corruption, and previously left the entry permanently stuck — deleting it failed, renaming it failed, and expanding it in the tree failed, with no way to recover short of wiping all site data. Delete now self-heals these entries: whenremoveEntry()reports the entry as missing, the extension recreates it (repairing the directory's internal index) and immediately retries the removal, so the stuck entry can finally be deleted.rename()/move()benefit from the same repair path, and if an entry truly can't be resolved as either a file or a directory, a clear "this item appears corrupted" message is shown instead of a raw browser error. - Duplicate directory entries could break the file tree UI: If OPFS ever reports two entries with the same name in one folder (a symptom of the corruption above), the tree previously used the entry's path as the sole React key, causing duplicate keys and broken/duplicated rendering. Tree items are now keyed uniquely so duplicate-named entries render correctly side by side instead of corrupting the view.
- Rapid double-submission of Create/Rename/Delete dialogs could race and corrupt OPFS: The confirmation/prompt dialog didn't disable itself while an action was in flight, so pressing Enter (or clicking Confirm) more than once — for example while the inspected page was busy or paused at a breakpoint and slow to respond — could fire two concurrent OPFS operations for the same entry. This is a likely root cause of the corrupted-entry issue above. The dialog now disables its input/buttons and ignores repeat submissions until the in-flight operation completes.
- Overly short eval timeout on Chrome/Edge: The polling helper used to communicate with the inspected page timed out after only ~3 seconds on Chromium-based browsers (vs. 30 seconds on Safari), which was easy to hit when the page was slow or paused in the debugger. The extension would report a false "Operation timed out" error while the underlying OPFS operation kept running in the page, encouraging users to retry and potentially double up on the same operation. The timeout is now a consistent 30 seconds across all browsers.
- Corrupted folders showed a raw, confusing error when expanded: Expanding a folder that can't be resolved now shows a clear "This folder appears to be corrupted… You can still delete it" message instead of a raw
NotFoundError.
- Multi-strategy file type detection: Files are now classif
Zdrojový kód je k dispozícii v rámci licencie Licencia MIT
- Stuck "ghost" files/folders that can't be deleted, renamed, or opened: OPFS can occasionally leave behind a corrupted directory entry — one that still shows up when listing a folder's contents, but throws
Staršie verzie
Verzia 0.1.2
Vydaná 27. feb 2026 - 427,54 kBFunguje s: firefox verzia 109.0 a novšiaZdrojový kód je k dispozícii v rámci licencie Licencia MIT
Verzia 0.1.1
Vydaná 23. feb 2026 - 302 kBFunguje s: firefox verzia 109.0 a novšia- Binary file corruption on download:
URL.revokeObjectURL()was called synchronously immediately aftera.click(), before the browser had a chance to read the object URL. Downloads of binary files (Arrow, SQLite, Parquet, WASM, etc.) would produce 0-byte or truncated files. Revocation is now deferred by 30 seconds. - Binary write corruption for large files: The entire base64 payload was inlined as a string literal inside the
inspectedWindow.eval()call, which can silently fail or corrupt data beyond undocumented size limits. Binary uploads are now staged into the inspected page'ssessionStoragein 64 KB chunks, then reassembled and decoded inside OPFS atomically. - Binary files incorrectly classified as text: OPFS does not preserve MIME types — every file stored in OPFS has
file.type === "". The previous__opfs_isTextFilecheck treated an empty type as text, causing binary files (Arrow, SQLite, WASM, Protobuf,.bin, etc.) to be read withfile.text(), producing garbled UTF-8 in the editor. Classification now relies exclusively on file extension when the MIME type is absent. btoa/Uint8Array.reducecall-stack overflow: Building the base64 binary string by reducing one character at a time over largeUint8Arraybuffers would exhaust the JavaScript call stack for images and binary previews beyond a few hundred KB. Replaced with an 8 KB chunkedString.fromCharCode.applyloop.escapeStringmissing null bytes and Unicode line separators: Null bytes (\x00) and Unicode line/paragraph separators (\u2028,\u2029) were not escaped, causing injected JavaScript to be syntactically invalid when file paths or text content contained these characters.saveFilecould corrupt binary/image files: TheCmd/Ctrl+Skeyboard shortcut calledsaveFileeven when viewing a binary file whose content was displayed as a[BINARY]ordata:…;base64,…sentinel string. The sentinel text would be written back to OPFS, corrupting the file. A guard now blocks saves when the displayed content is a read-only sentinel.stageBinaryDatasessionStorage leak on error: If staging a chunk failed (e.g. sessionStorage quota exceeded), already-stored chunks were never removed, leaking__opfs_bin_*keys in the inspected page's sessionStorage indefinitely. Staged chunks are now cleaned up on any staging error.- Undefined
base64crashing upload:FileReaderproduces a data URL;content.split(',')[1]returnsundefinedon a malformed result. This was passed intostageBinaryDatawhich then crashed with a misleading error. An explicit guard now throws a descriptive error. - Conflict resolution applied wrong target directory to pending uploads: After resolving a file conflict, remaining queued uploads were all sent to the first file's target directory, ignoring each file's own intended path. Each pending upload is now dispatched with its own original
targetPath
Zdrojový kód je k dispozícii v rámci licencie Licencia MIT
- Binary file corruption on download:
Verzia 0.1.0
Vydaná 11. feb 2026 - 300,91 kBFunguje s: firefox verzia 109.0 a novšiav0.1.0 - Multi-Selection, Keyboard Shortcuts & Accessibility
MULTI-SELECTION:
• Ctrl+Click to toggle individual items
• Shift+Click for range selection
• Ctrl+A to select all visible items
• Bulk delete and download for multiple selections
• Visual checkbox indicators in multi-select mode
KEYBOARD SHORTCUTS:
• Ctrl+N / Cmd+N - New file
• Ctrl+Shift+N / Cmd+Shift+N - New folder
• F2 - Rename selected item
• Delete / Backspace - Delete selected items
• Arrow Up/Down - Navigate tree, Shift+Arrow to extend selection
• Home/End - Jump to first/last tree item
• Space - Toggle selection
• Context menus show platform-aware shortcut hints
ACCESSIBILITY (WCAG 2.1 AA):
• ARIA tree pattern with roving tabindex navigation
• Screen reader announcements via ARIA live regions
• Focus trap in modal dialogs with return-focus-to-trigger
• Skip navigation link for keyboard users
• prefers-reduced-motion support (disables animations)
• Windows High Contrast mode (forced-colors) support
• focus-visible styling on all interactive elements
• Descriptive aria-labels on all buttons and regions
UI ENHANCEMENTS:
• Context menus with icons, shortcut hints, and section separators
• Type-ahead character search in context menus
• Image preview keyboard shortcuts (+/- zoom, R rotate, 0 reset)
• Keyboard-accessible resize handle (Shift+Arrow for larger steps)
• Proper breadcrumb markup with aria-current
• Storage bar with progressbar role and ARIA values
This is a major UI/UX and accessibility update. The extension now meets WCAG 2.1 AA standards with comprehensive keyboard navigation and screen reader support.Zdrojový kód je k dispozícii v rámci licencie Licencia MIT
Verzia 0.0.4
Vydaná 26. nov 2025 - 296,74 kBFunguje s: firefox verzia 109.0 a novšiaZdrojový kód je k dispozícii v rámci licencie Licencia MIT