These Weeks in Firefox: Issue 19

Highlights

The new Photon hamburger menu

The new hamburger menu

  • We populated the onboarding overlay on about:newtab according to the UI spec. There are 5 tours with call-to-action buttons & you can hide the tour with a checkbox.
The new onboarding panel.

The new onboarding panel

Autocomplete 1st Result Time Graph

Mean!

Friends of the Firefox team

Project Updates

Add-ons

Activity Stream

  • June 15th Newsletter
  • Highlights:
    • Graduation Team has landed the about:newtab Preferences Pane, put in place a bunch of performance telemetry, and made some amazing progress on making sure all existing Firefox about:newtab tests pass.
    • The MVP Team has built out controls for collapsing/expanding AS sections, as well as landed the very cool ‘Recent Bookmarks’ section.
      • This iteration, we will be preffing on a minimal version of Activity Stream in Firefox Nightly!
    • Activity Stream Release Schedule

      The Activity Stream Release Schedule

    • Shield Study to examine AS vs. Tiles starting June 26th

Electrolysis (e10s)

  • Windows support for e10s+accessibility has been delayed until Firefox 56+ due to stability issues. Here’s the meta bug for the project. This bug appears to be the major blocker.

Firefox Core Engineering

Form Autofill

Form Autofill Demo

Note the neat form fill preview!

  • We enabled the heuristics algorithm. Form Autofill now supports forms without @autocomplete attributes, i.e. most en-US sites.
  • Enabled the auto-save feature and implemented the door hanger for notifying users of this.
  • Landed preview & highlight feature. You can now preview how addresses will be filled in multiple fields.
  • Landed the footer in the suggestion dropdown, which makes users easier to find the preferences page.
  • Landed basic select element support.
  • Polished the dialogs in about:preferences (two-layer in-content dialog and select element dropmark).

Photon

Performance

Structure

Animation

Visuals

Onboarding

  • The Sync tour and tour notification will land soon.

Preferences

Search

Test Pilot

  • A new version of Firefox Screenshots landed in Nightly last night with some nice bug fixes
  • Tab Center only works up to Firefox 55
  • Graduating July 5th:  Page Shot, Activity Stream
  • Graduating “soon” after July 5th:  Pulse, Tab Center
  • Keep your eyes open for three new experiments coming mid-July!

Resolved: Fixed – A short story about a community-reported bug

Firefox Nightly users, thanks to the telemetry and crash reports they send to Mozilla, are an amazing help to Firefox developers. The aggregated data sent by our community is extremely useful and allows spotting performance or stability regressions at the earliest stages of development. It probably can’t be emphasized enough how just using Nightly is a great way to get involved in Mozilla.

That said, we have in our Nightly community people that also actively hunt and report bugs and regressions and provide us detailed feedback, usually via the opening of a bug report in Bugzilla. These people are our core community, our first line of defense against regressions, they allow us to ship faster and better software and many of them have been involved in Mozilla and Firefox for a long time.

Mozilla Suite nightly start screen

Have you filed a bug?” is something you often hear open source developers say to people that report them some anomaly or regression, and for the majority of our users, this sounds like a complicated process. Just explaining the bug they experience in terms that make the bug report actionable by the developer that will fix it is a skill in itself. And this is where our core community of power-users on Nightly shines, they have this skill.

But what if the reporter has these skills but is not comfortable communicating in English because it is not her native language? Yes, language can also be a barrier to giving feedback…

A few days ago, a mozillian from our Spanish community (web developer in an IT company in Spain), sent me an email about a regression he was experiencing at work with nightly in the last days. This is the story I want to tell because it illustrates how powerful community work in open source can be and how lucky Mozilla is to have a dedicated global community.

Fernando, or StripTM as we know him in the Mozilla Hispano community, sent me an email about a major performance regression with forms on a page they have on their intranet, clicking in a form field would freeze the browser for seconds, and he wanted to know if I had heard about it. I didn’t so I asked him if there was a way I could see this page.

