Highlights
- A new bookmark sync blog post is up. Want to help us test the new syncing backend? Please flip it on in Beta or Nightly, try it out, and file bugs! 📚Instructions for enabling are in the blog post.
- About Sync from AMO is currently broken on Nightly. 😿 Please use the dev version directly, or Firefox Beta, until version 0.0.23 is available on AMO.
- Delayed background page startup for WebExtensions is now in enabled on Nightly. This results in a significant improvement in (warm) startup times in profiles that have active WebExtensions!
- Policy Engine team is blown away by the volume of preference requests coming in from system administrators
- Issues for Policy Templates is currently the right place to file requests for new policies
- The new AwesomeBar autofill algorithm has landed!
- We’ve fixed the known performance and history expiration issues after first landing, and are investigating frecency improvements to make the experience closer to what folks expect.
- If you encounter hangs when using the Address Bar or other Bookmarks Views, please check the Slow SQL part in about:telemetry for queries against the moz_{places, historyvisits, bookmarks} tables, and file a bug in Toolkit::Places with the details.
- If you think an origin should be autofilled (because you type it often) and it isn’t, please file a bug in Firefox::Address Bar
- We’ve started to experiment with caching the layers for background tabs to make tab switching faster
- Controlled by browser.tabs.remote.tabCacheSize defaulting to 5 slots, meaning the last 5 tabs you’ve seen should be quick to switch to
- This is just a proof-of-concept that we’re testing out, and we’re holding it on Nightly while we get Telemetry data.
Friends of the Firefox team
Introductions
- Kanika Saini started last week an Outreachy internship working on Enterprise Policies
- Trisha Gupta is working on improving certificate error pages as an Outreachy intern!
Resolved bugs (excluding employees)
- More than one bug fixed:
- Abdoulaye O. LY
- Issei Horie
- Oriol Brufau [:Oriol]
- YUKI “Piro” Hiroshi
- New contributors (🌟 = First Patch!)
- 🌟 Alex switched a string in about:preferences that was using the 1st person
- bobslept got rid of a bunch of unneeded SocialAPI preferences we were still storing
- constfilin replaced all parent.removeChild(element) with element.remove() in tabbrowser.js code
- jason updated Telemetry to measure ping size after compression, since that better reflects reality
Project Updates
Add-ons / Web Extensions
- A whole bunch of AddonManager cleanup and modernization landed.
- The doorhangers shown when an extension overrides the newtab or home page are no longer shown for built-in extensions from distributions.
- A few notable bugs were fixed:
- A longstanding bug with rendering extension popups is fixed.
- Localized CSS is now handled correctly.
- The menus.onShown event now works properly in popups.
- A pair of theme bugs were fixed and uplifted to 61.
Activity Stream
- Thanks Felipe for removing old about:home (~200KB images and 1.6k lines)
Browser Architecture
- 3 XBL bindings have been converted to Custom Elements (stringbundle, deck, dropmarker).
- Work to unblock more is tracked blocking the findbar conversion.
- See latest XBL replacement newsletter for more updates.
- Proof of concept implementing XULStore on top of rkv is posted.
- Improving support for top-level HTML windows (meta).
- Width/height/position is remembered with the [persist] attr on the <html> tag.
- Looking into supporting context menus next.
Lint
- Kmag added a rule to prevent usage of XPCOMUtils.QueryInterface & other JS-implemented QueryInterface methods (use ChromeUtils.generateQI instead).
- Bryce enabled ESLint for dom/media/mediasource
- Felipe told ESLint about defineLazyProxy
- Standard8 added a new rule to prevent usage of Assert.throws/.rejects without an ‘expected’ argument.
- Aims to prevent cases in tests where something is expected to be throwing or rejecting, but doesn’t actually test the right thing.
- Currently enabled on a sub-set of directories, more being rolled out soon.
- Once rolled out, the ‘expected’ argument will be made non-optional.
Fluent
- Ongoing work on DOM DocumentL10n
- Pseudolocales in review
Performance
- felipe has started to break down our framescripts into smaller chunks that load on demand, thanks to defineLazyProxy
- PSA: Adding new framescript-y things? Please make it lazy.
- Gijs is moving a mountain – he’s in the process of migrating the old XML-based blocklist to use JSON / Kinto-based storage.
- Gijs also made it so that long dataURLs no longer jank the AwesomeBar
- dthayer has patches to make communicating to the GPU on macOS more efficient (less copying memory, more moving memory)
- Dealing with some MotionMark regressions, likely related to our tile pool allocation strategy. Analysis ongoing.
- imjching has posted a patch to migrate Activity Stream away from dataURLs for images.
- imjching has evaluated the JS Bytecode Cache to see if it’s an appropriate place to cache Activity Stream JS bytecode
- The answer seems to be “no” – this was specifically designed and tuned for things coming over the network, and not hosted locally.
- However, the ScriptPreloader might be a more appropriate place. Currently evaluating that
- mconley has gotten the green-light on the 30fps and 20fps tab throbber study from Legal, Science, and the rest of the SHIELD folk. Bug has been opened to launch study.
- mconley is trying to figure out why an empty XBL binding causes the cpstartup test to perform better on our Linux Talos hardware
Policy Engine
- First new policy checked in by Outreachy intern 🎉🔥
Privacy/Security
- We’re working on incrementally improving the Identity Popup / Tracking Protection UI, starting in Firefox 62.
- baku made it so that we actually clear quota storage when the user sets cookies to be cleared on exit.
- baku has a gigantic set of patches that attempt to create a one-stop-shop module for clearing browser and site data.
- Johann improved cookie permission settings in page info.
- Johann also fixed the way we were handling default permissions for WebRTC.
Search and Navigation
Address Bar & Search
- Various clean ups to the Search Service
- Removed some migration code
- Moved search order to list.json
- Default search engine name moved to list.json
- Fixed a bug where certain localized builds couldn’t open sites from the Address Bar or Search Bar (Fallout from moving default search engine to list.json).
Places
- Places can now properly handle a detected corruption in favicons.sqlite, on startup or on idle maintenance
- Fixed a bug causing the bookmarks toolbar to appear empty when the first item is a separator
- Fixed a bug causing the Places Integrity button in about:support to not print a log anymore
- Made bookmarks drag’n’drop performance more consistent
- Completed asyncHistory project (no more synchronous browser history APIs)
- Merged (and thus removed) a couple interfaces
Sync / Firefox Accounts
- Welcome Carol Ng, who’s joining the Sync team for the summer! 🎉
- Mark is adding a new dialog that gives folks an option to wipe local data when they disconnect Sync. 🙈
- The team is working on a Rust adapter for the Sync server, including a Rust client for FxA and an iOS demo app, to bridge the gap between the existing Sync, and the next version of Sync that’s powered by Mentat. 🦀
- Thom has basic record storage working now. 📦
- Ed continues to plug away on the Rust FxA client. The demo app can authenticate with FxA and get an OAuth token. 🔐
- Mark refactored authentication with the token server, and starting on a telemetry adapter. 📓
- Kit ported the Sync auth state machine from iOS. 🛠
Test Pilot
- Mobile news:
- Android prototypes in progress for Send and Notes experiments
- Support for mobile experiments coming soon to the Test Pilot website
- Upcoming experiments
- Firefox Color: lightweight theming experiment
- Side View: mobile view in the sidebar
- Upcoming Shield studies:
- Cloud Storage: Dropbox / Google Drive integration into Download menu
- Waiting on StudyUtils v5 and final QA
- Min Vid: picture-in-picture video viewer
- Shield study cancelled due to performance concerns
- Moving forward with a PRD for implementation in Firefox
- Cloud Storage: Dropbox / Google Drive integration into Download menu
- Screenshots updates:
- Work continues on Chrome webextension prototype, annotation tools
- Android prototype just getting underway, demo coming at work week
Web Payments
- Team has completed 74% of the entire Milestone 1 – 3 Backlog.
- Winding down on Milestone 2… trying to tie up loose ends before QA begins on what we’ve done so far
- Prathiksha has completed most of the onboarding wizard flow
- Sam landed support for one-time-use addresses
- Jared is working on showing field-specific shippingaddresschange errors on the add/edit screen and adding a billing address from the credit card screen
- MattN made <select> work in the PaymentRequest dialog
John wrote on
Pascal Chevrel wrote on
John M. wrote on