Highlights
- New Onboarding experience in Firefox 62 currently only as an experiment.
- The new about:policies helps administrators verify if they have configured policies correctly, learn more about the different policies, and resolve errors.
- About:performance UI is currently being updated, currently behind a pref more details in the bug 1477677
- Doug Thayer pushed the ClientStorage work through the finish line! This should improve responsiveness and (maybe) power usage on macOS. This should also allow tab warming to ride to release on macOS!
Project Updates
Add-ons / Web Extensions
- Kris fixed an issue with starting extensions while a content process is hung and a crash from webRequest stream filters.
- Luca did further work on migrating the storage API to IndexedDB.
- Oriol fixed several issues with extension icons.
- Tim fixed themes on Android.
Browser Architecture
- XUL/XBL Replacement Newsletter #6 posted.
- Browser console is now loaded as a html document.
- getElementsByAttribute[NS] now works on (chrome) HTML documents.
- Added document.createXULElement. No namespace funkiness!
- Working on a plan to either remove broadcaster/observers or support them in HTML.
- Investigating feasibility of landing rkv as NPOTB so potential consumers can investigate it for suitability to their use cases (bug 1445451).
Lint
- We are switching most ChromeUtils.import calls to be treated as explicit variable declarations by ESLint. This has the advantage of triggering no-unused-vars more often (especially in jsm files), to find unused imports.
- This doesn’t work where modules.json lists a file as exporting two symbols (only one of them might be used, so we haven’t weeded them out yet).
- The better form declarations of const {Foo} = ChromeUtils.import(“resource://foo.jsm”, {}); are already handled according to the variables.
Performance
- Florian landed some new about:performance UI pref’ed off, you can try it by flipping dom.performance.enable_scheduler_timing in about:config and then restart the browser before opening about:performance (warning: the browser will crash if you forget to restart). He also started investigating performance issues when reordering tabs.
- Felipe reworked RemotePageManager to load it lazily and got a nice 3+% cpstartup win, he’s working on making us stop touching ‘content’ early in the content process for more cp startup wins.
- Gijs is avoiding useless initial about:blank loads, removed the startup impact of registerContentHandler by removing the implementation, and fixed a sync layout flush we had when opening the awesomebar panel.
- Jay’s internship ended and we are grateful for all the good work he did!
Policy Engine
- About:policies page (Bug 1472528) – Kanika Saini
- Active Policies
- Policies vary a lot
- Some are just boolean values, for e.g DisableAppUpdate
- Some are arrays of objects with keys and values, for e.g. Bookmarks
- Some are objects which have keys and their values have arrays in a deeper level, for e.g Permissions
- Policies vary a lot
- Documentation
- Machine-only icon warns the administrator about such policies
- Each policy row is a collapsible which on click expands to display more information about the policy, for e.g schema for the policy
- Errors
- Active Policies
-
-
- Error tab is only visible when there is an error
- Gives a brief of the error relating to the Policy Engine only
-
Search and Navigation
Address Bar & Search
- the WebExtensions search API got POST requests support
- browser.search.region and browser.search.countryCode prefs have been merged into the former
- Organic search telemetry is moving from a system add-on to core to reduce perf impact and manage the code more easily (plus bootstrapped addons going away)
- Fixed a regression where autofill could suggest a nonsecure origin even if the user typed https
- Fixed a regression where autofill prevented to start a search by a capital letter
- Fixed a possible shutdown crash on autofill migration
- Fixed a regression where the urlbar fading mask could appear even when the url was not overflowing
Places
- Annotations feature removal:
-
- PlacesUtils.history.fetch can now read page annotations asynchronously
- nsIDownloadHistory has been completely removed and replaced with async calls to PlacesUtils.history.update()
- Removed annotations expiration code
- Various unnecessary methods and page annotation observers have been removed
- The following Tagging APIs have been moved to the async bookmarking API:
- MAX_TAGS_LENGTH is now PlacesUtils.bookmarks.MAX_TAGS_LENGTH
- allTags is now PlacesUtils.bookmarks.fetchTags()
- hasTags has been removed
- getURIsForTag is now PlacesUtils.bookmarks.fetch({…}, {includeTags: true})
- The redesigned bookmarking API got a few bug fixes
Test Pilot
- Side View is a hit!
- MAU graph:
- Next for Side View: added to Shield queue
- Screenshots
- New annotations features shipped! Undo/Redo (Barry) & Text tool (Punam)
- Check out the blog post
- Current sprint is mostly server-focused:
- Finishing the last few bugs on new features, minor release later this week
- Starting work on a redesign with tighter FxA integration & better accessibility
- Soon: work with Kimberly from accessibility team to add accessibility testing to our Selenium tests
- Client updates:
- Bootstrap removal work continues
- Telemetry API for internal WebExtensions got R+, will be landing soon
- Adding Barry and Punam as peers on the Firefox Screenshots module
- Bootstrap removal work continues
- New annotations features shipped! Undo/Redo (Barry) & Text tool (Punam)
Web Payments
- Working through final bugs before WebPayments goes through user testing.
- Prathiksha finished her internship last week. We are very grateful for her contributions!
Jay wrote on