Intranets are tricky, the content there is by definition not public. But StripTM being a Web developer, he emailed me a reduced anonymized version of the page so as that I could test locally if I could see the bug and yes, I was experiencing it as well.

Since StripTM is not always comfortable writing bug reports in English, I did it for him and filed bug 1372843 a week ago and attached his test case. I fired up mozregression and found out that the bug was caused by the recent activation of Form Autofill in Nightly (see our article Preview Form Autofill in Firefox Nightly). In a nutshell, the performance problem was caused by the fact that this intranet page had 170(!) forms and our heuristics were cycling through all of the input fields in the page instead of only  the ones for the form we had clicked in.

All in all, it took a total of 3 days to discover the performance problem, file a bug and get a patch for it in mozilla-central. This is what happens when you can put passionate and skilled volunteers in contact with our equally passionate and skilled staff!

So thank you Fernando for using Nightly all these years and yes, the publishing date of this post is also a way for us to thank you for your involvement in Mozilla and wish you a happy birthday!

Date/Time Inputs Enabled on Nightly

Exciting! Firefox is now providing simple and chic interfaces for representing, setting and picking a time or date on Nightly. Various content attributes defined in the HTML standard, such as @step, @min, and @max, are implemented for finer-grained control over data values.

Take a closer look at this feature, and come join us in making it better with better browser compatibility!

What’s Currently Supported

<input type=time>

The default format is shown as below.

Here is how it looks when you are setting a value for a time. The value provided must be in the format “hh:mm[:ss[.mmm]]”, according to the spec.

Note that there is no picker for <input type=time>. We decided not to support it since we think it’s easier and faster to enter a time using the keyboard than selecting it from a picker. If you have a different opinion, let us know!

<input type=date>

The layout of an input field for date looks as below. If @value attribute is provided, it must be in the format “yyyy-mm-dd”, according to the spec.

A date picker will be popped out when you click on the input field. You can choose to set a date by typing in the field or selecting one from the picker.

      

Validation

Date/Time inputs allow you to set content attributes like @min, @max, @step or @required to specify the desired date/time range.

For example, you can set the @min and @max attribute for <input type=time>, and if the user selects a time outside of the specified range, a validation error message is shown to let the user know the expected range.

By setting the @step attribute, you can specify the expected date/time interval values. For example:

Localization

<input type=date> and <input type=time> input box are automatically formatted based on your browser locale, that means the Firefox browser with the language you downloaded and installed. This is the same as your interface language of Firefox.

This is how <input type=time> looks like using Firefox Traditional Chinese!

The calendar picker for <input type=date> is also formatted based on your browser language. Hence, the first day of the week can start on Monday or Sunday, depending on your browser language. Note that this is not configurable.

Only Gregorian calendar system is supported at the moment. All dates and times will be converted to ISO 8601 format, as specified in the spec, before being submitted to the web server.

Happy Hacking

Wondering how you can help us make this feature more awesome? Download the latest Firefox Nightly and give it a try.

Try it out:

Try it out:

If you are looking for more fun, you can try some more examples on MDN.

If you encounter an issue, report it by submitting the “summary” and “description” fields on Bugzilla.

If you are an enthusiastic developer and would like to contribute to the project, we have features that are in our backlog that you are welcome to contribute to! User interaction behaviors and visual styles are well defined in the specs.

Thanks,
The Date/Time Inputs Team

Using mozregression on Windows

I already blogged about using mozregression in a terminal for Linux/Mac users so this is a follow-up post with specific instructions presented as a video tutorial for Windows users.

If you are a Windows user and want to help chasing regressions in Firefox, you don’t have to install the command line version of mozregression and work from a terminal (which is currently complicated on this OS even if the use of Bash in Windows 10 is now possible), we also provide a version of mozregression for Windows with a graphical user interface.

