Firefox/Meeting/01-Aug-2017
From MozillaWiki
Contents
- 1 General Topics / Roundtable
- 2 Friends of the Firefox team
- 3 Project Updates
General Topics / Roundtable
(tips/tricks/FYI, productivity improvements, industry news)
- [mconley] For-looping in hot, performance critical code paths? Don’t use forEach. Even for-ofis slower than for-inor a C-style forloop.
- Don’t use for-in to iterate over arrays, though.
- [bgrins] `./mach run` and prefs for the scratch_user
- Default browser prompt and about:config warning are hidden by default
- Set arbitrary prefs, like: ./mach run --setpref browser.startup.homepage="about:preferences"
- https://groups.google.com/d/msg/firefox-dev/kPwA1y-7BpI/gX6rvhEjBQAJ
- [standard8] MozillaBuild 3.0 is out! (thanks to RyanVM). Includes built-in node support for ESLint
- [mconley] Stylo is being built by default now, so if you’re wondering why your non-artifact builds have slowed way down, that’s because ccache doesn’t support Rust. Consider switching to sccache (if you’re on OS X, you may have to workaround this bug by running xcode-select --install.If that doesn’t work, consider asking the folks in #developers). One bonus is that sccache, unlike ccache, works on Windows!
- You can disable building Stylo locally with: ac_add_options --disable-stylo in your mozconfig
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/2vpwyMc
- More than one bug fixed:
- Alejandro Rodriguez Salamanca
- Bao Quan [:beekill]
- Luciano I
- Tomislav Jovanovic :zombie
- Tushar Saini (:shatur)
- flyingrub
- New contributors (🌟 = First Patch!)
- 🌟Luciano I tweaked the size and the style of the Firefox Accounts avatar in about:preferences!
- 🌟Nicolas Ouellet-Payeur made it so that we always wrap thrown strings with Error objects in our Sync code!
- More than one bug fixed:
- jonathanGB’s internship presentation @ 1:15pm PDT today
- Form autofill & WebPayments
Project Updates
Add-ons
- Warnings are now displayed from startup of an extension installed via about:debugging.
- The devtools.panels.elements.onSelectionChanged event is now supported.
- We’ve started landing parts of the browsingData API on Android including settings and removeCookies.
- Improved WebExtensions performance by storing and transferring schema JSON in structured clone blobs.
- Added a new API to allow extensions to add a preface to the window title.
- Extensions can now add an item to the “Tools” menu in a manner similar to how extensions add items to the context menu.
- Tab objects returned from an API call now include a lastAccessed property.
Activity Stream
- Activity Stream will be pref’ed off by default in 56 Beta, and will be successively rolled out from 1%, 5% to 10% of the Beta population using Shield pref flips
- Default Top Sites landing for Tier 1 and Tier 2 countries with global fallback
- Pocket will be enabled by geo/locale for Canada and US initially, Germany will be added during 57 Nightly and tested in 56 Beta
- Snippets, Profile Migration, Onboarding Tour recently landed in 56
Electrolysis (e10s)
- Content process preallocator has been disabled while the team coordinates with the Activity Stream team on the preloaded about:newtab browser.
Firefox Core Engineering
- App Updater
- App Updater is now using LZMA compression and SHA384 for signing. The release of builds taking advantage of this should be unthrottled today. So far, complete update files are reduced from 19-21%.
- Reminder: Updates to 64-bit begin in FF56, so you can look for that on Nightly now.
- We have pulled the Update Agent (which continues the download of the update file in the background) from 57. Earliest it would be now is 58.
- Installer
- To support onboarding, we’re adding an option for users to clean up their profile if they’ve had an old version of Firefox installed before. This is aimed for 57.
- Crashes/Stability
- Carl Corcoran (ccorcoran) and Gabriele Svelto (gsvelto) are close to landing CFI-based stackwalking support.
- We’re going to block 3rd party applications that use our accessibility APIs.
- ...and addressing an issue with early injection (confidential bug due to security).
- Hang Reporting
- Doug Thayer (dthayer) is working with mystor and smaug on how to make the BHR dashboard more useful. This is part of the “BHR Taskforce” with DOM.
- Quantum Flow/Photon Perf
- Just in case anyone isn’t aware, 3-5 people on our team are working on QF and/or Photon Perf bugs as well, trying to pinch hit on Runtime or DOM bugs.
- Namely,those people are Adam Gashlin (agashlin), Kirk Steuber (bytesized), Perry Jiang (perry), and Felipe Gomes (felipe) -- and sometimes Robert Strong (rstrong). Please help them if they reach out with questions.
Form Autofill
- Milestone 3 done
- Fixed
- High level: credit card, sync, l10n, pref refinements, US split telephone fields, performance
- [Form Autofill Manage Profiles and Edit Profile dialogs refinements]
- [Form Autofill Implement the infrastructure of Telephone parser to support the various combination of telephone fields]
- [Form Autofill Change the label "country" to "country or region" in Preferences]
- [Form Autofill Move the strings in manageProfiles and editProfile dialog to .properties file]
- Intermittent browser/extensions/formautofill/test/browser/browser_update_doorhanger.js | Uncaught exception - undefined - timed out after 50 tries.
- [Form Autofill Update the locale of phishing warning note to align with the latest UX spec]
- Add "sync tracker" support to ProfileStorage
- [Form Autofill Support two fieldDetails array for Address and Credit Card feature in FormAutofillHandler.]
- [Form Autofill Collect information about the count of autofill being applied in different scenario]
- [Form Autofill Add the ability for "startSearch" to retrieve credit card profiles from storage]
- Implement core reconciliation logic for formautofill engine
- [Form Autofill Setting manuallyManagedState bit might trigger frame re-construction and erase the preview text while previewing]
- [Form Autofill Trigger autofill broken on 3 fields forms]
- [Form Autofill Extend ProfileAutoCompleteResult to support credit cards]
- Autofill doesn't work when using drag to new window
- [Form Autofill Replace the strings "profile" with "address" in preferences]
- Support non-experimental autocomplete pref
- [Form Autofill Exception occurs when saving a telephone number like "1234567"]
- [Form Autofill Refine the warning message in preferences]
- [Form Autofill Implement credit card profile creation in FormAutofillHandler]
- [Form Autofill Group tel-related fields when calculating the secondary label]
- Cache the matching result of select elements so we don't need to calculate it every time when previewing and filling
- Next
- Finishing Credit card support
- Polishing system add-on for the MVP
Lint
- Landed recently:
- No-whitespace-before-property (whole tree)
- Upcoming:
- Dot-notation
- Enabling more rules in more directories:
- accessible/
- mobile/android/
- toolkit/components/osfile
Photon
[dolske] We’re very close (and on track!) to our feature-complete target date of August 7th. Still a few key things incoming, but starting to shift towards bugfixing and polish instead of adding whole new features.
Performance
- A patch to switch the tab strip to using CSS smooth-scroll (and eliminating some sync reflows in the process), has been reviewed and is waiting for the merge before landing on central.
- There are now some basic reflow tests for showing results in the AwesomeBar
- A patch to switch to the next tab earlier when removing a tab is waiting for review, and should shave a few milliseconds off of tab switch time.
- mconley is starting to work on a patch to “warm up” tabs speculatively when we think we’re going to switch to them.
- Perry is working on removing the context menu CPOWs and making the thumbnailer less aggressive
Structure
- Drew worked hard on refactoring the page action panel, and you can now put items that are in the page action menu in the URL bar permanently!
- We’ll be adding support for pocket and screenshots there soon.
- Mike updated the history portion of the library button to declutter it and show more history items.
- The overflow panel is now much prettier!
Animation
- The Save to Pocket and the Bookmark animation landed. Reminder that you do not need to sign up for an account to use Pocket, just click through the tutorial and it will start letting you save pages to Pocket.
- Further refinements on the toolbar button animations [1] [2]
- New[1]arrow-panel animations are up for review, looks like all test failures are now fixed.
- The new[2]Download notifications animation got r+ and should land after the merge
- The new tab[3]loading/progress indicator is going through review passes
Visuals
- Titlebar vibrancy on Mac OS has just landed!!
- Dao is putting square tabs in your Nightly, soon…. ☜[ヮ゚☜]
- Johann increased the size of all Photon-style menus when accessed through touch.
- Dale updated us to delicious new dark theme colors.
- Dao updated the tab strip icons and threw away a lot of PNGs.
- And a lot of small fixes and tweaks, such as fine-tuning the Windows accent color text, sharper sidebar tree icons, correctly sorting the UI density options, coloring the titlebar in Mac OS customize mode, fixing the identity block hover state and much more.
Onboarding
- 56: Going through P3 bugs and working on them. Move other things to P5s.
- Accessibility bugs wasn’t an original requirement but we have decided to make them high priority P3s. Will uplift to beta as they being completed.
- 57: Copy has confirmed, waiting for illustration. WIP patches ready to be have illustration put into them.
Preferences
- 55: Performance section on Preferences was found to have confusing behavior because of how e10s rollout changes user default. Bug 1382649 landed and uplift to beta last week to deal with it. Will ship with minor known issues.
- 56: Search and Preferences Re-org received signed-off w/ YELLOWs. Work started to address them started last week. Most of them are addressed before Aug 2.
- 57: Patches are being worked on right now. Should have everything landed or in review by Aug 7.
Platform Audibles
- Kris Maglione has landed patches that allow you to queue work to occur just after layout and style flushes have occurred! Consider using them to avoid sync flushes.
Privacy/Security
- Holding off a couple of days to land site permission management in preferences in a new dialog in 57, with a few follow-up bugs already filed.
- Working on a new onboarding experiment around better Tracking Protection UI.
- jkt is working on patches to m-c that enable Containers to run as a WebExtension
- Location Bar:
- The popup doesn’t show a scrollbar anymore, instead it just adapts itself to the browser.urlbar.maxRichResults pref value
- Pref-based Shield studies will now be able to define a different results mixture based on the search context
- Fixed a regression in the way we cache one-off buttons in urlbar and search bar
- Evelyn added speculative connection to the Current Search Engine
- We have a patch to speed up UnifiedComplete startup time by lazy loading all the urlbar prefs (pending review)
- Jank-free Bookmarking:
- A QE session has been booked to test Async Places Transactions, currently only enabled in Nightly, planned for 57 \o/ (ง°ل͜°)ง
- Fixed a regression in the Bookmark All Tabs dialog
- Currently investigating API optimizations when acting on hundreds of bookmarks at once
- Downloads
- Downloads history integration code is being refactored to share it more easily with Photon downloads views
- The file size is shown again for completed downloads in the downloads panel (uplifted to 55)
- Misc:
- The Places connection shutdown now uses an Async Shutdown Blocker instead of a custom notification. This allows to simplify the History expiration code, that should soon move to idleDispatch.
- Fixed some frequent intermittent failures, leaks, tests missing from the manifests and useless tests
Sync / Firefox Accounts
- Autofill address sync is coming in 56. Landed, but pref’d off for now.
- Bidirectional bookmark sync is coming to iOS! Please follow the meta bug if you’re interested.
- The history engine now uses Sqlite.jsm to query Places, and PlacesUtils.history.insertMany, instead of hand-rolled wrappers that spin the event loop. Thanks to contributors Santiago Paez and Luciano Italiani!
- Bookmark validation is now enabled through early betas. Please report any perf regressions you see when syncing bookmarks.
- Edouard madeSync UI startup lazier and snappier.
Test Pilot (text only, have a meeting conflict)
- Three new experiments launched today. Check out https://testpilot.firefox.com/
- Firefox Screenshots continues to improve in Beta. We will launch in 56 with a small percentage of people and roll out the feature over a few weeks.
- We’ve started blogging at https://medium.com/firefox-test-pilot . Tune in for experiment updates on the new experiments
Web Payments
- [Bug 1381179 - Resolved] Added “Toolkit :: WebPayments UI” component on Bugzilla
- [Bug 1381186] Handles showPayment & abortPayment from the merchant
- [Bug 1382388] Handles abort event from the user (other way around)
- [Bug 1383300] Started getting the “total” and the “origin” from the API on showPayment and display in the dialog
- Next: integrate autofillStorage to pre-populate “Shipping address” selector