
Firefox 153: text modules, WebAssembly και αλλαγές για web developers
Ο Firefox 153 κυκλοφόρησε στις 21 Ιουλίου 2026 και φέρνει ένα ασυνήθιστα πυκνό πακέτο αλλαγών για web developers: εισαγωγή αρχείων ως text modules, νέα JavaScript και IndexedDB APIs, desktop υποστήριξη του Picture-in-Picture API, πλουσιότερα WebRTC statistics και ενεργοποίηση του WebAssembly JavaScript Promise Integration. Δεν πρόκειται απλώς για λίστα νέων features. Η έκδοση αλλάζει επίσης λεπτομέρειες στο HTML parsing, στα extensions και στα compatibility checks, άρα αξίζει στοχευμένο regression testing πριν θεωρήσετε ότι η συμπεριφορά είναι ίδια σε όλους τους browsers.
Η σωστή ανάγνωση των release notes είναι πρακτική: πρώτα ξεχωρίζουμε όσα είναι διαθέσιμα στη stable έκδοση από τα πειραματικά features που παραμένουν απενεργοποιημένα και έπειτα ελέγχουμε πώς επηρεάζονται build pipeline, fallbacks και automated tests. Η Mozilla καταγράφει ρητά τις αλλαγές για developers, αλλά η παρουσία ενός API στον Firefox δεν σημαίνει αυτόματα ότι είναι ασφαλές να χρησιμοποιηθεί χωρίς cross-browser έλεγχο.
Text modules: αρχεία κειμένου απευθείας από import
Η πιο άμεσα αξιοποιήσιμη προσθήκη είναι η δυνατότητα εισαγωγής ενός module ως απλό string με import attribute. Η σύνταξη είναι η εξής:
import template from "./template.html" with { type: "text" };
Σύμφωνα με το MDN, το αρχείο ζητείται ως text και το περιεχόμενό του επιστρέφεται ως UTF-8 string. Για text modules, το response media type αγνοείται και το περιεχόμενο δεν εκτελείται ως JavaScript, ακόμη κι αν μοιάζει με κώδικα. Αυτό μπορεί να απλοποιήσει περιπτώσεις όπως templates, shader sources, SQL snippets για client-side εργαλεία ή άλλα στατικά textual assets που μέχρι τώρα περνούσαν από custom loaders ή fetch calls.
Το feature δεν καταργεί την ανάγκη για σωστό deployment. Ένα static import αναλύεται πριν εκτελεστεί το module, επομένως ένα παλαιότερο runtime ή bundler μπορεί να αποτύχει πριν φτάσει σε οποιοδήποτε fallback. Ελέγξτε browser targets, transpiler και production bundler, και μη βασιστείτε μόνο σε μια χειροκίνητη δοκιμή του latest Firefox. Αν η εφαρμογή πρέπει να καλύπτει παλαιότερους browsers, διατηρήστε εναλλακτικό build ή χρησιμοποιήστε υπάρχον asset-loading path μέχρι να επιβεβαιωθεί η συμβατότητα.
JavaScript, locale data και καλύτερος έλεγχος stack traces
Ο Firefox 153 υποστηρίζει το Error.stackTraceLimit, ώστε μια εφαρμογή ή ένα debugging εργαλείο να ορίζει το μέγιστο πλήθος stack frames που καταγράφονται. Μικρότερο όριο μπορεί να μειώσει το σχετικό κόστος, αλλά δεν είναι γενικός διακόπτης επιδόσεων: ένα υπερβολικά χαμηλό όριο μπορεί να αφαιρέσει το context που χρειάζεται ένα error-reporting σύστημα. Η αλλαγή πρέπει να δοκιμαστεί μαζί με source maps, minified builds και τον πραγματικό μηχανισμό συλλογής σφαλμάτων.
Προστίθενται επίσης οι μέθοδοι πληροφοριών του Intl.Locale, όπως getCalendars(), getHourCycles(), getTextInfo(), getTimeZones() και getWeekInfo(). Για εφαρμογές με διεθνοποίηση, αυτές οι μέθοδοι μπορούν να αντικαταστήσουν hard-coded παραδοχές για εβδομάδες, κατεύθυνση γραφής ή διαθέσιμα ημερολόγια. Η αξία τους βρίσκεται στην προσαρμογή του UI στα πραγματικά locale δεδομένα, όχι στην προσθήκη ακόμη ενός browser-specific branch.
IndexedDB και media εφαρμογές
Στο IndexedDB εμφανίζονται τα IDBObjectStore.getAllRecords() και IDBIndex.getAllRecords(). Οι μέθοδοι επιστρέφουν όλες τις εγγραφές ή ένα περιορισμένο υποσύνολο από object store ή index. Μπορούν να κάνουν απλούστερο τον κώδικα που μέχρι τώρα συνδύαζε ξεχωριστές κλήσεις ή cursor iteration για να συγκεντρώσει keys και values. Για μεγάλες local databases, όμως, η ευκολία του “get all” δεν ακυρώνει το κόστος μνήμης. Μετρήστε το πραγματικό dataset και χρησιμοποιήστε range, direction και count όπου το προϊόν το επιτρέπει.
Το Picture-in-Picture API υποστηρίζεται πλέον σε desktop Firefox. Έτσι, ένα site μπορεί να μεταφέρει ένα στοιχείο video σε floating, always-on-top παράθυρο, ώστε η αναπαραγωγή να συνεχίζεται ενώ ο χρήστης εργάζεται σε άλλη καρτέλα ή εφαρμογή. Οι media εφαρμογές πρέπει να ελέγξουν permissions, user activation, lifecycle events και το UI όταν το αίτημα απορρίπτεται. Η ύπαρξη του API δεν είναι λόγος να κρύψετε τα κανονικά video controls ή να θεωρήσετε ότι κάθε περιβάλλον επιτρέπει PiP.
WebRTC και WebAssembly αποκτούν πρακτικότερο observability
Για WebRTC, το RTCDtlsTransport.getRemoteCertificates() δίνει πρόσβαση στα certificates του remote peer που χρησιμοποιούνται για την ασφάλεια της DTLS επικοινωνίας. Παράλληλα, τα decodingInfo() και encodingInfo() του MediaCapabilities δέχονται πλέον configuration τύπου webrtc, ενώ το RTCStatsReport μπορεί να περιλαμβάνει περισσότερα transport statistics. Αυτό βοηθά εφαρμογές τηλεδιάσκεψης και real-time media να κάνουν καλύτερη διάγνωση για codec support, ICE/DTLS state και επιλεγμένο candidate pair.
Στο WebAssembly ενεργοποιείται το JavaScript Promise Integration. Με το JS-PI, WebAssembly κώδικας μπορεί να ανασταλεί περιμένοντας ένα JavaScript Promise και να συνεχίσει όταν αυτό ολοκληρωθεί. Η αλλαγή μειώνει την τριβή σε async σύνορα, αλλά δεν μετατρέπει αυτόματα μια υπάρχουσα Wasm εφαρμογή. Χρειάζονται συμβατό toolchain, σαφής χειρισμός rejection και benchmarks που συγκρίνουν το νέο integration με το υπάρχον bridge.
Δύο compatibility παγίδες που δεν πρέπει να χαθούν
Οι κανόνες parsing για το select ενημερώθηκαν ώστε να επιτρέπουν την εισαγωγή περισσότερων nested elements στο DOM, ανοίγοντας τον δρόμο για μελλοντική υποστήριξη customizable selects. Αυτό μπορεί να αλλάξει snapshots ή DOM assumptions σε component libraries, ακόμη κι αν δεν χρησιμοποιείτε ακόμη το νέο μοντέλο. Δοκιμάστε native selects, form serialization, accessibility tree και hydration σε server-rendered εφαρμογές.
Επιπλέον, ο Firefox αναγνωρίζει πλέον τον selector ::-webkit-scrollbar, οπότε το @supports selector(::-webkit-scrollbar) επιστρέφει true. Η Mozilla διευκρινίζει ότι αυτό δεν σημαίνει πλήρη υλοποίηση του scrollbar styling. Ένα feature query που αντιμετωπίζει το true ως απόδειξη πλήρους συμπεριφοράς μπορεί να επιλέξει λάθος CSS branch. Προτιμήστε standards-based scrollbar properties και πραγματικό visual regression testing.
Τι αλλάζει για extensions
Τα Firefox extensions χρειάζονται πλέον ξεχωριστή, ρητή άδεια χρήστη για πρόσβαση σε file:// URLs, και η πρόσβαση σε τοπικά αρχεία είναι απενεργοποιημένη από προεπιλογή ακόμη και για υπάρχοντα extensions. Αν το add-on σας επεξεργάζεται local HTML, logs ή exported reports, ενημερώστε onboarding, permission checks και error states. Η έκδοση προσθέτει επίσης userScripts.execute(), publicSuffix API και documentId σε περισσότερα WebExtension APIs, αλλά αυτά χρειάζονται ξεχωριστό testing από τη νέα άδεια αρχείων.
Ένα μικρό test plan για σήμερα
- Τρέξτε τα βασικά user journeys σε Firefox 153. Δώστε προτεραιότητα σε forms με select, media playback, IndexedDB flows, WebRTC και extension permissions.
- Ελέγξτε parsing και bundling. Αν θέλετε text modules, δοκιμάστε development server, production build, code splitting και παλαιότερο browser target.
- Μετρήστε, μην υποθέτετε. Συγκρίνετε error-reporting overhead, IndexedDB memory usage και Wasm async boundaries πριν και μετά την αλλαγή.
- Διατηρήστε fallbacks. Για PiP, import attributes και νέα APIs, το UI πρέπει να παραμένει λειτουργικό όταν ένα capability απουσιάζει ή απορρίπτεται.
- Καταγράψτε τα αποτελέσματα. Βάλτε τα compatibility findings σε reproducible tests και CI, όχι μόνο σε σημειώσεις ενός developer.
Αν θέλετε ασφαλές πεδίο εξάσκησης πριν αγγίξετε production εφαρμογή, μπορείτε να εφαρμόσετε το ίδιο test plan σε μία από αυτές τις ιδέες για developer portfolio project: προσθέστε local storage, media ή internationalization και μετρήστε τη συμπεριφορά σε περισσότερους browsers.
Τι κρατάμε από τον Firefox 153
Η νέα έκδοση είναι σημαντική όχι επειδή προσθέτει ένα μοναδικό “headline feature”, αλλά επειδή κλείνει αρκετά κενά σε σύγχρονα web APIs και ταυτόχρονα μετακινεί λεπτές συμπεριφορές του browser. Τα text modules και το WebAssembly JS-PI ανοίγουν νέες επιλογές αρχιτεκτονικής. Το Picture-in-Picture, τα IndexedDB helpers και τα WebRTC statistics βελτιώνουν πραγματικά προϊόντα. Οι αλλαγές σε select parsing, scrollbar detection και file permissions υπενθυμίζουν, όμως, ότι κάθε browser release χρειάζεται regression tests και προσεκτικά fallbacks. Ο Firefox 153 είναι stable· αυτό δεν κάνει αυτομάτως stable κάθε υπόθεση του δικού σας codebase.
