You can download mozregression from our GitHub repository, the Windows version is called mozregression-gui.exe, it packages everything needed for mozregression to work on Windows, including Python.

Here is a short video tutorial to help you gettting started with mozregression on Windows (which I hope is understandable despite my thick French accent):

If you want to search for regressions already reported by our community and which could benefit from a regression range search, have a look at bugs already filed in Bugzilla with the regressionwindow-wanted keyword.

Let’s build a solid Firefox together!

These Weeks in Firefox: Issue 18

Highlights

Friends of the Firefox team

(Give a shoutout/thanks to people for helping fix and test bugs. Introductions)

Project Updates

Add-ons

  • Many performance improvements in WebExtension start up from working with Screenshots team. Most of these have been documented by Ehsan, but check out bug 1363905 for more detail.
  • Support for Implement support for $0 and inspect bindings in devtools.inspectedWindow.eval has landed which means some of the large developer tools add-ons (React, Redux, Ember) etc from Chrome should now be working on Firefox 55! Check out this tweet.
  • devtools.panels.themeName support has landed
  • browser_style is now available in browser actions, options UI and the sidebar

Activity Stream

Firefox Core Engineering

  • Just started week 4 of the Flash Shield Study. Nightly 55 has click-to-activate (CTA) as the default setting. Beta 55 will see a gradual rollout of CTA, though domain blocking will be active for everyone.
  • Startup crashes from BaseThreadInitThunk has been fixed in 55. This prevents early DLL injection by third parties in some cases (which is against policy anyway), so check that bug if you’re dealing with an injection-related crash.

Form Autofill

Mobile

Photon

Performance
Structure
  • The hamburger panel is now feature-complete! (minor caveat: the library subview is shared with the library button, which is not feature-complete yet)
  • The page action menu now has a bookmark item (as well as the synced tabs subview)
    • Still to come: Pocket & Screenshots
  • There’s a veeeeery-initial library button + panel available now. Probably not worth testing yet, but it’s available in the palette.
  • Greening up tests so we can flip the photon structure pref by default on nightly builds.
Animation
  • Jared landed bug 1364221 which allows us to run more animations on the compositor for added smoothness.
  • Jared is getting close in bug 1355924 to adding an animation for the refresh/stop button
  • Sam is working in bug 1352065 to implement a new download animation.
  • Jim is working on a new tab loading indicator in bug 1352119.
Visuals
Onboarding
  • Fischer submitted the review request for bug 1369750 to fix the intermittent issue of accessing the window object inside the onboarding.js framescript
  • Fischer has also gotten review feedback from MattN on a bug to make sure we detect old profiles more accurately
  • Fred has finished creating the message architecture so that the Auto-migration code can talk with Activity Stream
  • Fred and Rex enabled the basic onboarding overlay on about:newtab and about:home. Now can see a little fox icon on the top-left corner on about:newtab and about:home on Nightly! Here’s the spec
  • Rex submitted the review request for Bug 1357046; this patch will add the Private Browsing tour and the Search tour in the onBoarding overlay
  • Evelyn reports that the plan is to release the new onboarding flow in Firefox 56
Preferences
  • The Performance section of about:preferences has had all P1 bugs fixed, and is ready for testing. The plan is to ship this in Firefox 55 in the “old” about:preferences organization.
  • Have landed bugs for updating strings in about:preferences
  • The team is working on improving search highlighting in about:preferences to include sub-dialogs and fixing some highlight/tooltip glitches.
  • Here’s the updated about:preferences re-org spec that we’re aiming to ship in Firefox 56. It’s very close to being finalized. The spec for Search behaviour is also being finalized.

Platform Audibles

Project Mortar (PDFium)

  • JSPlugin architecture is now in m-c! (hooray!)
  • Given that all facts pointing out Pepper API isn’t future-proof, the team is re-evaluating how to integrate PDFium without Pepper API layer.

Search

Sync / Firefox Accounts

Here are the raw meeting notes that were used to derive this list.

