Highlights
- We’re running experiments to reduce annoying permission prompts in Firefox
- The DevTools team is bringing back Print Simulation! The bug to add it back into the inspector has landed last week!
- The Font Editor now supports editing letter-spacing too
- The Web Console now groups content blocking messages, if you flip the
devtools.webconsole.groupWarningMessages
pref. Much easier to read the output! - The new remote debugging is ON in Nightly now. Check out about:debugging to see the new experience!
- An “Intent to unship” notice for WebIDE and the Connect dialog has been sent.
- The Oxidation of Firefox Sync continues, with the team writing new components in Rust! 🦀
- Firefox Front-end Performance Update #16 posted, highlighting some performance improvements that are going out in Firefox 67
- We enabled the FIDO U2F API in Nightly, targeting an uplift to Firefox 67
- Access to the logins list from the entry points not tied to a specific website (about:preferences and the main menu) has nearly doubled in the week-and-a-half since adding the main menu item.
- Access from a page context (filtered to show logins for that domain) has grown over 50x in just two days since enabling the autocomplete footer!
Friends of the Firefox team
Here’s a list of all resolved bugs by volunteers
Fixed more than one bug
- Carolina Jimenez Gomez
- Dhyey Thakore [:dhyey35]
- Hemakshi Sachdev [:hemakshis]
- Ian Moody [:Kwan] (UTC+0)
- Martin Stránský [:stransky]
- Mellina Y.
- PhoenixAbhishek
- Suriyaa Sundararuban [:suriyaa]
- Trishul
- Yuan Cheng
New contributors (🌟 = first patch)
- Avery Berninger ported about:telemetry to Fluent
- Brian Chen ported the tab context menu, and the synced tabs menu to Fluent
- Yuan Cheng fixed an RTL bug in about:rights
- clement.allain added a Telemetry probe to help gather data about when Telemetry pings fail to be sent
- Dhruvi Butti added a preference to make Web Console autocomplete optional
- Khyati Agarwal got rid of some unnecessary CSS for our menu panels
- Berkay Barlas fixed a bug where Reader Mode wouldn’t return to the default font size when hitting Cmd / Ctrl – 0
- Chris Frey ported about:blocked’s DTDs to Fluent
- lloan:[lloanalas] fixed a glitch where we started showing the full path to a file in the Network Monitor, rather than everything after the domain
- Monika Manuela Hengki got rid of an unnecessary (and erroneous) constant in AppConstants
- mihir17166 got rid of an old PlacesUtils function that we don’t need anymore
- Bisola Omisore (Sola) polished up some CSS for the Network Monitor
- trushita got rid of some dead CSS inside of xul.css
- 🌟 violet.bugreport fixed a bug where the WebExtension Cookie API wouldn’t correctly remove cookies assigned to IPv6 addresses
- Laphets [:Laphets] added a context menu option to copy a JSON response in the Network Monitor to the clipboard
Project Updates
Activity Stream
- The Activity Stream team is transitioning ownership of about:newtab and about:home to Pocket until Firefox 70.
- We’re also expanding the Firefox Messaging System from Activity Stream Router and Contextual Feature Recommendations.
- Improved code coverage by including JSX files, and approaching 100% coverage for JSMs.
Discovery Stream
- For Firefox 68, the team is focusing on feature parity with Activity Stream
- Added Save to Pocket and Bookmark context menu items
- Basic personalization with existing domain affinity
- Optimizing performance by loading images lazily, as the page will show many more
Add-ons / Web Extensions
- Uplifted to Firefox 67:
- Luca (rpl) fixed an issue with extension options pages not working in private browsing.
- Aswan fixed Fennec so that lightweight (read: old) themes (LWTs) could be migrated to static themes (read: new, web extension).
- Shane (mixedpuppy) and Luca got some last-minute uplifts so the options for private browsing control for an extension that must be enabled or cannot be enabled are not confusing (thanks to flod for his help).
- Rob Wu fixed an issue with webRequest use that could result in some uploaded data loss.
- Firefox 68:
- Work continues on long-term projects for Firefox 68
- Mstriemer is rewriting about:addons in HTML (recently: theme previews, detail view).
- Shane made it so raw manifests are read (for localized manifests), as part of the conversion of search plugins to web extensions.
- Kmaglione’s 25-patch behemoth to “convert built-in LWTs to static themes” (which actually includes supporting refactors for everything from error messages to scope identification, startup, and the removal of previous LWT code that blocked those changes). [Not to be confused with the 9-patch “remove LWT gunk” bug resolution, the 4-patch “remove references to LWT preferences” bug, and the bug that was discovered on Android that prevented LWTs from migrating.]
- Luca fixed:
- an issue with browser.storage.onChanged not firing when falsey values were removed (! This will hopefully go to 67 also)…
- …a bug with extensions not respecting global cookie policy, so that network.cookie.cookieBehavior behaves globally as expected…
- …and a bug with SidebarUI throwing an error onWindowOpen.
- Trishul made it so themes don’t have the private browsing toggle and made it so you can’t re-assign an already-assigned keyboard shortcut.
- violet.bugreport fixed browser.cookies.remove so it successfully removes ipV6 cookies.
- Kmaglione replaced prepare_test(), which isn’t that big a deal to everyone here, but does have the best description I’ve read in a while.
- Work continues on long-term projects for Firefox 68
Applications
Firefox Accounts
- All FxA projects have been consolidated into a monorepo, to make developing and deploying easier. Check out this post from the team for more info 🎪
- Vlad integrated the new device pairing flow into the Android Reference Browser! 📱
Sync
- Check out Edouard’s blog post about how we expose Rust FFIs to Kotlin and Swift. 📝
- Rust, Rust, Rust! 🦀
- Thom landed a shared networking layer. This lets all our Rust components use Necko (via GeckoView) on Android, instead of the Rust networking stack. 🌐
- Edouard is replacing OpenSSL with NSS in our components, and got NSS cross-compiling for iOS. 🔒
- Mark is fixing `SQLITE_BUSY` errors caused by multiple write connections—if you’ve seen crashes while syncing history in the Reference Browser, this is probably why—and is starting work on a Sync Manager for Fenix to support “Choose What to Sync”. 🔄
- We’re exploring how to integrate some of our Rust components into Desktop, using the Rust XPCOM bindings! Check out Lina’s dev-platform post for some background.
- Rust bookmark merging is ready for testing! 📚
- Barring any showstoppers, this will be in 68: ride the train to early Beta, then gradually rolled out to Release.
- Please install the About Sync add-on, flip the `services.sync.engine.bookmarks.buffer` pref to true, restart, and let us know if you spot bugs!
- Phil has been working on a new durable storage server, also written in Rust! 📦
Developer Tools
- Layout Tools
- Starting to work on Inactive CSS. This lets users see when CSS declarations are valid but do not have any effect on the page (bug, mockup #1 “how inactive CSS declarations look in the inspector”, mockup #2 “example of tooltips telling users why a declaration is inactive”).
- Coming soon: Making CSS warnings in the console more useful. That means, e.g., not emitting warnings for vendor-prefixed properties when corresponding unprefixed properties exist. Or linking warnings to DOM nodes in the inspector. Thanks to jdescottes, nchevobbe and emilio for working on the platform support.
- Debugger
- Uplifting several fixes for column breakpoints and windowless workers.
- Column Breakpoints are pretty solid now. As always, please keep an eye out for issues and report any if needed.
- Most of the team is busy with general debugger quality issues they’ve prioritized.
- Console
- Fission
Fission
- Felipe updated about:support to show a more detailed breakdown of process types
- Nika is updating OpenBrowserWindow to take a fission: true argument. Expect some Nightly-only UI soon to open Fission Windows, similar to how we developed Electrolysis. (e10s #2: Electric Boogaloo)
- This bug also adds a “[F]” suffix to tab tooltips on Nightly to indicate that the tab can run out-of-process iframes.
- mconley has a first pass on a BrowserChild.jsm port to the JS Window Actors if you’re interested in seeing what that looks like
- brennie has ported a good chunk of RemoteWebProgress / WebProcessChild to C++ (while also making them Fission-compatible)
- Some small chunks remaining, but this has also yielded some nice performance improvements
Lint
- Landed the automatic ESLint configuration for test directories
- Standard test directory names won’t need .eslintrc.js files
- Thinking about reorganising other test directories which aren’t in the standard setup to match it, e.g. browser/components/customizableui/test -> browser/components/customizableui/test/browser
- ESLint versions have been bumped.
- Gijs landed the patch that allows basic linting of xul files.
- Ian Moody continues the work to roll-out the ESLint rule no-throw-literal across the tree.
- dom/bindings, dom/push and dom/svg are the latest directories to be enabled for ESLint.
Mobile
Firefox for Android
- Nightly 68 now has an ARM64 JIT. ARM64 will improve stability (fewer out-of-memory crashes) and security (better ASLR), but is not expected to have much impact on performance at this time.
- Nightly 68 has enabled Android PGO. Improves Speedometer score by 5%!
- Nightly 68 has reduced paint suppression delay to improve First Contentful Paint time.
- Nightly 68 has enabled Retained Display Lists to improve responsiveness on complex pages.
Password Manager
- Fixed
Performance
- We’re getting close to landing a test that tracks startup mainthread IO. Once it lands, adding new startup mainthread IO will cause test failures on infra.
- We’re also digging through the list of existing mainthread IO that happens at some point during Firefox startup, filing bugs to get rid of, move off-main-thread, or delay, anything that isn’t strictly necessary for startup itself:
- Initial startup numbers from improving readahead on xul.dll are looking very promising
Policy Engine
- Landed support for a whitelist of preferences
- Will allow us to add prefs people want without the whole process
- Fixed a bug where failed extension installs didn’t reinstall
- Adding basic support for ExtensionSettings for extension whitelisting
Privacy / Security
- Erica added new prefs for controlling features that are available in content blocking
- We now log a console message for TLS 1.0 and 1.1 (bug 1512505)
- Erica made it so that we clear storageAccessAPI permissions when history is cleared.
- Johann unforked the cert error pages!
- Paul defeated evil sites that would change their sub-domain to infinitely ask for permissions
Search and Navigation
Search
- No user-facing updates this time, but lots of ongoing work on multiple fronts:
- WebExtension default engines
- New search codes
- Better test coverage
- User Research and experiments
Quantum Bar
- Fixed a regression causing us to get search suggestions for file:// uris
- Refining details about the first Quantum Bar experiment, to be run in Q2
- 35 bugs fixed in Quantum Bar in the last 2 weeks, 13 open bugs to reach MVP
Al wrote on
Johann Hofmann wrote on
Wellington Torrejais da Silva wrote on
Wellington Torrejais da Silva wrote on
John wrote on