Highlights
- A lot of fixes for Activity Stream drag and drop landed, improving the overall experience!
- The WebExtension tabs API now supports a hide and a show method, to hide and show individual tabs. This is currently preffed off, awaiting UX changes. See this blog post for more details.
- This has been frequently requested from developers hoping to re-implement Tab Groups as a WebExtension
- We ran a user study on how different privacy protections break (or fix) the web. Here’s the blog post.
- The crypto team wrote a blog post about the new WebAuthn API.
- 50 million images have been submitted by Firefox Screenshots users since late 56 cycle!
Friends of the Firefox team
(Give a shoutout/thanks to people for helping fix and test bugs. Introductions)
- Resolved bugs (excluding employees): https://mzl.la/2DHraEr
- More than one bug fixed:
- :prathiksha
- Alejandro Rodriguez Salamanca [:alejandro]
- Ian Moody [:Kwan] (UTC+0)
- Oriol Brufau [:Oriol]
- Tim Nguyen :ntim
- Vikas Prasad Mahato [:vikas_mahato]
- jbonnafo
- New contributors (🌟 = First Patch!)
- 🌟 17039 made Sqlite.jsm’s getSchemaVersion() return an integer instead of a string
- 🌟 Nathan updated the WebPayments code to use the recommended ESLint rules for Mozilla projects
- Arjun Krishna Babu switched our Preferences tests to use BrowserTestUtils.waitForEvent instead of its own custom waitForEvent function
- 🌟 dylan.turner updated a string in our Form Autofill code
- 🌟 Vedant updated one of our graphical assets to be consistent with the new Photon tab style
- 🌟 samreadingthompsondevelopment added the trailing commas requirement ESLint rule for the Migration component
- 🌟 Ashish Daulatabad removed some ancient and unneeded Netscape 4-era code from nsOSHelperAppService.cpp!
- Swapnil P (:DarthSwap) restricted BROWSER_*_DEFAULT probes to the parent-process only
- Vinícius Costa replaced do_check_array_eq with Assert.deepEqual in the sync code
- 🌟 william.loughton removed another unneeded XBL binding (menu-vertical)! Another one bites the dust!
- 🌟 zacknoyes2 made it so that we set a “status” property on the Error raised when Sqlite.jsm’s openAsyncDatabase or asyncClone fails
- 🌟 pubkeypin made it so that Preferences would open if MOZ_DATA_REPORTING wasn’t included in the build
- More than one bug fixed:
Project Updates
Add-ons
- The tabs API now supports a captureTab method which can be passed a tabId to capture the visible area of the specified tab.
- The pageAction and sidebarAction APIs were updated to be consistent with changes to the browserAction API which allow for nulls to be passed to unset a property.
- The browserAction, pageAction and sidebarAction APIs all now support querying whether they are currently enabled/shown/open, respectively.
- The devtools.network API now supports a getHAR method which returns a HAR log for the devtools window.
- Special handling was added to support popups which will contain remote browsers.
- The tabs.saveAsPDF API was enhanced with a print progress listener and the addition of four more edge properties to the pageSettings object.
- The menus and contextMenus APIs have been enhanced to support onShown and onHidden events.
- A proxyConfig setting method has been added to the browserSettings API to allow an extension to control proxy prefs.
Activity Stream
- Priorities for Fx60 (what we are currently working on):
- Prefs: migrating newtab sidebar preferences to about:preferences
- Porting existing sections checkboxes from React to XUL
- Adding new customizations: section rows, reorganize “Home” section
- Highlights: adding new data types starting with Pocketed items
- Message Center: generalizing messages and notifications
- Start with Onboarding Tour and Snippets
- Eventually for centralized notifications even for non-UI features
- Perceived Performance: developing process to produce weekly Activity Stream timing videos for analysing perf
- Prefs: migrating newtab sidebar preferences to about:preferences
Browser Architecture
- XUL flexbox emulation into CSS flexbox can be enabled with the layout.css.emulate-moz-box-with-flex pref. Next: get it running in automation to track performance compared with XUL flex (metabug)
- XUL overlay removal breakdown (metabug)
- There’s a new components.css UA sheet for migrating XBL <resource> sheets into (bug)
Firefox Core Engineering
- Policy Engine:
- Policy engine has landed (behind a pref), as well as several policies:
- Bug 1421707 – Blocking of selected about: pages
- Bug 1428922 – Per-origin allow/block permissions for cookies, popups, flash and addons
- Bug 1429120 – Show bookmarks and menu bar by default
- Bug 1428141 – Don’t check for default browser on startup
- Several others being worked on, as well as GPO support
- Plenty of opportunities to help with our list of desired policies on MVP
- Policy engine has landed (behind a pref), as well as several policies:
- Crash pings have come to Fennec, courtesy of Gabriele Svelto
Lint
- Sylvestre is working on integrating codespell as a lint option.
- Initially limited to tools/lint and python/mozlint
Mobile
- We shipped Firefox 10.4 for iOS which addresses performance issues in location bar autocomplete
- We are about to ship the first beta of Firefox 11.0 for iOS. Two bigger themes of this release will be Tracking Protection and iPad improvements
- We moved a testing tool, MappaMundi, from out of the main repo to a separate project — it is of general interest to iOS developers who use XCUITests. One of our engineers called it “The Missing Piece” of UI testing.
- Firefox for Fire TV 1.1 shipped, with Turbo Mode (e.g. tracking protection) and better Accessibility
Performance
- Tab warming
- FormHistory database initialization and migration have been moved off of the main thread!
Privacy/Security
- Luke made Firefox trim HTTP Referer headers in private browsing mode.
- We now have more detailed telemetry on permission prompts. You can find out about the origin scheme of the triggering page, whether the prompt was triggered from a user input event and whether it came from a third-party iframe.
Search and Navigation
Address Bar & Search
- Fixed a bug where copying a search suggestion ended up pasting a url
- Work continues on the new Address Bar autofill algorithm, close to be reviewable
Places
- incremental_vacuum has been enabled for favicons.sqlite
- Removed the Move Bookmarks dialog from the Library
- Fixed a bug allowing to rename a bookmark tag to an empty string
- Removed the legacy synchronous places transactions.
- Removing synchronous transactions allowed us to start removing synchronous bookmarks APIs, the following have already been removed (more will follow): GetPageTitle, GetBookmarksForURI and GetMostRecentBookmarksForURI, GetItemType, ChangeBookmarkURI, GetBookmarkIdsForURI
- Hemant has replaced calls to isURIVisited and promiseIsURIVisited with the more appropriate PlacesUtils.history.hasVisits
More
- Contributed fixes to Sqlite.jsm:
Sync / Firefox Accounts
- New and improved bookmark merging has landed! \o/
- This is a significant under-the-hood change to how we apply synced bookmarks, and should fix long-standing issues with Sync scrambling bookmarks, smushing folders, and undoing changes.
- Special thanks to :mak, :markh, :rnewman, and :tcsc for their reviews and guidance!
- There’s an explainer doc with an overview.
- We’ll begin dogfooding within the Sync team, and send out a post to firefox-dev@ once we’re ready to have more folks try. Bug 1433177 tracks enabling it by default.
- If you’re feeling adventurous, you can back up your places.sqlite, flip the services.sync.engine.bookmarks.buffer pref, and restart Firefox.
- Edouard is almost done removing event loop spinning from Sync, which significantly cleans up the code and should make for cleaner perf profiles.
- Thom is improving bookmark deletion to avoid resurrecting deleted items. There’s a sync-dev@ thread with some discussion.
- Various performance improvements.
Test Pilot
- Tab Split and ThemesRFun experiment development is now underway.
- The Test Pilot team is learning about WebExtension API Experiments and Embedded Experiments for use implementing future Test Pilot experiments.
- Snooze Tabs is gearing up to graduate.
- MinVid is preparing to move into a Shield study.
- The Test Pilot website has new “Featured Experiment” UI which will be turned on in the next sprint.
- Screenshots:
- Toolbar button vs Page Action menu: yes, we’re seeing less usage having moved the button there, but our usage has been remarkably steady:
- screenshots is becoming a module. Ianb owner, 6a68 peer.
- we’ve updated our dev process to land early in the cycle and avoid uplifts
- Ian is participating in the github-bugzilla discussions, more to come
Web Payments
- Improved breakdown completed. Talking with stakeholders
- Line-item list view and toggle implemented
- Improving the shipping address picker
- Connecting the shipping address picker to the PaymentResponse
- Credit card picker is coming soon.
Wellington Torrejais da Silva wrote on