Want to help us build Firefox? Get started here!

Here’s a tool to find some mentored, good first bugs to hack on.

These Weeks in Firefox: Issue 17

Highlights

Friends of the Firefox team

(Give a shoutout/thanks to people for helping fix and test bugs. Introductions)

  • Resolved bugs (excluding employees):
    • More than one bug fixed: https://mzl.la/2rwO12P
      • Dan Banner
      • Kevin Jones
      • Milind L (:milindl)
      • Swapnesh Kumar Sahoo [:swapneshks]
      • tfe
    • New contributors (🌟 = First Patch!)
      • 🌟 jomer14 got rid of some leftover l10n files that Firefox Accounts didn’t need anymore!
      • 🌟 Pauline got rid of PlacesUtils.asyncGetBookmarkIds (which isn’t needed anymore thanks to Bookmarks.jsm), which also reduced our memory footprint!
      • 🌟 Shashwat Jolly cleaned up some of our strings in about:license!

Project Updates

Activity Stream

  • ‘Graduation’ team is getting close to preffing on Activity Stream in Nightly and working on Search Suggestions, about:home, cleaning up tests, and perf telemetry
    • Aiming for more regular / weekly landings from github to mozilla-central
    • Replaced custom React search suggestions from Test Pilot with existing contentSearchUI used for about:home/about:newtab simplifying tests
  • Test Pilot team is finishing up customization (drag’n’drop, add/edit topsite), as well as beginning work on Sections
  • Activity Stream, when enabled on m-c runs in the content process!
  • Removed most of Content Services / Suggested Tiles code from about:newtab resulting in perf improvements and removed / ~8x fewer intermittent test failures

Electrolysis (e10s)

  • The e10s-multi team is still looking over the data being gathered from the Beta population against the release criteria to determine whether or not e10s-multi will ship in Firefox 54, or will have to wait until Firefox 55
  • e10s-a11y support in Firefox 55 has been marked “at risk” due to stability issues. A go/no-go will be happen no later than June 3rd
  • erahm has a blog post about how memory usage with 4 content processes continues to be the sweet spot

Firefox Core Engineering

  • Reminder: Firefox 55 is also installing 64-bit by default on 64-bit OS’s; updates will come later.
  • Resolved race condition in Rust runtime. This may have been bugging some tests (no pun intended).
  • We have preliminary top crashers lists from crash stacks sent via crash pings. Expanding that analysis is pending review of the data & correlation with crash reports.

Form Autofill

Photon

Performance

  • More rigorous reflow tests have landed for window opening, tab opening and tab closing.
  • Kudos to the Structure / Menus team for making the subview animations smooth as silk! (Notice that Oh no! Reflow! is detecting no synchronous reflows in that video)
  • Task.jsm and Promise.defer() removal big patches landed as pre-announced during the last meeting. This covered the browser/ and toolkit/ folders, more patches coming soon for other folders.

Structure

  • The page action menu has started taking shape and now has items to copy/email links, and will soon have a ‘send to device’ submenu;
  • Tomorrow’s nightly will have Firefox Account and cut/copy/paste items in the main hamburger panel;
  • Main work on the permanent overflow panel (as a replacement for the customizable bits of the existing hamburger panel) is done, working on polish and bugfixes;
  • Work will start on the new library button this week;
  • We’ll be working to flip the photon pref by default on Nightly in the next week or two;

Animation

Visuals

Onboarding

Preferences

  • Search is taking shape on Nightly! It now comes with the right highlight color, tooltips for sub-dialog search results. With the help from QA engineers, we are closing the gap between implementation & spec.
  • UX team asked us to revise re-org. The change will likely postpone re-org shipping by one release (to 56); the good news is the release population will be presented with the new search & re-org at the same time, if that happens.

Project Mortar (PDFium)

  • peterv made some progress of the JSPlugin architecture – the last few pieces of work are reviewing. Hopefully this is the final round of review, and we will land all of them (8 patches!) soon.

Search

  • One-off buttons in the location bar are ready to ride the trains in 55.
  • Search suggestions are now enabled by default. Users who had explicitly opted out of search suggestions in the past, will not see them.
  • Hi-res favicon improvements: the default globe favicon is now hi-res (SVG) everywhere in the UI and some ugly icon rescaling was fixed.

Sync / Firefox Accounts

Test Pilot

  • Containers experiment release 2.3.0 coming this week
    • adds a “site assignment” on-boarding panel to increase site assignments
      A screenshot of a panel explaining how you can choose sites that will always open in a container.
    • Also removes SDK code!
  • Screenshots feature is now aiming for 55
    • We’re hoping WebExtensions start-up will be performant enough by 55
    • Our backup plan: move UI (toolbar button, context menu item) into bootstrap.js code, lazy-load WebExtension on click
  • We’re planning to start a Test Pilot blog (with help from Marketing)
  • Test Pilot and experiments are moving away from the SDK

Looking into replacing Test Pilot addon functionality with a WebExtension API Experiment (learn more)

Here are the raw meeting notes that were used to derive this list.

Want to help us build Firefox? Get started here!

Here’s a tool to find some mentored, good first bugs to hack on.

Preview Form Autofill in Firefox Nightly

An early version of the new Form Autofill feature is ready for testing by early adopters with U.S. addresses and websites using Firefox Nightly on desktop. Form Autofill helps you fill out addresses in online forms. You can give the work-in-progress a try and watch it improve over time but keep in mind there are many more months of work left to go.

An address is selected from the autocomplete dropdown on the email field and the rest of the address fields are filled with the related saved information for that profile.

Firefox has an existing form history feature, which helps you fill out one field at a time using frecency. In contrast, Form Autofill completes all related address fields when you select a suggestion from the autocomplete dropdown on the focused field. Autofill profiles can contain one or more of the following: name, mailing address, phone number, and/or email. Multiple profiles are supported, so, for example, you can have separate personal and work profiles.

What’s currently supported

  • Basic address profile management for addresses that follow United States formats. For now you need to use this interface to create profiles for testing
  • Enabling/disabling the feature in preferences
  • Filling a form which uses the @autocomplete attribute on <input> elements for the supported fields, and with minimal transformations. This means it won’t work yet on most websites. Try it on our demo page, Macy’s, or any Shopify-powered store.

Coming soon on Nightly

  • Heuristics to determine field data types when @autocomplete isn’t used. This will make autofill work on many more sites.
  • In-content add/edit dialog UX
  • Support for <select> dropdowns
  • Automatic saving of submitted addresses and prompts to confirm changes after autofilling
  • Showing a preview of what will be autofilled upon highlighting an address in the autocomplete dropdown
  • Full UI translation

Before release

  • Support for credit cards
  • More data validation and cleansing
  • Sync between desktops with your Firefox Account
  • Significantly improved heuristics… there is a lot of work to do here yet
  • Support for more countries based on feedback from our localization communities
  • Support for data transformations on more types e.g. splitting a phone number into country code, area code, exchange, and number when required by sites
  • UI polish
  • Telemetry to measure accuracy of autofilled data as a quality metric

Try it out

To give Form Autofill a try, make sure you’re running Firefox Nightly and open Privacy preferences (you can type about:preferences#privacy in the address bar). Click the “Saved Profiles…” button beside “Enable Profile Autofill” and then click “Add” and save a new address. Then visit our demo page or other sites using the HTML5 autocomplete attribute, and you should see the autofill dropdown as seen in the image above.

Take a look at the Form Autofill wiki page for much more information and to get involved.

Thanks,
The Form Autofill Team

Try to find the patch which caused a crash.

For some categories of crashes, we are automatically able to pinpoint the patch which introduced the regression.

The issue

Developers make mistakes, not because they’re bad but most of the time because the code is complex and sometimes just because the modifications they made are so trivial that they don’t pay too much attention.

In parallel, the sooner we can catch these mistakes, the easier it is for developers to fix them. At the end, this strongly improves the user experience.
Indeed, if developers are quickly informed about new regressions introduced by their changes, it becomes much easier for them to fix issues as they still remember the changes.

How do we achieve that?

When a new crash signature shows up, we retrieve the stack trace of the crash, i.e. the sequence of called functions which led to the crash: https://crash-stats.mozilla.com/report/index/53b199e7-30f5-4c3d-8c8a-e39c82170315#frames .

For each function, we have the file name where it is defined and the mercurial changeset from which Firefox was built, so in querying https://hg.mozilla.org  it is possible to know what the last changes on this file were.

The strategy is the following:

  1. we retrieve the crashes which just appeared in the last nightly version (no crash in the last three days);
  2. we bucketize crashes by their proto-signature;
  3. for each bucket, we get a crash report and then get the functions and files which appear in the stack trace;
  4. for each file, we query mercurial to know if a patch has been applied to this file in the last three days.

The last stage is to analyze the stack traces and the corresponding patches to infer that a patch is probably the responsible for a crash and finally just report a bug.

Results

As an example:

https://bugzilla.mozilla.org/show_bug.cgi?id=1347836

The patch https://hg.mozilla.org/mozilla-central/diff/99e3488b1ea4/layout/base/nsLayoutUtils.cpp modified the function nsLayoutUtils::SurfaceFromElement and the crash occured in this function (https://crash-stats.mozilla.com/report/index/53b199e7-30f5-4c3d-8c8a-e39c82170315#frames), few lines after the modified line.

Finally the issue was a function which returned a pointer which could be dangling (the patch).

https://bugzilla.mozilla.org/show_bug.cgi?id=1347461

The patch https://hg.mozilla.org/mozilla-central/diff/bf33ec027cea/security/manager/ssl/DataStorage.cpp modified the line where the crash occured (https://crash-stats.mozilla.com/report/index/c7ba45aa-99a9-448b-91df-37da82170314#frames).

Finally the issue was an attempt to use an uninitialized object.

https://bugzilla.mozilla.org/show_bug.cgi?id=1342217

The patch https://hg.mozilla.org/mozilla-central/diff/e6fa8ff0d0be/dom/media/platforms/wrappers/MediaDataDecoderProxy.cpp added the function where the crash occured (https://crash-stats.mozilla.com/report/index/6a96375e-5c83-4ebe-9078-2d4472170222#frames).

Finally the issue was just a missing return in a function (the patch).

In these differents bugs, the volume is very low so almost nobody care about them but finally they reveal true mistakes in the code, so the volume could be higher in beta or release.
For the future, we hope that it will be possible to automate most of that process and file automatically a bug.

These Weeks in Firefox: Issue 16

Highlights

  • about:addons now has a legacy tag to show when an extension is not a WebExtension and addons.mozilla.org now specifically tags WebExtensions as compatible on Firefox 57!
  • The Activity Stream Test Pilot now shows recommended stories from Pocket, and you can  try the first bits of the Activity Stream integration in Firefox on Nightly by switching the pref browser.newtabpage.activity-stream.enabled

The new about:newtab featuring Activity Stream!

Friends of the Firefox team

(Give a shoutout/thanks to people for helping fix and test bugs. Introductions)

Project Updates

Add-ons

Electrolysis (e10s)

  • gabor turned on the pre-allocated process manager, which should improve the perceived performance of opening tabs and windows in new processes
  • mconley is currently fixing a regression in the tab switch spinner metric
  • e10s-multi A/B test is currently underway on Beta
  • e10s-a11y support still targeted for Firefox 55

Firefox Core Engineering

  • Shield Study defaulting Flash to click-to-play (Plugin Safety) has begun on Release 53 and will run through June 15.

Form Autofill

Mobile

Photon

Performance
  • We are working on deterministic perf tests for sync reflows and files loaded too early during startup
    • Sync layout and style flush tests will be in browser/base/content/test/performance. When these become available, make sure to run these when you add Photon-y things!
  • Expect big patches to land to stop using Task.jsm in browser/ and toolkit/, and stop using the non standard Promise.defer from promise.jsm
    • If you have WIP patches for these folders, consider landing them soon to avoid bitrot.
Animation
Visuals
Onboarding
  • Fischer and Rex and Fred report that the team has been iterating on the overlay prototype for the onboarding experience
    • The team is in discussions with the Activity Stream team to figure out how the overlay will integrate with the Activity Stream page
    • The team is also sorting out integration with Firefox Account log-in, and Automigration
    • The onboarding overlay experience is currently being developed as a system add-on
Preferences
  • timdream reports that the team has almost finished scoping out the work for this project, and that this wiki page is a great way to track the team as they work
  • Please file about:preferences bugs! Preferably blocking the right meta bugs.

Privacy/Security

  • jkt is looking into rewriting containers to use WebExtensions instead of the Addon SDK
  • Our three Outreachy interns for May 30 – August 30 were announced last week:

Project Mortar (PDFium)

Search

Sync / Firefox Accounts

Test Pilot

Here are the raw meeting notes that were used to derive this list.

Want to help us build Firefox? Get started here!

Here’s a tool to find some mentored, good first bugs to hack on.

These Weeks in Firefox: Issue 15

A big thank you goes out to Johann Hofmann who put these headlines together while I was away on vacation!

Highlights

  • The Form Autofill feature is being enabled on Nightly this week (for @autocomplete on <input>). Stay tuned!
  • Firefox Screenshots is in Beta 2 preffed-off by default.  We’ll enable it very soon for everyone, or you can jump the gun by toggling extensions.screenshots.system-disabled .  If you run into anything fishy, please let #screenshots know

Friends of the Firefox team

(Give a shoutout/thanks to people for helping fix and test bugs. Introductions)

Project Updates

Add-ons

Activity Stream

  • Test Pilot Activity Stream
    • Activity Stream support for Pocket has landed in Test Pilot version.  Experiment launches May 1st (thanks csadilek!)
    • You can try it now by using the Activity Stream Dev channel
    • Updated to latest eslint-plugin-mozilla which now supports mozilla-central external repositories, but need to disable no-useless-parameters as we support older than Firefox 55 (thanks Standard8!)
  • Activity Stream system add-on
    • Search feed and UI landed
    • TelemetrySender landed
    • Top Sites feed landed

Firefox Core Engineering

  • Flash
    • Telemetry experiment ran on Nightly 55 from April 14 – April 23.
    • Shield Study defaulting to click-to-play will start on Release 53 in the next week and run for six weeks.
    • Default and (slight) additional UI land in 55.
  • Crash
    • Crash pings contain raw stacks (opt-out) as of Beta 54.
    • Crash pings exist for main, content, and GPU processes as of Beta 54.
    • Crash pings are sent via pingSender (i.e. right away) as of Beta 54.
    • Only one bug did not get uplifted to 54 — a new data point added to the crash ping (a form of client crash id) as of 55.
    • Working on identifying top crashers (by signature) currently. Intending to land while 55 is on Nightly.
  • Install/Update
    • Continue with phase 1 of the Update Agent, which will continue/complete the download of an update even if a session ends.
    • Looking into trying to encourage users on FF4.0 – FF35.0 to update past 35 prior to September 2017 (when their update server, aus3, expires).
    • Fun with Nahimic: it can (and has) prevented updates. Follow 1356637 for updates.

Form Autofill

Mobile

Photon

Performance
  • Lots of sync reflow bugs filed, thanks! We now have a big backlog to triage.
  • Several fixes landed for sync reflows, especially around interactions with the tab bar (thank Dão!) and the awesomebar.
  • Starting to profile startup, and there’s a lot of room for improvement there (loading JS modules lazily from nsBrowserGlue, loading the blocklist from JSON instead of parsing a big XML file).
  • A few tips:
    • Avoid calling .focus() several times in a row, each focus call currently flushes layout.
    • Avoid using setTimeout(…, 0), Services.tm.dispatchToMainThread(…) has less overhead.
    • Avoid using Preferences.jsm (especially during startup) if it’s only to have support for default values.
    • Avoid importing NetUtil.jsm only to use newURI, use Services.io.newURI directly instead.
Structure
  • Work starting on page action menu
  • Ongoing work on the hamburger and overflow panel
  • Ongoing work on having more than one level of nesting within panel subviews (the slide-to-the-side thing in panels) and update their styling
    • All the previous stuff is / will be behind a pref. We aim to flip that pref on Nightly in the near future!
  • We swapped the sidebar to the right… and then swapped it back again. Expect more updates to sidebars in the future (with the side of the window stuff still under investigation).
Animation
  • Animations themselves are in-progress. We intend to use svg spritesheet animations for animating icon states
Visuals
Onboarding
  • Have walked through questions about the UX and visual specs with verdi from UX in today’s onboarding team meeting.
Preferences

Platform Audibles

  • Pending results of experiment, Flash will be marked as click-to-activate by default starting soon in nightly. Pending results of SHIELD study this will ride to 55 release.
  • We’ve got initial page navigation numbers comparing Chrome and Firefox
    • In general we’re competitive with Chrome (+-20%), but a few cases show us far worse, in particular back navigation: filed bug 1359400
  • A bug that caused windows to be ghosts if touch events were sent is causing large CC pauses in Nightly and Beta. Fix in tomorrow’s Nightly.
  • Initial data shows that mean-time-between-failure (MTBF) for input jank:
  • 70+% of nightly users last week saw GC pauses >0.5s
  • ASK: if you see slow things, please install/use the gecko profiler and file bugs!

Privacy/Security

  • jkt wrote a blog post about the new “Always Open In This Container” feature in containers.
  • freddyb is writing a series of ESLint rules to catch common security problems in Firefox code. First victim: Eval and implied eval.

Project Mortar (PDFium)

  • Three milestones are set for better estimating our release schedule
    • Milestone 1 (target on Q2): feature landing. We are still trying to land our significant bits into mozilla-central, which are:
      • bug 558184 and 1344942: JSPlugin and plugin binary process creation and loading
      • bug 1345330: pull in Chromium source code (PDFium + Pepper API layer) into the tree and build with Firefox
      • bug 1269760: pdf printing (to paper). The most challenged part is converting PDF to EMF printing format on Windows, because we rely on PDFium to do the conversion. This means that the sandbox for plugin binary processes should allow PDFium to create device contexts and even access files. We are discussing with the Sandbox team
    • Milestone 2: release polish. (We haven’t figured out the release target but the conversation is ongoing)
      • focus on performance and stability (meta bug 1286791), telemetry and test automation for future proofing
  • Milestone 3: script support. will NOT in the first release. Still investigating its product value

Search

Test Pilot

  • Min Vid is celebrating its largest release yet with the addition of a play and history queue.  Add media you want to watch to your upcoming queue, or replay something you missed by clicking the history tab.  Min Vid currently works on YouTube, SoundCloud, Vimeo, and direct links to audio or video.
  • Pulse has added occasional (less than once a day) prompting for feedback to help avoid biased data.  If you want to help Firefox improve performance on your favorite sites, this is your chance.  The data from this experiment goes directly to the Firefox Product team to help prioritize improvements.
  • Snooze Tabs has gone world wide now supporting 23 locales.  In addition to using Snooze Tabs in your favorite language, you’ll also find an Undo button when deleting a snoozed tab.

Here are the raw meeting notes that were used to derive this list.

Want to help us build Firefox? Get started here!

Here’s a tool to find some mentored, good first bugs to hack on.