<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.mozilla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=P.A.</id>
	<title>MozillaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mozilla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=P.A."/>
	<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/Special:Contributions/P.A."/>
	<updated>2026-06-28T23:17:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/CSS_Tips&amp;diff=1219295</id>
		<title>Firefox/CSS Tips</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/CSS_Tips&amp;diff=1219295"/>
		<updated>2019-10-20T10:53:06Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Add link to up-to-date documentation on MDN&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains information about CSS used in the Firefox front end.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: #FFC; text-align: center;&amp;quot;&amp;gt;&#039;&#039;&#039;&amp;lt;p&amp;gt;More detailed and up-to-date documentation is available on MDN at:&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;[https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/CSS_Guidelines The Firefox codebase: CSS Guidelines]&amp;lt;/p&amp;gt;&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
&lt;br /&gt;
First, you can find the existing Firefox CSS at https://dxr.mozilla.org/mozilla-central/source/browser/themes. Here are some basic tips that can result in faster reviews if you are changing CSS.&lt;br /&gt;
&lt;br /&gt;
* Split your CSS into theme and content files (see below)&lt;br /&gt;
* Avoid &amp;lt;tt&amp;gt;!important&amp;lt;/tt&amp;gt; but if you have to use it, make sure it&#039;s obvious why you&#039;re using it (maybe with a comment)&lt;br /&gt;
* Avoid magic numbers, prefer automatic sizing&lt;br /&gt;
* Avoid setting styles in JavaScript. It&#039;s generally better to set a class and then specify the styles in CSS&lt;br /&gt;
* &amp;lt;tt&amp;gt;classList&amp;lt;/tt&amp;gt; is generally better than &amp;lt;tt&amp;gt;className&amp;lt;/tt&amp;gt;. There&#039;s less chance of over-writing an existing class&lt;br /&gt;
&lt;br /&gt;
=== Boilerplate ===&lt;br /&gt;
&lt;br /&gt;
Make sure each file starts with the standard copyright header (see [https://www.mozilla.org/MPL/headers/ License Boilerplate])&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
CSS changes to the frontend should generally be similar across platforms since they mostly use a shared implementation, but there can still be differences worth checking out. Ideally you should test major changes on all of Windows, OS X and Ubuntu in both light and dark themes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Formatting ==&lt;br /&gt;
&lt;br /&gt;
In general the formatting looks like this:&lt;br /&gt;
 selector,&lt;br /&gt;
 alternate-selector {&lt;br /&gt;
   property: value;&lt;br /&gt;
   other-property: other-value;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Also:&lt;br /&gt;
* Omit units on 0 values&lt;br /&gt;
** Example: Use &amp;lt;tt&amp;gt;margin: 0;&amp;lt;/tt&amp;gt;, not &amp;lt;tt&amp;gt;margin: 0px;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Add a space after each comma, &#039;&#039;&#039;except&#039;&#039;&#039; within color functions&lt;br /&gt;
** Example: &amp;lt;tt&amp;gt;-moz-linear-gradient(top, black 1px, rgba(255,255,255,0.2) 1px)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Always add a space before &amp;lt;tt&amp;gt; !important&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Assume &amp;lt;tt&amp;gt;=&amp;quot;true&amp;quot;&amp;lt;/tt&amp;gt; in attribute selectors&lt;br /&gt;
** Example: Use &amp;lt;tt&amp;gt;option[checked]&amp;lt;/tt&amp;gt;, not &amp;lt;tt&amp;gt;option[checked=&amp;quot;true&amp;quot;]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Use longhand versions of properties so it&#039;s clear what you&#039;re changing.&lt;br /&gt;
** Example: Use &amp;lt;tt&amp;gt;border-color: red&amp;lt;/tt&amp;gt;, not &amp;lt;tt&amp;gt;border: red;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Naming Standards for class names:&lt;br /&gt;
* lower-case-with-dashes is the most common&lt;br /&gt;
* But camelCase is also used sometimes.  It makes sense to first try to fit in with code around, and if there is doubt or if isn&#039;t anything to fit in with to use lower-case-with-dashes.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
&lt;br /&gt;
* Read [https://developer.mozilla.org/en/CSS/Writing_Efficient_CSS Writing Efficient CSS]&lt;br /&gt;
* Use an iframe where possible so your rules are scoped to the smallest possible set of nodes&lt;br /&gt;
* If your CSS is used in browser.xul, you need to take special care of performance:&lt;br /&gt;
** Descendant selectors should be avoided&lt;br /&gt;
** If possible find ways to &#039;&#039;&#039;only&#039;&#039;&#039; use id selectors, class selectors and selector groups&lt;br /&gt;
&lt;br /&gt;
== Content or Theme CSS ==&lt;br /&gt;
&lt;br /&gt;
We have 2 competing priorities - A desire to avoid repetition (aka [https://en.wikipedia.org/wiki/Don%27t_repeat_yourself DRY]), and the desire to allow Firefox to look different depending on your platform or your theme preferences. As a result we split our CSS into rules that are likely to change between themes (aka theme CSS) and those that are not (aka content CSS).&lt;br /&gt;
&lt;br /&gt;
There are stored:&lt;br /&gt;
* content CSS files are stored along with your JS/HTML/etc.&lt;br /&gt;
* theme CSS files are stored in the &amp;lt;tt&amp;gt;themes/(windows|osx|linux)&amp;lt;/tt&amp;gt; directories&lt;br /&gt;
* theme CSS that should look the same on all supported platforms are stored in the &amp;lt;tt&amp;gt;themes/shared&amp;lt;/tt&amp;gt; directory&lt;br /&gt;
&lt;br /&gt;
Typically certain CSS properties are going to lean one way or the other: color - 99% of the time it will be theme CSS, overflow - 99% content.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;font-size: 90%; border: 1px solid #999;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt; 99% theme&lt;br /&gt;
&amp;lt;th&amp;gt; 70% theme&lt;br /&gt;
&amp;lt;th&amp;gt; 70% content&lt;br /&gt;
&amp;lt;th&amp;gt; 99% content&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; &amp;lt;tt&amp;gt;font-*, color, *-color, border-*, -moz-appearance [1]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; &amp;lt;tt&amp;gt;line-height, padding, margin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; &amp;lt;tt&amp;gt;cursor, width, max-width, top, bottom [2], etc&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; &amp;lt;tt&amp;gt;overflow, direction, display, *-align, align-*, *-box-*, flex-*, order&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;re not sure, then go for content CSS unless you can imagine the value changing on another platform.&lt;br /&gt;
&lt;br /&gt;
When importing your stylesheets, it&#039;s best to import the content CSS before the theme CSS, that way the theme values get to override the content values (which is probably what you want), and you&#039;re going to want them both after the global values, so your imports will look like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml-stylesheet href=&amp;quot;chrome://global/skin/global.css&amp;quot; type=&amp;quot;text/css&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;?xml-stylesheet href=&amp;quot;chrome://browser/content/path/module.css&amp;quot; type=&amp;quot;text/css&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;?xml-stylesheet href=&amp;quot;chrome://browser/skin/path/module.css&amp;quot; type=&amp;quot;text/css&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[1] &amp;lt;tt&amp;gt;-moz-appearance&amp;lt;/tt&amp;gt; is tricky. Generally, when specifying &amp;lt;tt&amp;gt;-moz-appearance: foo;&amp;lt;/tt&amp;gt; you&#039;re giving hints as to how something should act, however &amp;lt;tt&amp;gt;-moz-appearance: none;&amp;lt;/tt&amp;gt; is probably saying &#039;ignore browser preconceptions - I want a blank sheet&#039;, so that&#039;s more visual. However &amp;lt;tt&amp;gt;-moz-appearance&amp;lt;/tt&amp;gt; values aren&#039;t implemented and don&#039;t behave consistently across platforms, so idealism aside &amp;lt;tt&amp;gt;-moz-appearance&amp;lt;/tt&amp;gt; should always be in theme CSS.&lt;br /&gt;
&lt;br /&gt;
[2] However there is probably a better way than using absolute positioning.&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
Text Direction:&lt;br /&gt;
* For margins, padding and borders, use start/end rather than left/right&lt;br /&gt;
** Example: Use &amp;lt;tt&amp;gt;margin-inline-start: 3px;&amp;lt;/tt&amp;gt; not &amp;lt;tt&amp;gt;margin-left: 3px&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Tip: whenever you specify an &amp;lt;tt&amp;gt;unbalanced&amp;lt;/tt&amp;gt; margin, padding or border style (i.e. the value for left is different from the value for right), think of using -end/ -start&lt;br /&gt;
* When there is no special RTL-aware property (eg. float: left|right) available, use the pseudo :-moz-locale-dir(ltr|rtl) &lt;br /&gt;
* Remember that while a tab content&#039;s scrollbar still shows on the right in RTL, an overflow scrollbar will show on the left&lt;br /&gt;
* Write &amp;quot;padding: 0 3px 4px;&amp;quot; instead of &amp;quot;padding: 0 3px 4px 3px;&amp;quot;. This makes it more obvious that the padding is symmetrical (so RTL won&#039;t be an issue)&lt;br /&gt;
&lt;br /&gt;
Testing:&lt;br /&gt;
* Use the [https://addons.mozilla.org/en-US/firefox/addon/force-rtl/ Force RTL extension]&lt;br /&gt;
* Or go to about:config and set &amp;lt;tt&amp;gt;intl.uidirection.en&amp;lt;/tt&amp;gt; to rtl&lt;br /&gt;
&lt;br /&gt;
== Toggles ==&lt;br /&gt;
&lt;br /&gt;
Sometimes you have a style that you want to turn on and off. For example a tree twisty, a tab background, etc. The Mozilla way is to perform the toggle using an attribute rather than a class. So:&lt;br /&gt;
 .tree-node[opened] {&lt;br /&gt;
   background-image: url(down-arrow.png);&lt;br /&gt;
 }&lt;br /&gt;
 .tree-node:not([opened]) {&lt;br /&gt;
   background-image: url(right-arrow.png);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== The Mozilla Environment ==&lt;br /&gt;
&lt;br /&gt;
Pre-defined classes:&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;plain&amp;lt;/tt&amp;gt; in place of &amp;lt;tt&amp;gt;margin: 0&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Theme values:&lt;br /&gt;
* Use them where possible&lt;br /&gt;
** Example: &amp;lt;tt&amp;gt;border-radius: @toolbarbuttonCornerRadius@&amp;lt;/tt&amp;gt;, not &amp;lt;tt&amp;gt;border-radius: 3px&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Where a theme value doesn&#039;t fit, make sure you have buy-in from UX&lt;br /&gt;
&lt;br /&gt;
Lists of theme values:&lt;br /&gt;
* [https://developer.mozilla.org/en/CSS/color_value#Mozilla_System_Color_Extensions System Colors]&lt;br /&gt;
* [https://developer.mozilla.org/en/CSS/font#Mozilla_Extensions System Fonts]&lt;br /&gt;
* [https://developer.mozilla.org/en/CSS_Reference/Mozilla_Extensions CSS Extensions]&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;:empty&amp;lt;/tt&amp;gt; to match a node that doesn&#039;t have children&lt;br /&gt;
* Usually, if &amp;lt;tt&amp;gt;margin&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;padding&amp;lt;/tt&amp;gt; has 4 values, something is wrong. If the left and right values are asymmetrical, you&#039;re supposed to use &amp;lt;tt&amp;gt;-start&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;-end&amp;lt;/tt&amp;gt;. If the values are symmetrical, so use only 3 values (see localization section)&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=TestEngineering/Performance/Talos/Profiling&amp;diff=1194405</id>
		<title>TestEngineering/Performance/Talos/Profiling</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=TestEngineering/Performance/Talos/Profiling&amp;diff=1194405"/>
		<updated>2018-05-25T12:34:59Z</updated>

		<summary type="html">&lt;p&gt;P.A.: It seems that this page was copied without removing the original. Based on recent history, the original page is now the most up-to-date.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Buildbot/Talos/Profiling]]&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=MOSS/Foundational_Technology/Projects_We_Use&amp;diff=1162392</id>
		<title>MOSS/Foundational Technology/Projects We Use</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=MOSS/Foundational_Technology/Projects_We_Use&amp;diff=1162392"/>
		<updated>2017-02-09T14:02:13Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Add Eclipse&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an incomplete list of the free software and open source projects Mozilla relies upon. As a starting point, it lists each project along with a short statement of how we depend on it. Where practical it would also be helpful to identify a Mozillian most closely associated with our use of each project.&lt;br /&gt;
&lt;br /&gt;
Note that presence on this list isn&#039;t the same as, nor is it a prerequisite for, applying for the MOSS &amp;quot;Foundational Technology&amp;quot; track - projects have to make an application using the process on the [[MOSS/Foundational Technology|Foundational Technology]] page.&lt;br /&gt;
&lt;br /&gt;
This is a work in progress - please contribute to this list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Project !! Description !! Contact within Mozilla&lt;br /&gt;
|-&lt;br /&gt;
| [https://angularjs.org/ angular.js]           || Used by A-Team for web apps (eg Treeherder) || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://httpd.apache.org Apache Server]      || Used by A-Team for web apps || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ansible/ansible Ansible]  || Used by IT (netops) and A-Team to manage deployments || jbarnell , GPS?&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/h4writer/arewefastyet AreWeFastYet]  || Compare JS performance across JS engines and platforms || Hannes Verschore&lt;br /&gt;
|-&lt;br /&gt;
| [https://babeljs.io/ BabelJS]                 || JavaScript compiler, Used by Gaia, TaskCluster team || Selena Deckelmann&lt;br /&gt;
|-&lt;br /&gt;
| [https://pypi.python.org/pypi/blessings/ Blessings] || Terminal formatting lib used by mozilla-central build process || Erik Rose&lt;br /&gt;
|-&lt;br /&gt;
| [http://getbootstrap.com/ Bootstrap] || HTML/CSS/JS framework, used by many of Mozilla&#039;s sites. || Webdev&lt;br /&gt;
|-&lt;br /&gt;
| [http://brew.sh/ brew / Homebrew] || Mac OS X packaging system, used to install dev tools || Sam Penrose&lt;br /&gt;
|-&lt;br /&gt;
| [https://bro.org bro]                    || The Bro Network Security Monitor || Michal Purzynski&lt;br /&gt;
|-&lt;br /&gt;
| [http://browserify.org Browserify]                    || Build JS dependencies for the browser || mozilla-services (kinto.js)&lt;br /&gt;
|-&lt;br /&gt;
| [http://buildbot.net/ BuildBot]               || The base system currently in use for release || Dustin J. Mitchell&lt;br /&gt;
|-&lt;br /&gt;
| [http://bugzilla.org/ Bugzilla] (upstream)    || The base Bugzilla on that we customize for Mozilla&#039;s use || Mark Côté&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.celeryproject.org/ Celery] || Distributed task queue. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [http://ckeditor.com/ CKEditor] || WYSIWYG editor on MDN || &lt;br /&gt;
|-&lt;br /&gt;
| [http://chaijs.com/ Chai] || JavaScript test and assertion library || Cloud Services, Tarek Ziade&#039;s team (kinto.js), Firefox Hello team&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.llvm.org Clang/LLVM]           || C/C++ compiler and infrastructure || Ehsan Akhgari &amp;amp; Sylvestre Ledru&lt;br /&gt;
|-&lt;br /&gt;
| [https://codemirror.net/ CodeMirror]           || Used in DevTools, [https://thimble.mozilla.org Thimble], and other online code tools || David Humphrey/Simon Wex&lt;br /&gt;
|-&lt;br /&gt;
| [https://pypi.python.org/pypi/cookiecutter/ Cookiecutter] || Templating system used to clone our [https://github.com/mozilla/sugardough Sugardough] Django template || Giorgos Logiotatidis&lt;br /&gt;
|-&lt;br /&gt;
| [https://conemu.github.io/ ConEmu] || Console emulator for Windows. Used by devs running Windows. || Ed Morley&lt;br /&gt;
|-&lt;br /&gt;
| [http://curl.haxx.se/ curl] || internet transfer tool and library, used by crashreporter and FirefoxOS || Daniel Stenberg&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.debian.org/ Debian] || Used on many developer boxes || Sylvestre Ledru or glandium&lt;br /&gt;
|-&lt;br /&gt;
| [http://deis.io Deis] || Open Source Heroku-like PaaS platform. Hosts www.mozilla.org, masterfirefoxos.mozilla.org, etc. || Member of Benjamin Sternthal&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://disconnect.me/trackerprotection Disconnect.me ] || Open, transparent, neutral Tracking Protection blocklist used in Firefox Private Browsing Windows || Marshall Erwin, Javaun Moradi, Francois Marier&lt;br /&gt;
|-&lt;br /&gt;
| [https://discourse.org Discourse] || [https://discourse.mozilla-community.org Community], [https://discourse.webmaker.org/ Webmaker], [https://discourse.mozilla-advocacy.org/ Advocacy], et al || [[IT/Community/WG/Discourse|Community Ops]] (Yousef Alam or Tanner Filip)&lt;br /&gt;
|-&lt;br /&gt;
| [https://djangoproject.com Django]     || Backend web framework used on many of our websites, including addons.mozilla.org, marketplace.mozilla.org, support.mozilla.org, Input, Snippets, MDN (Mozilla Developer Network), mozilla.org, Treeherder || Andy McKay and Jannis Leidel are (or have been) on the [https://www.djangoproject.com/foundation/ Django Software Foundation] board, Jannis is core team member&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.django-rest-framework.org Django REST framework]     || API framework. Used by various Mozilla sites including MDN, Firefox marketplace, mozilla.org, support.mozilla.com. || Andy McKay and Jannis Leidel&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/docker/docker Docker]     || Used by release engineering for Linux build and test containers and by ateam for managing test and production services. Used by many Mozilla websites as well such as addons.mozilla.org, marketplace.mozilla.org. (Plus docker-compose and docker machine) || Member of Selena Deckelmann&#039;s team  &lt;br /&gt;
|-&lt;br /&gt;
| [https://eclipse.org/ Eclipse] || Integrated Development Environment used by many developers || —&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.elastic.co/products/elasticsearch elasticsearch] || Search engine for various web sites and analytics || Erik Rose&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gnu.org/software/emacs/ emacs] || Programmable editor used by many developers || —&lt;br /&gt;
|-&lt;br /&gt;
| [http://eslint.org/ eslint] || Pluggable linting utiltity used by Firefox Hello, DevTools and Firefox Android || Mark Banner&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ether/etherpad-lite Etherpad]     || Used for meeting notes, etc || JP Schneider&lt;br /&gt;
|-&lt;br /&gt;
| [https://flake8.readthedocs.org/ flake8] || Wrapper around Python linters. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [http://flask.pocoo.org/ Flask]               || Python web framework || Erik Rose&lt;br /&gt;
|-&lt;br /&gt;
| [https://fortawesome.github.io/Font-Awesome/ Font Awesome] || Font and CSS toolkit, used by many of Mozilla&#039;s sites. || Webdev&lt;br /&gt;
|-&lt;br /&gt;
| [http://gcc.gnu.org GCC]                      || C/C++ compiler and infrastructure || Nathan Froyd&lt;br /&gt;
|-&lt;br /&gt;
| [https://git-scm.com/ Git]                    || Version control system - https://git.mozilla.org || Unknown &lt;br /&gt;
|-&lt;br /&gt;
| [http://gunicorn.org/ gunicorn] || Python WSGI HTTP Server. Used by Treeherder, Socorro, Pontoon. || Webdev&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.freedesktop.org/wiki/Software/HarfBuzz/ HarfBuzz] || International text shaping engine used in Firefox/Servo || Platform team&lt;br /&gt;
|-&lt;br /&gt;
| [http://hunspell.sourceforge.net/ Hunspell]  || Spellchecking engine || Ehsan Akhgari&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/hunspell/hyphen/ Hyphen]  || Hyphenation library || Jonathan Kew&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jkbrzt/httpie HTTPie]  || HTTP command-line client || Cloud Services (among many others), Tarek Ziade&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://theintern.github.io/intern/ Intern]  || Intern is a complete test system for JavaScript designed to help you write and run consistent, high-quality test cases for your JavaScript libraries and applications.  || jrgm/vladikoff&lt;br /&gt;
|-&lt;br /&gt;
| [http://canonware.com/jemalloc/ jemalloc]     || Memory allocation library || We can ask glandium&lt;br /&gt;
|-&lt;br /&gt;
| [http://jenkins-ci.org/ Jenkins CI]                    || Continuous integration system used by WebQA and EE || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [https://jquery.com/ jQuery] || JavaScript library, used by many of Mozilla&#039;s sites. || Webdev&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/tmpvar/jsdom jsdom] || DOM implementation in full JS || Test suites in Cloud Services, Tarek Ziade&#039;s team (kinto.js)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/open-source-parsers/jsoncpp jsoncpp] || A C++ library for interacting with JSON, used by the crashreporter client and Socorro. || Gabriele Svelto&lt;br /&gt;
|-&lt;br /&gt;
| [http://kombu.readthedocs.org/ Kombu] || Messaging library for Python. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| libjpeg-turbo                                 || JPEG decoding library || Jeff Muizelaar &lt;br /&gt;
|-&lt;br /&gt;
| [http://www.libpng.org/pub/png/libpng.html libpng] || PNG decoding library || Jeff Muizelaar &lt;br /&gt;
|-&lt;br /&gt;
| libvpx (Google)                               || Library for support of Google’s VP* family of codecs || Tim Terriberry &lt;br /&gt;
|-&lt;br /&gt;
| Linux                                         || OS kernel used in Firefox OS || Unknown &lt;br /&gt;
|-&lt;br /&gt;
| [https://lodash.com/ lodash] || JavaScript utility library, used by many of Mozilla&#039;s sites. || Webdev &amp;amp; Firefox Hello&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.list.org/ Mailman]     || [https://mail.mozilla.org/listinfo Mailing lists] || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.mediawiki.org/wiki/MediaWiki MediaWiki]     || You are reading this on a wiki || Sheeri Cabral&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.mercurial-scm.org/ Mercurial]    || Version control system and source code management || GPS &lt;br /&gt;
|-&lt;br /&gt;
| [http://mochajs.org/ Mocha] || JavaScript test runner || Cloud Services, Tarek Ziade&#039;s team (kinto.js); Firefox Hello team&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/kumar303/mohawk Mohawk] ||  Python library for Hawk HTTP authorization. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [http://mozdef.com mozdef]                    || Security event monitoring and incident response || Jeff Bryner&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.mingw.org/wiki/msys msys]         || Used to build Firefox on Windows. Note: It&#039;s likely best we support the newer MSYS2 project instead: https://github.com/msys2 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.mysql.com/ MySQL]                || Open source relational DB used by many developers, including AMO, SUMO, Input, bugzilla, releng, adminstered by IT || Sheeri Cabral&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.nagios.org/ Nagios]              || IT management system. Used for notifications of system failures || Sheeri Cabral, Ashish V.&lt;br /&gt;
|-&lt;br /&gt;
| [http://netsniff-ng.org/ netsniff-ng]                    || Linux networking toolkit || Michal Purzynski&lt;br /&gt;
|-&lt;br /&gt;
| nICEr                                         || Library for traversing firewalls || Unknown &lt;br /&gt;
|-&lt;br /&gt;
| [https://nixos.org NixOS]                     || Reproducible Linux distribution. Used by some developers || Nicolas B. Pierron&lt;br /&gt;
|-&lt;br /&gt;
| [https://nodejs.org Node.js]                  || JavaScript runtime for server side applications, command line utilities || Nick Desaulniers&lt;br /&gt;
|-&lt;br /&gt;
| nrappkit                                      || Toolkit for building standalone applications || Unknown &lt;br /&gt;
|-&lt;br /&gt;
| OpenH264 (Cisco)                              || H.264 video library || Unknown &lt;br /&gt;
|-&lt;br /&gt;
| [http://openresty.org OpenResty]              || a fast web app server by extending nginx, used by cloudops || Benson Wong (mostlygeek)&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.openssh.com/ OpenSSH]                 || Remote server management, secure transport for Git and Mercurial || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.openstreetmap.org OpenStreetMap]     || Online/offline maps, used by the location service and on mozilla.org || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.openLDAP.org/ OpenLDAP]                 || User management used by Infra || :jabba?&lt;br /&gt;
|-&lt;br /&gt;
| [https://openvpn.net/ Openvpn]                 || VPN used by Infra || :jabba?&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.inspircd.org/ inspircd]                 || Irc server used by mozilla || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [http://openssl.org/ OpenSSL]                 || Cryptograpahy and TLS Toolkit || Nick Desaulniers&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/khaledhosny/ots OTS]      || OpenType sanitizer used by Firefox to protect against security bugs in underlying platforms related to malicious fonts || Jonathan Kew &lt;br /&gt;
|-&lt;br /&gt;
| [https://www.owasp.org/index.php/ZAP OWASP ZAP]                 || Web security testing tool used by security and QA teams || Simon Bennetts (psiinon)&lt;br /&gt;
|-&lt;br /&gt;
| [https://owncloud.org/ Owncloud]                 || Open platform to host your cloud under your control || Some communities have been using it to host files under their control (ask Nukeador)&lt;br /&gt;
|-&lt;br /&gt;
| [https://pypi.python.org/pypi/parsimonious/ Parsimonious] || Parsing lib used by DXR and a few other sites (I think) || Erik Rose&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/mozilla/pdf.js PDF.js]                  || Used as the PDF Viewer in Firefox and Firefox OS || Brendan Dahl, Yury Delendik&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/PyCQA/pep8 pep8] || Python linter. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.perl.org/ Perl]                  || Used by Bugzilla || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/pypa/pip pip] || Python package tool. Used by all Python projects. || Erik Rose and Jannis Leidel, Jannis is core team member ([https://www.pypa.io/ PyPA])&lt;br /&gt;
|-&lt;br /&gt;
| [http://piwik.org/ Piwik] || Analytic software that gives you the control and respects privacy || Some communities have been using it to avoid GA analytics (Ask Nukeador)&lt;br /&gt;
|-&lt;br /&gt;
| [http://cmusphinx.sourceforge.net/ Pocketsphinx]       ||  Speech recognition toolkit embedded into Firefox OS|| André Natal&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.postgresql.org/ PostgreSQL]       || Open source relational DB used by many developers, adminstered by IT || Selena Deckelmann&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/PrismJS/prism Prism.js]       || Syntax highlighting on code samples on MDN || &lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/puppetlabs/puppet Puppet] || System administration tool || Member of Amy Rich&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/pyflakes/pyflakes pyflakes] || Python linter. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [http://pypy.org/ PyPy]                                        || Python language runtime. Used by Web Push service. || Cloud Services, esp. Ben Bangert&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Pylons/pyramid/ Pyramid] || Python Web framework || Cloud Services team&lt;br /&gt;
|-&lt;br /&gt;
| [http://pytest.org/ pytest] || Python testing tool. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| Python                                        || Scripting language || [http://python.org/psf/ Python Software Foundation], Selena Deckelmann is a former board member&lt;br /&gt;
|-&lt;br /&gt;
| [https://pypi.python.org/pypi/pyelasticsearch/ pyelasticsearch] || Python client for elasticsearch || Erik Rose&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.rabbitmq.com/ RabbitMQ]          || Distributed Queue, used by Socorro, Pulse (all our publicly available build/test/commit information flows through this), Treeherder, addons.mozilla.org (with Celery), marketplace.mozilla.org (with Celery) || Selena Deckelmann&lt;br /&gt;
|-&lt;br /&gt;
| [http://facebook.github.io/react/index.html ReactJS] || Javascript library for building user interfaces. Used by Firefox Hello &amp;amp; DevTools || Mark Banner&lt;br /&gt;
|-&lt;br /&gt;
| [https://readthedocs.org/ Read the Docs]   || Hosted automatically-built documentation, used by Cloud Services and a wide variety of mozilla Github projects || Ben Bangert, Jannis Leidel, Gervase Markham&lt;br /&gt;
|-&lt;br /&gt;
| [http://redis.io/ Redis]         || Really fast data structure store, cache and message broker || Cloud Services Tarek Ziade&#039;s team, Loop Server (Hello) team&lt;br /&gt;
|-&lt;br /&gt;
| [http://python-requests.org/ Requests] || &amp;quot;Python HTTP Requests for Humans&amp;quot;. Used by many many Mozilla Python projects. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.reviewboard.org/ Review Board]   || The base of MozReview, the new review tool being developed to replace Splinter || Steven MacLeod, Mike Conley&lt;br /&gt;
|-&lt;br /&gt;
| [http://wordlist.aspell.net/ SCOWL]         || en-US word list used for spell checking. || ehsan&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.seleniumhq.org/ Selenium]         || Browser test driver || stephend/AutomatedTester or jrgm/vladikoff&lt;br /&gt;
|-&lt;br /&gt;
| [http://sinonjs.org/ Sinon] || JavaScript mock library || Cloud Services, Tarek Ziade&#039;s team (kinto.js); Firefox Hello team&lt;br /&gt;
|-&lt;br /&gt;
| [https://slimerjs.org/ SlimerJS]              || Scriptable browser, based on Gecko, used for functional tests in some few Mozilla projects  ( [[PluotSorbet]], some FxOS apps ? and others ?) || Myk Melez&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.sqlalchemy.org/ SQLAlchemy]] || Database Toolkit and ORM for Python || bhearsum&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.sqlite.org/ SQLite]              || File-based database || khuey&lt;br /&gt;
|-&lt;br /&gt;
| [http://learnboost.github.io/stylus/ Stylus]              || CSS Pre-processor on several sites || webdev&lt;br /&gt;
|-&lt;br /&gt;
| [https://subversion.apache.org/ Subversion]   || https://svn.mozilla.org &#039;&#039;(Planning to decommission in near future)&#039;&#039; || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [http://http://suricata-ids.org/ suricata]                    || IDS / IPS / NSM engine || Michal Purzynski&lt;br /&gt;
|-&lt;br /&gt;
| [https://tox.readthedocs.org/en/latest/ Tox]  || Test automation || Tarek Ziade&#039;s Team&lt;br /&gt;
|-&lt;br /&gt;
| [https://travis-ci.org/ Travis]               || Continuous integration system used by several teams (eg Treeherder) || Jonathan Griffin&#039;s team &lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/mitchellh/vagrant Vagrant]|| Build and distribute dev envs, used by Treeherder and others || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [http://valgrind.org/ Valgrind]               || Memory error detection and profiling of C and C++ code || jseward, njn&lt;br /&gt;
|-&lt;br /&gt;
| [http://vim.org/ vim] || editor used by many developers || —&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/w3c/web-platform-tests web-platform-tests]  ||  Testcases and tooling for cross-browser testing of web-platform APIs                                             || jgraham&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.webrtc.org WebRTC.org]            || Components to support real-time communication in browsers and mobile applications || Randell Jesup &lt;br /&gt;
|-&lt;br /&gt;
| [http://www.wordpress.org WordPress]          || Powers our blogs, blog.mozilla.org || Craig Cook &lt;br /&gt;
|-&lt;br /&gt;
| [https://xiph.org Xiph.Org]                   || Media codecs ship in Firefox, encoding tools || Ralph Giles&lt;br /&gt;
|-&lt;br /&gt;
| [http://zlib.net zlib]                   || Streaming compression and decompression for HTTP, PNG, etc. ||&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Electrolysis&amp;diff=1161298</id>
		<title>Electrolysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Electrolysis&amp;diff=1161298"/>
		<updated>2017-01-29T11:18:16Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Use the correct case for the multiprocessCompatible flag.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Electrolysis functionality hosts, renders, or executes web related content in background [https://en.wikipedia.org/wiki/Child_process child processes] which communicate with the &amp;quot;parent&amp;quot; Firefox browser via various [https://developer.mozilla.org/en-US/docs/IPDL ipdl protocols]. The two major advantages of this model are security and performance. Security improvements are accomplished through security sandboxing, performance improvements are born out of the fact that multiple processes better leverage available client computing power.&lt;br /&gt;
&lt;br /&gt;
Electrolysis child processes are currently in use for the following tasks within Firefox:&lt;br /&gt;
&lt;br /&gt;
* Legacy NPAPI plugin hosting&lt;br /&gt;
* Media playback&lt;br /&gt;
* Web content (&#039;content processes&#039;)&lt;br /&gt;
&lt;br /&gt;
In the future Electrolysis child processes may be used to handle other browser tasks including graphical composition, and addon hosting for addons that leverage the new [[WebExtensions]] apis.&lt;br /&gt;
&lt;br /&gt;
In Mozilla documentation &amp;quot;Electrolysis&amp;quot; is often shorted as &amp;quot;e10s&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
=== Nightly/Aurora ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re on Nightly or Aurora, e10s is already enabled by default! A user-facing checkbox is available for controlling Electrolysis functionality. Open Preferences and check the &amp;quot;Enable multi-process&amp;quot; checkbox and then restart your browser:&lt;br /&gt;
&lt;br /&gt;
[[File:E10s-toggle-in-preferences.png|324x150px|frameless|Nightly &amp;gt; Preferences &amp;gt; General &amp;gt; Enable multi-process]]&lt;br /&gt;
&lt;br /&gt;
=== Firefox Beta ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re currently using Firefox Beta you might be testing e10s already, check &#039;&#039;about:support&#039;&#039; and look for a number higher than 0 in the &amp;quot;Multiprocess Windows&amp;quot; entry. If you would like to opt-in to help us test open &#039;&#039;about:config&#039;&#039; and toggle &#039;&#039;&#039;browser.tabs.remote.autostart&#039;&#039;&#039; to true. On your next restart, e10s should  be active.&lt;br /&gt;
&lt;br /&gt;
=== Firefox Release ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re using Firefox 48 or later, you might be using e10s already. Check about:support and look for a number higher than 0 in the &amp;quot;Multiprocess Windows&amp;quot; entry. If you would like to opt-in, open about:config and toggle browser.tabs.remote.autostart to true. On your next restart, e10s should be active.&lt;br /&gt;
&lt;br /&gt;
=== Force Enable ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve tried enabling e10s following the instruction above, but your &#039;&#039;about:support&#039;&#039; indicates that e10s is disabled (e.g., accessibility, add-ons can trigger this), you can force e10s on for testing purposes. Within &#039;&#039;about:config&#039;&#039; create a new boolean pref named &#039;&#039;&#039;browser.tabs.remote.force-enable&#039;&#039;&#039; and set it to true. This is not encouraged, use it at your own risk!&lt;br /&gt;
&lt;br /&gt;
== Schedule and Status ==&lt;br /&gt;
&lt;br /&gt;
A single content process model is currently being tested on Nightly, Aurora and Beta channels. See the schedule below for planned rollout to release. A multiple content process model (e10s-multi) will roll out in a follow up release. View the [https://wiki.mozilla.org/Electrolysis/Multiple_content_processes Multiple Content Process] wiki page for more information.&lt;br /&gt;
&lt;br /&gt;
=== Schedule ===&lt;br /&gt;
&lt;br /&gt;
The following schedule covers rollout of the single content process feature to release builds. &lt;br /&gt;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Date !! Trunk !! Aurora !! Beta !! Release !! Target % !! Actual %&lt;br /&gt;
|-&lt;br /&gt;
| 2015-04-30 || 40 default (working on m5) || 39 off || 38 off || 37 off || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 2015-05-11 || 41 default (working on m6) || 40 prompt || 39 off || 38 off || - ||- &lt;br /&gt;
|-&lt;br /&gt;
| 2015-06-29 || 42 default (working on m7/m8) || 41 prompt|| 40 off || 39 off || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 2015-08-10 || 43 default (working on m8) || 42 default || 41 off || 40 off || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 2015-09-21 || 44 default || 43 default || 42 off || 41 off || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 2015-11-02 || 45 default || 44 default || 43 off || 42 off || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 2015-12-14 || 46 default || 45 default || 44 A/B [1] || 43 off || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 2016-01-25 || 47 default || 46 default || 45 A/B [1] || 44 off|| - || - &lt;br /&gt;
|-&lt;br /&gt;
| 2016-03-07 || 48 default || 47 default || 46 A/B [1] || 45 off|| - || - &lt;br /&gt;
|-&lt;br /&gt;
| 2016-04-25 || 49 default || 48 default || 47 50% [1][2] || 46 off|| - || -&lt;br /&gt;
|-&lt;br /&gt;
| 2016-06-06 || 50 default || 49 default || 48 [1][2] || 47 off|| -||-&lt;br /&gt;
|-&lt;br /&gt;
| 2016-08-01 || 51 default[6] || 50 default || 49 [2][4]|| 48 ON [3] || 41% || 30-33%&lt;br /&gt;
|-&lt;br /&gt;
| 2016-09-19 || 52 default [7][8] || 51 default[6] || 50 default [4] || 49 ON [5] || + 3-4% || 35%&lt;br /&gt;
|-&lt;br /&gt;
|2016-11-07 || 53 default [8] || 52 default [7]|| 51 default [6] || 50 ON [5]|| + 6-12%|| &lt;br /&gt;
|- &lt;br /&gt;
|2017-01-24 || 54 default || 53 default [8] || 52 default [7] || 51 ON [*]|| * || &lt;br /&gt;
|-&lt;br /&gt;
|2017-03-07 || 55 default || 54 default || 53 default || 52 ON [*]|| *|| &lt;br /&gt;
|-&lt;br /&gt;
|2017-04-18 || 56 default || 55 default || 54 default || 53 ON [*] || * || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] qualifying users: users that do not use addons and have not activated accessibility support over 30 days.&amp;lt;br/&amp;gt;&lt;br /&gt;
[2] full run across the entire beta period&amp;lt;br/&amp;gt;&lt;br /&gt;
[3] 1% of qualifying users with ramp up to 100% during the release cycle&amp;lt;br/&amp;gt;&lt;br /&gt;
[4] White listed Add-Ons + Add-Ons created as a WebExtension testing on beta, full cycle &amp;lt;br/&amp;gt;&lt;br /&gt;
[5] White listed Add-Ons + Add-Ons created as a WebExtension shipping on Release&amp;lt;br/&amp;gt;&lt;br /&gt;
[6] A11y+ Windows 8 touch screen support enabled, not riding trains&amp;lt;br/&amp;gt;&lt;br /&gt;
[7] A11y + Windows 8 riding trains&amp;lt;br/&amp;gt;&lt;br /&gt;
[8] E10s Multi Enabled, Not riding trains&amp;lt;br/&amp;gt;&lt;br /&gt;
[*] indicates the goal for the release has yet to be planned&lt;br /&gt;
&lt;br /&gt;
=== Add-ons Schedule ===&lt;br /&gt;
&lt;br /&gt;
The following schedule rollout of Electrolysis as it releases specifically to add-ons. Each release of Firefox will add more and more add-ons to the cohort of users who get multi process Firefox.  &lt;br /&gt;
&lt;br /&gt;
Users with add-ons not in yet the cohort to get multi-process, will continue to run Firefox (as before) without e10s enabled.&lt;br /&gt;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Version !! Cohort&lt;br /&gt;
|-&lt;br /&gt;
| 49 || limited experimental set of Extensions and all WebExtensions &lt;br /&gt;
|-&lt;br /&gt;
| 50 || all Extensions marked &amp;quot;multiprocessCompatible&amp;quot; and all WebExtensions [1]&lt;br /&gt;
|-&lt;br /&gt;
| 51 || all Extensions and all WebExtensions [1], [2], [3]&lt;br /&gt;
|-&lt;br /&gt;
| 52 || as in 51 [2], [3]&lt;br /&gt;
|-&lt;br /&gt;
| 53 || as in 52 [2], [3]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] Before each stage moves from beta to release, there are release criteria (crashes, jank etc) that need to be met.  We will delay moving to Release if issues are identified in Beta.  &lt;br /&gt;
&lt;br /&gt;
[2] Initially [https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Multiprocess_Firefox_and_the_SDK#Testing_your_add-on Shims] will be available that will help certain add-ons with compatibility.  These are a temporary measure due to potential [https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox/Cross_Process_Object_Wrappers#Limitations_of_CPOWs limitations] that could impact user experience.&lt;br /&gt;
&lt;br /&gt;
[3] With the exception of Extensions marked explicitly as NOT multiprocessCompatible.&lt;br /&gt;
&lt;br /&gt;
For information on add-on support rollout see the [https://wiki.mozilla.org/Add-ons Add-on Project Wiki].&lt;br /&gt;
&lt;br /&gt;
===Staged Roll-Out Plan===&lt;br /&gt;
To read a summary of the Roll-Out plan, see [https://asadotzler.com/ Asa&#039;s blog]. &lt;br /&gt;
&lt;br /&gt;
=== Windows XP ===&lt;br /&gt;
Due to [https://wiki.mozilla.org/Electrolysis/XP stability issues] Windows XP is currently not leveraging e10s on release channel.  XP and Vista will move out to Extended Support Release (ESR) 45 when 45 merges to release ({{bug|1303827}}). As such there are no plans to support e10s for XP/Vista in the future. &lt;br /&gt;
&lt;br /&gt;
=== Weekly Status Reports ===&lt;br /&gt;
==2015==&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Nov13 Nov 13]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Nov20 Nov 20]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Nov27 Nov 27]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Dec4 Dec 4]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Dec22 Dec 22]&amp;lt;br&amp;gt;&lt;br /&gt;
==2016==&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Jan15 Jan 15]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Jan29 Jan 29]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Feb12 Feb 12]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/March29 March 29]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/April8 April 8]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/April22 April 22]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/May5 May 6]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/May20 May 20]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/July1 July 1]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/July8 July 8]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/July22 July 22]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/July22 July 29]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Aug05 Aug 05]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Aug12 Aug 12]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Aug26 Aug 26]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Sept2 Sept 2]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Sept9 Sept 9]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Sept23 Sept 23]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Oct 3 Oct 3]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Oct11 Oct 11]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Oct24 Oct 24]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Nov3 Nov 3]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Dec1 Dec 1]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://wiki.mozilla.org/E10s/Status/Dec23 Dec 23]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2017==&lt;br /&gt;
&lt;br /&gt;
== Experiments ==&lt;br /&gt;
There&#039;s a dedicated page for the experiments: [[Electrolysis/Experiments|E10s Experiments]]&lt;br /&gt;
&lt;br /&gt;
== Contributing ==&lt;br /&gt;
&lt;br /&gt;
The simplest way to help out is to test a release that has e10s enabled, and file bug when you find them. Please try to find duplicates prior to filing.&lt;br /&gt;
&lt;br /&gt;
For developers interested in helping out, MDN has a [https://developer.mozilla.org/en-US/Add-ons/Working_with_multiprocess_Firefox good introduction to e10s], useful for both Firefox and add-on developers.&lt;br /&gt;
&lt;br /&gt;
== Security Sandboxing ==&lt;br /&gt;
&lt;br /&gt;
See the [https://wiki.mozilla.org/Security/Sandbox Security Sandbox] wiki page for more information and status.&lt;br /&gt;
&lt;br /&gt;
== Accessibility Support ==&lt;br /&gt;
See the [https://wiki.mozilla.org/Electrolysis/Accessibility e10s Accessibility] wiki page for support implementation detail.&lt;br /&gt;
&lt;br /&gt;
== Add-ons Compatibility ==&lt;br /&gt;
&lt;br /&gt;
Add-on authors should refer to the MDN [https://developer.mozilla.org/en-US/Add-ons/Working_with_multiprocess_Firefox Firefox Add-on Migration Guide] for porting existing add-ons to e10s. For general design information see the [https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox Multiprocess Firefox] MDN documentation. Add-on testing compatibility is currently available at http://arewee10syet.com.&lt;br /&gt;
&lt;br /&gt;
For more information about Add-on issue mitigation and rollout of e10s to add-on users, see the [https://wiki.mozilla.org/Add-ons Add-on Project Wiki] page.&lt;br /&gt;
&lt;br /&gt;
== Past Milestones ==&lt;br /&gt;
&lt;br /&gt;
* 2014-09-11 - {{bug|1064885}} - Enable opt-in option for Nightly&lt;br /&gt;
* 2014-11-13 - {{bug|1093691}} - Enabled for Nightly builds&lt;br /&gt;
* 2015-05-08 - {{bug|1161260}} - Enable opt-in option for Aurora&lt;br /&gt;
* 2015-07-28 - {{bug|1182097}} - Disabled on Aurora for about 1 week due to a bug in a11y prompting&lt;br /&gt;
* 2015-07-31 - {{bug|1188605}} - Enabled for Aurora builds&lt;br /&gt;
* 2015-12-15 - {{bug|1229104}} - Beta testing&lt;br /&gt;
* 2016-08-01 - Enabled for non-add-on users in Release 48 / Beta testing of add-on users in 49&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable fullwidth-table&amp;quot;&lt;br /&gt;
 | Weekly Cross Functional&amp;lt;br/&amp;gt;Covering current e10s status, multi-e10s, add-ons rollout, and sandboxing.&lt;br /&gt;
|| Fridays @ 10am Pacific&lt;br /&gt;
* Vidyo: [https://v.mozilla.com/flex.html?roomdirect.html&amp;amp;key=njJM9NHQBt2a &amp;quot;e10s&amp;quot;]&lt;br /&gt;
* Invitation: Contact Erin Lancaster (:elan) for an invite.&lt;br /&gt;
* [https://docs.google.com/document/d/1MS8ol0vJPQ2eNnbZTr6lQABxRBt5KtvuTAfwlMihMls/edit Meeting Notes]&lt;br /&gt;
|-&lt;br /&gt;
 | Weekly Team Meeting&amp;lt;br/&amp;gt;(No longer active)&lt;br /&gt;
|| [http://arewemeetingyet.com/Los_Angeles/2014-04-24/09:00/w/E10s Weekly Team Meeting Thursday at 9:00am PT]&lt;br /&gt;
* Vidyo: [https://v.mozilla.com/flex.html?roomdirect.html&amp;amp;key=njJM9NHQBt2a &amp;quot;e10s&amp;quot;]&lt;br /&gt;
* Invitation: Contact blassey, jimm, or larissa to get added to the meeting invite list.&lt;br /&gt;
* [https://wiki.mozilla.org/Electrolysis/Meetings Meeting Notes]&lt;br /&gt;
|-&lt;br /&gt;
| Weekly Addons Design Meeting&amp;lt;br/&amp;gt;(No longer active)&lt;br /&gt;
|| &lt;br /&gt;
* Vidyo: [https://v.mozilla.com/flex.html?roomdirect.html&amp;amp;key=njJM9NHQBt2a &amp;quot;e10s&amp;quot;]&lt;br /&gt;
* Invitation: Contact billm to get added to the meeting invite list.&lt;br /&gt;
* [https://e10s.etherpad.mozilla.org/addons-notes Meeting Notes Etherpad]&lt;br /&gt;
|-&lt;br /&gt;
| IRC&lt;br /&gt;
|| &lt;br /&gt;
* Server: irc.mozilla.org&lt;br /&gt;
* Channel: [irc://irc.mozilla.org/e10s #e10s]&lt;br /&gt;
|-&lt;br /&gt;
| Newsgroup/Mailing List&lt;br /&gt;
|| &lt;br /&gt;
* https://lists.mozilla.org/listinfo/dev-tech-electrolysis&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==People==&lt;br /&gt;
 {| class=&amp;quot;wikitable fullwidth-table&amp;quot;&lt;br /&gt;
| Engineering Management&lt;br /&gt;
||&lt;br /&gt;
* Brad Lassey&lt;br /&gt;
|-&lt;br /&gt;
|Product Management&lt;br /&gt;
||&lt;br /&gt;
*Jeff Griffiths&lt;br /&gt;
|-&lt;br /&gt;
| Project Management&lt;br /&gt;
||&lt;br /&gt;
* Erin Lancaster - e10s Go to Market&lt;br /&gt;
* Shell Escalante - Add-Ons&lt;br /&gt;
|-&lt;br /&gt;
| QA&lt;br /&gt;
||&lt;br /&gt;
* Tracy Walker (e10s Quality Assurance Lead)&lt;br /&gt;
|-&lt;br /&gt;
| Development Team&lt;br /&gt;
|| &lt;br /&gt;
* Mike Conley&lt;br /&gt;
* Felipe Gomes&lt;br /&gt;
* Blake Kaplan&lt;br /&gt;
* Gabor Krizsanits&lt;br /&gt;
* William McCloskey&lt;br /&gt;
* Jim Mathies&lt;br /&gt;
* Tom Schuster&lt;br /&gt;
* Dave Townsend&lt;br /&gt;
* George Wright&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Meeting Notes ==&lt;br /&gt;
&lt;br /&gt;
[https://wiki.mozilla.org/Electrolysis/Meetings Link]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
* [https://developer.mozilla.org/en-US/Add-ons/Working_with_multiprocess_Firefox MDN: Working with multiprocess Firefox]&lt;br /&gt;
* [https://developer.mozilla.org/en-US/docs/The_message_manager The message manager]&lt;br /&gt;
* [https://developer.mozilla.org/en-US/docs/Cross_Process_Object_Wrappers Cross-process object wrappers]&lt;br /&gt;
* [[Electrolysis/Archive | Archive of past content on this page]]&lt;br /&gt;
* [https://etherpad.mozilla.org/uYS8ZplOMU Electrolysis platform notes]&lt;br /&gt;
* [https://etherpad.mozilla.org/rRk4aEHkwC Notes on the Chromium IPC library]&lt;br /&gt;
* [https://docs.google.com/a/mozilla.com/spreadsheet/ccc?key=0AhFRRYurPzRndHQwUVNscThIbFBsYmNRaU44LVlDdlE#gid=0 Addon Compatibility Test Results]&lt;br /&gt;
* [http://mxr.mozilla.org/mozilla-central/source/dom/base/nsIMessageManager.idl#15 IDL comments about Message Manager]&lt;br /&gt;
* Tim Taubert&#039;s [http://timtaubert.de/blog/2011/08/firefox-electrolysis-101/ &amp;quot;Firefox Electrolysis 101&amp;quot;] blog post (2011)&lt;br /&gt;
* [[Electrolysis/e10s test tips|Tips for converting tests to be e10s compatible]]&lt;br /&gt;
* [[Electrolysis/Performance_Optimization|Performance optimization tips]]&lt;br /&gt;
* [https://www.mozilla.org/firefox/channel/ Download Beta, Developer, or Release]&lt;br /&gt;
* [https://nightly.mozilla.org/ Download Nightly]&lt;br /&gt;
&lt;br /&gt;
== Bug Lists ==&lt;br /&gt;
=== Nightly enable blockers ===&lt;br /&gt;
* M2 bugs: http://tinyurl.com/mjywvmb  (one leftover bug, assigned m5+, 1047603)&lt;br /&gt;
* M3 bugs: http://tinyurl.com/n7jekh6 (all resolved + dependencies resolved)&lt;br /&gt;
=== Aurora uplift blockers (plus dev. tools) ===&lt;br /&gt;
* M4 bugs: http://is.gd/fi3ByM&lt;br /&gt;
* M5 bugs: http://is.gd/hNTLWk&lt;br /&gt;
* M6 bugs: http://is.gd/1Dw8gN&lt;br /&gt;
* M4–M6 bugs: http://is.gd/drPSBc&lt;br /&gt;
=== Beta blockers ===&lt;br /&gt;
* M7 bugs: http://is.gd/HQGwVi&lt;br /&gt;
* M8 bugs: http://is.gd/Au5e7x&lt;br /&gt;
=== GA Blockers ===&lt;br /&gt;
* M9 Actionable Bugs: http://is.gd/qufPe0&lt;br /&gt;
* M9 plus RC Meta Bugs: http://is.gd/tv81Zf&lt;br /&gt;
* M9 RC Metas: http://is.gd/hTHo9U&lt;br /&gt;
* RC Meta Children: http://is.gd/eKcXxH&lt;br /&gt;
=== Summary Lists ===&lt;br /&gt;
* M7–M8 bugs: http://is.gd/YPXLZT&lt;br /&gt;
* M4–M8 bugs: http://is.gd/16YH4l&lt;br /&gt;
=== Devtools Lists ===&lt;br /&gt;
* e10s-m7 and e10s-m8 bugs: http://is.gd/zrzaRw&lt;br /&gt;
* e10s-m4 through e10s-m8 bugs: http://is.gd/Ra53os&lt;br /&gt;
=== Performance bugs (e10s-perf) ===&lt;br /&gt;
* Complete e10s-perf List: http://is.gd/izIbfl&lt;br /&gt;
* P1: http://is.gd/N4Kska&lt;br /&gt;
* P2: http://is.gd/tricyk&lt;br /&gt;
=== Future ===&lt;br /&gt;
* tracking-e10s:+ P1: http://is.gd/ztBxgX (no tests or sdk bugs)&lt;br /&gt;
* tracking-e10s:+ P1: http://is.gd/syKhQ8 (everything)&lt;br /&gt;
* tracking-e10s:+ P2: http://is.gd/NnCvUQ&lt;br /&gt;
* tracking-e10s:+ P3: http://is.gd/PD3PI8&lt;br /&gt;
* tracking-e10s:+ P4: http://is.gd/K6dCIq&lt;br /&gt;
* tracking-e10s:later: http://is.gd/B1cfnm&lt;br /&gt;
=== Triage Lists ===&lt;br /&gt;
* e10s Triage List: https://is.gd/S0iUXW&lt;br /&gt;
* e10s-perf Triage List: http://is.gd/5R5Leo&lt;br /&gt;
* e10s needinfo Triage List: http://is.gd/MoraEb&lt;br /&gt;
* tracking-e10s:? specific needinfo List: http://is.gd/vsPqdk&lt;br /&gt;
* Add-on triage List: http://is.gd/P2aqLC&lt;br /&gt;
* tracking-e10s:+ List: http://is.gd/ybrg68&lt;br /&gt;
** minus needinfos&lt;br /&gt;
** minus Summary containing &#039;intermittent&#039;, &#039;test&#039;, &#039;addon&#039;, &#039;add-on&#039;&lt;br /&gt;
** minus Keywords containing &#039;meta&#039;, &#039;qawanted&#039;&lt;br /&gt;
** minus bugs with a priority set&lt;br /&gt;
** not blocking {{bug|apz-desktop}}, {{bug|e10s-tests}}, {{bug|e10s-perf}}, {{bug|e10s-addons}}, {{bug|e10s-gfx}}, {{bug|e10s-sdk}}, {{bug|e10sa11y2}}, {{bug|e10s-ime}}, {{bug|dte10s}}, {{bug|e10s-social}}, {{bug|e10s-multi}}, {{bug|e10s-harness}}&lt;br /&gt;
* tracking-e10s:+ needinfos List: http://is.gd/YADITg&lt;br /&gt;
* RTL Blockers: http://is.gd/cKUiNa&lt;br /&gt;
&lt;br /&gt;
=== Misc. Trackers ===&lt;br /&gt;
* Accessibility tracker: https://bugzilla.mozilla.org/show_bug.cgi?id=1029143&lt;br /&gt;
* Devtools bug tracking: https://etherpad.mozilla.org/devtools-e10s-statuses&lt;br /&gt;
=== &#039;&#039;&#039;Uplift candidates&#039;&#039;&#039;: (M9 and P1 tracking+ bugs fixed in FF 48 but not 47) ===&lt;br /&gt;
* https://wiki.mozilla.org/E10s/Status/m9&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Community:SummerOfCode15&amp;diff=1109466</id>
		<title>Community:SummerOfCode15</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Community:SummerOfCode15&amp;diff=1109466"/>
		<updated>2015-12-16T11:08:42Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Firefox */ Not mentoring the Download Integrity project right now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists all the [[SummerOfCode|Google Summer of Code]] 2015 projects with confirmed mentors, and which have been approved by the SoC administrator. New suggestions can be made on [[Community:SummerOfCode15:Brainstorming|the Brainstorming page]]. Do not edit this page yourself; contact Florian for edits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential students&#039;&#039;&#039;: you may choose from the list below, &#039;&#039;&#039;but you do not have to&#039;&#039;&#039;. Feel free to submit a proposal for your own idea. However, before you do so, see the [[Community:SummerOfCode15:Brainstorming|guidelines for good ideas]]. You can also discuss your ideas or application in the #introduction channel on IRC: irc://irc.mozilla.org/#introduction . Your idea will have a significantly greater chance of being chosen if you can find an existing member of the Mozilla community who is willing to evaluate or mentor it. (You should name that person in your application.)&lt;br /&gt;
&lt;br /&gt;
In addition to the specifically-named projects below, we have also tagged a number of bugs in Bugzilla with the keyword [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&amp;amp;keywords_type=allwords&amp;amp;keywords=student-project&amp;amp;resolution=--- student-project]. However, as the idea of a &amp;quot;student project&amp;quot; is wider than just the Summer of Code, students looking through the list will need to decide whether any particular bug listed there is actually the right size and scope for Summer of Code.&lt;br /&gt;
&lt;br /&gt;
==Application Advice==&lt;br /&gt;
&lt;br /&gt;
You should do the following:&lt;br /&gt;
&lt;br /&gt;
* Talk to the mentor. Contact details are on this page; if all you have is a nickname, get on [[IRC|IRC]] and try and contact them.&lt;br /&gt;
* Read the [https://flossmanuals.net/GSoCStudentGuide/ GSoC Student Guide] and follow its advice.&lt;br /&gt;
* Read [http://blog.gerv.net/2006/05/how_not_to_apply_for_summer_of/ How Not To Apply For Summer Of Code] and avoid doing the things listed there.&lt;br /&gt;
* Read our examples of good applications: [[SummerOfCode/SampleApplications/1|1]], [[SummerOfCode/SampleApplications/2|2]], [[SummerOfCode/SampleApplications/3|3]].&lt;br /&gt;
* Apply on [http://www.google-melange.com/gsoc/homepage/google/gsoc2015 the GSoC site] (note that we have an [[SummerOfCode/ApplicationTemplate|application template]]).&lt;br /&gt;
* It is entirely acceptable to apply for 2 or 3 projects, if more than one catches your eye; if the applications are high quality, that can improve your chances. However, more than 3 seems like spam.&lt;br /&gt;
&lt;br /&gt;
Note that if a project suggests it would be helpful to know XUL (Mozilla&#039;s user interface description language), you may be able to get away with learning on the job. Don&#039;t be put off from applying if the project otherwise looks right for you.&lt;br /&gt;
&lt;br /&gt;
Questions about individual projects are best addressed to the potential mentor of that project. These should be listed in the table below. If you want to contact a mentor and contact details are not here, ask people in the #introduction channel on IRC: irc://irc.mozilla.org/#introduction. If you have questions of any other sort, send mail to [mailto:florian@queze.net,clokep@gmail.com Florian and Patrick]. We will try and respond as soon as possible and get your questions directed to the right person.  Please allow at least 48 hours for a reply.&lt;br /&gt;
&lt;br /&gt;
== Firefox ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Download Integrity&lt;br /&gt;
| Enhance detection of broken downloads in Firefox. Methods may include:&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;[http://www.w3.org/TR/SRI/#the-a-element-1 Subresource Integrity for the &amp;lt;a&amp;gt; element]&amp;lt;li&amp;gt;[[Features/HTTP_Digest_header_verification#Stage_1:_Definition|HTTP Digest header verification]]&amp;lt;li&amp;gt;Network-level indications like bad HTTP framing&amp;lt;/ul&amp;gt;The activities include:&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Implement the front-end in JavaScript to display failed integrity checks&amp;lt;li&amp;gt;Implement and/or use the required back-end features in C++&amp;lt;li&amp;gt;Work with the Mozilla community to discuss and refine the behavior of the feature, including which methods should be implemented first&amp;lt;/ul&amp;gt;&lt;br /&gt;
| C++, JavaScript&lt;br /&gt;
| [https://mozillians.org/en-US/u/paolo/ Paolo]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firefox Developer Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Source Map Library&lt;br /&gt;
| This project would implement missing library support for certain of the source map spec, specifically &amp;quot;indexed&amp;quot; source maps, and experimenting with extensions for encoding the original source code&#039;s lexical environment in the source map.&lt;br /&gt;
| JavaScript, Node.js&lt;br /&gt;
| [https://mozillians.org/en-US/u/fitzgen/ fitzgen]&lt;br /&gt;
| [https://mozillians.org/en-US/u/fitzgen/ fitzgen]&lt;br /&gt;
| Easy for a contributor to ramp up on, because it can be done completely in Node.js without needing to build Firefox.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firefox OS / Boot2Gecko ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mozilla Platform (Gecko) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title&lt;br /&gt;
! Details&lt;br /&gt;
! Skills Needed&lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Thunderbird ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Mailbox-to-maildir converter&lt;br /&gt;
|  Mailbox and Maildir are two alternative on-disk storage formats for email messages. Thunderbird currently uses Mailbox, but wants to use Maildir. Hence the need for a converter. This is one of the last critical pieces blocking moving away from mbox-style mailboxes. See {{bug|856087}}. &lt;br /&gt;
| JavaScript, C++&lt;br /&gt;
| jcranmer&lt;br /&gt;
| rkent&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Alternate protocol for mailnews folders&lt;br /&gt;
| Thunderbird has long-term plans to implement a variety of mail and mail-like protocols to be managed as mailnews folders. An existing addon (SkinkGlue) exists to provide the glue for this. Implement one other protocol, which might be Fastmail&#039;s JMAP, or Calendar events &amp;amp; tasks&lt;br /&gt;
| JavaScript&lt;br /&gt;
| rkent&lt;br /&gt;
| rkent and, depending on protocol brong from Fastmail, or Fallen&lt;br /&gt;
| I doubt having 2 twitter implementations in Thunderbird is a valuable investment of time. JMAP seems the most promising protocol idea here; do we know if brong is on board to (co-)mentor this? Even though the code would be primarily written in JS, I suspect having some C++ skills to be able to understand some of mailnews&#039; internals would be very helpful.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Instantbird ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Improve the JavaScript XMPP implementation and implement new features.&lt;br /&gt;
| Includes better error handling, implementing multi-user chats (MUCs), test coverage and adding new/missing features. Feature-parity with libpurple&#039;s XMPP implementation is one of the prerequisites for replacing it with the JavaScript implementation and is an end-goal of this project. Students are expected to compile a list of bugs or unimplemented features in the JavaScript XMPP code.&lt;br /&gt;
| JavaScript, XPCOM, an understanding of XMPP is desired&lt;br /&gt;
| Florian Quèze&lt;br /&gt;
| aleth, Patrick Cloke [:clokep]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Implement a new protocol plug-in in JavaScript&lt;br /&gt;
| Instantbird supports protocol plugins implemented in JavaScript. The student will add support for a new protocol in Instantbird. The student working on new protocols should take every opportunity to improve the code and APIs shared by all JavaScript protocol plugins (IRC, XMPP, Yahoo and Twitter). It is expected that the student research the feasibility of interoperability concerns of the protocol during the application period. Students are expected to implement a protocol they use on a day-to-day basis to dog-food the code.&lt;br /&gt;
| JavaScript, XPCOM, maybe js-ctypes, understanding of network protocols&lt;br /&gt;
| Patrick Cloke&lt;br /&gt;
| Patrick Cloke [:clokep]&lt;br /&gt;
| Possible protocols include: Google Hangouts, Facebook, WhatsApp, SIP, Bonjour, OSCAR, TextSecure or Telegram&lt;br /&gt;
|-&lt;br /&gt;
| File transfer support&lt;br /&gt;
| API design, backend implementation, frontend UI for supporting file transfers in Instantbird.&lt;br /&gt;
| XPCOM, JavaScript, webrtc, networking protocols&lt;br /&gt;
| nhnt11&lt;br /&gt;
| Patrick Cloke [:clokep]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Calendar ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Introducing Calendar Accounts&lt;br /&gt;
| Traditionally our calendar extension is organized into a list of calendars, each calendar being implemented by a “provider”, for example local storage or using the CalDAV protocol. The service to manage these calendars maintains a simple list, the entries have no connection to each other.&lt;br /&gt;
Some calendar providers would greatly benefit from being able to group calendars into accounts, for example free-busy lookups are usually per-server operations and not per-calendar. It would also open the door for some great new features that have been postponed because they can be implemented cleaner with the notion of accounts.&lt;br /&gt;
| XUL, CSS, JavaScript&lt;br /&gt;
| [mailto:mozilla@kewis.ch Fallen]&lt;br /&gt;
| [mailto:mozilla@kewis.ch Fallen]&lt;br /&gt;
| [[Media:Calendar-gsoc2015-calmgr.pdf|Click here for a detailed project description]]&lt;br /&gt;
|-&lt;br /&gt;
| Resource Booking Improvements&lt;br /&gt;
| The Lightning extension has a dialog for inviting attendees to an event, which also shows availability information. Albeit not very obvious, it also allows booking resources and rooms. To improve this experience we would like users to be able to pick rooms and resources in a way that they don&#039;t need to remember the room address and quickly see which rooms and resources exist and are available around the proposed time of the event.&lt;br /&gt;
| XUL, CSS, JavaScript&lt;br /&gt;
| [mailto:mozilla@kewis.ch Fallen]&lt;br /&gt;
| [mailto:mozilla@kewis.ch Fallen]&lt;br /&gt;
| [[Media:Calendar-gsoc2015-resourcebooking.pdf|Click here for a detailed project description]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bugzilla ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Bugzilla Extension Exchange Format&lt;br /&gt;
| Write an installer script for Bugzilla extensions&lt;br /&gt;
| Perl&lt;br /&gt;
| dylan (dylan@mozilla.com)&lt;br /&gt;
| dylan&lt;br /&gt;
| Spec: http://hardison.net/~dylan/BEEF.html&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Accessibility ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Automation &amp;amp; Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Performance Alerts Release Management Toolchain&lt;br /&gt;
| This GSOC project will deliver functionality of detecting alerts as they merge between branches.  This is mostly important for regressions, but should also include improvements.  We generate thousands of performance alerts every year, and we need a way to look at the high level of what is concerning while having the ability to drill down and understand what small details make up the bigger problems.  This depends on us seeing these regression when the code was originally introduced and action being taken to file a bug.  In many cases we have preferences that turn features on and off which will have an affect on the alerts that we care about.  The target here is a release manager can go to a dashboard, and see the state of the release (most important after uplifting code) and get a list of bugs that are of interest. &lt;br /&gt;
&lt;br /&gt;
This will be integrating a system into TreeHerder to store alerts and allow graphs of the data to be annotated.  There will be an API so alert can be generated from other sources and managed by other tools as well.&lt;br /&gt;
&lt;br /&gt;
| Python, AngularJS, SQL, Javascript &lt;br /&gt;
| [[https://mozillians.org/en-US/u/jmaher/ Joel Maher]]&lt;br /&gt;
| [[https://mozillians.org/en-US/u/wlach/ Will Lachance]], [[https://mozillians.org/en-US/u/jmaher/ Joel Maher]]&lt;br /&gt;
| The impact here is the ability for developers and release managers to see the performance impact of their changes while helping us track this.&lt;br /&gt;
|-&lt;br /&gt;
| Retry failures in automation and provide annotations for intermittent failures vs real failures &lt;br /&gt;
| Of the thousands of unitests which are run for each platform and each push we find many intermittent failures.  This is a pain point for developers when they test their code on try server.  Now that we have TreeHerder, it isn&#039;t much work to automatically annotate jobs as intermittent or a regression/failure.  In mochitest we have --bisect-chunk which will retry the given test and determine if it is an intermittent or a real regression.  The goal here is to do this automatically for all jobs on try server.  Jobs will still turn orange.  With the outcome of this project failures would need to have a different view in the UI.&lt;br /&gt;
| Python, Javascript&lt;br /&gt;
| [[https://mozillians.org/en-US/u/jmaher/ Joel Maher]]&lt;br /&gt;
| [[https://mozillians.org/en-US/u/jmaher/ Joel Maher]]&lt;br /&gt;
| This will build off an existing set of tools while helping us bridge the gap towards a much better review and automated landing of patches system.  In the short term, this will aid in developers who see failures and either do multiple pushes, many retriggers, or just ignore them- in summary we will not need to worry as much about wasting resources related to intermittents.&lt;br /&gt;
|-&lt;br /&gt;
| Unittest sanitizer &lt;br /&gt;
| With our thousands of test files, there are hundreds that have dangerous api calls which result in leftover preferences, permissions, and timing issues.  A lot of work has been done here, we need to fix tests and expand our work on these resources to all our tests.  In addition to cleaning up dangerous test code, we need to understand our tests and how reliable they are.  We need to build tools that will allow us to determine how safe and reliable our tests are individually and as part of a suite.  Upon completion of this project we should have the majority of tests cleaned up, and a toolchain that can be easily run and generate a report on how stable each test is.&lt;br /&gt;
| Python, Javascript&lt;br /&gt;
| [[https://mozillians.org/en-US/u/jmaher/ Joel Maher]]&lt;br /&gt;
| [[https://mozillians.org/en-US/u/mwargers/ Martijn Wargers]], [[https://mozillians.org/en-US/u/jmaher/ Joel Maher]]&lt;br /&gt;
| The impact this has is helping us cleanup our tests to reduce intermittents and give us tools to write better tests and understand our options for running tests in different configurations.&lt;br /&gt;
|-&lt;br /&gt;
|mozregression GUI&lt;br /&gt;
|Using Python, create a graphical user interface for mozregression (http://mozilla.github.io/mozregression) along with an installer and automatic update system to make it easier for less technical contributors to find and report regression ranges in Firefox and Thunderbird.&lt;br /&gt;
|Python&lt;br /&gt;
|[mailto:wlachance@mozilla.com William Lachance]&lt;br /&gt;
|[mailto:wlachance@mozilla.com William Lachance], [mailto:j.parkouss@gmail.com Julien Pagès]&lt;br /&gt;
|-&lt;br /&gt;
| Convert Mozmill test cases to Marionette &lt;br /&gt;
| he Mozmill framework is being replaced by Marionette to support multi-process Firefox.  In the previous Mozmill toolchain we have dozens of libraries and hundreds of tests.  This project will entail assessing those tests for uniqueness (compared to browser-chrome) and porting what tests and libraries make sense to Marionette.  The goal here is to assess all the tests and have at least 75 converted. &lt;br /&gt;
| Python, Javascript&lt;br /&gt;
| [[https://mozillians.org/en-US/u/jmaher/ Joel Maher]]&lt;br /&gt;
| [[https://mozillians.org/en-US/u/jmaher/ Joel Maher]], [[https://mozillians.org/en-US/u/whimboo/ Henrik Skupin]]&lt;br /&gt;
| Existing tests live here:&lt;br /&gt;
http://hg.mozilla.org/qa/mozmill-tests/file/default&lt;br /&gt;
&lt;br /&gt;
new tests live here:&lt;br /&gt;
https://github.com/mozilla/firefox-ui-tests&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Release Engineering ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Define, test, and publish json hyperschemas for all release engineering APIs&lt;br /&gt;
| We have several APIs (e.g. buildapi, clobberer, (modern) mapper, mozpool, slavealloc, slaveapi, ...) but have no central standardised way of defining them, publishing them, documenting them, or sharing them. A cool project would be to use json hyperschema (see e.g. https://brandur.org/elegant-apis) to define all our apis, and have a framework for auto testing them, auto-documenting them, even potentially auto-generating client libraries for them e.g. in python, and auto-publishing the schemas to a central location for reference. Another interesting option might be using http://swagger.io/.&lt;br /&gt;
&lt;br /&gt;
Example REST apis that we have are:&lt;br /&gt;
&lt;br /&gt;
* Build API: https://wiki.mozilla.org/ReleaseEngineering/Applications/BuildAPI&lt;br /&gt;
* Clobberer: https://api.pub.build.mozilla.org/docs/usage/clobberer/#endpoints&lt;br /&gt;
* (Modern) Mapper: https://wiki.mozilla.org/ReleaseEngineering/Applications/Mapper&lt;br /&gt;
* Mozpool: http://hg.mozilla.org/build/mozpool/file/tip/API.txt&lt;br /&gt;
* Slave API: http://mozilla-slaveapi.readthedocs.org/en/latest/api/#slaves-slave-actions-disable&lt;br /&gt;
&lt;br /&gt;
This GSoC project would involve creating hyperschemas for the above APIs (and potentially others too), finding a good place to publish these references, and look at setting up some tools to generate documentation for these APIs, together with code generation of client libraries, and their associated documentation (godoc, javadoc, …) and if time allows, even auto-generation and deployment of new documentation, libraries, as and when these json hyper schemas get updated (perhaps with travis ci deploying to e.g. github pages or heroku).&lt;br /&gt;
| json, json hyperschema, solid programming skills, enthusiasm, code generation, web interface design&lt;br /&gt;
| [mailto:pmoore@mozilla.com Pete Moore]&lt;br /&gt;
| [mailto:pmoore@mozilla.com Pete Moore]&lt;br /&gt;
| Some good starting points:&lt;br /&gt;
* http://spacetelescope.github.io/understanding-json-schema/ (for json schema)&lt;br /&gt;
* https://brandur.org/elegant-apis (for json hyper schema)&lt;br /&gt;
* http://json-schema.org/&lt;br /&gt;
|-&lt;br /&gt;
| Decouple Mozharness internals by breaking it into standalone modules&lt;br /&gt;
| What is Mozharness: It&#039;s a configuration-driven script harness that is used for automating &amp;gt; 90% of Mozilla&#039;s build and test jobs. It is also used by release engineering services outside of continuous integration.&lt;br /&gt;
&lt;br /&gt;
What needs to decoupled: Mozharness has reached some scaling issues. Jobs that do builds and tests inherit and share exhaustive number of mixins. This leads to a complicated Method Resolution Order and objects with too many attrs that are not even needed.&lt;br /&gt;
&lt;br /&gt;
How can this be done: replace the mixins with standalone classes that act as services. The classes can be instantiated many times and are aware of only their own responsibilities. Once stand alone, you then make them into packages within a mozharness library and installable by pip.&lt;br /&gt;
&lt;br /&gt;
The benefit:&lt;br /&gt;
&lt;br /&gt;
* better scalability&lt;br /&gt;
* more pythonic so the entry for contribution is less intimidating&lt;br /&gt;
* tools outside of mozharness can avail of subcomponents of mozharness&lt;br /&gt;
&lt;br /&gt;
steps and goals for gsoc:&lt;br /&gt;
&lt;br /&gt;
* part (1) take mixins like log.py, config.py, buildbot.py, python.py, signing.py, and tooltool.py and convert them from mixins to standalone classes&lt;br /&gt;
** example of how that&#039;s done: {{bug|1063532}}&lt;br /&gt;
* part (2) turn the now standalone classes into python packages&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| python, solid programming skills, enthusiasm&lt;br /&gt;
| [mailto:jlund@mozilla.com Jordan Lund], Armen Zambrano&lt;br /&gt;
| [mailto:jlund@mozilla.com Jordan Lund]&lt;br /&gt;
| more details:&lt;br /&gt;
&lt;br /&gt;
* https://docs.google.com/a/mozilla.com/document/d/1AQZT9opDkqb0tgZaVAtfAX2_dVWFHNWmz0ImgS5-hPM&lt;br /&gt;
* https://etherpad.mozilla.org/mozharness-mixins&lt;br /&gt;
* http://hg.mozilla.org/build/mozharness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Rust ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| rustfmt&lt;br /&gt;
| Create a code formatting tool that automatically reformats Rust code to meet conventions.&lt;br /&gt;
| Experience with Rust.&lt;br /&gt;
| [https://mozillians.org/en-US/u/brson brson]&lt;br /&gt;
| [https://mozillians.org/en-US/u/brson brson], [http://www.rustaceans.org/nick29581 nrc]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Rust Code Completion for SublimeText&lt;br /&gt;
| This project would develop a plugin for the Sublime Text editor that provides code completion for the Rust programming language, by integrating with the Rust [https://github.com/phildawes/racer Racer] project. This would require interfacing between Python (for the Plugin) and Rust (for Racer).&lt;br /&gt;
| Rust, Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/pnkfelix pnkfelix]&lt;br /&gt;
| [https://mozillians.org/en-US/u/pnkfelix pnkfelix]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Refactoring Rust&lt;br /&gt;
| Create a tool for refactoring Rust code.&lt;br /&gt;
| Experience with Rust.&lt;br /&gt;
| [http://www.rustaceans.org/nick29581 nrc]&lt;br /&gt;
| [http://www.rustaceans.org/nick29581 nrc]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Tools and macros&lt;br /&gt;
| Develop tools and/or APIs for comprehension and manipulation of macros. For example, extend DXR to work with macros or demonstrate a proof of concept refactoring or formatting tool that works with macros.&lt;br /&gt;
| Experience with Rust, particularly macros.&lt;br /&gt;
| [http://www.rustaceans.org/nick29581 nrc]&lt;br /&gt;
| [http://www.rustaceans.org/nick29581 nrc]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Servo ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Speculative HTML parsing&lt;br /&gt;
| Servo&#039;s [https://github.com/servo/html5ever/ HTML parser] currently blocks whenever it needs to execute JS code (eg. when &amp;amp;lt;script&amp;amp;gt; tags are encountered in a page). We want to split the HTML parsing code into two threads, one of which can continue parsing the rest of the HTML source [http://www.dorothybrowser.com/portfolio/parallel-parser/ speculatively] while the other is busy executing JS; once the second is finished, the parser can use the result of the first thread&#039;s efforts to improve page load performance.&lt;br /&gt;
| Prior [http://www.rust-lang.org/ Rust] experience valuable. Familiarity with HTML.&lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ jdm]&lt;br /&gt;
| [https://mozillians.org/en-US/u/kmcallister/ kmc]&lt;br /&gt;
|-&lt;br /&gt;
| HTTP/2 implementation in hyper&lt;br /&gt;
| [https://github.com/hyperium/hyper/ Hyper], the Rust HTTP library that Servo relies upon, is missing support for exciting new technologies like [https://http2.github.io/ HTTP/2]. This project would design and integrate an HTTP/2 implementation into the client and servo code for hyper.&lt;br /&gt;
| Experience writing code that interacts with network protocols. Prior [http://www.rust-lang.org/ Rust] experience valuable.&lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ jdm]&lt;br /&gt;
| [https://mozillians.org/en-US/u/seanmonstar/ seanmonstar] and [https://github.com/reem/ reem]&lt;br /&gt;
|-&lt;br /&gt;
| Server-Sent Events&lt;br /&gt;
| Servo lacks an implementation of the [https://developer.mozilla.org/en-US/docs/Web/API/EventSource EventSource Web API]. The goal of this project is to implement that API, following the [https://html.spec.whatwg.org/multipage/comms.html#server-sent-events specification] as closely as possible and enabling the [https://github.com/w3c/web-platform-tests/tree/master/eventsource tests] for this feature that already exist.&lt;br /&gt;
| Prior experience with [http://www.rust-lang.org/ Rust] valuable. Comfortable reading and writing JavaScript for the web.&lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ jdm]&lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ jdm]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Improve form support&lt;br /&gt;
| Servo currently has rather basic form support, with simple widgets. We lack support for many form controls and functionality like file uploads and form validation. We&#039;d like to add support for most form behavior, based on the [https://html.spec.whatwg.org/multipage/forms.html specification].&lt;br /&gt;
| Familiarity with web HTML/Javascript. Prior experience with [http://www.rust-lang.org/ Rust] and/or reading web specifications valuable.&lt;br /&gt;
| [https://mozillians.org/en-US/u/Manishearth Manishearth]&lt;br /&gt;
| [https://mozillians.org/en-US/u/Manishearth Manishearth] (or [https://mozillians.org/en-US/u/jdm/ jdm])&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenArt ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments &lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/noflo/noflo-ui NoFlo-UI]&lt;br /&gt;
| Implement an UI widget on noflo-ui. It could be a timeline (see [https://github.com/noflo/noflo-ui/issues/151 this issue]), plugins for IIP editing or packet display for particular data types. Considering the timeline widget, an initial prototype could be a component library (see [https://github.com/noflo/noflo-tween/blob/master/components/Timeline.coffee noflo-tween]). Proposals should include sketches and an implemented prototype (pull requested to noflo-ui).&lt;br /&gt;
| javascript, coffeescript, ux &lt;br /&gt;
| [[User:Forresto|Forresto]]&lt;br /&gt;
| [[User:Forresto|Forresto]]&lt;br /&gt;
| [http://noflojs.org NoFlo] is a JS dataflow implementation and has runtimes for browser, image processing ([https://github.com/jonnor/imgflo imgflo]), microcontrollers ([https://github.com/jonnor/microflo microflo]), SuperCollider ([https://github.com/jonnor/sndflo sndflo]) and other targets. [https://app.flowhub.io Flowhub] is the browser-based IDE for the creation of NoFlo graphs.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/tweenjs/tween.js Tween.JS]&lt;br /&gt;
| Port Tween.js to ES6 and make it a modern citizen of the JS world&lt;br /&gt;
| javascript, web animations, graphics &lt;br /&gt;
| [[User:Sole|Sole]]&lt;br /&gt;
| [[User:Sole|Sole]]&lt;br /&gt;
| Tween.JS is a small engine for declaring and running interpolations between values. It&#039;s used in interactive experiences, games and all sorts of projects.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/sole/Animated_GIF Animated_GIF] &lt;br /&gt;
| Refactor and build a version 2, splitting the library into independent reusable modules. Also work on compatibility with Firefox OS.&lt;br /&gt;
| javascript, web animations, graphics, web workers, pixel handling, canvas&lt;br /&gt;
| [[User:Sole|Sole]]&lt;br /&gt;
| [[User:Sole|Sole]]&lt;br /&gt;
| Animated_GIF is a library for generating Animated GIFs on the browser. It&#039;s used in demo apps in mozilla, some properties at webmaker, the wildly successful chat at meatspac.es and who knows where else.&lt;br /&gt;
|-&lt;br /&gt;
| Create image filters using [http://noflojs.org NoFlo]&lt;br /&gt;
| It&#039;s possible to start prototyping image filters using [https://app.flowhub.io Flowhub] (use [https://www.filterforge.com/ Filter Forge]&#039;s filters as inspiration and our porting of [https://github.com/jonnor/imgflo/wiki/Recreating-Instagram-filters some Instagram filters]) and components libraries like [http://github.com/noflo/noflo-image noflo-image] and [http://github.com/noflo/noflo-canvas noflo-canvas], then port the filters to imgflo. Another option is to create filters directly on imgflo using GEGL. Proposals should include a running NoFlo graph for a non-trivial image filter, together with sketches and original/processed images. Imgflo+GEGL filters are preferred. Pull requests to noflo-image and imgflo are a plus.&lt;br /&gt;
| javascript, coffeescript, noflo, cpp, computer vision basics&lt;br /&gt;
| [[User:Vilsonvieira|Vilson Vieira]]&lt;br /&gt;
| [[User:Vilsonvieira|Vilson Vieira]]&lt;br /&gt;
| [http://noflojs.org NoFlo] is a JS dataflow implementation and has runtimes for browser, image processing ([https://github.com/jonnor/imgflo imgflo]), microcontrollers ([https://github.com/jonnor/microflo microflo]), SuperCollider ([https://github.com/jonnor/sndflo sndflo]) and other targets. [https://app.flowhub.io Flowhub] is the browser-based IDE for the creation of NoFlo graphs. [http://gegl.org GEGL] is a graph-based image processing framework used by imgflo (it&#039;s also possible to use noflo-canvas instead of GEGL, but GEGL is preferred due to performance reasons).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Webmaker ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Automated front-end testing&lt;br /&gt;
| Help build automated front-end tests for our Cordova App and investigate different cross-platform continuous integration systems (e.g. sauce labs), with a specific emphasis on Android and Firefox OS.&lt;br /&gt;
| javascript, nodejs&lt;br /&gt;
| [[User:k88hudson|k88hudson]]&lt;br /&gt;
| [[User:k88hudson|k88hudson]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Community moderation for webmaker.app&lt;br /&gt;
| Help build/improve admin interface, integrate with our services architecture to help choose featured content and support community moderation&lt;br /&gt;
| javascript, nodejs, css, html&lt;br /&gt;
| [[User:k88hudson|k88hudson]]&lt;br /&gt;
| [[User:k88hudson|k88hudson]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mozilla Science Lab ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.mozillascience.org/projects/codemeta Code as a Research Object] &lt;br /&gt;
| Using the proposed [https://github.com/mbjones/codemeta crosswalk schema] between existing software metadata, create a service (can be a simple website) that will allow users to search and filter software across existing data archives and repositories (Zenodo, figshare, GitHub). Comparing the existing schemas for code storage to help create a metadata standard that allows for discoverability, reuse and citation.&lt;br /&gt;
| json, [http://zenodo.org/dev zenodo api], [http://api.figshare.com/docs/intro.html figshare api], [https://developer.github.com/ github api]&lt;br /&gt;
| [[User:Abby|Abby]]&lt;br /&gt;
| [[User:Abby|Abby]]&lt;br /&gt;
| &amp;quot;Code as a Research Object&amp;quot; is exploring integrating software into the scholarly workflow. Collaboration with GitHub, figshare and Zenodo.&lt;br /&gt;
&lt;br /&gt;
Background reading: http://www.mozillascience.org/code-as-as-research-object-new-phase/&lt;br /&gt;
&lt;br /&gt;
http://www.mozillascience.org/code-as-a-research-object-metadata-for-software-discovery/&lt;br /&gt;
&lt;br /&gt;
http://www.mozillascience.org/code-as-a-research-object-updates-prototypes-next-steps/&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/21-Jul-2015&amp;diff=1085813</id>
		<title>Firefox/Meeting/21-Jul-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/21-Jul-2015&amp;diff=1085813"/>
		<updated>2015-07-21T12:26:11Z</updated>

		<summary type="html">&lt;p&gt;P.A.: General Topics / Roundtable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Third Tuesday of the month - 8:00am Pacific, 11:00am Eastern, 15:00 UTC&lt;br /&gt;
* [http://arewemeetingyet.com/Los%20Angeles/2013-08-20/8:00/w/Firefox%20development%20meeting Handy local meeting time link]&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics / Roundtable ==&lt;br /&gt;
(tips/tricks, productivity improvements, industry news)&lt;br /&gt;
* BrowserTestUtils&lt;br /&gt;
* Easily add live pref-controlled logging to your module which outputs to stdout and the Browser Console (with inspectable objects): &amp;lt;code&amp;gt;&lt;br /&gt;
 XPCOMUtils.defineLazyGetter(this, &amp;quot;log&amp;quot;, () =&amp;gt; {&lt;br /&gt;
   let ConsoleAPI = Cu.import(&amp;quot;resource://gre/modules/devtools/Console.jsm&amp;quot;, {}).ConsoleAPI;&lt;br /&gt;
   let consoleOptions = {&lt;br /&gt;
     maxLogLevelPref: PREF_LOG_LEVEL,&lt;br /&gt;
     prefix: &amp;quot;My Log Prefix&amp;quot;,&lt;br /&gt;
   };&lt;br /&gt;
   return new ConsoleAPI(consoleOptions);&lt;br /&gt;
 });&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Frequency of this meeting&lt;br /&gt;
* What is the status of feature reviews?&lt;br /&gt;
* What is the status of product line reviews?&lt;br /&gt;
* Have we centrally documented our new sub-team structure?&lt;br /&gt;
** Helps to find whom to ask if you have a question about something&lt;br /&gt;
** Existing module system doesn&#039;t have answers for User Experience and Product&lt;br /&gt;
&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping report, fix and test bugs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Thanks to the following people for regular contributions to the desktop Firefox front-end in the last year!&lt;br /&gt;
* Alice White [:Alice0775]&lt;br /&gt;
* Aryx [:archaeopteryx][:aryx]&lt;br /&gt;
* Brian R. Bondy [:bbondy]&lt;br /&gt;
* Ekanan Ketunuti&lt;br /&gt;
* Ian Moody [:Kwan]&lt;br /&gt;
* Luís Miguel [:Quicksaver]&lt;br /&gt;
* Masatoshi Kimura [:emk]&lt;br /&gt;
* Richard Marti [:Paenglab]&lt;br /&gt;
* Sören Hentzschel&lt;br /&gt;
* Tim Nguyen [:ntim]&lt;br /&gt;
* Tooru Fujisawa [:arai]&lt;br /&gt;
* and probably others who were missed!&lt;br /&gt;
&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
=== e10s ===&lt;br /&gt;
=== Hello ===&lt;br /&gt;
=== Privacy/Security ===&lt;br /&gt;
* Planning to ship Tracking Protection in Private Browsing for 42&lt;br /&gt;
** Likely one tracking list with a tour ([https://www.dropbox.com/sh/nhh6z6nr9gx0mng/AAAPYeSlfVZADtNGeGqIh1pwa?dl=0&amp;amp;preview=Tp+Onboarding+Spec+v3.png spec]).&lt;br /&gt;
* Interns are continuing [https://docs.google.com/spreadsheets/d/1hty3GVRIc-BwPSr9y-FCvrPo40c3v_otGTcGuOmrtQY/edit#gid=1896114302 great work on the password manager] for 42.&lt;br /&gt;
&lt;br /&gt;
=== Search ===&lt;br /&gt;
* Unified Autocomplete bugs still being resolved&lt;br /&gt;
* Search suggestions in the awesomebar&lt;br /&gt;
=== Windows 10 ===&lt;br /&gt;
* Ensure Firefox is not completely broken in Firefox 40 (fix critical bugs) and tweak UI to make it fit in better with Windows 10 look and feel overall.&lt;br /&gt;
** Windows 10 updates officially to start to go out on July 29th, 2015.&lt;br /&gt;
** Firefox 40 GA on Aug 11th, 2015.&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/21-Jul-2015&amp;diff=1085812</id>
		<title>Firefox/Meeting/21-Jul-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/21-Jul-2015&amp;diff=1085812"/>
		<updated>2015-07-21T12:18:21Z</updated>

		<summary type="html">&lt;p&gt;P.A.: General Topics / Roundtable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Third Tuesday of the month - 8:00am Pacific, 11:00am Eastern, 15:00 UTC&lt;br /&gt;
* [http://arewemeetingyet.com/Los%20Angeles/2013-08-20/8:00/w/Firefox%20development%20meeting Handy local meeting time link]&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics / Roundtable ==&lt;br /&gt;
(tips/tricks, productivity improvements, industry news)&lt;br /&gt;
* BrowserTestUtils&lt;br /&gt;
* Easily add live pref-controlled logging to your module which outputs to stdout and the Browser Console (with inspectable objects): &amp;lt;code&amp;gt;&lt;br /&gt;
 XPCOMUtils.defineLazyGetter(this, &amp;quot;log&amp;quot;, () =&amp;gt; {&lt;br /&gt;
   let ConsoleAPI = Cu.import(&amp;quot;resource://gre/modules/devtools/Console.jsm&amp;quot;, {}).ConsoleAPI;&lt;br /&gt;
   let consoleOptions = {&lt;br /&gt;
     maxLogLevelPref: PREF_LOG_LEVEL,&lt;br /&gt;
     prefix: &amp;quot;My Log Prefix&amp;quot;,&lt;br /&gt;
   };&lt;br /&gt;
   return new ConsoleAPI(consoleOptions);&lt;br /&gt;
 });&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Frequency of this meeting&lt;br /&gt;
* What is the status of feature reviews?&lt;br /&gt;
* What is the status of product line reviews?&lt;br /&gt;
&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping report, fix and test bugs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Thanks to the following people for regular contributions to the desktop Firefox front-end in the last year!&lt;br /&gt;
* Alice White [:Alice0775]&lt;br /&gt;
* Aryx [:archaeopteryx][:aryx]&lt;br /&gt;
* Brian R. Bondy [:bbondy]&lt;br /&gt;
* Ekanan Ketunuti&lt;br /&gt;
* Ian Moody [:Kwan]&lt;br /&gt;
* Luís Miguel [:Quicksaver]&lt;br /&gt;
* Masatoshi Kimura [:emk]&lt;br /&gt;
* Richard Marti [:Paenglab]&lt;br /&gt;
* Sören Hentzschel&lt;br /&gt;
* Tim Nguyen [:ntim]&lt;br /&gt;
* Tooru Fujisawa [:arai]&lt;br /&gt;
* and probably others who were missed!&lt;br /&gt;
&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
=== e10s ===&lt;br /&gt;
=== Hello ===&lt;br /&gt;
=== Privacy/Security ===&lt;br /&gt;
* Planning to ship Tracking Protection in Private Browsing for 42&lt;br /&gt;
** Likely one tracking list with a tour ([https://www.dropbox.com/sh/nhh6z6nr9gx0mng/AAAPYeSlfVZADtNGeGqIh1pwa?dl=0&amp;amp;preview=Tp+Onboarding+Spec+v3.png spec]).&lt;br /&gt;
* Interns are continuing [https://docs.google.com/spreadsheets/d/1hty3GVRIc-BwPSr9y-FCvrPo40c3v_otGTcGuOmrtQY/edit#gid=1896114302 great work on the password manager] for 42.&lt;br /&gt;
&lt;br /&gt;
=== Search ===&lt;br /&gt;
* Unified Autocomplete bugs still being resolved&lt;br /&gt;
* Search suggestions in the awesomebar&lt;br /&gt;
=== Windows 10 ===&lt;br /&gt;
* Ensure Firefox is not completely broken in Firefox 40 (fix critical bugs) and tweak UI to make it fit in better with Windows 10 look and feel overall.&lt;br /&gt;
** Windows 10 updates officially to start to go out on July 29th, 2015.&lt;br /&gt;
** Firefox 40 GA on Aug 11th, 2015.&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=WeeklyUpdates/2015-04-20&amp;diff=1069199</id>
		<title>WeeklyUpdates/2015-04-20</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=WeeklyUpdates/2015-04-20&amp;diff=1069199"/>
		<updated>2015-04-20T10:08:32Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Friends of Mozilla Friends of Mozilla */ Thanks for a very good contribution!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{WeeklyUpdateNav}}&lt;br /&gt;
{{conf|8600}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= All-hands Status Meeting Agenda =&lt;br /&gt;
&lt;br /&gt;
Items in this section will be shared during the live all-hand status meeting.&lt;br /&gt;
&lt;br /&gt;
== Friends of Mozilla [[Image:Tree.gif|Friends of Mozilla]] ==&lt;br /&gt;
&lt;br /&gt;
* Thanks to Ganesh Sahukari for fixing a long-standing issue in Firefox with [https://bugzilla.mozilla.org/show_bug.cgi?id=1009465 opened documents not being set read-only on Windows], adding [https://bugzilla.mozilla.org/show_bug.cgi?id=1022816 a new OS.File API] in the process.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Events ==&lt;br /&gt;
&lt;br /&gt;
=== This Week ===&lt;br /&gt;
* Check out a [http://dragonair.student.iastate.edu/mozilla/sourcecodeknowledge/project/gecko-dev/ website/tool developed for academic dissertation work to help Mozilla developers better understand the codebase and communication structure].  Help out by participating in a short 15 minute interview on IRC.  Contact Patrick to setup an interview time (IRC: &#039;&#039;&#039;carlsonp&#039;&#039;&#039;, email: &#039;&#039;&#039;carlsonp@iastate.edu&#039;&#039;&#039;). Cheers!&lt;br /&gt;
&lt;br /&gt;
=== Monday, {{#time:d F|{{SUBPAGENAME}}}} ===&lt;br /&gt;
*[http://fluentconf.com/javascript-html-2015/public/schedule/speakers / O&#039;Reilly FLUENT Conference: The Web Platform]&lt;br /&gt;
**April 20th-22nd in San Francisco &lt;br /&gt;
** Mozillians attending are Andreas Gal: Keynote Speaker, Dan Callahan + Mike Taylor: Tutorial, Potch: Tech Demo&lt;br /&gt;
** Fluent spotlights the emerging methods, tools, and technologies of the Web Platform. Developers, software engineers, UX/UI designers, and other web professionals come to Fluent to share their experiences and expertise—and to learn what they need to know to stay competitive&lt;br /&gt;
*[https://quality.mozilla.org/event/bug-triage-day-56/ Weekly Bug Triage Day]&lt;br /&gt;
&lt;br /&gt;
=== Tuesday, {{#time:d F|{{SUBPAGENAME}} +1 day}} ===&lt;br /&gt;
*[http://mobilewestafrica.com/2015/ MEF Nigeria: Mozilla at Mobile West Africa]&lt;br /&gt;
** April 21st to 23rd in Lagos, Nigeria&lt;br /&gt;
** Mozillians in attendance Nisha Malhan and Tayo Fagbohun&lt;br /&gt;
**MEF Nigeria is part of Mobile West Africa for 2015. It will be the 16th event in the Mobile Web Africa series of conferences across Sub-Saharan Africa and All Amber’s 20th conference since the company’s inception in 2009&lt;br /&gt;
&lt;br /&gt;
=== Wednesday, {{#time:d F|{{SUBPAGENAME}} +2 days}} ===&lt;br /&gt;
*[https://quality.mozilla.org/event/bug-verification-day-61/ Weekly Bug Verification Day]&lt;br /&gt;
&lt;br /&gt;
=== Thursday, {{#time:d F|{{SUBPAGENAME}} +3 days}} ===&lt;br /&gt;
*[http://2015.phillytechweek.com/events/dev_day_big_talks/ Philly Tech Week: Dev Day Talks]&lt;br /&gt;
** April 23rd in Philadelphia, PA&lt;br /&gt;
**Mozillian attending Andrew Sutherland, Speaking on The Firefox OS email app: devious stratagems for offline HTML apps on limited-resource devices&lt;br /&gt;
** An afternoon of high-level dev talks focused around problem solving and innovative solutions. You&#039;ll hear from over 15 dev experts talking about real world scenarios and the tools they&#039;re using&lt;br /&gt;
&lt;br /&gt;
=== Friday, {{#time:d F|{{SUBPAGENAME}} +4 days}} ===&lt;br /&gt;
&lt;br /&gt;
=== Saturday, {{#time:d F|{{SUBPAGENAME}} +5 days}} ===&lt;br /&gt;
*[http://linuxfestnorthwest.org/2015 Linux Fest Northwest]&lt;br /&gt;
** April 25th-26th in Bellinghan, WA&lt;br /&gt;
** Mozillian attending Benjamin Kerensa&lt;br /&gt;
**LinuxFest Northwest is the longest running, largest open source conference in the Pacific Northwest&lt;br /&gt;
&lt;br /&gt;
=== Sunday, {{#time:d F|{{SUBPAGENAME}} +6 days}} ===&lt;br /&gt;
&lt;br /&gt;
=== Next Week ===&lt;br /&gt;
&lt;br /&gt;
== Project Status Updates (voice updates) ==&lt;br /&gt;
&lt;br /&gt;
=== Firefox and Cloud Services ===&lt;br /&gt;
&#039;&#039;Speaker Location:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Firefox OS ===&lt;br /&gt;
&#039;&#039;Speaker Location:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== CTO Update ===&lt;br /&gt;
&#039;&#039;Speaker Location:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Content Services ===&lt;br /&gt;
&#039;&#039;Speaker Location:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Webmaker ===&lt;br /&gt;
&#039;&#039;Speaker Location:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Mozilla Communities ===&lt;br /&gt;
&#039;&#039;Speaker Location:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Speakers ==&lt;br /&gt;
&lt;br /&gt;
The limit is 3 minutes per speaker.  It&#039;s like a lightning talk, but don&#039;t feel that you have to have slides in order to make a presentation.  If you plan on showing a video, you need to contact the Air Mozilla team before the day of the meeting or you will be deferred to the next week.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;fullwidth-table wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  [https://mozillians.org/u/USERNAME Presenter]&lt;br /&gt;
!  Title&lt;br /&gt;
!  Topic&lt;br /&gt;
!  Location&lt;br /&gt;
!  Share?&lt;br /&gt;
!  Media&lt;br /&gt;
!  More Details&lt;br /&gt;
|-&lt;br /&gt;
| Who Are You?&lt;br /&gt;
| What Do You Do?&lt;br /&gt;
| What are you going to talk about?&lt;br /&gt;
| Where are you presenting from? (Moz Space, your house, space)&lt;br /&gt;
| Will you be sharing your screen? (yes/no, other info)&lt;br /&gt;
| Links to slides or images you want displayed on screen&lt;br /&gt;
| Link to where audience can find out more information&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Roundtable =&lt;br /&gt;
&lt;br /&gt;
Do you have a question about a Mozilla Project or initiative? Let us know by Friday- we&#039;ll do our best to get you an answer.&lt;br /&gt;
&lt;br /&gt;
Please note that we may not always be able to get to every item on this list, but we will try!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;fullwidth-table wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Who are you &lt;br /&gt;
!  Area of Question&lt;br /&gt;
!  Question&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;What is your Name?&#039;&#039;&lt;br /&gt;
| &#039;&#039;Is your question about policy, a product, a Foundation initiative, etc.&#039;&#039;&lt;br /&gt;
| &#039;&#039;What would you like to know?&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- Insert new rows here --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.&lt;br /&gt;
&lt;br /&gt;
== Introducing New Volunteers ==&lt;br /&gt;
{| class=&amp;quot;fullwidth-table wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  New Volunteers&lt;br /&gt;
!  Introduced by&lt;br /&gt;
!  Speaker location&lt;br /&gt;
!  New Volunteers location&lt;br /&gt;
!  Will be working on&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Who is the new volunteer(s)?&#039;&#039;&lt;br /&gt;
| &#039;&#039;Who will be introducing that person?&#039;&#039;&lt;br /&gt;
| &#039;&#039;Where is the introducer?&#039;&#039;&lt;br /&gt;
| &#039;&#039;Where will the new person be working from?&#039;&#039;&lt;br /&gt;
| &#039;&#039;What will the new person be working on?&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- Insert new rows here --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Introducing New Hires ==&lt;br /&gt;
{| class=&amp;quot;fullwidth-table wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  New Hire&lt;br /&gt;
!  Introduced by&lt;br /&gt;
!  Speaker location&lt;br /&gt;
!  New Hire location&lt;br /&gt;
!  Will be working on&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Who is the new hire?&#039;&#039;&lt;br /&gt;
| &#039;&#039;Who will be introducing that person?&#039;&#039;&lt;br /&gt;
| &#039;&#039;Where is the introducer?&#039;&#039;&lt;br /&gt;
| &#039;&#039;Where will the new person be working from?&#039;&#039;&lt;br /&gt;
| &#039;&#039;What will the new person be working on?&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- Insert new rows here --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Rob Thijssen&lt;br /&gt;
| Q Fortier&lt;br /&gt;
| Portland&lt;br /&gt;
| Remote (UK)&lt;br /&gt;
| Senior DevOps Engineer&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
== Introducing New Interns ==&lt;br /&gt;
{| class=&amp;quot;fullwidth-table wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  New Intern&lt;br /&gt;
!  Introduced by&lt;br /&gt;
!  Speaker location&lt;br /&gt;
!  New Hire location&lt;br /&gt;
!  Will be working on&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;Who is the new intern?&#039;&#039;&lt;br /&gt;
| &#039;&#039;Who will be introducing that person?&#039;&#039;&lt;br /&gt;
| &#039;&#039;Where is the introducer?&#039;&#039;&lt;br /&gt;
| &#039;&#039;Where will the new person be working from?&#039;&#039;&lt;br /&gt;
| &#039;&#039;What will the new person be working on?&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;!-- Insert new rows here --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= &amp;amp;lt;meta&amp;amp;gt; =&lt;br /&gt;
&lt;br /&gt;
Notes and non-voice status updates that aren&#039;t part of the live meeting go here.&lt;br /&gt;
&lt;br /&gt;
== Status Updates By Team (*non-voice* updates) ==&lt;br /&gt;
&lt;br /&gt;
=== Firefox ===&lt;br /&gt;
&lt;br /&gt;
=== Platform ===&lt;br /&gt;
&lt;br /&gt;
=== Cloud Services ===&lt;br /&gt;
&lt;br /&gt;
=== Messaging ===&lt;br /&gt;
&lt;br /&gt;
=== Mobile ===&lt;br /&gt;
&lt;br /&gt;
=== IT ===&lt;br /&gt;
&lt;br /&gt;
=== Release Engineering ===&lt;br /&gt;
&lt;br /&gt;
=== QA ===&lt;br /&gt;
&lt;br /&gt;
==== Test Execution ====&lt;br /&gt;
&lt;br /&gt;
==== Web QA ====&lt;br /&gt;
&lt;br /&gt;
==== QA Community ====&lt;br /&gt;
&lt;br /&gt;
=== Automation &amp;amp; Tools ===&lt;br /&gt;
==== bugzilla.mozilla.org ====&lt;br /&gt;
Notable changes to [https://bugzilla.mozilla.org/ bugzilla.mozilla.org] during the last week:&lt;br /&gt;
* {{bug|1152818}} Changing an assignee to nobody@mozilla.org now automatically resets the status from ASSIGNED to NEW&lt;br /&gt;
[[BMO/Recent_Changes|All changes]].&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
&lt;br /&gt;
=== Engagement ===&lt;br /&gt;
&lt;br /&gt;
* [https://docs.google.com/a/mozilla.com/spreadsheets/d/1X5kUBkEAicEe2unDaaLGTYzAJbphWFoaJYBTasHrcHQ/edit#gid=1764494528 Engagement&#039;s Active Project Dashboard]&lt;br /&gt;
&lt;br /&gt;
==== PR ====&lt;br /&gt;
&lt;br /&gt;
==== Events ====&lt;br /&gt;
&lt;br /&gt;
==== Social Support ====&lt;br /&gt;
&lt;br /&gt;
[[Category:Weekly Updates]]&lt;br /&gt;
[[Category:Meeting Notes]]&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Community:SummerOfCode15:Brainstorming&amp;diff=1057028</id>
		<title>Community:SummerOfCode15:Brainstorming</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Community:SummerOfCode15:Brainstorming&amp;diff=1057028"/>
		<updated>2015-02-19T17:04:02Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Firefox */ Add Download Integrity project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mozilla community members - submit proposals here for 2015 Google Summer of Code projects with Mozilla. (If this page looks empty, it&#039;s because accepted ideas have already been transferred to the [[Community:SummerOfCode15|official list]].) &#039;&#039;&#039;The&#039;&#039;&#039; absolute last &#039;&#039;&#039;deadline for submitting ideas&#039;&#039;&#039; in time to help us get accepted by Google &#039;&#039;&#039;is February 20th&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Are you a students looking to apply to SoC with Mozilla?&amp;lt;/b&amp;gt; Your first stop should be the [[Community:SummerOfCode15|official list of ideas]]. This page is full of weird and whacky ideas, some of which are still on here for a reason - it could be that they are not properly defined, the wrong size, or don&#039;t have a mentor. That makes them less likely to get accepted. You &amp;lt;i&amp;gt;can&amp;lt;/i&amp;gt;, of course, also submit your own ideas - you don&#039;t have to put an idea on this page and get it &#039;made official&#039; in order to send in a proposal for it.&lt;br /&gt;
&lt;br /&gt;
==How To Write A Good Project Proposal==&lt;br /&gt;
&lt;br /&gt;
Before adding an proposal to this list, please consider the following:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Be specific&#039;&#039;&#039;. It&#039;s hard to understand the impact of, or the size of, vague proposals.&lt;br /&gt;
* &#039;&#039;&#039;Consider size&#039;&#039;&#039;. The student has eight weeks to design, code, test and document the proposal. It needs to fill, but not overfill, that time.&lt;br /&gt;
* &#039;&#039;&#039;Do your research&#039;&#039;&#039;. Support the idea with well-researched links.&lt;br /&gt;
* &#039;&#039;&#039;Don&#039;t morph other people&#039;s ideas&#039;&#039;&#039;. If you have a related idea, place it next to the existing one, or add a comment. &lt;br /&gt;
* &#039;&#039;&#039;Insert only your own name into the Mentor column&#039;&#039;&#039;, and then only if you are willing to take on the responsibility. If you think the SoC admins won&#039;t know who you are, leave contact details.&lt;br /&gt;
* &#039;&#039;&#039;Check back regularly&#039;&#039;&#039;. The administrators may have questions about your idea that you will need to answer.&lt;br /&gt;
* &#039;&#039;&#039;Know when to give up&#039;&#039;&#039;. If you&#039;ve added the same idea for the last three years and it hasn&#039;t made it to the official page, perhaps you can predict what will happen this time.&lt;br /&gt;
&lt;br /&gt;
==Suggestion List==&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCode|Here are the ideas lists from previous years]].&lt;br /&gt;
&lt;br /&gt;
Proposals can be in almost any part of the Mozilla project - don&#039;t be fooled by the &amp;quot;Code&amp;quot; in &amp;quot;Summer of Code&amp;quot;. If there is no category below for your part of Mozilla, add one!&lt;br /&gt;
&lt;br /&gt;
== Mozilla Platform (Gecko) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firefox ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title&lt;br /&gt;
! Details&lt;br /&gt;
! Skills Needed&lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Firefox Performance Dashboard&lt;br /&gt;
| This project would implement the dashboard described in [https://bugzilla.mozilla.org/show_bug.cgi?id=1132498 bug 1132498]. Collecting the memory and CPU usage of addons and webpages and displaying it in a fashion that shows bad actors would be valuable for power users.&lt;br /&gt;
| HTML, CSS, JavaScript&lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ jdm]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Download Integrity&lt;br /&gt;
| Enhance detection of broken downloads in Firefox. Methods may include:&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;[http://www.w3.org/TR/SRI/#the-a-element-1 Subresource Integrity for the &amp;lt;a&amp;gt; element]&amp;lt;li&amp;gt;[[Features/HTTP_Digest_header_verification#Stage_1:_Definition|HTTP Digest header verification]]&amp;lt;li&amp;gt;Network-level indications like bad HTTP framing&amp;lt;/ul&amp;gt;The activities include:&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Implement the front-end in JavaScript to display failed integrity checks&amp;lt;li&amp;gt;Implement and/or use the required back-end features in C++&amp;lt;li&amp;gt;Work with the Mozilla community to discuss and refine the behavior of the feature, including which methods should be implemented first&amp;lt;/ul&amp;gt;&lt;br /&gt;
| C++, JavaScript&lt;br /&gt;
| Paolo&lt;br /&gt;
| Paolo&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firefox Developer Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firefox for Android ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firefox OS / Boot2Gecko ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Thunderbird ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Performance testing&lt;br /&gt;
| Add and deploy a performance testsuite for Thunderbird to catch regressions in areas such as startup, message search, folder display, message display, etc.&lt;br /&gt;
| JavaScript, Python, preferably some performance analysis experience&lt;br /&gt;
| jcranmer&lt;br /&gt;
| ?&lt;br /&gt;
| Needs a mentor -- florian&lt;br /&gt;
|-&lt;br /&gt;
| Secure email UI&lt;br /&gt;
| Develop good interfaces for key management and illustrating the security levels of messages succinctly, preferably applicable to both S/MIME and OpenPGP.&lt;br /&gt;
| Strong UX experience; JS, XUL or HTML; crypto background advantageous&lt;br /&gt;
| jcranmer&lt;br /&gt;
| ?&lt;br /&gt;
| Summer of Code is about coding, not about UX work; asking students to do UX work often leads to disappointing results -- florian. This may be too large a task; narrowing focus could be useful.&lt;br /&gt;
|-&lt;br /&gt;
| Alternate protocol for mailnews folders&lt;br /&gt;
| Thunderbird has long-term plans to implement a variety of mail and mail-like protocols to be managed as mailnews folders. An existing addon (SkinkGlue) exists to provide the glue for this. Implement one other protocol, which might be Twitter, Fastmail&#039;s JMAP, or Calendar events &amp;amp; tasks&lt;br /&gt;
| Javascript&lt;br /&gt;
| rkent&lt;br /&gt;
| rkent and, depending on protocol, a chat guy (clokep?), brong from Fastmail, or Fallen&lt;br /&gt;
| I doubt having 2 twitter implementations in Thunderbird is a valuable investment of time. JMAP seems the most promising protocol idea here; do we know if brong is on board to (co-)mentor this? Even though the code would be primarily written in JS, I suspect having some C++ skills to be able to understand some of mailnews&#039; internals would be very helpful.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Instantbird ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Calendar ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title&lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SeaMonkey ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==NSS (Network Security Services)==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bugzilla ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firefox Support (SUMO) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== QA ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Automation &amp;amp; Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mozilla Developer Network ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mozilla IT and Infrastructure ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sync / Services ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Add-on SDK ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Foundation ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenArt ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/noflo/noflo-ui NoFlo-UI]&lt;br /&gt;
| Implement an UI widget on noflo-ui. It could be a timeline (see [https://github.com/noflo/noflo-ui/issues/151 this issue]), plugins for IIP editing or packet display for particular data types. Considering the timeline widget, an initial prototype could be a component library (see [https://github.com/noflo/noflo-tween/blob/master/components/Timeline.coffee noflo-tween]). Proposals should include sketches and an implemented prototype (pull requested to noflo-ui).&lt;br /&gt;
| javascript, coffeescript, ux &lt;br /&gt;
| [[User:Forresto|Forresto]]&lt;br /&gt;
| [[User:Forresto|Forresto]]&lt;br /&gt;
| [http://noflojs.org NoFlo] is a JS dataflow implementation and has runtimes for browser, image processing ([https://github.com/jonnor/imgflo imgflo]), microcontrollers ([https://github.com/jonnor/microflo microflo]), SuperCollider ([https://github.com/jonnor/sndflo sndflo]) and other targets. [https://app.flowhub.io Flowhub] is the browser-based IDE for the creation of NoFlo graphs.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/tweenjs/tween.js Tween.JS]&lt;br /&gt;
| Port Tween.js to ES6 and make it a modern citizen of the JS world&lt;br /&gt;
| javascript, web animations, graphics &lt;br /&gt;
| [[User:Sole|Sole]]&lt;br /&gt;
| [[User:Sole|Sole]]&lt;br /&gt;
| Tween.JS is a small engine for declaring and running interpolations between values. It&#039;s used in interactive experiences, games and all sorts of projects.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/sole/Animated_GIF Animated_GIF] &lt;br /&gt;
| Refactor and build a version 2, splitting the library into independent reusable modules. Also work on compatibility with Firefox OS.&lt;br /&gt;
| javascript, web animations, graphics, web workers, pixel handling, canvas&lt;br /&gt;
| [[User:Sole|Sole]]&lt;br /&gt;
| [[User:Sole|Sole]]&lt;br /&gt;
| Animated_GIF is a library for generating Animated GIFs on the browser. It&#039;s used in demo apps in mozilla, some properties at webmaker, the wildly successful chat at meatspac.es and who knows where else.&lt;br /&gt;
|-&lt;br /&gt;
| Create image filters using [http://noflojs.org NoFlo]&lt;br /&gt;
| It&#039;s possible to start prototyping image filters using [https://app.flowhub.io Flowhub] (use [https://www.filterforge.com/ Filter Forge]&#039;s filters as inspiration and our porting of [https://github.com/jonnor/imgflo/wiki/Recreating-Instagram-filters some Instagram filters]) and components libraries like [http://github.com/noflo/noflo-image noflo-image] and [http://github.com/noflo/noflo-canvas noflo-canvas], then port the filters to imgflo. Another option is to create filters directly on imgflo using GEGL. Proposals should include a running NoFlo graph for a non-trivial image filter, together with sketches and original/processed images. Imgflo+GEGL filters are preferred. Pull requests to noflo-image and imgflo are a plus.&lt;br /&gt;
| javascript, coffeescript, noflo, cpp, computer vision basics&lt;br /&gt;
| [[User:Vilsonvieira|Vilson Vieira]]&lt;br /&gt;
| [[User:Vilsonvieira|Vilson Vieira]]&lt;br /&gt;
| [http://noflojs.org NoFlo] is a JS dataflow implementation and has runtimes for browser, image processing ([https://github.com/jonnor/imgflo imgflo]), microcontrollers ([https://github.com/jonnor/microflo microflo]), SuperCollider ([https://github.com/jonnor/sndflo sndflo]) and other targets. [https://app.flowhub.io Flowhub] is the browser-based IDE for the creation of NoFlo graphs. [http://gegl.org GEGL] is a graph-based image processing framework used by imgflo (it&#039;s also possible to use noflo-canvas instead of GEGL, but GEGL is preferred due to performance reasons).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Release Engineering ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Emscripten ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Rust ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Servo ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Security Engineering ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Build system ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Security Assurance ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mozilla Science Lab ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:P.A./Address_bar_architecture_improvements&amp;diff=1043114</id>
		<title>User:P.A./Address bar architecture improvements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:P.A./Address_bar_architecture_improvements&amp;diff=1043114"/>
		<updated>2014-12-19T16:56:52Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Create page with description of technology prototype&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
The address bar in Firefox currently relies on Form Autocomplete infrastructure for a number of tasks:&lt;br /&gt;
* Handle keyboard input in the text field&lt;br /&gt;
* Open and display the panel with the suggestions for locations to visit&lt;br /&gt;
* Read the list of suggestions to display, through an autocomplete provider for the Places database&lt;br /&gt;
* Handle keyboard navigation in the panel&lt;br /&gt;
* Accept and execute the navigation or action associated with selecting an item from the panel&lt;br /&gt;
&lt;br /&gt;
While some of these may be similar to what is required by Form Autocomplete (for example, waiting some time after a key press before triggering a search), many others differ substantially in how they should be implemented. This led to the proliferation of special cases in the Form Autocomplete infrastructure to accommodate the needs of the address bar, and made the code difficult to maintain.&lt;br /&gt;
&lt;br /&gt;
In fact, the address bar is a central part of the user experience, and as such has developed special use cases to which many users are accustomed, such as certain keyboard sequences leading to certain sites, based on the ordering of location suggestions. Since these developed spontaneously, they are not always captured by existing user interface tests. Trying to work with the current code, and keep correct handling of the common cases at the same time, makes progress slower when adding new features.&lt;br /&gt;
&lt;br /&gt;
One of the ways to address these issues is incremental refactoring. Another approach, explored here, is prototyping a new codebase.&lt;br /&gt;
&lt;br /&gt;
== Prototype ==&lt;br /&gt;
&lt;br /&gt;
The prototype would be developed with the following characteristics in mind:&lt;br /&gt;
* Developed as a front-end Desktop-only browser component&lt;br /&gt;
* Only used by the address bar, which is then disconnected from Form Autocomplete&lt;br /&gt;
* Generates suggestions non-generically&lt;br /&gt;
** Makes queries to Places and gets results directly&lt;br /&gt;
** Does not try to reuse Unified Autocomplete, but copies part of its queries&lt;br /&gt;
* Uses JavaScript in all places where it is possible&lt;br /&gt;
* Uses new JavaScript language features&lt;br /&gt;
* Designed for asynchronous execution&lt;br /&gt;
* Has UI testing simulating mouse and keyboard input&lt;br /&gt;
&lt;br /&gt;
In the process of doing this, we may understand where it makes sense to factor code in reusable modules and where it doesn&#039;t. For example, some of the work to handle keyboard navigation could be used to improve the search bar as well, but this will be clear only after the prototype is ready.&lt;br /&gt;
&lt;br /&gt;
The initial cases the prototype would support are:&lt;br /&gt;
* Support direct navigation using the ENTER key or the GO button&lt;br /&gt;
* Type a full address (http://www.mozilla.org/) and navigate to it&lt;br /&gt;
* Type a shorter address (www.mozilla.org) and navigate to it&lt;br /&gt;
* With a page in history, for example https://www.mozilla.org/en-US/contribute/:&lt;br /&gt;
** Type a part of the address (www.mozilla.org) and navigate to the page&lt;br /&gt;
** Type a part of the title (at present &amp;quot;Volunteer&amp;quot;) and navigate to the page&lt;br /&gt;
* Type part of the title of an open tab and switch to it&lt;br /&gt;
* Style a bookmarked page differently in the suggestions&lt;br /&gt;
&lt;br /&gt;
Some explorations would be made possible:&lt;br /&gt;
* Richer styling of suggestions&lt;br /&gt;
* More complex keyboard interaction in the panel&lt;br /&gt;
** For example, search suggestions in the first row&lt;br /&gt;
&lt;br /&gt;
Non-goals for the prototype:&lt;br /&gt;
* Match current address bar behavior&lt;br /&gt;
* Create a viable product &#039;&#039;(however, since this is a technology/implementation prototype, it will start with product-quality code)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Possible next steps ==&lt;br /&gt;
&lt;br /&gt;
The purpose of the prototype is to understand whether there may be a way forward for this architecture. If so, the following steps would consist in:&lt;br /&gt;
* Identify clearer boundaries for reuse of existing components in the new architecture&lt;br /&gt;
* Bring existing components and tests into the new architecture, to match known use cases&lt;br /&gt;
* Honor a chosen subset of the currently supported address bar behavior preferences&lt;br /&gt;
* Switch to the new architecture on Nightly and discover more use cases&lt;br /&gt;
** The key difference with the current state would be that the changes to adapt to those use cases could be done much faster than now, and with fewer regressions&lt;br /&gt;
* Release the new architecture when it matches use cases satisfactorily &lt;br /&gt;
** Matching every single special case would be a non-goal&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=984856</id>
		<title>User:P.A./Form user experience improvements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=984856"/>
		<updated>2014-06-02T14:29:09Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* References */ Add Toolkit Autocomplete bug list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Submitting information to visited websites, using a &#039;&#039;&#039;web form&#039;&#039;&#039; or similar mechanism, is an increasingly common use case on the Internet.&lt;br /&gt;
&lt;br /&gt;
Web forms are currently the preferred way for websites to ask the user for different classes of information:&lt;br /&gt;
* Common personal information, for example a &#039;&#039;&#039;name and address&#039;&#039;&#039; for shipping a product.&lt;br /&gt;
* Other identifying information that may be specific to one website, for example a &#039;&#039;&#039;username&#039;&#039;&#039;.&lt;br /&gt;
* Authentication of identity using a secret key, for example a &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
* Authentication and authorization of payments using secret &#039;&#039;&#039;credit card data&#039;&#039;&#039;.&lt;br /&gt;
* Recurring input that may be specific to one website, for example &#039;&#039;&#039;search terms&#039;&#039;&#039;.&lt;br /&gt;
* Information that may be reused on different websites, for example the &#039;&#039;&#039;e-mail address&#039;&#039;&#039; of a contact.&lt;br /&gt;
* Miscellaneous information that is entered only once, for example a &#039;&#039;&#039;message&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Each class of information has different characteristics, but most of them can generally benefit from a mechanism that is able to remember past input and help the user in entering the same data again, on either the same website or a different one.&lt;br /&gt;
&lt;br /&gt;
=== Benefits ===&lt;br /&gt;
&lt;br /&gt;
A good web form user experience, that takes into account previous input, is beneficial to both users and websites:&lt;br /&gt;
* Users will not need to spend time entering the same information again and again on different websites.&lt;br /&gt;
* Users returning to a website may authenticate more quickly using their stored username and password.&lt;br /&gt;
* Websites can have a lower barrier to entry when registering new users.&lt;br /&gt;
* Websites could accept payments with an easy user experience, but without the complex requirements created by storing credit card data on the server.&lt;br /&gt;
&lt;br /&gt;
=== Themes ===&lt;br /&gt;
&lt;br /&gt;
To offer a good user experience for all the different classes of information, the web browser needs to:&lt;br /&gt;
* &#039;&#039;&#039;Identify which class of information is being requested by the website.&#039;&#039;&#039;&lt;br /&gt;
** For complex data, this includes determining which input field corresponds to which part of the information.&lt;br /&gt;
* &#039;&#039;&#039;Collect and store data in the most reusable form.&#039;&#039;&#039;&lt;br /&gt;
** This includes building an accurate, reusable user profile from the available input.&lt;br /&gt;
* &#039;&#039;&#039;Adapt to different expected input in different websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, deal with two separate name and surname fields or one single full name field.&lt;br /&gt;
** Different websites may have different field validation rules.&lt;br /&gt;
* &#039;&#039;&#039;Store and provide secret keys and data securely.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provide the simplest experience for completing the current task.&#039;&#039;&#039;&lt;br /&gt;
** For example, identify when a validation rule applies, and prevent the need of editing the data every time.&lt;br /&gt;
** The experience should be consistent across websites, so that if two websites look the same, the browser provides a similar experience with both of them.&lt;br /&gt;
&lt;br /&gt;
There are current and proposed web APIs that websites my use to help the browser in solving these problems, but even for websites that don&#039;t use them, the browser should offer a solution that improves the overall experience.&lt;br /&gt;
&lt;br /&gt;
Authors may be helped with upgrading their website to provide a better form experience with several actions:&lt;br /&gt;
* &#039;&#039;&#039;Provide meaningful console error messages and suggestions in the browser.&#039;&#039;&#039;&lt;br /&gt;
** These messages should be available by default to users of developer tools in Firefox.&lt;br /&gt;
** For example, indicate why the type of a field cannot be recognized.&lt;br /&gt;
* &#039;&#039;&#039;Define and evangelize best practices for websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, a full name field is encouraged over separate name and surname fields.&lt;br /&gt;
* &#039;&#039;&#039;Encourage sites to adopt new web features.&#039;&#039;&#039;&lt;br /&gt;
** For example, the &amp;lt;code&amp;gt;autocomplete&amp;lt;/code&amp;gt; attribute and the &amp;lt;code&amp;gt;requestAutocomplete&amp;lt;/code&amp;gt; method.&lt;br /&gt;
&lt;br /&gt;
== Approaches ==&lt;br /&gt;
&lt;br /&gt;
The general problems stated above may be solved in several different ways, some of which have already been implemented in Firefox for a long time.&lt;br /&gt;
&lt;br /&gt;
=== Login Manager ===&lt;br /&gt;
&lt;br /&gt;
This existing feature stores usernames and passwords for future input.&lt;br /&gt;
* Populates username and password fields only.&lt;br /&gt;
** &#039;&#039;The username may be an e-mail address, but this is independent from the user profile.&#039;&#039;&lt;br /&gt;
* The list of available usernames and associated passwords is specific to a particular website.&lt;br /&gt;
** &#039;&#039;This feature is often used with only a single username and associated password for each website.&#039;&#039;&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
=== Form History ===&lt;br /&gt;
&lt;br /&gt;
This existing feature remembers past input in single-line text fields.&lt;br /&gt;
* Populates only one field at a time.&lt;br /&gt;
* Which list of past values is used depends only on an identifier provided by the website.&lt;br /&gt;
** &#039;&#039;The identifier is the HTML &#039;&#039;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&#039;&#039; or &#039;&#039;&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&#039;&#039; attribute.&#039;&#039;&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* Requires explicit user action on the individual field.&lt;br /&gt;
** &#039;&#039;This can be clicking to show the list of past values, or typing to search.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unrelated data can easily be mixed if different websites reuse the identifier with different meanings. Conversely, data cannot be reused if websites don&#039;t use the same identifier.&lt;br /&gt;
&lt;br /&gt;
=== Form Autofill ===&lt;br /&gt;
&lt;br /&gt;
This unimplemented feature remembers past input for common data sets, like personal information, that are generally shared across websites.&lt;br /&gt;
* Populates several related fields at a time.&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
=== requestAutocomplete ===&lt;br /&gt;
&lt;br /&gt;
This unimplemented feature allows websites to explicitly request personal information from the browser.&lt;br /&gt;
* Replaces in-page form fields with a &#039;&#039;&#039;browser-provided interface&#039;&#039;&#039;.&lt;br /&gt;
* The browser may provide a different input experience depending on the device.&lt;br /&gt;
* Provides a similar input experience across all websites.&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
This feature works by transmitting the information to the server using &#039;&#039;&#039;hidden form fields&#039;&#039;&#039; after the website requested the browser to display the interface.&lt;br /&gt;
&lt;br /&gt;
The website may display &#039;&#039;&#039;visible fields later in the process&#039;&#039;&#039; to correct any data validation errors.&lt;br /&gt;
&lt;br /&gt;
== Comparison of strategies ==&lt;br /&gt;
&lt;br /&gt;
One of the most difficult problems that &#039;&#039;&#039;form autofill&#039;&#039;&#039; has to deal with, for existing websites, is identifying which type of data is being requested by each form field. Authors can update the website to use the &amp;lt;code&amp;gt;autocomplete&amp;lt;/code&amp;gt; attribute to help the browser, but the feature may not be available if the website doesn&#039;t do this. This can make it unclear to the user why one website supports autofill and another similarly-looking site doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
On the other hand, &#039;&#039;&#039;requestAutocomplete&#039;&#039;&#039; only works with websites that have changed their input flow to explicitly request some personal information from the browser. This feature shows a browser-provided interface that provides data to the website. While the feature could be used in an &amp;quot;unclear&amp;quot; way to populate visible fields, similarly to form autofill, we can ensure that the difference is clear by &#039;&#039;&#039;requiring that target form fields are hidden&#039;&#039;&#039; at the time of the request to autocomplete them.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Existing features ===&lt;br /&gt;
&lt;br /&gt;
Most of the main and support code for Login Manager and Form History can be found in these source folders and files:&lt;br /&gt;
* &amp;lt;code&amp;gt;toolkit/components/autocomplete/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;toolkit/components/passwordmgr/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;toolkit/components/satchel/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;toolkit/content/widgets/autocomplete.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Suggesting past input ====&lt;br /&gt;
&lt;br /&gt;
The autocompletion mechanism has the following typical control flow:&lt;br /&gt;
# The main entry point is the global &#039;&#039;&#039;&amp;lt;code&amp;gt;@mozilla.org/satchel/form-fill-controller;1&amp;lt;/code&amp;gt;&#039;&#039;&#039; service implemented in &amp;lt;code&amp;gt;nsFormFillController.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
# All &amp;lt;code&amp;gt;&amp;lt;browser&amp;gt;&amp;lt;/code&amp;gt; elements with an &amp;lt;code&amp;gt;autocompletepopup&amp;lt;/code&amp;gt; attribute, at the time of the &amp;lt;code&amp;gt;pageshow&amp;lt;/code&amp;gt; event, call &amp;lt;code&amp;gt;nsIFormFillController.attachToBrowser&amp;lt;/code&amp;gt; on the global service.&lt;br /&gt;
# When an input field raises the &amp;lt;code&amp;gt;focus&amp;lt;/code&amp;gt; event, &amp;lt;code&amp;gt;nsFormFillController::Focus&amp;lt;/code&amp;gt; checks if autocompletion should be enabled, in which case it registers the input field with the global &#039;&#039;&#039;&amp;lt;code&amp;gt;@mozilla.org/autocomplete/controller;1&amp;lt;/code&amp;gt;&#039;&#039;&#039; service, and starts forwarding input events to &amp;lt;code&amp;gt;nsIAutoCompleteController&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* The &amp;lt;code&amp;gt;nsFormFillController::GetSearchAt&amp;lt;/code&amp;gt; method returns &amp;lt;code&amp;gt;form-history&amp;lt;/code&amp;gt;, indicating that searches should be handled by the &#039;&#039;&#039;&amp;lt;code&amp;gt;@mozilla.org/autocomplete/search;1?name=form-history&amp;lt;/code&amp;gt;&#039;&#039;&#039; global service, which is the same service implemented in &amp;lt;code&amp;gt;nsFormFillController.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
# At this point, typically while typing, &amp;lt;code&amp;gt;nsAutoCompleteController::HandleText&amp;lt;/code&amp;gt; starts searches by calling the &amp;lt;code&amp;gt;nsFormFillController::StartSearch&amp;lt;/code&amp;gt; method.&lt;br /&gt;
#* Note that the &amp;lt;code&amp;gt;nsIAutoCompleteInput.searchParam&amp;lt;/code&amp;gt; getter of the same global service provides one of the parameters of the function.&lt;br /&gt;
# The &amp;lt;code&amp;gt;StartSearch&amp;lt;/code&amp;gt; method dispatches the call through &amp;lt;code&amp;gt;autoCompleteSearch&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;autoCompleteSearchAsync&amp;lt;/code&amp;gt; to either:&lt;br /&gt;
#* &#039;&#039;&#039;Login Manager&#039;&#039;&#039;, through the global &#039;&#039;&#039;&amp;lt;code&amp;gt;@mozilla.org/login-manager;1&amp;lt;/code&amp;gt;&#039;&#039;&#039; service.&lt;br /&gt;
#* &#039;&#039;&#039;Form History&#039;&#039;&#039;, through the global &#039;&#039;&#039;&amp;lt;code&amp;gt;@mozilla.org/satchel/form-autocomplete;1&amp;lt;/code&amp;gt;&#039;&#039;&#039; service.&lt;br /&gt;
# When the result is available, &amp;lt;code&amp;gt;nsFormFillController.cpp&amp;lt;/code&amp;gt; invokes the &amp;lt;code&amp;gt;nsAutoCompleteController::OnSearchResult&amp;lt;/code&amp;gt; method.&lt;br /&gt;
#* This stores the result in the global service implemented in &amp;lt;code&amp;gt;nsAutoCompleteController.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* This calls &amp;lt;code&amp;gt;nsIAutoCompletePopup.invalidate&amp;lt;/code&amp;gt;, and also indirectly &amp;lt;code&amp;gt;nsIAutoCompletePopup.openAutocompletePopup&amp;lt;/code&amp;gt;, on the entry returned by &amp;lt;code&amp;gt;nsFormFillController::GetPopup&amp;lt;/code&amp;gt;, which is the &amp;lt;code&amp;gt;autocompletepopup&amp;lt;/code&amp;gt; associated to the browser window.&lt;br /&gt;
#** The &amp;lt;code&amp;gt;openAutocompletePopup&amp;lt;/code&amp;gt; method is called with a reference to the &amp;lt;code&amp;gt;nsIAutoCompleteInput&amp;lt;/code&amp;gt; corresponding to the global service implemented in &amp;lt;code&amp;gt;nsFormFillController.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
# The &amp;lt;code&amp;gt;nsIAutoCompletePopup&amp;lt;/code&amp;gt; interface will display the popup and handle its input.&lt;br /&gt;
#* This may cause the actual calls to be routed through IPC in case the interface is invoked in a child process.&lt;br /&gt;
# In response to popup events, the contents of the &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; field are updated.&lt;br /&gt;
&lt;br /&gt;
==== Recording new input ====&lt;br /&gt;
&lt;br /&gt;
When a form is submitted, saving the submitted data is handled by a different mechanism:&lt;br /&gt;
# The main entry point is the global &#039;&#039;&#039;&amp;lt;code&amp;gt;@mozilla.org/satchel/form-history-startup;1&amp;lt;/code&amp;gt;&#039;&#039;&#039; service implemented in &amp;lt;code&amp;gt;FormHistoryStartup.js&amp;lt;/code&amp;gt;.&lt;br /&gt;
# This registers the global &amp;lt;code&amp;gt;formSubmitListener.js&amp;lt;/code&amp;gt; content script for all browsers.&lt;br /&gt;
# Form submissions monitored by the content script are translated into &amp;lt;code&amp;gt;FormHistory.jsm&amp;lt;/code&amp;gt; calls to update the stored data.&lt;br /&gt;
&lt;br /&gt;
=== Bug list ===&lt;br /&gt;
&lt;br /&gt;
* {{bug|1009935}} - Implement the @autocomplete attribute for values other than off/on&lt;br /&gt;
* {{bug|939351}} - Implement requestAutocomplete backend&lt;br /&gt;
* {{bug|946022}} - Implement requestAutocomplete for Firefox for Android&lt;br /&gt;
* {{bug|990367}} - requestAutocomplete UI for Firefox desktop&lt;br /&gt;
* {{bug|998077}} - Sync support for autofill data&lt;br /&gt;
* {{bug|1007176}} - Implement requestAutocomplete on donate.mozilla.org&lt;br /&gt;
* {{bug|1007181}} - Project Review: requestAutoComplete on donate.mozilla.org&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [https://etherpad.mozilla.org/requestautocomplete requestAutocomplete Etherpad]&lt;br /&gt;
* [http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#autofill WHATWG Autofill specification work]&lt;br /&gt;
* [https://www.w3.org/Bugs/Public/buglist.cgi?component=HTML&amp;amp;list_id=34802&amp;amp;product=WHATWG&amp;amp;resolution=---&amp;amp;short_desc=autocomplete&amp;amp;short_desc_type=allwordssubstr WHATWG Autofill specification bug list]&lt;br /&gt;
* [https://code.google.com/p/chromium/issues/list?can=2&amp;amp;q=Cr%3DUI-Browser-Autofill-Interactive Chromium Autofill implementation bug list]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?list_id=10261611&amp;amp;classification=Components&amp;amp;query_format=advanced&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;component=Form%20Manager&amp;amp;product=Toolkit Form Manager bug list]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?list_id=10374896&amp;amp;classification=Components&amp;amp;query_format=advanced&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;component=Autocomplete&amp;amp;product=Toolkit Toolkit Autocomplete bug list]&lt;br /&gt;
* [https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion MDN documentation mentioning form autocompletion]&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=984347</id>
		<title>User:P.A./Form user experience improvements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=984347"/>
		<updated>2014-05-30T13:35:34Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Implementation */ Add implementation notes for existing features&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Submitting information to visited websites, using a &#039;&#039;&#039;web form&#039;&#039;&#039; or similar mechanism, is an increasingly common use case on the Internet.&lt;br /&gt;
&lt;br /&gt;
Web forms are currently the preferred way for websites to ask the user for different classes of information:&lt;br /&gt;
* Common personal information, for example a &#039;&#039;&#039;name and address&#039;&#039;&#039; for shipping a product.&lt;br /&gt;
* Other identifying information that may be specific to one website, for example a &#039;&#039;&#039;username&#039;&#039;&#039;.&lt;br /&gt;
* Authentication of identity using a secret key, for example a &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
* Authentication and authorization of payments using secret &#039;&#039;&#039;credit card data&#039;&#039;&#039;.&lt;br /&gt;
* Recurring input that may be specific to one website, for example &#039;&#039;&#039;search terms&#039;&#039;&#039;.&lt;br /&gt;
* Information that may be reused on different websites, for example the &#039;&#039;&#039;e-mail address&#039;&#039;&#039; of a contact.&lt;br /&gt;
* Miscellaneous information that is entered only once, for example a &#039;&#039;&#039;message&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Each class of information has different characteristics, but most of them can generally benefit from a mechanism that is able to remember past input and help the user in entering the same data again, on either the same website or a different one.&lt;br /&gt;
&lt;br /&gt;
=== Benefits ===&lt;br /&gt;
&lt;br /&gt;
A good web form user experience, that takes into account previous input, is beneficial to both users and websites:&lt;br /&gt;
* Users will not need to spend time entering the same information again and again on different websites.&lt;br /&gt;
* Users returning to a website may authenticate more quickly using their stored username and password.&lt;br /&gt;
* Websites can have a lower barrier to entry when registering new users.&lt;br /&gt;
* Websites could accept payments with an easy user experience, but without the complex requirements created by storing credit card data on the server.&lt;br /&gt;
&lt;br /&gt;
=== Themes ===&lt;br /&gt;
&lt;br /&gt;
To offer a good user experience for all the different classes of information, the web browser needs to:&lt;br /&gt;
* &#039;&#039;&#039;Identify which class of information is being requested by the website.&#039;&#039;&#039;&lt;br /&gt;
** For complex data, this includes determining which input field corresponds to which part of the information.&lt;br /&gt;
* &#039;&#039;&#039;Collect and store data in the most reusable form.&#039;&#039;&#039;&lt;br /&gt;
** This includes building an accurate, reusable user profile from the available input.&lt;br /&gt;
* &#039;&#039;&#039;Adapt to different expected input in different websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, deal with two separate name and surname fields or one single full name field.&lt;br /&gt;
** Different websites may have different field validation rules.&lt;br /&gt;
* &#039;&#039;&#039;Store and provide secret keys and data securely.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provide the simplest experience for completing the current task.&#039;&#039;&#039;&lt;br /&gt;
** For example, identify when a validation rule applies, and prevent the need of editing the data every time.&lt;br /&gt;
** The experience should be consistent across websites, so that if two websites look the same, the browser provides a similar experience with both of them.&lt;br /&gt;
&lt;br /&gt;
There are current and proposed web APIs that websites my use to help the browser in solving these problems, but even for websites that don&#039;t use them, the browser should offer a solution that improves the overall experience.&lt;br /&gt;
&lt;br /&gt;
Authors may be helped with upgrading their website to provide a better form experience with several actions:&lt;br /&gt;
* &#039;&#039;&#039;Provide meaningful console error messages and suggestions in the browser.&#039;&#039;&#039;&lt;br /&gt;
** These messages should be available by default to users of developer tools in Firefox.&lt;br /&gt;
** For example, indicate why the type of a field cannot be recognized.&lt;br /&gt;
* &#039;&#039;&#039;Define and evangelize best practices for websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, a full name field is encouraged over separate name and surname fields.&lt;br /&gt;
* &#039;&#039;&#039;Encourage sites to adopt new web features.&#039;&#039;&#039;&lt;br /&gt;
** For example, the &amp;lt;code&amp;gt;autocomplete&amp;lt;/code&amp;gt; attribute and the &amp;lt;code&amp;gt;requestAutocomplete&amp;lt;/code&amp;gt; method.&lt;br /&gt;
&lt;br /&gt;
== Approaches ==&lt;br /&gt;
&lt;br /&gt;
The general problems stated above may be solved in several different ways, some of which have already been implemented in Firefox for a long time.&lt;br /&gt;
&lt;br /&gt;
=== Login Manager ===&lt;br /&gt;
&lt;br /&gt;
This existing feature stores usernames and passwords for future input.&lt;br /&gt;
* Populates username and password fields only.&lt;br /&gt;
** &#039;&#039;The username may be an e-mail address, but this is independent from the user profile.&#039;&#039;&lt;br /&gt;
* The list of available usernames and associated passwords is specific to a particular website.&lt;br /&gt;
** &#039;&#039;This feature is often used with only a single username and associated password for each website.&#039;&#039;&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
=== Form History ===&lt;br /&gt;
&lt;br /&gt;
This existing feature remembers past input in single-line text fields.&lt;br /&gt;
* Populates only one field at a time.&lt;br /&gt;
* Which list of past values is used depends only on an identifier provided by the website.&lt;br /&gt;
** &#039;&#039;The identifier is the HTML &#039;&#039;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&#039;&#039; or &#039;&#039;&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&#039;&#039; attribute.&#039;&#039;&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* Requires explicit user action on the individual field.&lt;br /&gt;
** &#039;&#039;This can be clicking to show the list of past values, or typing to search.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unrelated data can easily be mixed if different websites reuse the identifier with different meanings. Conversely, data cannot be reused if websites don&#039;t use the same identifier.&lt;br /&gt;
&lt;br /&gt;
=== Form Autofill ===&lt;br /&gt;
&lt;br /&gt;
This unimplemented feature remembers past input for common data sets, like personal information, that are generally shared across websites.&lt;br /&gt;
* Populates several related fields at a time.&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
=== requestAutocomplete ===&lt;br /&gt;
&lt;br /&gt;
This unimplemented feature allows websites to explicitly request personal information from the browser.&lt;br /&gt;
* Replaces in-page form fields with a &#039;&#039;&#039;browser-provided interface&#039;&#039;&#039;.&lt;br /&gt;
* The browser may provide a different input experience depending on the device.&lt;br /&gt;
* Provides a similar input experience across all websites.&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
This feature works by transmitting the information to the server using &#039;&#039;&#039;hidden form fields&#039;&#039;&#039; after the website requested the browser to display the interface.&lt;br /&gt;
&lt;br /&gt;
The website may display &#039;&#039;&#039;visible fields later in the process&#039;&#039;&#039; to correct any data validation errors.&lt;br /&gt;
&lt;br /&gt;
== Comparison of strategies ==&lt;br /&gt;
&lt;br /&gt;
One of the most difficult problems that &#039;&#039;&#039;form autofill&#039;&#039;&#039; has to deal with, for existing websites, is identifying which type of data is being requested by each form field. Authors can update the website to use the &amp;lt;code&amp;gt;autocomplete&amp;lt;/code&amp;gt; attribute to help the browser, but the feature may not be available if the website doesn&#039;t do this. This can make it unclear to the user why one website supports autofill and another similarly-looking site doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
On the other hand, &#039;&#039;&#039;requestAutocomplete&#039;&#039;&#039; only works with websites that have changed their input flow to explicitly request some personal information from the browser. This feature shows a browser-provided interface that provides data to the website. While the feature could be used in an &amp;quot;unclear&amp;quot; way to populate visible fields, similarly to form autofill, we can ensure that the difference is clear by &#039;&#039;&#039;requiring that target form fields are hidden&#039;&#039;&#039; at the time of the request to autocomplete them.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Existing features ===&lt;br /&gt;
&lt;br /&gt;
Most of the main and support code for Login Manager and Form History can be found in these source folders and files:&lt;br /&gt;
* &amp;lt;code&amp;gt;toolkit/components/autocomplete/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;toolkit/components/passwordmgr/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;toolkit/components/satchel/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;toolkit/content/widgets/autocomplete.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Suggesting past input ====&lt;br /&gt;
&lt;br /&gt;
The autocompletion mechanism has the following typical control flow:&lt;br /&gt;
# The main entry point is the global &#039;&#039;&#039;&amp;lt;code&amp;gt;@mozilla.org/satchel/form-fill-controller;1&amp;lt;/code&amp;gt;&#039;&#039;&#039; service implemented in &amp;lt;code&amp;gt;nsFormFillController.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
# All &amp;lt;code&amp;gt;&amp;lt;browser&amp;gt;&amp;lt;/code&amp;gt; elements with an &amp;lt;code&amp;gt;autocompletepopup&amp;lt;/code&amp;gt; attribute, at the time of the &amp;lt;code&amp;gt;pageshow&amp;lt;/code&amp;gt; event, call &amp;lt;code&amp;gt;nsIFormFillController.attachToBrowser&amp;lt;/code&amp;gt; on the global service.&lt;br /&gt;
# When an input field raises the &amp;lt;code&amp;gt;focus&amp;lt;/code&amp;gt; event, &amp;lt;code&amp;gt;nsFormFillController::Focus&amp;lt;/code&amp;gt; checks if autocompletion should be enabled, in which case it registers the input field with the global &#039;&#039;&#039;&amp;lt;code&amp;gt;@mozilla.org/autocomplete/controller;1&amp;lt;/code&amp;gt;&#039;&#039;&#039; service, and starts forwarding input events to &amp;lt;code&amp;gt;nsIAutoCompleteController&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* The &amp;lt;code&amp;gt;nsFormFillController::GetSearchAt&amp;lt;/code&amp;gt; method returns &amp;lt;code&amp;gt;form-history&amp;lt;/code&amp;gt;, indicating that searches should be handled by the &#039;&#039;&#039;&amp;lt;code&amp;gt;@mozilla.org/autocomplete/search;1?name=form-history&amp;lt;/code&amp;gt;&#039;&#039;&#039; global service, which is the same service implemented in &amp;lt;code&amp;gt;nsFormFillController.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
# At this point, typically while typing, &amp;lt;code&amp;gt;nsAutoCompleteController::HandleText&amp;lt;/code&amp;gt; starts searches by calling the &amp;lt;code&amp;gt;nsFormFillController::StartSearch&amp;lt;/code&amp;gt; method.&lt;br /&gt;
#* Note that the &amp;lt;code&amp;gt;nsIAutoCompleteInput.searchParam&amp;lt;/code&amp;gt; getter of the same global service provides one of the parameters of the function.&lt;br /&gt;
# The &amp;lt;code&amp;gt;StartSearch&amp;lt;/code&amp;gt; method dispatches the call through &amp;lt;code&amp;gt;autoCompleteSearch&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;autoCompleteSearchAsync&amp;lt;/code&amp;gt; to either:&lt;br /&gt;
#* &#039;&#039;&#039;Login Manager&#039;&#039;&#039;, through the global &#039;&#039;&#039;&amp;lt;code&amp;gt;@mozilla.org/login-manager;1&amp;lt;/code&amp;gt;&#039;&#039;&#039; service.&lt;br /&gt;
#* &#039;&#039;&#039;Form History&#039;&#039;&#039;, through the global &#039;&#039;&#039;&amp;lt;code&amp;gt;@mozilla.org/satchel/form-autocomplete;1&amp;lt;/code&amp;gt;&#039;&#039;&#039; service.&lt;br /&gt;
# When the result is available, &amp;lt;code&amp;gt;nsFormFillController.cpp&amp;lt;/code&amp;gt; invokes the &amp;lt;code&amp;gt;nsAutoCompleteController::OnSearchResult&amp;lt;/code&amp;gt; method.&lt;br /&gt;
#* This stores the result in the global service implemented in &amp;lt;code&amp;gt;nsAutoCompleteController.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* This calls &amp;lt;code&amp;gt;nsIAutoCompletePopup.invalidate&amp;lt;/code&amp;gt;, and also indirectly &amp;lt;code&amp;gt;nsIAutoCompletePopup.openAutocompletePopup&amp;lt;/code&amp;gt;, on the entry returned by &amp;lt;code&amp;gt;nsFormFillController::GetPopup&amp;lt;/code&amp;gt;, which is the &amp;lt;code&amp;gt;autocompletepopup&amp;lt;/code&amp;gt; associated to the browser window.&lt;br /&gt;
#** The &amp;lt;code&amp;gt;openAutocompletePopup&amp;lt;/code&amp;gt; method is called with a reference to the &amp;lt;code&amp;gt;nsIAutoCompleteInput&amp;lt;/code&amp;gt; corresponding to the global service implemented in &amp;lt;code&amp;gt;nsFormFillController.cpp&amp;lt;/code&amp;gt;.&lt;br /&gt;
# The &amp;lt;code&amp;gt;nsIAutoCompletePopup&amp;lt;/code&amp;gt; interface will display the popup and handle its input.&lt;br /&gt;
#* This may cause the actual calls to be routed through IPC in case the interface is invoked in a child process.&lt;br /&gt;
# In response to popup events, the contents of the &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; field are updated.&lt;br /&gt;
&lt;br /&gt;
==== Recording new input ====&lt;br /&gt;
&lt;br /&gt;
When a form is submitted, saving the submitted data is handled by a different mechanism:&lt;br /&gt;
# The main entry point is the global &#039;&#039;&#039;&amp;lt;code&amp;gt;@mozilla.org/satchel/form-history-startup;1&amp;lt;/code&amp;gt;&#039;&#039;&#039; service implemented in &amp;lt;code&amp;gt;FormHistoryStartup.js&amp;lt;/code&amp;gt;.&lt;br /&gt;
# This registers the global &amp;lt;code&amp;gt;formSubmitListener.js&amp;lt;/code&amp;gt; content script for all browsers.&lt;br /&gt;
# Form submissions monitored by the content script are translated into &amp;lt;code&amp;gt;FormHistory.jsm&amp;lt;/code&amp;gt; calls to update the stored data.&lt;br /&gt;
&lt;br /&gt;
=== Bug list ===&lt;br /&gt;
&lt;br /&gt;
* {{bug|1009935}} - Implement the @autocomplete attribute for values other than off/on&lt;br /&gt;
* {{bug|939351}} - Implement requestAutocomplete backend&lt;br /&gt;
* {{bug|946022}} - Implement requestAutocomplete for Firefox for Android&lt;br /&gt;
* {{bug|990367}} - requestAutocomplete UI for Firefox desktop&lt;br /&gt;
* {{bug|998077}} - Sync support for autofill data&lt;br /&gt;
* {{bug|1007176}} - Implement requestAutocomplete on donate.mozilla.org&lt;br /&gt;
* {{bug|1007181}} - Project Review: requestAutoComplete on donate.mozilla.org&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [https://etherpad.mozilla.org/requestautocomplete requestAutocomplete Etherpad]&lt;br /&gt;
* [http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#autofill WHATWG Autofill specification work]&lt;br /&gt;
* [https://www.w3.org/Bugs/Public/buglist.cgi?component=HTML&amp;amp;list_id=34802&amp;amp;product=WHATWG&amp;amp;resolution=---&amp;amp;short_desc=autocomplete&amp;amp;short_desc_type=allwordssubstr WHATWG Autofill specification bug list]&lt;br /&gt;
* [https://code.google.com/p/chromium/issues/list?can=2&amp;amp;q=Cr%3DUI-Browser-Autofill-Interactive Chromium Autofill implementation bug list]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?list_id=10261611&amp;amp;classification=Components&amp;amp;query_format=advanced&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;component=Form%20Manager&amp;amp;product=Toolkit Form Manager bug list]&lt;br /&gt;
* [https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion MDN documentation mentioning form autocompletion]&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983670</id>
		<title>User:P.A./Form user experience improvements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983670"/>
		<updated>2014-05-28T16:46:34Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Add bug references&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Submitting information to visited websites, using a &#039;&#039;&#039;web form&#039;&#039;&#039; or similar mechanism, is an increasingly common use case on the Internet.&lt;br /&gt;
&lt;br /&gt;
Web forms are currently the preferred way for websites to ask the user for different classes of information:&lt;br /&gt;
* Common personal information, for example a &#039;&#039;&#039;name and address&#039;&#039;&#039; for shipping a product.&lt;br /&gt;
* Other identifying information that may be specific to one website, for example a &#039;&#039;&#039;username&#039;&#039;&#039;.&lt;br /&gt;
* Authentication of identity using a secret key, for example a &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
* Authentication and authorization of payments using secret &#039;&#039;&#039;credit card data&#039;&#039;&#039;.&lt;br /&gt;
* Recurring input that may be specific to one website, for example &#039;&#039;&#039;search terms&#039;&#039;&#039;.&lt;br /&gt;
* Information that may be reused on different websites, for example the &#039;&#039;&#039;e-mail address&#039;&#039;&#039; of a contact.&lt;br /&gt;
* Miscellaneous information that is entered only once, for example a &#039;&#039;&#039;message&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Each class of information has different characteristics, but most of them can generally benefit from a mechanism that is able to remember past input and help the user in entering the same data again, on either the same website or a different one.&lt;br /&gt;
&lt;br /&gt;
=== Benefits ===&lt;br /&gt;
&lt;br /&gt;
A good web form user experience, that takes into account previous input, is beneficial to both users and websites:&lt;br /&gt;
* Users will not need to spend time entering the same information again and again on different websites.&lt;br /&gt;
* Users returning to a website may authenticate more quickly using their stored username and password.&lt;br /&gt;
* Websites can have a lower barrier to entry when registering new users.&lt;br /&gt;
* Websites could accept payments with an easy user experience, but without the complex requirements created by storing credit card data on the server.&lt;br /&gt;
&lt;br /&gt;
=== Themes ===&lt;br /&gt;
&lt;br /&gt;
To offer a good user experience for all the different classes of information, the web browser needs to:&lt;br /&gt;
* &#039;&#039;&#039;Identify which class of information is being requested by the website.&#039;&#039;&#039;&lt;br /&gt;
** For complex data, this includes determining which input field corresponds to which part of the information.&lt;br /&gt;
* &#039;&#039;&#039;Collect and store data in the most reusable form.&#039;&#039;&#039;&lt;br /&gt;
** This includes building an accurate, reusable user profile from the available input.&lt;br /&gt;
* &#039;&#039;&#039;Adapt to different expected input in different websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, deal with two separate name and surname fields or one single full name field.&lt;br /&gt;
** Different websites may have different field validation rules.&lt;br /&gt;
* &#039;&#039;&#039;Store and provide secret keys and data securely.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provide the simplest experience for completing the current task.&#039;&#039;&#039;&lt;br /&gt;
** For example, identify when a validation rule applies, and prevent the need of editing the data every time.&lt;br /&gt;
** The experience should be consistent across websites, so that if two websites look the same, the browser provides a similar experience with both of them.&lt;br /&gt;
&lt;br /&gt;
There are current and proposed web APIs that websites my use to help the browser in solving these problems, but even for websites that don&#039;t use them, the browser should offer a solution that improves the overall experience.&lt;br /&gt;
&lt;br /&gt;
Authors may be helped with upgrading their website to provide a better form experience with several actions:&lt;br /&gt;
* &#039;&#039;&#039;Provide meaningful console error messages and suggestions in the browser.&#039;&#039;&#039;&lt;br /&gt;
** These messages should be available by default to users of developer tools in Firefox.&lt;br /&gt;
** For example, indicate why the type of a field cannot be recognized.&lt;br /&gt;
* &#039;&#039;&#039;Define and evangelize best practices for websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, a full name field is encouraged over separate name and surname fields.&lt;br /&gt;
* &#039;&#039;&#039;Encourage sites to adopt new web features.&#039;&#039;&#039;&lt;br /&gt;
** For example, the &amp;lt;code&amp;gt;autocomplete&amp;lt;/code&amp;gt; attribute and the &amp;lt;code&amp;gt;requestAutocomplete&amp;lt;/code&amp;gt; method.&lt;br /&gt;
&lt;br /&gt;
== Approaches ==&lt;br /&gt;
&lt;br /&gt;
The general problems stated above may be solved in several different ways, some of which have already been implemented in Firefox for a long time.&lt;br /&gt;
&lt;br /&gt;
=== Login Manager ===&lt;br /&gt;
&lt;br /&gt;
This existing feature stores usernames and passwords for future input.&lt;br /&gt;
* Populates username and password fields only.&lt;br /&gt;
** &#039;&#039;The username may be an e-mail address, but this is independent from the user profile.&#039;&#039;&lt;br /&gt;
* The list of available usernames and associated passwords is specific to a particular website.&lt;br /&gt;
** &#039;&#039;This feature is often used with only a single username and associated password for each website.&#039;&#039;&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
=== Form History ===&lt;br /&gt;
&lt;br /&gt;
This existing feature remembers past input in single-line text fields.&lt;br /&gt;
* Populates only one field at a time.&lt;br /&gt;
* Which list of past values is used depends only on an identifier provided by the website.&lt;br /&gt;
** &#039;&#039;The identifier is the HTML &#039;&#039;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&#039;&#039; or &#039;&#039;&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&#039;&#039; attribute.&#039;&#039;&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* Requires explicit user action on the individual field.&lt;br /&gt;
** &#039;&#039;This can be clicking to show the list of past values, or typing to search.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unrelated data can easily be mixed if different websites reuse the identifier with different meanings. Conversely, data cannot be reused if websites don&#039;t use the same identifier.&lt;br /&gt;
&lt;br /&gt;
=== Form Autofill ===&lt;br /&gt;
&lt;br /&gt;
This unimplemented feature remembers past input for common data sets, like personal information, that are generally shared across websites.&lt;br /&gt;
* Populates several related fields at a time.&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
=== requestAutocomplete ===&lt;br /&gt;
&lt;br /&gt;
This unimplemented feature allows websites to explicitly request personal information from the browser.&lt;br /&gt;
* Replaces in-page form fields with a &#039;&#039;&#039;browser-provided interface&#039;&#039;&#039;.&lt;br /&gt;
* The browser may provide a different input experience depending on the device.&lt;br /&gt;
* Provides a similar input experience across all websites.&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
This feature works by transmitting the information to the server using &#039;&#039;&#039;hidden form fields&#039;&#039;&#039; after the website requested the browser to display the interface.&lt;br /&gt;
&lt;br /&gt;
The website may display &#039;&#039;&#039;visible fields later in the process&#039;&#039;&#039; to correct any data validation errors.&lt;br /&gt;
&lt;br /&gt;
== Comparison of strategies ==&lt;br /&gt;
&lt;br /&gt;
One of the most difficult problems that &#039;&#039;&#039;form autofill&#039;&#039;&#039; has to deal with, for existing websites, is identifying which type of data is being requested by each form field. Authors can update the website to use the &amp;lt;code&amp;gt;autocomplete&amp;lt;/code&amp;gt; attribute to help the browser, but the feature may not be available if the website doesn&#039;t do this. This can make it unclear to the user why one website supports autofill and another similarly-looking site doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
On the other hand, &#039;&#039;&#039;requestAutocomplete&#039;&#039;&#039; only works with websites that have changed their input flow to explicitly request some personal information from the browser. This feature shows a browser-provided interface that provides data to the website. While the feature could be used in an &amp;quot;unclear&amp;quot; way to populate visible fields, similarly to form autofill, we can ensure that the difference is clear by &#039;&#039;&#039;requiring that target form fields are hidden&#039;&#039;&#039; at the time of the request to autocomplete them.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Bug list ===&lt;br /&gt;
&lt;br /&gt;
* {{bug|1009935}} - Implement the @autocomplete attribute for values other than off/on&lt;br /&gt;
* {{bug|939351}} - Implement requestAutocomplete backend&lt;br /&gt;
* {{bug|946022}} - Implement requestAutocomplete for Firefox for Android&lt;br /&gt;
* {{bug|990367}} - requestAutocomplete UI for Firefox desktop&lt;br /&gt;
* {{bug|998077}} - Sync support for autofill data&lt;br /&gt;
* {{bug|1007176}} - Implement requestAutocomplete on donate.mozilla.org&lt;br /&gt;
* {{bug|1007181}} - Project Review: requestAutoComplete on donate.mozilla.org&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [https://etherpad.mozilla.org/requestautocomplete requestAutocomplete Etherpad]&lt;br /&gt;
* [http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#autofill WHATWG Autofill specification work]&lt;br /&gt;
* [https://www.w3.org/Bugs/Public/buglist.cgi?component=HTML&amp;amp;list_id=34802&amp;amp;product=WHATWG&amp;amp;resolution=---&amp;amp;short_desc=autocomplete&amp;amp;short_desc_type=allwordssubstr WHATWG Autofill specification bug list]&lt;br /&gt;
* [https://code.google.com/p/chromium/issues/list?can=2&amp;amp;q=Cr%3DUI-Browser-Autofill-Interactive Chromium Autofill implementation bug list]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?list_id=10261611&amp;amp;classification=Components&amp;amp;query_format=advanced&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;component=Form%20Manager&amp;amp;product=Toolkit Form Manager bug list]&lt;br /&gt;
* [https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion MDN documentation mentioning form autocompletion]&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983610</id>
		<title>User:P.A./Form user experience improvements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983610"/>
		<updated>2014-05-28T15:42:22Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Add references&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Submitting information to visited websites, using a &#039;&#039;&#039;web form&#039;&#039;&#039; or similar mechanism, is an increasingly common use case on the Internet.&lt;br /&gt;
&lt;br /&gt;
Web forms are currently the preferred way for websites to ask the user for different classes of information:&lt;br /&gt;
* Common personal information, for example a &#039;&#039;&#039;name and address&#039;&#039;&#039; for shipping a product.&lt;br /&gt;
* Other identifying information that may be specific to one website, for example a &#039;&#039;&#039;username&#039;&#039;&#039;.&lt;br /&gt;
* Authentication of identity using a secret key, for example a &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
* Authentication and authorization of payments using secret &#039;&#039;&#039;credit card data&#039;&#039;&#039;.&lt;br /&gt;
* Recurring input that may be specific to one website, for example &#039;&#039;&#039;search terms&#039;&#039;&#039;.&lt;br /&gt;
* Information that may be reused on different websites, for example the &#039;&#039;&#039;e-mail address&#039;&#039;&#039; of a contact.&lt;br /&gt;
* Miscellaneous information that is entered only once, for example a &#039;&#039;&#039;message&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Each class of information has different characteristics, but most of them can generally benefit from a mechanism that is able to remember past input and help the user in entering the same data again, on either the same website or a different one.&lt;br /&gt;
&lt;br /&gt;
=== Benefits ===&lt;br /&gt;
&lt;br /&gt;
A good web form user experience, that takes into account previous input, is beneficial to both users and websites:&lt;br /&gt;
* Users will not need to spend time entering the same information again and again on different websites.&lt;br /&gt;
* Users returning to a website may authenticate more quickly using their stored username and password.&lt;br /&gt;
* Websites can have a lower barrier to entry when registering new users.&lt;br /&gt;
* Websites could accept payments with an easy user experience, but without the complex requirements created by storing credit card data on the server.&lt;br /&gt;
&lt;br /&gt;
=== Themes ===&lt;br /&gt;
&lt;br /&gt;
To offer a good user experience for all the different classes of information, the web browser needs to:&lt;br /&gt;
* &#039;&#039;&#039;Identify which class of information is being requested by the website.&#039;&#039;&#039;&lt;br /&gt;
** For complex data, this includes determining which input field corresponds to which part of the information.&lt;br /&gt;
* &#039;&#039;&#039;Collect and store data in the most reusable form.&#039;&#039;&#039;&lt;br /&gt;
** This includes building an accurate, reusable user profile from the available input.&lt;br /&gt;
* &#039;&#039;&#039;Adapt to different expected input in different websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, deal with two separate name and surname fields or one single full name field.&lt;br /&gt;
** Different websites may have different field validation rules.&lt;br /&gt;
* &#039;&#039;&#039;Store and provide secret keys and data securely.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provide the simplest experience for completing the current task.&#039;&#039;&#039;&lt;br /&gt;
** For example, identify when a validation rule applies, and prevent the need of editing the data every time.&lt;br /&gt;
** The experience should be consistent across websites, so that if two websites look the same, the browser provides a similar experience with both of them.&lt;br /&gt;
&lt;br /&gt;
There are current and proposed web APIs that websites my use to help the browser in solving these problems, but even for websites that don&#039;t use them, the browser should offer a solution that improves the overall experience.&lt;br /&gt;
&lt;br /&gt;
Authors may be helped with upgrading their website to provide a better form experience with several actions:&lt;br /&gt;
* &#039;&#039;&#039;Provide meaningful console error messages and suggestions in the browser.&#039;&#039;&#039;&lt;br /&gt;
** These messages should be available by default to users of developer tools in Firefox.&lt;br /&gt;
** For example, indicate why the type of a field cannot be recognized.&lt;br /&gt;
* &#039;&#039;&#039;Define and evangelize best practices for websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, a full name field is encouraged over separate name and surname fields.&lt;br /&gt;
* &#039;&#039;&#039;Encourage sites to adopt new web features.&#039;&#039;&#039;&lt;br /&gt;
** For example, the &amp;lt;code&amp;gt;autocomplete&amp;lt;/code&amp;gt; attribute and the &amp;lt;code&amp;gt;requestAutocomplete&amp;lt;/code&amp;gt; method.&lt;br /&gt;
&lt;br /&gt;
== Approaches ==&lt;br /&gt;
&lt;br /&gt;
The general problems stated above may be solved in several different ways, some of which have already been implemented in Firefox for a long time.&lt;br /&gt;
&lt;br /&gt;
=== Login Manager ===&lt;br /&gt;
&lt;br /&gt;
This existing feature stores usernames and passwords for future input.&lt;br /&gt;
* Populates username and password fields only.&lt;br /&gt;
** &#039;&#039;The username may be an e-mail address, but this is independent from the user profile.&#039;&#039;&lt;br /&gt;
* The list of available usernames and associated passwords is specific to a particular website.&lt;br /&gt;
** &#039;&#039;This feature is often used with only a single username and associated password for each website.&#039;&#039;&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
=== Form History ===&lt;br /&gt;
&lt;br /&gt;
This existing feature remembers past input in single-line text fields.&lt;br /&gt;
* Populates only one field at a time.&lt;br /&gt;
* Which list of past values is used depends only on an identifier provided by the website.&lt;br /&gt;
** &#039;&#039;The identifier is the HTML &#039;&#039;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&#039;&#039; or &#039;&#039;&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&#039;&#039; attribute.&#039;&#039;&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* Requires explicit user action on the individual field.&lt;br /&gt;
** &#039;&#039;This can be clicking to show the list of past values, or typing to search.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unrelated data can easily be mixed if different websites reuse the identifier with different meanings. Conversely, data cannot be reused if websites don&#039;t use the same identifier.&lt;br /&gt;
&lt;br /&gt;
=== Form Autofill ===&lt;br /&gt;
&lt;br /&gt;
This unimplemented feature remembers past input for common data sets, like personal information, that are generally shared across websites.&lt;br /&gt;
* Populates several related fields at a time.&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
=== requestAutocomplete ===&lt;br /&gt;
&lt;br /&gt;
This unimplemented feature allows websites to explicitly request personal information from the browser.&lt;br /&gt;
* Replaces in-page form fields with a &#039;&#039;&#039;browser-provided interface&#039;&#039;&#039;.&lt;br /&gt;
* The browser may provide a different input experience depending on the device.&lt;br /&gt;
* Provides a similar input experience across all websites.&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
This feature works by transmitting the information to the server using &#039;&#039;&#039;hidden form fields&#039;&#039;&#039; after the website requested the browser to display the interface.&lt;br /&gt;
&lt;br /&gt;
The website may display &#039;&#039;&#039;visible fields later in the process&#039;&#039;&#039; to correct any data validation errors.&lt;br /&gt;
&lt;br /&gt;
== Comparison of strategies ==&lt;br /&gt;
&lt;br /&gt;
One of the most difficult problems that &#039;&#039;&#039;form autofill&#039;&#039;&#039; has to deal with, for existing websites, is identifying which type of data is being requested by each form field. Authors can update the website to use the &amp;lt;code&amp;gt;autocomplete&amp;lt;/code&amp;gt; attribute to help the browser, but the feature may not be available if the website doesn&#039;t do this. This can make it unclear to the user why one website supports autofill and another similarly-looking site doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
On the other hand, &#039;&#039;&#039;requestAutocomplete&#039;&#039;&#039; only works with websites that have changed their input flow to explicitly request some personal information from the browser. This feature shows a browser-provided interface that provides data to the website. While the feature could be used in an &amp;quot;unclear&amp;quot; way to populate visible fields, similarly to form autofill, we can ensure that the difference is clear by &#039;&#039;&#039;requiring that target form fields are hidden&#039;&#039;&#039; at the time of the request to autocomplete them.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [https://etherpad.mozilla.org/requestautocomplete requestAutocomplete Etherpad]&lt;br /&gt;
* [http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#autofill WHATWG Autofill specification work]&lt;br /&gt;
* [https://www.w3.org/Bugs/Public/buglist.cgi?component=HTML&amp;amp;list_id=34802&amp;amp;product=WHATWG&amp;amp;resolution=---&amp;amp;short_desc=autocomplete&amp;amp;short_desc_type=allwordssubstr WHATWG Autofill specification bug list]&lt;br /&gt;
* [https://code.google.com/p/chromium/issues/list?can=2&amp;amp;q=Cr%3DUI-Browser-Autofill-Interactive Chromium Autofill implementation bug list]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?list_id=10261611&amp;amp;classification=Components&amp;amp;query_format=advanced&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;component=Form%20Manager&amp;amp;product=Toolkit Form Manager bug list]&lt;br /&gt;
* [https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion MDN documentation mentioning form autocompletion]&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983558</id>
		<title>User:P.A./Form user experience improvements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983558"/>
		<updated>2014-05-28T14:19:35Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Add comparison of strategies&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Submitting information to visited websites, using a &#039;&#039;&#039;web form&#039;&#039;&#039; or similar mechanism, is an increasingly common use case on the Internet.&lt;br /&gt;
&lt;br /&gt;
Web forms are currently the preferred way for websites to ask the user for different classes of information:&lt;br /&gt;
* Common personal information, for example a &#039;&#039;&#039;name and address&#039;&#039;&#039; for shipping a product.&lt;br /&gt;
* Other identifying information that may be specific to one website, for example a &#039;&#039;&#039;username&#039;&#039;&#039;.&lt;br /&gt;
* Authentication of identity using a secret key, for example a &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
* Authentication and authorization of payments using secret &#039;&#039;&#039;credit card data&#039;&#039;&#039;.&lt;br /&gt;
* Recurring input that may be specific to one website, for example &#039;&#039;&#039;search terms&#039;&#039;&#039;.&lt;br /&gt;
* Information that may be reused on different websites, for example the &#039;&#039;&#039;e-mail address&#039;&#039;&#039; of a contact.&lt;br /&gt;
* Miscellaneous information that is entered only once, for example a &#039;&#039;&#039;message&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Each class of information has different characteristics, but most of them can generally benefit from a mechanism that is able to remember past input and help the user in entering the same data again, on either the same website or a different one.&lt;br /&gt;
&lt;br /&gt;
=== Benefits ===&lt;br /&gt;
&lt;br /&gt;
A good web form user experience, that takes into account previous input, is beneficial to both users and websites:&lt;br /&gt;
* Users will not need to spend time entering the same information again and again on different websites.&lt;br /&gt;
* Users returning to a website may authenticate more quickly using their stored username and password.&lt;br /&gt;
* Websites can have a lower barrier to entry when registering new users.&lt;br /&gt;
* Websites could accept payments with an easy user experience, but without the complex requirements created by storing credit card data on the server.&lt;br /&gt;
&lt;br /&gt;
=== Themes ===&lt;br /&gt;
&lt;br /&gt;
To offer a good user experience for all the different classes of information, the web browser needs to:&lt;br /&gt;
* &#039;&#039;&#039;Identify which class of information is being requested by the website.&#039;&#039;&#039;&lt;br /&gt;
** For complex data, this includes determining which input field corresponds to which part of the information.&lt;br /&gt;
* &#039;&#039;&#039;Collect and store data in the most reusable form.&#039;&#039;&#039;&lt;br /&gt;
** This includes building an accurate, reusable user profile from the available input.&lt;br /&gt;
* &#039;&#039;&#039;Adapt to different expected input in different websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, deal with two separate name and surname fields or one single full name field.&lt;br /&gt;
** Different websites may have different field validation rules.&lt;br /&gt;
* &#039;&#039;&#039;Store and provide secret keys and data securely.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provide the simplest experience for completing the current task.&#039;&#039;&#039;&lt;br /&gt;
** For example, identify when a validation rule applies, and prevent the need of editing the data every time.&lt;br /&gt;
** The experience should be consistent across websites, so that if two websites look the same, the browser provides a similar experience with both of them.&lt;br /&gt;
&lt;br /&gt;
There are current and proposed web APIs that websites my use to help the browser in solving these problems, but even for websites that don&#039;t use them, the browser should offer a solution that improves the overall experience.&lt;br /&gt;
&lt;br /&gt;
Authors may be helped with upgrading their website to provide a better form experience with several actions:&lt;br /&gt;
* &#039;&#039;&#039;Provide meaningful console error messages and suggestions in the browser.&#039;&#039;&#039;&lt;br /&gt;
** These messages should be available by default to users of developer tools in Firefox.&lt;br /&gt;
** For example, indicate why the type of a field cannot be recognized.&lt;br /&gt;
* &#039;&#039;&#039;Define and evangelize best practices for websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, a full name field is encouraged over separate name and surname fields.&lt;br /&gt;
* &#039;&#039;&#039;Encourage sites to adopt new web features.&#039;&#039;&#039;&lt;br /&gt;
** For example, the &amp;lt;code&amp;gt;autocomplete&amp;lt;/code&amp;gt; attribute and the &amp;lt;code&amp;gt;requestAutocomplete&amp;lt;/code&amp;gt; method.&lt;br /&gt;
&lt;br /&gt;
== Approaches ==&lt;br /&gt;
&lt;br /&gt;
The general problems stated above may be solved in several different ways, some of which have already been implemented in Firefox for a long time.&lt;br /&gt;
&lt;br /&gt;
=== Login Manager ===&lt;br /&gt;
&lt;br /&gt;
This existing feature stores usernames and passwords for future input.&lt;br /&gt;
* Populates username and password fields only.&lt;br /&gt;
** &#039;&#039;The username may be an e-mail address, but this is independent from the user profile.&#039;&#039;&lt;br /&gt;
* The list of available usernames and associated passwords is specific to a particular website.&lt;br /&gt;
** &#039;&#039;This feature is often used with only a single username and associated password for each website.&#039;&#039;&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
=== Form History ===&lt;br /&gt;
&lt;br /&gt;
This existing feature remembers past input in single-line text fields.&lt;br /&gt;
* Populates only one field at a time.&lt;br /&gt;
* Which list of past values is used depends only on an identifier provided by the website.&lt;br /&gt;
** &#039;&#039;The identifier is the HTML &#039;&#039;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&#039;&#039; or &#039;&#039;&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&#039;&#039; attribute.&#039;&#039;&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* Requires explicit user action on the individual field.&lt;br /&gt;
** &#039;&#039;This can be clicking to show the list of past values, or typing to search.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unrelated data can easily be mixed if different websites reuse the identifier with different meanings. Conversely, data cannot be reused if websites don&#039;t use the same identifier.&lt;br /&gt;
&lt;br /&gt;
=== Form Autofill ===&lt;br /&gt;
&lt;br /&gt;
This unimplemented feature remembers past input for common data sets, like personal information, that are generally shared across websites.&lt;br /&gt;
* Populates several related fields at a time.&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
=== requestAutocomplete ===&lt;br /&gt;
&lt;br /&gt;
This unimplemented feature allows websites to explicitly request personal information from the browser.&lt;br /&gt;
* Replaces in-page form fields with a &#039;&#039;&#039;browser-provided interface&#039;&#039;&#039;.&lt;br /&gt;
* The browser may provide a different input experience depending on the device.&lt;br /&gt;
* Provides a similar input experience across all websites.&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
This feature works by transmitting the information to the server using &#039;&#039;&#039;hidden form fields&#039;&#039;&#039; after the website requested the browser to display the interface.&lt;br /&gt;
&lt;br /&gt;
The website may display &#039;&#039;&#039;visible fields later in the process&#039;&#039;&#039; to correct any data validation errors.&lt;br /&gt;
&lt;br /&gt;
== Comparison of strategies ==&lt;br /&gt;
&lt;br /&gt;
One of the most difficult problems that &#039;&#039;&#039;form autofill&#039;&#039;&#039; has to deal with, for existing websites, is identifying which type of data is being requested by each form field. Authors can update the website to use the &amp;lt;code&amp;gt;autocomplete&amp;lt;/code&amp;gt; attribute to help the browser, but the feature may not be available if the website doesn&#039;t do this. This can make it unclear to the user why one website supports autofill and another similarly-looking site doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
On the other hand, &#039;&#039;&#039;requestAutocomplete&#039;&#039;&#039; only works with websites that have changed their input flow to explicitly request some personal information from the browser. This feature shows a browser-provided interface that provides data to the website. While the feature could be used in an &amp;quot;unclear&amp;quot; way to populate visible fields, similarly to form autofill, we can ensure that the difference is clear by &#039;&#039;&#039;requiring that target form fields are hidden&#039;&#039;&#039; at the time of the request to autocomplete them.&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983553</id>
		<title>User:P.A./Form user experience improvements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983553"/>
		<updated>2014-05-28T14:00:17Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Add approaches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Submitting information to visited websites, using a &#039;&#039;&#039;web form&#039;&#039;&#039; or similar mechanism, is an increasingly common use case on the Internet.&lt;br /&gt;
&lt;br /&gt;
Web forms are currently the preferred way for websites to ask the user for different classes of information:&lt;br /&gt;
* Common personal information, for example a &#039;&#039;&#039;name and address&#039;&#039;&#039; for shipping a product.&lt;br /&gt;
* Other identifying information that may be specific to one website, for example a &#039;&#039;&#039;username&#039;&#039;&#039;.&lt;br /&gt;
* Authentication of identity using a secret key, for example a &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
* Authentication and authorization of payments using secret &#039;&#039;&#039;credit card data&#039;&#039;&#039;.&lt;br /&gt;
* Recurring input that may be specific to one website, for example &#039;&#039;&#039;search terms&#039;&#039;&#039;.&lt;br /&gt;
* Information that may be reused on different websites, for example the &#039;&#039;&#039;e-mail address&#039;&#039;&#039; of a contact.&lt;br /&gt;
* Miscellaneous information that is entered only once, for example a &#039;&#039;&#039;message&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Each class of information has different characteristics, but most of them can generally benefit from a mechanism that is able to remember past input and help the user in entering the same data again, on either the same website or a different one.&lt;br /&gt;
&lt;br /&gt;
=== Benefits ===&lt;br /&gt;
&lt;br /&gt;
A good web form user experience, that takes into account previous input, is beneficial to both users and websites:&lt;br /&gt;
* Users will not need to spend time entering the same information again and again on different websites.&lt;br /&gt;
* Users returning to a website may authenticate more quickly using their stored username and password.&lt;br /&gt;
* Websites can have a lower barrier to entry when registering new users.&lt;br /&gt;
* Websites could accept payments with an easy user experience, but without the complex requirements created by storing credit card data on the server.&lt;br /&gt;
&lt;br /&gt;
=== Themes ===&lt;br /&gt;
&lt;br /&gt;
To offer a good user experience for all the different classes of information, the web browser needs to:&lt;br /&gt;
* &#039;&#039;&#039;Identify which class of information is being requested by the website.&#039;&#039;&#039;&lt;br /&gt;
** For complex data, this includes determining which input field corresponds to which part of the information.&lt;br /&gt;
* &#039;&#039;&#039;Collect and store data in the most reusable form.&#039;&#039;&#039;&lt;br /&gt;
** This includes building an accurate, reusable user profile from the available input.&lt;br /&gt;
* &#039;&#039;&#039;Adapt to different expected input in different websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, deal with two separate name and surname fields or one single full name field.&lt;br /&gt;
** Different websites may have different field validation rules.&lt;br /&gt;
* &#039;&#039;&#039;Store and provide secret keys and data securely.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provide the simplest experience for completing the current task.&#039;&#039;&#039;&lt;br /&gt;
** For example, identify when a validation rule applies, and prevent the need of editing the data every time.&lt;br /&gt;
** The experience should be consistent across websites, so that if two websites look the same, the browser provides a similar experience with both of them.&lt;br /&gt;
&lt;br /&gt;
There are current and proposed web APIs that websites my use to help the browser in solving these problems, but even for websites that don&#039;t use them, the browser should offer a solution that improves the overall experience.&lt;br /&gt;
&lt;br /&gt;
Authors may be helped with upgrading their website to provide a better form experience with several actions:&lt;br /&gt;
* &#039;&#039;&#039;Provide meaningful console error messages and suggestions in the browser.&#039;&#039;&#039;&lt;br /&gt;
** These messages should be available by default to users of developer tools in Firefox.&lt;br /&gt;
** For example, indicate why the type of a field cannot be recognized.&lt;br /&gt;
* &#039;&#039;&#039;Define and evangelize best practices for websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, a full name field is encouraged over separate name and surname fields.&lt;br /&gt;
* &#039;&#039;&#039;Encourage sites to adopt new web features.&#039;&#039;&#039;&lt;br /&gt;
** For example, the &amp;lt;code&amp;gt;autocomplete&amp;lt;/code&amp;gt; attribute and the &amp;lt;code&amp;gt;requestAutocomplete&amp;lt;/code&amp;gt; method.&lt;br /&gt;
&lt;br /&gt;
== Approaches ==&lt;br /&gt;
&lt;br /&gt;
The general problems stated above may be solved in several different ways, some of which have already been implemented in Firefox for a long time.&lt;br /&gt;
&lt;br /&gt;
=== Login Manager ===&lt;br /&gt;
&lt;br /&gt;
This existing feature stores usernames and passwords for future input.&lt;br /&gt;
* Populates username and password fields only.&lt;br /&gt;
** &#039;&#039;The username may be an e-mail address, but this is independent from the user profile.&#039;&#039;&lt;br /&gt;
* The list of available usernames and associated passwords is specific to a particular website.&lt;br /&gt;
** &#039;&#039;This feature is often used with only a single username and associated password for each website.&#039;&#039;&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
=== Form History ===&lt;br /&gt;
&lt;br /&gt;
This existing feature remembers past input in single-line text fields.&lt;br /&gt;
* Populates only one field at a time.&lt;br /&gt;
* Which list of past values is used depends only on an identifier provided by the website.&lt;br /&gt;
** &#039;&#039;The identifier is the HTML &#039;&#039;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&#039;&#039; or &#039;&#039;&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&#039;&#039; attribute.&#039;&#039;&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* Requires explicit user action on the individual field.&lt;br /&gt;
** &#039;&#039;This can be clicking to show the list of past values, or typing to search.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unrelated data can easily be mixed if different websites reuse the identifier with different meanings. Conversely, data cannot be reused if websites don&#039;t use the same identifier.&lt;br /&gt;
&lt;br /&gt;
=== Form Autofill ===&lt;br /&gt;
&lt;br /&gt;
This unimplemented feature remembers past input for common data sets, like personal information, that are generally shared across websites.&lt;br /&gt;
* Populates several related fields at a time.&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
=== requestAutocomplete ===&lt;br /&gt;
&lt;br /&gt;
This unimplemented feature allows websites to explicitly request personal information from the browser.&lt;br /&gt;
* Replaces in-page form fields with a &#039;&#039;&#039;browser-provided interface&#039;&#039;&#039;.&lt;br /&gt;
* The browser may provide a different input experience depending on the device.&lt;br /&gt;
* Provides a similar input experience across all websites.&lt;br /&gt;
* Past values are shared across all websites.&lt;br /&gt;
* May fill in the required information automatically once the user authorized the website.&lt;br /&gt;
&lt;br /&gt;
This feature works by transmitting the information to the server using &#039;&#039;&#039;hidden form fields&#039;&#039;&#039; after the website requested the browser to display the interface.&lt;br /&gt;
&lt;br /&gt;
The website may display &#039;&#039;&#039;visible fields later in the process&#039;&#039;&#039; to correct any data validation errors.&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983540</id>
		<title>User:P.A./Form user experience improvements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983540"/>
		<updated>2014-05-28T13:21:15Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Add benefits and edit themes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Submitting information to visited websites, using a &#039;&#039;&#039;web form&#039;&#039;&#039; or similar mechanism, is an increasingly common use case on the Internet.&lt;br /&gt;
&lt;br /&gt;
Web forms are currently the preferred way for websites to ask the user for different classes of information:&lt;br /&gt;
* Common personal information, for example a &#039;&#039;&#039;name and address&#039;&#039;&#039; for shipping a product.&lt;br /&gt;
* Other identifying information that may be specific to one website, for example a &#039;&#039;&#039;username&#039;&#039;&#039;.&lt;br /&gt;
* Authentication of identity using a secret key, for example a &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
* Authentication and authorization of payments using secret &#039;&#039;&#039;credit card data&#039;&#039;&#039;.&lt;br /&gt;
* Recurring input that may be specific to one website, for example &#039;&#039;&#039;search terms&#039;&#039;&#039;.&lt;br /&gt;
* Information that may be reused on different websites, for example the &#039;&#039;&#039;e-mail address&#039;&#039;&#039; of a contact.&lt;br /&gt;
* Miscellaneous information that is entered only once, for example a &#039;&#039;&#039;message&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Each class of information has different characteristics, but most of them can generally benefit from a mechanism that is able to remember past input and help the user in entering the same data again, on either the same website or a different one.&lt;br /&gt;
&lt;br /&gt;
=== Benefits ===&lt;br /&gt;
&lt;br /&gt;
A good web form user experience, that takes into account previous input, is beneficial to both users and websites:&lt;br /&gt;
* Users will not need to spend time entering the same information again and again on different websites.&lt;br /&gt;
* Users returning to a website may authenticate more quickly using their stored username and password.&lt;br /&gt;
* Websites can have a lower barrier to entry when registering new users.&lt;br /&gt;
* Websites could accept payments with an easy user experience, but without the complex requirements created by storing credit card data on the server.&lt;br /&gt;
&lt;br /&gt;
=== Themes ===&lt;br /&gt;
&lt;br /&gt;
To offer a good user experience for all the different classes of information, the web browser needs to:&lt;br /&gt;
* &#039;&#039;&#039;Identify which class of information is being requested by the website.&#039;&#039;&#039;&lt;br /&gt;
** For complex data, this includes determining which input field corresponds to which part of the information.&lt;br /&gt;
* &#039;&#039;&#039;Collect and store data in the most reusable form.&#039;&#039;&#039;&lt;br /&gt;
** This includes building an accurate, reusable user profile from the available input.&lt;br /&gt;
* &#039;&#039;&#039;Adapt to different expected input in different websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, deal with two separate name and surname fields or one single full name field.&lt;br /&gt;
** Different websites may have different field validation rules.&lt;br /&gt;
* &#039;&#039;&#039;Store and provide secret keys and data securely.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provide the simplest experience for completing the current task.&#039;&#039;&#039;&lt;br /&gt;
** For example, identify when a validation rule applies, and prevent the need of editing the data every time.&lt;br /&gt;
** The experience should be consistent across websites, so that if two websites look the same, the browser provides a similar experience with both of them.&lt;br /&gt;
&lt;br /&gt;
There are current and proposed web APIs that websites my use to help the browser in solving these problems, but even for websites that don&#039;t use them, the browser should offer a solution that improves the overall experience.&lt;br /&gt;
&lt;br /&gt;
Authors may be helped with upgrading their website to provide a better form experience with several actions:&lt;br /&gt;
* &#039;&#039;&#039;Provide meaningful console error messages and suggestions in the browser.&#039;&#039;&#039;&lt;br /&gt;
** These messages should be available by default to users of developer tools in Firefox.&lt;br /&gt;
** For example, indicate why the type of a field cannot be recognized.&lt;br /&gt;
* &#039;&#039;&#039;Define and evangelize best practices for websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, a full name field is encouraged over separate name and surname fields.&lt;br /&gt;
* &#039;&#039;&#039;Encourage sites to adopt new web features.&#039;&#039;&#039;&lt;br /&gt;
** For example, the &amp;lt;code&amp;gt;autocomplete&amp;lt;/code&amp;gt; attribute and the &amp;lt;code&amp;gt;requestAutocomplete&amp;lt;/code&amp;gt; method.&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983529</id>
		<title>User:P.A./Form user experience improvements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983529"/>
		<updated>2014-05-28T11:56:16Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Add general themes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Submitting information to visited websites, using a &#039;&#039;&#039;web form&#039;&#039;&#039; or similar mechanism, is an increasingly common use case on the Internet.&lt;br /&gt;
&lt;br /&gt;
Web forms are currently the preferred way for websites to ask the user for different classes of information:&lt;br /&gt;
* Common personal information, for example a &#039;&#039;&#039;name and address&#039;&#039;&#039; for shipping a product.&lt;br /&gt;
* Other identifying information that may be specific to one website, for example a &#039;&#039;&#039;username&#039;&#039;&#039;.&lt;br /&gt;
* Authentication of identity using a secret key, for example a &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
* Authentication and authorization of payments using secret &#039;&#039;&#039;credit card data&#039;&#039;&#039;.&lt;br /&gt;
* Recurring input that may be specific to one website, for example &#039;&#039;&#039;search terms&#039;&#039;&#039;.&lt;br /&gt;
* Information that may be reused on different websites, for example the &#039;&#039;&#039;e-mail address&#039;&#039;&#039; of a contact.&lt;br /&gt;
* Miscellaneous information that is entered only once, for example a &#039;&#039;&#039;message&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Each class of information has different characteristics, but most of them can generally benefit from a mechanism that is able to remember past input and help the user in entering the same data again, on either the same website or a different one.&lt;br /&gt;
&lt;br /&gt;
=== Themes ===&lt;br /&gt;
&lt;br /&gt;
To offer a good user experience for all the different classes of information, the web browser needs to:&lt;br /&gt;
* &#039;&#039;&#039;Identify which class of information is being requested by the website.&#039;&#039;&#039;&lt;br /&gt;
** For complex data, this includes determining which input field corresponds to which part of the information.&lt;br /&gt;
* &#039;&#039;&#039;Collect and store data in the most reusable form.&#039;&#039;&#039;&lt;br /&gt;
** This includes building an accurate, reusable user profile from the available input.&lt;br /&gt;
* &#039;&#039;&#039;Adapt to different expected input in different websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, deal with two separate name and surname fields or one single full name field.&lt;br /&gt;
** Different websites may have different field validation rules.&lt;br /&gt;
* &#039;&#039;&#039;Store and provide secret keys and data securely.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provide the simplest experience for completing the current task.&#039;&#039;&#039;&lt;br /&gt;
** For example, identify when a validation rule applies, and prevent the need of editing the data every time.&lt;br /&gt;
&lt;br /&gt;
There are current and proposed web APIs that help the browser in solving these problems. When updating a website to use them is not possible, the browser should offer a solution that, while not optimal, still improves the overall user experience. Authors interested in upgrading their website to provide a better form experience could benefit from several actions:&lt;br /&gt;
* &#039;&#039;&#039;Provide meaningful console error messages and suggestions in the browser.&#039;&#039;&#039;&lt;br /&gt;
** These messages should be available by default to users of developer tools in Firefox.&lt;br /&gt;
** For example, indicate why the type of a field cannot be recognized.&lt;br /&gt;
* &#039;&#039;&#039;Define and evangelize best practices for websites.&#039;&#039;&#039;&lt;br /&gt;
** For example, a full name field is encouraged over separate name and surname fields.&lt;br /&gt;
* &#039;&#039;&#039;Encourage sites to adopt new web features.&#039;&#039;&#039;&lt;br /&gt;
** For example, the &amp;lt;code&amp;gt;autocomplete&amp;lt;/code&amp;gt; attribute and the &amp;lt;code&amp;gt;requestAutocomplete&amp;lt;/code&amp;gt; method.&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983517</id>
		<title>User:P.A./Form user experience improvements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:P.A./Form_user_experience_improvements&amp;diff=983517"/>
		<updated>2014-05-28T10:40:58Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Create page with general overview&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Submitting information to visited websites, using a &#039;&#039;&#039;web form&#039;&#039;&#039; or similar mechanism, is an increasingly common use case on the Internet.&lt;br /&gt;
&lt;br /&gt;
Web forms are currently the preferred way for websites to ask the user for different types of information:&lt;br /&gt;
* Common personal information, for example a &#039;&#039;&#039;name and address&#039;&#039;&#039; for shipping a product.&lt;br /&gt;
* Other identifying information that may be specific to one website, for example a &#039;&#039;&#039;username&#039;&#039;&#039;.&lt;br /&gt;
* Authentication of identity using a secret key, for example a &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
* Authentication and authorization of payments using secret &#039;&#039;&#039;credit card data&#039;&#039;&#039;.&lt;br /&gt;
* Recurring input that may be specific to one website, for example &#039;&#039;&#039;search terms&#039;&#039;&#039;.&lt;br /&gt;
* Information that may be reused on different websites, for example the &#039;&#039;&#039;e-mail address&#039;&#039;&#039; of a contact.&lt;br /&gt;
* Miscellaneous information that is entered only once, for example a  &#039;&#039;&#039;message&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Each type of information has different characteristics, but most of them can generally benefit from a mechanism that is able to remember past input and help the user in entering the same data again, on either the same website or a different one.&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Buildbot/Talos/Tests&amp;diff=965084</id>
		<title>Buildbot/Talos/Tests</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Buildbot/Talos/Tests&amp;diff=965084"/>
		<updated>2014-04-15T19:45:18Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* xperf */ Clarify that it currently tests startup I/O regressions only&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Talos Tests =&lt;br /&gt;
&lt;br /&gt;
== Where to get this information ==&lt;br /&gt;
&lt;br /&gt;
* Talos tests are defined in http://hg.mozilla.org/build/talos/file/tip/talos/test.py&lt;br /&gt;
* TBPL abbreviations are defined in http://hg.mozilla.org/users/mstange_themasta.com/tinderboxpushlog/file/tip/js/Config.js#l302&lt;br /&gt;
* [http://graphs.mozilla.org/ Perf-o-matic] names are defined in http://hg.mozilla.org/graphs/file/tip/sql/data.sql&lt;br /&gt;
* Talos suites are configured for production in http://hg.mozilla.org/build/buildbot-configs/file/tip/mozilla-tests/config.py; these names are mapped to TBPL via regexes: http://hg.mozilla.org/users/mstange_themasta.com/tinderboxpushlog/file/e2e344885c80/js/Data.js#l512&lt;br /&gt;
* Inline help is available by running &#039;&#039;talos --print-tests&#039;&#039; to get a list of all tests and their descriptions. To get help on a subset of tests, including their run-time parameters, use e.g. &#039;&#039;talos --print-tests -a ts:tsvg [options]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A table detailing information flow from buildbot to talos to TBPL and graphserver is available at http://k0s.org:8080/ . This is generated with the [http://k0s.org/mozilla/hg/talosnames talosnames] script, as detailed in http://k0s.org/mozilla/blog/20120724135349 . See also {{bug|770460}}.&lt;br /&gt;
&lt;br /&gt;
== Talos Test Types ==&lt;br /&gt;
&lt;br /&gt;
There are two different species of Talos tests:&lt;br /&gt;
&lt;br /&gt;
* [[#Startup Tests]] : start up the browser and wait for either the load event or the paint event and exit, measuring the time&lt;br /&gt;
* [[#Page Load Tests]] : load a manifest of pages&lt;br /&gt;
&lt;br /&gt;
=== Startup Tests ===&lt;br /&gt;
&lt;br /&gt;
[http://hg.mozilla.org/build/talos/file/tip/talos/startup_test Startup tests] launch Firefox and measure the time to the onload or paint events. Firefox is invoked with a URL to:&lt;br /&gt;
&lt;br /&gt;
* http://hg.mozilla.org/build/talos/file/tip/talos/startup_test/startup_test.html for the onload event&lt;br /&gt;
* http://hg.mozilla.org/build/talos/file/tip/talos/startup_test/tspaint_test.html for the paint event&lt;br /&gt;
&lt;br /&gt;
=== Page Load Tests ===&lt;br /&gt;
Many of the talos tests use the page loader to load a manifest of pages.&lt;br /&gt;
These are tests that load a specific page and measure the time it takes to load the page, scroll the page, draw the page etc.  In order to run a page load test, you need a manifest of pages to run.  The manifest is simply a list of URLs of pages to load, separated by carriage returns, e.g.:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://www.mozilla.org&lt;br /&gt;
http://www.mozilla.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example: http://hg.mozilla.org/build/talos/file/tip/talos/page_load_test/svg/svg.manifest&lt;br /&gt;
&lt;br /&gt;
Manifests may also specify that a test computes its own data by prepending a &amp;lt;tt&amp;gt;%&amp;lt;/tt&amp;gt; in front of the line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% http://www.mozilla.org&lt;br /&gt;
% http://www.mozilla.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Example: http://hg.mozilla.org/build/talos/file/tip/talos/page_load_test/v8_7/v8.manifest&lt;br /&gt;
&lt;br /&gt;
The file you created should be referenced in your config file, for example, open sample.config, and look for the line referring to the test you want to run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
- name: tp4&lt;br /&gt;
url: &#039;-tp page_load_test/tp4.manifest -tpchrome -tpnoisy -tpformat tinderbox -tpcycles 10&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* -tp controls the location of your manifest&lt;br /&gt;
* -tpchrome tells Talos to run the browser with the normal browser UI active&lt;br /&gt;
* -tpnoisy means &amp;quot;generate lots of output&amp;quot;&lt;br /&gt;
* -tpformat controls the format of the results, they default to the results we send to displays like [http://graphs.mozilla.org graphserver] and [http://tbpl.mozilla.org tbpl].&lt;br /&gt;
* -tpcycles controls the number of times we run the entire test.&lt;br /&gt;
&lt;br /&gt;
=== Paint Tests ===&lt;br /&gt;
Paint tests are measuring the time to receive both the [https://developer.mozilla.org/en/Gecko-Specific_DOM_Events#MozAfterPaint MozAfterPaint] and OnLoad event instead of just the OnLoad event.&lt;br /&gt;
&lt;br /&gt;
Currently we run _paint tests for these tests:&lt;br /&gt;
* ts_paint&lt;br /&gt;
* tpaint&lt;br /&gt;
* tp5n&lt;br /&gt;
* sunspider&lt;br /&gt;
* a11y&lt;br /&gt;
* tscroll/tscrollx&lt;br /&gt;
&lt;br /&gt;
=== NoChrome Tests ===&lt;br /&gt;
&lt;br /&gt;
All tests run through the pageloader extension can be run with or without browser chrome. The tests load the same pages as described above in either case. The majority or tests are run with browser chrome enabled.  On mobile (native android builds) we have to run everything as nochrome since we don&#039;t support additional xul windows.&lt;br /&gt;
&lt;br /&gt;
The ability to run tests without the browser chrome opens up the ability to further isolate performance regressions.&lt;br /&gt;
&lt;br /&gt;
== Test Descriptions ==&lt;br /&gt;
&lt;br /&gt;
=== CanvasMark ===&lt;br /&gt;
* contact: :jmaher&lt;br /&gt;
* source: https://github.com/kevinroast/CanvasMark&lt;br /&gt;
* type: [https://wiki.mozilla.org/Buildbot/Talos#Page_Load_Tests PageLoader]&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Talos test name&lt;br /&gt;
| Graphserver name&lt;br /&gt;
| Description&lt;br /&gt;
|-&lt;br /&gt;
|tcanvasmark&lt;br /&gt;
|Canvasmark&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|tcanvasmark_nochrome&lt;br /&gt;
|Canvasmark, NoChrome&lt;br /&gt;
|see [[#NoChrome Tests]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These tests run the third-party [http://www.kevs3d.co.uk/dev/canvasmark/ CanvasMark] benchmark suite, which measures the browser&#039;s ability to render a variety of canvas animations at a smooth framerate as the scenes grow more complex.&lt;br /&gt;
&lt;br /&gt;
Results are a score &amp;quot;based on the length of time the browser was able to maintain the test scene at greater than 30 FPS, multiplied by a weighting for the complexity of each test type&amp;quot; (&#039;&#039;&#039;higher is better&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
=== tp5 ===&lt;br /&gt;
* contact: :jmaher&lt;br /&gt;
* source: not available&lt;br /&gt;
* type: [https://wiki.mozilla.org/Buildbot/Talos#Page_Load_Tests PageLoader]&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Talos test name&lt;br /&gt;
| Graphserver name&lt;br /&gt;
| Description&lt;br /&gt;
|-&lt;br /&gt;
|tp5r&lt;br /&gt;
|Tp5r MozAfterPaint&lt;br /&gt;
|tp5 with responsiveness&lt;br /&gt;
|-&lt;br /&gt;
|tp5row&lt;br /&gt;
|Tp5 Row Major MozAfterPaint&lt;br /&gt;
|tp5r running in [https://elvis314.wordpress.com/2012/03/12/reducing-the-noise-in-talos/ Row Major] with 25 cycles/page, ignoring the first 5&lt;br /&gt;
|-&lt;br /&gt;
|tp5n&lt;br /&gt;
|Tp5 No Network Row Major MozAfterPaint&lt;br /&gt;
|tp5row with a new tp5.zip that has no 404s and no external network access&lt;br /&gt;
|-&lt;br /&gt;
|tp5&lt;br /&gt;
|Tp5 MozAfterPaint&lt;br /&gt;
|Measures the time to load a webpage and receive [[Buildbot/Talos/Tests#Paint_Tests|both a MozAfterPaint and OnLoad event]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Tests the time it takes Firefox to load the tp5 web page test set. The web set was culled from the Alexa top 500 April 8th, 2011 and consists of 100 pages. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, we do not distribute a copy of the set of test web pages as these would not constitute fair use. Here are the broad steps we use to create the test set:&lt;br /&gt;
# Take the Alexa top 500 sites list&lt;br /&gt;
# Remove all sites with questionable or explicit content&lt;br /&gt;
# Remove duplicate site (for ex. many Google search front pages)&lt;br /&gt;
# Manually select to keep interesting pages (such as pages in different locales)&lt;br /&gt;
# Select a more representative page from any site presenting a simple search/login/etc. page&lt;br /&gt;
# Deal with Windows 255 char limit for cached pages&lt;br /&gt;
# Limit test set to top 100 pages&lt;br /&gt;
&lt;br /&gt;
Note that the above steps did not eliminate all outside network access so we had to take further action to scrub all the pages so that there are 0 outside network accesses (this is done so that the tp test is as deterministic measurement of our rendering/layout/paint process as possible). If you are on the Mozilla intranet, you can obtain the [http://fs/public/Talos/ current page set] for local testing. DO NOT DISTRIBUTE IT.&lt;br /&gt;
&lt;br /&gt;
==== Private Bytes ====&lt;br /&gt;
&lt;br /&gt;
A memory metric tracked during tp4 test runs. This metric is sampled every 20 seconds.&lt;br /&gt;
&lt;br /&gt;
For windows, a [http://technet.microsoft.com/en-us/library/cc780836%28WS.10%29.aspx description from Microsoft TechNet].&lt;br /&gt;
&lt;br /&gt;
==== RSS (Resident Set Size)====&lt;br /&gt;
&lt;br /&gt;
A memory metric tracked during tp5 test runs. This metric is sampled every 20 seconds. This metric is collected on linux/mac only.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Resident_set_size Description from wikipedia].&lt;br /&gt;
&lt;br /&gt;
==== Xres (X Resource Monitoring)====&lt;br /&gt;
&lt;br /&gt;
A memory metric tracked during tp5 test runs. This metric is sampled every 20 seconds. This metric is collected on linux only.&lt;br /&gt;
&lt;br /&gt;
[http://linux.die.net/man/3/xres xres man page].&lt;br /&gt;
&lt;br /&gt;
==== Working Set (tp5_memset) ====&lt;br /&gt;
&lt;br /&gt;
A memory metric tracked during tp5 test runs. This metric is sampled every 20 seconds. This metric is collected on windows only.  [http://technet.microsoft.com/en-us/library/cc780836%28WS.10%29.aspx Description from Microsoft TechNet].&lt;br /&gt;
&lt;br /&gt;
==== Modified Page List Bytes ====&lt;br /&gt;
&lt;br /&gt;
A memory metric tracked during tp5 test runs. This metric is sampled every 20 seconds. This metric is collected on Windows7 only.  [http://msdn.microsoft.com/en-us/library/aa965225%28VS.85%29.aspx Description from Microsoft MSDN].&lt;br /&gt;
&lt;br /&gt;
==== % CPU ====&lt;br /&gt;
&lt;br /&gt;
Cpu usage tracked during tp5 test runs. This metric is sampled every 20 seconds. This metric is collected on windows only.&lt;br /&gt;
&lt;br /&gt;
==== Responsiveness ====&lt;br /&gt;
&lt;br /&gt;
Reports the delay in milliseconds for the event loop to process a [[Performance/Snappy#Current Infrastructure|tracer event]].  For more details, see {{bug|631571}}.&lt;br /&gt;
&lt;br /&gt;
=== ts_paint ===&lt;br /&gt;
&lt;br /&gt;
* contact: :mak, :jimm, :jmaher&lt;br /&gt;
* source: [http://hg.mozilla.org/build/talos/file/tip/talos/startup_test/tspaint_test.html tspaint_test.html]&lt;br /&gt;
* Perfomatic: &amp;quot;Ts, Paint&amp;quot;&lt;br /&gt;
* type: Startup&lt;br /&gt;
&lt;br /&gt;
Launches tspaint_test.html with the current timestamp in the url, waits for [[Buildbot/Talos/Tests#Paint_Tests|MozAfterPaint and onLoad]] to fire, then records the end time and calculates the time to startup.&lt;br /&gt;
&lt;br /&gt;
The basic ts test uses a blank profile.  Formerly known as ts before we looked for the MozAfterPaint event. &lt;br /&gt;
&lt;br /&gt;
==== ts_places_generated_med ====&lt;br /&gt;
* contact: :mak, :mattn, :jmaher&lt;br /&gt;
* source: [http://hg.mozilla.org/build/talos/file/tip/talos/startup_test/tspaint_test.html tspaint_test.html]&lt;br /&gt;
* type: Startup&lt;br /&gt;
* dirty: this is also referred to as the dirty test&lt;br /&gt;
&lt;br /&gt;
Runs the same test as ts_paint, but uses a generated profile to simulate what an average user would have.  The profile consists of 4 files:&lt;br /&gt;
* [[http://hg.mozilla.org/build/talos/file/63e4fcd8784d/talos/places_generated_med/permissions.sqlite permissions.sqlite]] - allowXULXBL in moz_hosts&lt;br /&gt;
* [[http://hg.mozilla.org/build/talos/file/63e4fcd8784d/talos/places_generated_med/prefs.js prefs.js]] - these are just prefs to allow script access to chrome&lt;br /&gt;
* places.sqlite - updated daily via [[https://hg.mozilla.org/build/tools/file/tip/buildfarm/utils/updateGenerated.py buildbot script]] to have [[http://hg.mozilla.org/build/tools/file/tip/buildfarm/utils/generator/places/builddb/increment_dates.py recent dates]] for these tables:&lt;br /&gt;
 moz_historyvisit, 111750 items&lt;br /&gt;
 moz_bookmarks, 1354 items&lt;br /&gt;
 moz_favicons, 22042 items&lt;br /&gt;
 moz_annos, 0 items&lt;br /&gt;
 moz_items_annos, 8 items&lt;br /&gt;
 &lt;br /&gt;
 other tables which are not updated:&lt;br /&gt;
 moz_places, 22088 items&lt;br /&gt;
 moz_keywords, 7 items&lt;br /&gt;
 moz_anno_attributes, 6 items&lt;br /&gt;
 moz_bookmarks_roots, 5 items&lt;br /&gt;
 moz_inputhistory, 342 items&lt;br /&gt;
&lt;br /&gt;
* [[http://hg.mozilla.org/build/talos/file/63e4fcd8784d/talos/places_generated_med/localstore.rdf localstore.rdf]]&lt;br /&gt;
** todo: this is outdated&lt;br /&gt;
&lt;br /&gt;
==== ts_places_generated_max ====&lt;br /&gt;
* contact: :mak, :mattn, :jmaher&lt;br /&gt;
* source: [http://hg.mozilla.org/build/talos/file/tip/talos/startup_test/tspaint_test.html tspaint_test.html]&lt;br /&gt;
* type: Startup&lt;br /&gt;
* dirty: this is also referred to as the dirty test&lt;br /&gt;
&lt;br /&gt;
Runs the same test as ts_paint, but uses a generated profile to simulate what an average user would have.  The profile consists of 4 files:&lt;br /&gt;
* [[http://hg.mozilla.org/build/talos/file/63e4fcd8784d/talos/places_generated_med/permissions.sqlite permissions.sqlite]] - allowXULXBL in moz_hosts&lt;br /&gt;
* [[http://hg.mozilla.org/build/talos/file/63e4fcd8784d/talos/places_generated_med/prefs.js prefs.js]] - these are just prefs to allow script access to chrome&lt;br /&gt;
* places.sqlite - updated daily via [[https://hg.mozilla.org/build/tools/file/tip/buildfarm/utils/updateGenerated.py buildbot script]] to have [[http://hg.mozilla.org/build/tools/file/tip/buildfarm/utils/generator/places/builddb/increment_dates.py recent dates]] for these tables:&lt;br /&gt;
 moz_historyvisit, 725054 items&lt;br /&gt;
 moz_bookmarks, 144757 items&lt;br /&gt;
 moz_favicons, 144705 items&lt;br /&gt;
 moz_annos, 0 items&lt;br /&gt;
 moz_items_annos, 8 items&lt;br /&gt;
 &lt;br /&gt;
 other tables which are not updated:&lt;br /&gt;
 moz_places, 144751 items&lt;br /&gt;
 moz_keywords, 601 items&lt;br /&gt;
 moz_anno_attributes, 6 items&lt;br /&gt;
 moz_bookmarks_roots, 5 items&lt;br /&gt;
 moz_inputhistory, 342 items&lt;br /&gt;
&lt;br /&gt;
* [[http://hg.mozilla.org/build/talos/file/63e4fcd8784d/talos/places_generated_med/localstore.rdf localstore.rdf]]&lt;br /&gt;
** todo: this is outdated&lt;br /&gt;
&lt;br /&gt;
=== tdhtml ===&lt;br /&gt;
* &#039;&#039;&#039;turned off on all branches and platforms November 1st, 2012&#039;&#039;&#039;&lt;br /&gt;
* contact: :peterv, :jmaher&lt;br /&gt;
* source: [http://hg.mozilla.org/build/talos/file/tip/talos/page_load_test/dhtml dhtml.manifest]&lt;br /&gt;
* type: [https://wiki.mozilla.org/Buildbot/Talos#Page_Load_Tests PageLoader]&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Talos test name&lt;br /&gt;
| Graphserver name&lt;br /&gt;
| Description&lt;br /&gt;
|-&lt;br /&gt;
|tdhtmlr&lt;br /&gt;
|DHTML Row Major&lt;br /&gt;
|Row based and 25 cycles/page.&lt;br /&gt;
|-&lt;br /&gt;
|tdhtml.2&lt;br /&gt;
|DHTML 2&lt;br /&gt;
|Ignoring the first value instead of the highest (usually the highest is the first)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Tests which measure the time to cycle through a set of DHTML test pages. This test will be updated in the near future.&lt;br /&gt;
&lt;br /&gt;
This test is also ran with the [https://wiki.mozilla.org/Buildbot/Talos#NoChrome_Tests nochrome] option.&lt;br /&gt;
&lt;br /&gt;
=== tsvg, tsvgx ===&lt;br /&gt;
* contact: :jwatt, :jmaher, :avih&lt;br /&gt;
* source: [http://hg.mozilla.org/build/talos/file/default/talos/page_load_test/svg svg.manifest], [http://hg.mozilla.org/build/talos/file/default/talos/page_load_test/svgx svgx]&lt;br /&gt;
* type: PageLoader&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Talos test name&lt;br /&gt;
| Graphserver name&lt;br /&gt;
| Description&lt;br /&gt;
|-&lt;br /&gt;
|tsvgx&lt;br /&gt;
|SVG-ASAP&lt;br /&gt;
|[https://groups.google.com/d/topic/mozilla.dev.platform/RICw5SJhNMo/discussion Replacing tscroll,tsvg with tscrollx,tsvgx]&lt;br /&gt;
|-&lt;br /&gt;
|svgr&lt;br /&gt;
|SVG Row Major&lt;br /&gt;
|[https://elvis314.wordpress.com/2012/03/12/reducing-the-noise-in-talos/ Row Major] and 25 cycles/page.&lt;br /&gt;
|-&lt;br /&gt;
|svg&lt;br /&gt;
|SVG&lt;br /&gt;
|Column based and 5 cycles.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An svg-only number that measures SVG rendering performance. About half of the tests are animations or iterations of rendering. The ASAP test (tsvgx) iterates in unlimited frame-rate mode thus reflecting the maximum rendering throughput of each test. The reported value is the page load time, or, for animations/iterations - overall duration the sequence/animation took to complete.  To turn on ASAP mode, we set these preferences:&lt;br /&gt;
 preferences = {&#039;layout.frame_rate&#039;: 0, &#039;docshell.event_starvation_delay_hint&#039;: 1}&lt;br /&gt;
&lt;br /&gt;
=== tsvg-opacity ===&lt;br /&gt;
* contact: :jwatt, :jmaher&lt;br /&gt;
* source: [http://hg.mozilla.org/build/talos/file/tip/talos/page_load_test/svg svg.manifest]&lt;br /&gt;
* type: PageLoader&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Talos test name&lt;br /&gt;
| Graphserver name&lt;br /&gt;
| Description&lt;br /&gt;
|-&lt;br /&gt;
|svgr_opacity&lt;br /&gt;
|SVG, Opacity Row Major&lt;br /&gt;
|[https://elvis314.wordpress.com/2012/03/12/reducing-the-noise-in-talos/ Row Major] and 25 cycles/page.&lt;br /&gt;
|-&lt;br /&gt;
|svg_opacity&lt;br /&gt;
|SVG, Opacity&lt;br /&gt;
|Column based and 5 cycles.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An svg-only number that measures SVG rendering performance.&lt;br /&gt;
&lt;br /&gt;
* Note: most of the page load tests measure from before the location is changed, until onload + mozafterpaint, therefore any changes in chrome performance from the location change, or network performance (the pages load from a local web server) would affect page load times. SVG opacity is rather quick by itself, so any such chrome/network/etc performance changes would affect this test more than other page load tests (relatively, in percentages).&lt;br /&gt;
&lt;br /&gt;
=== tpaint ===&lt;br /&gt;
* contact: :jimm, :jmaher&lt;br /&gt;
* source: [[http://hg.mozilla.org/build/talos/file/e2dd770e2d4c/talos/startup_test/tpaint.html tpaint-window.html]]&lt;br /&gt;
* type: Startup&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Talos test name&lt;br /&gt;
|Graphserver name&lt;br /&gt;
|Description&lt;br /&gt;
|-&lt;br /&gt;
|tpaint&lt;br /&gt;
|Paint&lt;br /&gt;
|twinopen but measuring the time after we receive the [[Buildbot/Talos/Tests#Paint_Tests|MozAfterPaint and OnLoad event]].&lt;br /&gt;
|-&lt;br /&gt;
|twinopen&lt;br /&gt;
|&lt;br /&gt;
|original test to measure the time to open window based on OnLoad event.&lt;br /&gt;
|-&lt;br /&gt;
|txul&lt;br /&gt;
|Txul&lt;br /&gt;
|another name for twinopen.  Also we report txul in the regression emails.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Tests the amount of time it takes the open a new window. This test does not include startup time. Multiple test windows are opened in succession, results reported are the average amount of time required to create and display a window in the running instance of the browser. (Measures ctrl-n performance.)&lt;br /&gt;
&lt;br /&gt;
=== JSS/Domaeo Tests ===&lt;br /&gt;
&lt;br /&gt;
Dromaeo suite of tests for JavaScript performance testing. See the [https://wiki.mozilla.org/Dromaeo Dromaeo wiki] for more information. &lt;br /&gt;
&lt;br /&gt;
This suite is divided into several sub-suites. &lt;br /&gt;
&lt;br /&gt;
==== Dromaeo CSS ====&lt;br /&gt;
contact: :dmandelin, :jmaher&lt;br /&gt;
source: [[http://hg.mozilla.org/build/talos/file/tip/talos/page_load_test/dromaeo css.manifest]]&lt;br /&gt;
type: PageLoader&lt;br /&gt;
reporting: speed in test runs per second (higher is better)&lt;br /&gt;
&lt;br /&gt;
Each page in the manifest is part of the dromaemo css benchmark.&lt;br /&gt;
&lt;br /&gt;
==== Dromaeo DOM ====&lt;br /&gt;
contact: :dmandelin, :jmaher&lt;br /&gt;
source: [[http://hg.mozilla.org/build/talos/file/tip/talos/page_load_test/dromaeo dom.manifest]]&lt;br /&gt;
type: PageLoader&lt;br /&gt;
reporting: speed in test runs per second (higher is better)&lt;br /&gt;
&lt;br /&gt;
Each page in the manifest is part of the dromaemo css benchmark.&lt;br /&gt;
&lt;br /&gt;
=== a11y ===&lt;br /&gt;
* contact: :davidb, :tbsaunde, :jmaher&lt;br /&gt;
* source: [[http://hg.mozilla.org/build/talos/file/tip/talos/page_load_test/a11y a11y.manifest]]&lt;br /&gt;
* type: PageLoader&lt;br /&gt;
* measuring: ???&lt;br /&gt;
* reporting: test time in ms (lower is better)&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Talos test name&lt;br /&gt;
| Graphserver name&lt;br /&gt;
| Description&lt;br /&gt;
|-&lt;br /&gt;
|a11yr&lt;br /&gt;
|a11y Row Major MozAfterPaint&lt;br /&gt;
|[https://elvis314.wordpress.com/2012/03/12/reducing-the-noise-in-talos/ Row Major] testing with 25 cycles per page&lt;br /&gt;
|-&lt;br /&gt;
|a11y.2&lt;br /&gt;
|a11y 2 MozAfterPaint&lt;br /&gt;
|same as a11y ignoring the first value collected instead of the largest&lt;br /&gt;
|-&lt;br /&gt;
|a11y&lt;br /&gt;
|a11y MozAfterPaint&lt;br /&gt;
|iterate through each page, 5 cycles through the list, ignore the highest value from each page&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This test ensures basic a11y tables and permutations do not cause performance regressions.&lt;br /&gt;
&lt;br /&gt;
=== tscroll, tscrollx ===&lt;br /&gt;
* contact: :jrmuizel, :jmaher, :avih&lt;br /&gt;
* source: [[http://hg.mozilla.org/build/talos/file/tip/talos/page_load_test/scroll scroll.manifest]]&lt;br /&gt;
* type: PageLoader&lt;br /&gt;
* measuring: Scroll performance&lt;br /&gt;
* reporting: Average frame interval (1/FPS). Lower is better.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Talos test name&lt;br /&gt;
| Graphserver name&lt;br /&gt;
| Description&lt;br /&gt;
|-&lt;br /&gt;
|tscrollx&lt;br /&gt;
|tscroll-ASAP MozAfterPaint&lt;br /&gt;
|[https://groups.google.com/d/topic/mozilla.dev.platform/RICw5SJhNMo/discussion Replacing tscroll,tsvg with tscrollx,tsvgx]&lt;br /&gt;
|-&lt;br /&gt;
|tscrollr&lt;br /&gt;
|tscroll Row Major&lt;br /&gt;
|[https://elvis314.wordpress.com/2012/03/12/reducing-the-noise-in-talos/ Row Major] testing with 25 cycles&lt;br /&gt;
|-&lt;br /&gt;
|tscroll.2&lt;br /&gt;
|tscroll 2&lt;br /&gt;
|Ignore the first value for each page instead of the largest&lt;br /&gt;
|-&lt;br /&gt;
|tscroll&lt;br /&gt;
|tscroll&lt;br /&gt;
|run through each page in the manifest and cycle 5 times.  For each page, ignore the largest value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This test scrolls several pages where each represent a different known &amp;quot;hard&amp;quot; case to scroll (* needinfo), and measures the average frames interval (1/FPS) on each. The ASAP test (tscrollx) iterates in unlimited frame-rate mode thus reflecting the maximum scroll throughput per page.  To turn on ASAP mode, we set these preferences:&lt;br /&gt;
 preferences = {&#039;layout.frame_rate&#039;: 0, &#039;docshell.event_starvation_delay_hint&#039;: 1}&lt;br /&gt;
&lt;br /&gt;
=== tresize ===&lt;br /&gt;
* contact: :jimm, :jmaher&lt;br /&gt;
* source: [[http://hg.mozilla.org/build/talos/file/6d1c5ee867e6/talos/startup_test/tresize-test.html tresize-test.html]]&lt;br /&gt;
* type: StartupTest&lt;br /&gt;
* measuring: Time to do XUL resize, in ms (lower is better).&lt;br /&gt;
* reporting: ???&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Talos test name&lt;br /&gt;
| Graphserver name&lt;br /&gt;
| Description&lt;br /&gt;
|-&lt;br /&gt;
|tresize&lt;br /&gt;
|tresize&lt;br /&gt;
|TODO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A purer form of paint measurement than tpaint. This test opens a single window positioned at 10,10 and sized to 300,300, then resizes the window outward |max| times measuring the amount of time it takes to repaint each resize. Dumps the resulting dataset and average to stdout or logfile.&lt;br /&gt;
&lt;br /&gt;
=== xperf ===&lt;br /&gt;
* contact: :taras, :aklotz, :jmaher&lt;br /&gt;
* source: [[http://hg.mozilla.org/build/talos/file/tip/talos/xtalos xperf instrumentation]]&lt;br /&gt;
* type: Pageloader (tp5n) / Startup&lt;br /&gt;
* measuring: IO counters from windows (currently, only startup IO is in scope)&lt;br /&gt;
* reporting: Summary of read/write counters for disk, network (lower is better)&lt;br /&gt;
&lt;br /&gt;
Talos will turn orange for &#039;x&#039; jobs on windows 7 if your changeset accesses files which are not predefined in the [[http://hg.mozilla.org/build/talos/file/ae09eb897102/talos/xtalos/xperf_whitelist.json whitelist]].  If your job turns orange, you will see a list of files in tbpl (or in the log file) which have been accessed unexpectedly (similar to this):&lt;br /&gt;
 * TEST-UNEXPECTED-FAIL : xperf: File &#039;{profile}\secmod.db&#039; was accessed and we were not expecting it. DiskReadCount: 6, DiskWriteCount: 0, DiskReadBytes: 16904, DiskWriteBytes: 0&lt;br /&gt;
 * TEST-UNEXPECTED-FAIL : xperf: File &#039;{profile}\cert8.db&#039; was accessed and we were not expecting it. DiskReadCount: 4, DiskWriteCount: 0, DiskReadBytes: 33288, DiskWriteBytes: 0&lt;br /&gt;
 * TEST-UNEXPECTED-FAIL : xperf: File &#039;c:\$logfile&#039; was accessed and we were not expecting it. DiskReadCount: 0, DiskWriteCount: 2, DiskReadBytes: 0, DiskWriteBytes: 32768 TEST-UNEXPECTED-FAIL : xperf: File &#039;{profile}\secmod.db&#039; was accessed and we were not expecting it. DiskReadCount: 6, DiskWriteCount: 0, DiskReadBytes: 16904, DiskWriteBytes: 0&lt;br /&gt;
 * TEST-UNEXPECTED-FAIL : xperf: File &#039;{profile}\cert8.db&#039; was accessed and we were not expecting it. DiskReadCount: 4, DiskWriteCount: 0, DiskReadBytes: 33288, DiskWriteBytes: 0&lt;br /&gt;
 * TEST-UNEXPECTED-FAIL : xperf: File &#039;c:\$logfile&#039; was accessed and we were not expecting it. DiskReadCount: 0, DiskWriteCount: 2, DiskReadBytes: 0, DiskWriteBytes: 32768 &lt;br /&gt;
&lt;br /&gt;
In the case that these files are expected to be accessed during startup by your changeset, then we can add them to the [[https://bugzilla.mozilla.org/enter_bug.cgi?product=Testing&amp;amp;component=Talos whitelist]].&lt;br /&gt;
&lt;br /&gt;
Xperf runs tp5 while collecting xperf metrics for disk IO and network IO.  The providers we listen for are:&lt;br /&gt;
* [http://hg.mozilla.org/build/talos/file/tip/talos/xperf.config#l10 [&#039;PROC_THREAD&#039;, &#039;LOADER&#039;, &#039;HARD_FAULTS&#039;, &#039;FILENAME&#039;, &#039;FILE_IO&#039;, &#039;FILE_IO_INIT&#039;]]&lt;br /&gt;
&lt;br /&gt;
The values we collect during stackwalk are:&lt;br /&gt;
* [http://hg.mozilla.org/build/talos/file/tip/talos/xperf.config#l11 [&#039;FileRead&#039;, &#039;FileWrite&#039;, &#039;FileFlush&#039;]]&lt;br /&gt;
&lt;br /&gt;
=== kraken ===&lt;br /&gt;
* contact: :dmandelin, :jmaher&lt;br /&gt;
* source: [[http://hg.mozilla.org/build/talos/file/tip/talos/page_load_test/kraken kraken.manifest]]&lt;br /&gt;
* type: [https://wiki.mozilla.org/Buildbot/Talos#Page_Load_Tests PageLoader]&lt;br /&gt;
* measuring: JavaScript performance&lt;br /&gt;
* reporting: Total time for all tests, in ms (lower is better)&lt;br /&gt;
* Perfomatic name: Kraken Benchmark MozAfterPaint&lt;br /&gt;
&lt;br /&gt;
This is the [[Kraken]] javascript benchmark taken verbatim and slightly modified to fit into our pageloader extension and talos harness.&lt;br /&gt;
&lt;br /&gt;
=== V8, version 7===&lt;br /&gt;
* contact: :jmaher&lt;br /&gt;
* source: [[http://hg.mozilla.org/build/talos/file/tip/talos/page_load_test/v8_7 v8.manifest]]&lt;br /&gt;
* type: PageLoader&lt;br /&gt;
* measuring: ???&lt;br /&gt;
* reporting: weighted score (higher is better)&lt;br /&gt;
* Perfomatic name: V8 version 7 MozAfterPaint&lt;br /&gt;
&lt;br /&gt;
this is the V8 (version 7) javascript benchmark taken verbatim and slightly modified to fit into our pageloader extension and talos harness.&lt;br /&gt;
&lt;br /&gt;
The previous version of this test is V8 version 5 which was run on selective branches and operating systems.&lt;br /&gt;
&lt;br /&gt;
=== TART/CART ===&lt;br /&gt;
* contact: :avih, :jmaher, :MattN&lt;br /&gt;
* source: [http://hg.mozilla.org/build/talos/file/tip/talos/page_load_test/tart tart]&lt;br /&gt;
* type: PageLoader&lt;br /&gt;
* measuring: Desktop Firefox UI animation speed and smoothness&lt;br /&gt;
* reporting: intervals in ms (lower is better) - see below for details&lt;br /&gt;
* Perfomatic name: Tab Animation Test, Customization Animation Tests&lt;br /&gt;
&lt;br /&gt;
TART is the &#039;&#039;&#039;Tab Animation Regression Test&#039;&#039;&#039; and CART is the &#039;&#039;&#039;Customize Animation Regression Test&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
TART tests tab animation on these cases:&lt;br /&gt;
* Simple: single new tab of about:blank open/close without affecting (shrinking/expanding) other tabs.&lt;br /&gt;
* icon: same as above with favicons and long title instead of about:blank.&lt;br /&gt;
* Newtab: newtab open with thumbnails preview - without affecting other tabs, with and without preload.&lt;br /&gt;
* Fade: opens a tab, then measures fadeout/fadein (tab animation without the overhead of opening/closing a tab).&lt;br /&gt;
** Case 1 is tested with DPI scaling of 1.&lt;br /&gt;
** Case 2 is tested with DPI scaling of 1.0 and 2.0.&lt;br /&gt;
** Case 3 is tested with the default scaling of the test system.&lt;br /&gt;
** Case 4 is tested with DPI scaling of 2.0 with the &amp;quot;icon&amp;quot; tab (favicon and long title).&lt;br /&gt;
** Each animation produces 3 test results:&lt;br /&gt;
*** error: difference between the designated duration and the actual completion duration from the trigger.&lt;br /&gt;
*** half: average interval over the 2nd half of the animation.&lt;br /&gt;
*** all: average interval over all recorded intervals.&lt;br /&gt;
&lt;br /&gt;
CART uses the same framework to measure performance of the Australize &amp;quot;customize&amp;quot; animation (for entering the toolbar/menu customization view). Subtests include:&lt;br /&gt;
* Customize-enter animation (full and css-animation-only part).&lt;br /&gt;
* Customize-exit animation&lt;br /&gt;
&lt;br /&gt;
TART/CART can be used as a stand-alone addon:&lt;br /&gt;
* Set the browser to ASAP mode (preferences layout.framerate=0, docshell.event_starvation_delay_hint=1). This makes the browser refresh the screen as fast as possible instead of limiting it to 60hz, thus allows higher resolution measurements. Requires restart to take effect.&lt;br /&gt;
* Zip the addon dir of the source code and rename the extension to xpi.&lt;br /&gt;
* Install the addon xpi and restart the browser.&lt;br /&gt;
* Visit chrome://tart/content/tart.html&lt;br /&gt;
* Select subtests to run. By default the selected tests are all the TART tests. CART is the &amp;quot;Customize&amp;quot; test.&lt;br /&gt;
&lt;br /&gt;
=== Robocop ===&lt;br /&gt;
&lt;br /&gt;
[[Auto-tools/Projects/Robocop|Robocop]] is Mozilla&#039;s Android test framework based on [http://robotium.org Robotium].  In addition to functional/unit tests, there are several robocop performance tests run by Talos.&lt;br /&gt;
&lt;br /&gt;
; Robocop Checkerboarding Real User Benchmark (tcheck2/trobocheck2/rck2)&lt;br /&gt;
: &amp;quot;Checkerboard&amp;quot; refers to cases where we can&#039;t render new portions of a page as fast as a user scrolls to them, and so they see a blank area, low-resolution rendering, or a checkerboard pattern as they scroll.  This test is designed to stress the browser.  It uses a real-world test page, scrolls in all directions, and also zooms the page in various ways.  Reports the &#039;&#039;&#039;average percentage of the screen that is &amp;quot;checkerboarded&amp;quot;&#039;&#039;&#039; over time (lower is better).  [http://mxr.mozilla.org/mozilla-central/source/mobile/android/base/tests/testCheck2.java.in (source)]&lt;br /&gt;
; Robocop Pan Benchmark (robopan/trobopan/rp)&lt;br /&gt;
: This test measures &amp;quot;jank&amp;quot; during scrolling.  It scrolls down a page repeatedly, and records each &amp;quot;missed&amp;quot; frame (any frame drawn more than 1/40 sec after the previous frame).  For each missed frame, it calculates how much it was delayed past 1/40 second.  The test reports the &#039;&#039;&#039;sum of the squares of the delays for all missed frames&#039;&#039;&#039; (lower is better). [http://mxr.mozilla.org/mozilla-central/source/mobile/android/base/tests/testPan.java.in (source)]&lt;br /&gt;
; Robocop Database Benchmark (roboprovider/troboprovider/rpr)&lt;br /&gt;
: This test measures the performance of the history and bookmarks ContentProvider database in Firefox for Android.  It performs several database operations and reports the &#039;&#039;&#039;time to complete the operations, in milliseconds&#039;&#039;&#039; (lower is better). [http://mxr.mozilla.org/mozilla-central/source/mobile/android/base/tests/testBrowserProviderPerf.java.in (source)]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[Mobile/Fennec/Android#Testing]]&lt;br /&gt;
* [http://mxr.mozilla.org/mozilla-central/source/mobile/android/base/tests/ Source code for Robocop tests]&lt;br /&gt;
&lt;br /&gt;
=== Other data ===&lt;br /&gt;
&lt;br /&gt;
These are not part of the Talos code, but like Talos they are benchmarks that record data using the graphserver and are analyzed by the same scripts for regressions.&lt;br /&gt;
&lt;br /&gt;
==== Number of Constructors (num_ctors) ====&lt;br /&gt;
&lt;br /&gt;
This test runs at build time and measures the number of static initializers in the compiled code.  Reducing this number is helpful for [https://blog.mozilla.org/tglek/2010/05/27/startup-backward-constructors/ startup optimizations].&lt;br /&gt;
&lt;br /&gt;
* https://hg.mozilla.org/build/tools/file/348853aee492/buildfarm/utils/count_ctors.py&lt;br /&gt;
&lt;br /&gt;
==== Codesighs ====&lt;br /&gt;
&lt;br /&gt;
Codesighs measures the size of the compiled libraries and executables.  Runs on Linux and Mac at build time, triggered by the --enable-codesighs configure flag.&lt;br /&gt;
&lt;br /&gt;
For details see [[Codesighs]].&lt;br /&gt;
&lt;br /&gt;
==== Trace Malloc ====&lt;br /&gt;
&lt;br /&gt;
This test is run as part of the &amp;quot;make leaktest&amp;quot; step during debug build jobs.  It uses the [[Performance:Leak_Tools#Trace-malloc|trace-malloc]] tool from [http://mxr.mozilla.org/mozilla-central/source/tools/trace-malloc/ tools/trace-malloc] to wrap calls to malloc and log information about every memory allocation.  See also [http://mxr.mozilla.org/mozilla-central/source/build/leaktest.py.in leaktest.py].&lt;br /&gt;
&lt;br /&gt;
* trace_malloc_leaks&lt;br /&gt;
* trace_malloc_maxheap&lt;br /&gt;
* trace_malloc_alloc&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Snappy/Promises_unification&amp;diff=941940</id>
		<title>Snappy/Promises unification</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Snappy/Promises_unification&amp;diff=941940"/>
		<updated>2014-02-27T15:50:46Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Create page with description of Promises unification&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Current situation ==&lt;br /&gt;
&lt;br /&gt;
As of March 2013, we have three libraries implementing the JavaScript Promise object, used in production code:&lt;br /&gt;
* Add-on SDK Promises&lt;br /&gt;
* Promise.jsm&lt;br /&gt;
* DOM Promises&lt;br /&gt;
&lt;br /&gt;
Promises are becoming an important part of interfaces in production code, and interoperability between these different implementations is becoming a concern as those have subtle differences or relevant limitations.&lt;br /&gt;
&lt;br /&gt;
It is therefore important to reach a point where we don&#039;t pay the maintenance cost of different implementations across all the products.&lt;br /&gt;
&lt;br /&gt;
== Unification plan ==&lt;br /&gt;
&lt;br /&gt;
With the stabilization of the DOM/ES6 Promises specification in late January 2013 for the subset of functionality that we need, we can now identify the DOM Promises implementation as the final migration target. This implementation, however, has a number of limitations over Promise.jsm, related to debuggability. In order of importance:&lt;br /&gt;
&lt;br /&gt;
* {{bug|966452}} - DOM Promises should report all unhandled rejections to the Console on GC&lt;br /&gt;
* {{bug|966471}} - DOM Promise state, value and reason should be inspectable in the debugger&lt;br /&gt;
* {{bug|966472}} - DOM Promise handlers should be inspectable in the debugger&lt;br /&gt;
&lt;br /&gt;
Since Promise.jsm currently implements a subset of the DOM Promises interface and behaves in the same way as far as code is concerned, then migration to Promise.jsm is an appropriate intermediate step. The major work is related to porting the Add-on SDK Promises, in particular these bugs are on file:&lt;br /&gt;
* {{bug|887923}} - Switch Task.jsm to use Promise.jsm&lt;br /&gt;
* {{bug|881050}} - Use the new &amp;quot;Promise.jsm&amp;quot; implementation in Developer Tools&lt;br /&gt;
&lt;br /&gt;
The sooner we complete the migration, the less new code will be written that depends on behavior that is incorrect according to the specification.&lt;br /&gt;
&lt;br /&gt;
== Immediate goals ==&lt;br /&gt;
&lt;br /&gt;
Unification towards DOM Promises can proceed on two parallel tracks:&lt;br /&gt;
# Remove all uses of Add-on SDK Promises from mozilla-central&lt;br /&gt;
# Implement new DOM Promises features, then migrate Promise.jsm to use DOM Promises internally&lt;br /&gt;
&lt;br /&gt;
The first goal is the most important, to be ideally completed in a short time. The last step after both have completed would be to deprecate Promise.jsm and migrate all callers to directly use DOM Promises.&lt;br /&gt;
&lt;br /&gt;
The overall Promises work is tracked in [https://bugzilla.mozilla.org/showdependencytree.cgi?id=856878&amp;amp;hide_resolved=1 bug 856878].&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/Template&amp;diff=729320</id>
		<title>Firefox/Meeting/Template</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/Template&amp;diff=729320"/>
		<updated>2013-10-15T17:24:23Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Project Updates */ Downloads API project is now completed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
* [http://arewemeetingyet.com/Los%20Angeles/2013-08-20/10:00/w/Firefox%20development%20meeting Handy local meeting time link]&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
===Australis===&lt;br /&gt;
===Thumbnailing===&lt;br /&gt;
===SessionStore===&lt;br /&gt;
===Places API asyncification===&lt;br /&gt;
===Social API===&lt;br /&gt;
===e10s===&lt;br /&gt;
=== UX Updates ===&lt;br /&gt;
&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
&lt;br /&gt;
===gavin===&lt;br /&gt;
(gavin&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gavin%40gavinsharp.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===paolo===&lt;br /&gt;
(paolo&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/pamadini%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mak===&lt;br /&gt;
(marco&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
(Neil&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/enndeakin%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===felipe===&lt;br /&gt;
(felipe&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipc%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mano===&lt;br /&gt;
(Mano&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mano%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
(Tim&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
(Drew&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/adw%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
(Mark&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mhammond%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===smacleod===&lt;br /&gt;
(Steven&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/smacleod%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
(dolske&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/dolske%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mconley===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mconley%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dao===&lt;br /&gt;
&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mdeboer%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
(gijs&#039; [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
(Blair&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/bmcbride%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===MattN===&lt;br /&gt;
(MattN&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mozilla%40noorenberghe.ca Status Board])&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
(jaws&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
(mixedpuppy&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/scaraveo%40mozilla.com Status Board])&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/15-Oct-2013&amp;diff=729319</id>
		<title>Firefox/Meeting/15-Oct-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/15-Oct-2013&amp;diff=729319"/>
		<updated>2013-10-15T17:23:30Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Downloads API */ Add update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
* [http://arewemeetingyet.com/Los%20Angeles/2013-08-20/10:00/w/Firefox%20development%20meeting Handy local meeting time link]&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
===Australis===&lt;br /&gt;
* More performance stuff!&lt;br /&gt;
** We&#039;ve determined that switching to SVG curves and putting the linear-gradient into the active tab stroke image will put Windows XP in the black WRT TART. \o/ Patches en route (but partially blocked on shorlander for graphics assets for lw-themes)&lt;br /&gt;
** We&#039;ve determined that the slowdown for OS X 10.6 is caused by the GPU taking longer to composite things when we have the tabs drawn in the titlebar. mconley is going to try to use Xcode&#039;s OpenGL Profiler to determine what we&#039;re waiting for.&lt;br /&gt;
* Improvements to Linux theming.&lt;br /&gt;
* Recent tabs/windows added to the history widgets&lt;br /&gt;
* Drag improvements in customize mode&lt;br /&gt;
* Improved handling of wide widgets in the menu panel&lt;br /&gt;
* Improved panel layouts&lt;br /&gt;
* Improved styling of combined buttons&lt;br /&gt;
&lt;br /&gt;
===Downloads API===&lt;br /&gt;
* Reduce maintenance and support surface by locking the Downloads API activation preference in place&lt;br /&gt;
&lt;br /&gt;
===Thumbnailing===&lt;br /&gt;
&#039;&#039;&#039;Foreground thumbnailing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* WIP patch awaiting Tim&#039;s feedback: {{Bug|809056}} - reduce thumbnailing impact when there are no thumbnail service consumers&lt;br /&gt;
* putting on hold for now, until graphics people are able to work on it: improving canvas.drawWindow() performance&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background thumbnailing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* resolving goal as complete: ensure minimal resource usage by background thumbnail service&lt;br /&gt;
* profiled I/O, network usage, results are good: {{Bug|899848}} - Ensure minimal disk io caused by background thumbnailing&lt;br /&gt;
* looking at remaining e10s-related crashes before finally enabling background thumbnail service on Beta and release channels&lt;br /&gt;
* landed: {{Bug|924651}} - BackgroundPageThumbs should log crashes as a telemetry completion reason&lt;br /&gt;
* landed: {{Bug|924665}} - BackgroundPageThumbs captures can finish twice&lt;br /&gt;
* trying to reproduce on try server: {{Bug|917517}} - Intermittent browser_thumbnails_background_crash.js | dumpID is present and not an empty string&lt;br /&gt;
* trying to find reduced test case for strange OS.File behavior: {{Bug|909933}} - Intermittent browser_thumbnails_update.js | thumbnail is still green - Got 255,0,0, expected 0,255,0&lt;br /&gt;
&lt;br /&gt;
===SessionStore===&lt;br /&gt;
* A few code cleanups ({{bug|923034}}, {{bug|923854}}).&lt;br /&gt;
* Fix a rather rare regression for windows quickly opened at startup ({{bug|900910}}).&lt;br /&gt;
* Fixing lost windows due to ID collisions ({{bug|925771}}).&lt;br /&gt;
* Ensure write instructions after shutdown will be prevented ({{bug|922785}}, {{bug|922814}})&lt;br /&gt;
* Remove synchronous startup code ({{bug|918024}}).&lt;br /&gt;
* Still working to get rid of saving state right after startup ({{bug|887780}}, {{bug|921581}}).&lt;br /&gt;
* Marionette tests for startup path are coming along&lt;br /&gt;
* Work to collect more data in content scripts to be e10s friendly ({{bug|909048}}, {{bug|910668}}, {{bug|919835}}).&lt;br /&gt;
&lt;br /&gt;
===Places API asyncification===&lt;br /&gt;
* dependencies blocking async transaction manager got reviewed, meeting tomorrow to discuss current status of the remaining patches.&lt;br /&gt;
* Raymond attached new patch to do async queries in bookmarks backups, reviewing it.&lt;br /&gt;
* Backups hash comparison blocked due to a test failure, investigation ongoing.&lt;br /&gt;
* Investigated url index replacement through the hashing functions in mfbt, still really early wip.&lt;br /&gt;
&lt;br /&gt;
===Social API===&lt;br /&gt;
===e10s===&lt;br /&gt;
&lt;br /&gt;
* Summit sessions | mini work week&lt;br /&gt;
* {{bug|897061}} Autocomplete&lt;br /&gt;
* {{bug|919835}} Session Restore&lt;br /&gt;
* {{bug|921935}} {{bug|925058}} Focus manager&lt;br /&gt;
&lt;br /&gt;
=== UX Updates ===&lt;br /&gt;
&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
&lt;br /&gt;
===gavin===&lt;br /&gt;
(gavin&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gavin%40gavinsharp.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===paolo===&lt;br /&gt;
(paolo&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/pamadini%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mak===&lt;br /&gt;
(marco&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
(Neil&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/enndeakin%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===felipe===&lt;br /&gt;
(felipe&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipc%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mano===&lt;br /&gt;
(Mano&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mano%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
(Tim&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
(Drew&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/adw%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
(Mark&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mhammond%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===smacleod===&lt;br /&gt;
(Steven&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/smacleod%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
(dolske&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/dolske%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mconley===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mconley%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dao===&lt;br /&gt;
&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mdeboer%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
(gijs&#039; [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
(Blair&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/bmcbride%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===MattN===&lt;br /&gt;
(MattN&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mozilla%40noorenberghe.ca Status Board])&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
(jaws&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
(mixedpuppy&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/scaraveo%40mozilla.com Status Board])&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/1-Oct-2013&amp;diff=718983</id>
		<title>Firefox/Meeting/1-Oct-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/1-Oct-2013&amp;diff=718983"/>
		<updated>2013-10-01T17:03:15Z</updated>

		<summary type="html">&lt;p&gt;P.A.: No Downloads API update!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
* [http://arewemeetingyet.com/Los%20Angeles/2013-08-20/10:00/w/Firefox%20development%20meeting Handy local meeting time link]&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
&lt;br /&gt;
* GSoC update: Google Summer of Code 2013 has now finished. [http://felipe.wordpress.com/2013/10/01/gsoc2013-completed/ Felipe&#039;s blog post] and [http://trystswithcode.quora.com/In-the-name-of-numbers phenom&#039;s post].&lt;br /&gt;
&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
===Australis===&lt;br /&gt;
* Last week was a great week, performance-wise.&lt;br /&gt;
** The URL bar merge caused a regression because of a CSS rule that wasn&#039;t specific enough, which made the back button enable / disable when tab closing. This got fixed in {{bug|916946}}.&lt;br /&gt;
** We were transitioning the opacity of tabs being closed even though they&#039;re not supposed to be visible in the first place. This got fixed in {{bug|919541}}&lt;br /&gt;
** We&#039;re going to try moving the linear-gradient texture from CSS into the stroke image, which should save us some time as well. This is in bug {{bug|921038}}.&lt;br /&gt;
** We&#039;re going to try switching our curve background drawing from clip-paths to SVG curves. Coupled with SVG caching ({{bug|764299}}), this has the potential to wipe out our Windows TART regressions. This is being investigated in {{bug|921051}}.&lt;br /&gt;
** We&#039;ve begun re-orienting our investigations to OS X, since we&#039;re still regressing TART there a bit (~7% on 10.6).&lt;br /&gt;
** More details are in [https://mail.mozilla.org/pipermail/firefox-dev/2013-September/000989.html the weekly Australis Performance Report] that mconley posted to firefox-dev.&lt;br /&gt;
&lt;br /&gt;
===Thumbnailing===&lt;br /&gt;
&#039;&#039;&#039;Foreground thumbnailing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* WIP patch awaiting Tim&#039;s feedback: {{Bug|809056}} - reduce thumbnailing impact when there are no thumbnail service consumers&lt;br /&gt;
* reopened: {{Bug|880026}} - Intermittent browser_thumbnails_storage_migrate3.js | Test timed out | uncaught exception - ReferenceError: executeSoon is not defined&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background thumbnailing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* landed: {{Bug|920676}} - Firefox Beta (25) release notes should not include &amp;quot;Blank or missing page thumbnails when opening a new tab&amp;quot;&lt;br /&gt;
* patched but still investigating orange: {{Bug|909933}} - Intermittent browser_thumbnails_update.js | thumbnail is still green - Got 255,0,0, expected 0,255,0&lt;br /&gt;
* patch for review: Bug 917517 - Intermittent browser_thumbnails_background_crash.js | dumpID is present and not an empty string&lt;br /&gt;
* still awaiting Tim&#039;s review: {{Bug|910036}} - about:newtab shouldn&#039;t load thumbnails in background when hidden by preloader&lt;br /&gt;
* new, appears to be e10s problem: {{Bug|921173}} - Intermittent browser_thumbnails_background_crash.js | application timed out after 330 seconds with no output&lt;br /&gt;
&lt;br /&gt;
===SessionStore===&lt;br /&gt;
* Remove synchronous startup code ({{bug|918024}}).&lt;br /&gt;
* Getting the crash monitor landed to get rid of saving state right after startup ({{bug|887780}}, {{bug|921581}}).&lt;br /&gt;
* Fix a rather rare regression for windows quickly opened at startup ({{bug|900910}}).&lt;br /&gt;
* Collecting data mostly in content scripts and make it work with e10s ({{bug|910646}}, {{bug|909048}}, {{bug|910668}}, {{bug|919835}}).&lt;br /&gt;
* Small regression when restarting in safe-mode ({{bug|919532}}).&lt;br /&gt;
* A couple of smaller issues fixed that were spotted lately ({{bug|921311}}, {{bug|921870}}, {{bug|921310}}).&lt;br /&gt;
* Started working on marionette tests to test our startup paths.&lt;br /&gt;
&lt;br /&gt;
===Places API asyncification===&lt;br /&gt;
===Social API===&lt;br /&gt;
===e10s===&lt;br /&gt;
&lt;br /&gt;
* Content zoom work in progress: {{bug|691614}}&lt;br /&gt;
* SessionStore: e10s style sessionstore landed {{bug|894595}} and wip for sessionstore using cpows {{bug|919835}}&lt;br /&gt;
* Browser-chrome tests: Passed: 3079 Failed: 240 Todo: 86&lt;br /&gt;
* Crashes: {{bug|920397}}&lt;br /&gt;
&lt;br /&gt;
=== UX Updates ===&lt;br /&gt;
&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
&lt;br /&gt;
===gavin===&lt;br /&gt;
(gavin&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gavin%40gavinsharp.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===paolo===&lt;br /&gt;
(paolo&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/pamadini%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mak===&lt;br /&gt;
(marco&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
(Neil&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/enndeakin%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===felipe===&lt;br /&gt;
(felipe&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipc%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mano===&lt;br /&gt;
(Mano&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mano%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
(Tim&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
(Drew&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/adw%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
(Mark&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mhammond%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===smacleod===&lt;br /&gt;
(Steven&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/smacleod%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
(dolske&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/dolske%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mconley===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mconley%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dao===&lt;br /&gt;
&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mdeboer%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
(gijs&#039; [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
(Blair&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/bmcbride%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===MattN===&lt;br /&gt;
(MattN&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mozilla%40noorenberghe.ca Status Board])&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
(jaws&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
(mixedpuppy&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/scaraveo%40mozilla.com Status Board])&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/24-Sep-2013&amp;diff=714736</id>
		<title>Firefox/Meeting/24-Sep-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/24-Sep-2013&amp;diff=714736"/>
		<updated>2013-09-24T16:59:50Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Downloads API */ Done!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
* [http://arewemeetingyet.com/Los%20Angeles/2013-08-20/10:00/w/Firefox%20development%20meeting Handy local meeting time link]&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
* Akshat Kedia for their work on {{bug|914806}} and {{bug|895429}}&lt;br /&gt;
* The MSU students are working hard on widget add-ons for Australis. Follow along at their blogs at http://ericproper.blogspot.com/, http://slenkeri.wordpress.com/, and http://weeblwobble.blogspot.com/&lt;br /&gt;
&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
===Australis===&lt;br /&gt;
* Notable bugs fixed within the past week:&lt;br /&gt;
** {{bug|881905}} - Can&#039;t drag Facebook button to main customization palette&lt;br /&gt;
** {{bug|881905}} - Make Downloads Panel anchor to the chevron if it is overflowed&lt;br /&gt;
** {{bug|885086}} - Overflow panel looks kinda wild when wide items get in there&lt;br /&gt;
** {{bug|868640}} - Implement private browsing indicator&lt;br /&gt;
** {{bug|916735}} - Add a pref to disable animation when entering/exiting customization mode (Improved run time of tests by 30%!)&lt;br /&gt;
** {{bug|919541}} - Consider not animating the opacity for Australis tabs&lt;br /&gt;
*** [from mconley] This seemed to cut our total regression by over 37.9% on XP. We started with a total TART regression in the neighbourhood of 6.35%, and ended up with a total TART regression of 3.94%&lt;br /&gt;
** {{bug|885579}} - Narrow widgets dropped on a wide widget should place the narrow widget above the wide widget&lt;br /&gt;
&lt;br /&gt;
* Landing blockers (outside of perf tracking):&lt;br /&gt;
** {{bug|874674}} - Clean up menu panel icons for Linux GTK theme&lt;br /&gt;
** {{bug|875479}} - Australis toolbar buttons for Linux&lt;br /&gt;
** {{bug|916953}} - Bookmarks button in overflow panel looks broken&lt;br /&gt;
&lt;br /&gt;
* Net bug changes&lt;br /&gt;
** P1: -4 (was 10, now 6)&lt;br /&gt;
** P2: -2 (was 17, now 15)&lt;br /&gt;
&lt;br /&gt;
===Downloads API===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://mail.mozilla.org/pipermail/firefox-dev/2013-September/000982.html Done!]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Thumbnailing===&lt;br /&gt;
&#039;&#039;&#039;Foreground thumbnailing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* WIP patch awaiting Tim&#039;s feedback: {{Bug|809056}} - reduce thumbnailing impact when there are no thumbnail service consumers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background thumbnailing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* landed: {{Bug|919438}} - Disable browser_thumbnails_background_crash.js in non-crashreporter builds&lt;br /&gt;
* landed: {{Bug|915384}} - Intermittent ASAN browser_thumbnails_background.js,browser_thumbnails_update.js,browser_thumbnails_background_crash.js | This test exceeded the timeout threshold.&lt;br /&gt;
* landed: {{Bug|917610}} - backgroundPageThumbsContent.js&#039;s use of nsIDOMWindowUtils.preventFurtherDialogs doesn&#039;t work as expected&lt;br /&gt;
* landed: {{Bug|917609}} - browser_thumbnails_background.js noAlert test should catch window.alert exception&lt;br /&gt;
* investigating: {{Bug|909933}} - Intermittent browser_thumbnails_update.js | thumbnail is still green - Got 255,0,0, expected 0,255,0&lt;br /&gt;
* new: {{Bug|917659}} - localStorage not isolated for background thumbnail captures&lt;br /&gt;
* new: {{Bug|917517}} - Intermittent browser_thumbnails_background_crash.js | dumpID is present and not an empty string&lt;br /&gt;
* new: {{Bug|919467}} - Dig into why browser_thumbnail_background_crash test is disabled on ASan builds&lt;br /&gt;
* new: {{Bug|919096}} - Intermittent ASAN TEST-UNEXPECTED-FAIL | browser_thumbnails_background.js | Second file should exist after capture | [Exception... &amp;quot;Component returned failure code: 0x80520006 (NS_ERROR_FILE_TARGET_DOES_NOT_EXIST) | Test timed out | and more&lt;br /&gt;
* new: {{Bug|919068}} - Intermittent ASAN TEST-UNEXPECTED-FAIL | browser_thumbnails_background.js | Thumbnail for {original,final} URL should be cached&lt;br /&gt;
* new: {{Bug|919305}} - Intermittent ASAN browser_thumbnails_background.js | [Exception... &amp;quot;Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) and more&lt;br /&gt;
&lt;br /&gt;
===SessionStore===&lt;br /&gt;
* Async data collection got backed out but re-landed next day. No problems so far. ({{bug|894595}})&lt;br /&gt;
* Work on cookie collection regression still going on. ({{bug|912717}})&lt;br /&gt;
* Proposal to remove sync fallbacks is looking good. ({{bug|918024}})&lt;br /&gt;
* Global value API should also be close to landing. ({{bug|899213}})&lt;br /&gt;
* :billm worked on moving more data collection to content scripts. ({{bug|910668}} and {{bug|909048}})&lt;br /&gt;
* :billm wrote another patch to make SessionStore work in e10s using CPOWs. ({{bug|919835}})&lt;br /&gt;
&lt;br /&gt;
===Places API asyncification===&lt;br /&gt;
===Social API===&lt;br /&gt;
&lt;br /&gt;
last week:&lt;br /&gt;
&lt;br /&gt;
* re-landed 3 of 4 backed out patches last week (the fabulous Monday uplift), bug 914435 still needs a little work to validate my theory (to myself at least) that it was an e10s related crash.&lt;br /&gt;
* good set of meetings with mconnor, boriss and others to start process of next round of work on socialapi&lt;br /&gt;
* planning with talkilla group on a bunch of stuff.  e10s/frameworker a major problem for a limited user test in Q1&lt;br /&gt;
* biz-dev meetings&lt;br /&gt;
&lt;br /&gt;
this week:&lt;br /&gt;
&lt;br /&gt;
* work on outline for long term architecture goals for social&lt;br /&gt;
* documentation&lt;br /&gt;
* bug fixes (first up bug 914435 and bug 919803&lt;br /&gt;
* any summit prep&lt;br /&gt;
&lt;br /&gt;
===e10s===&lt;br /&gt;
&lt;br /&gt;
* Findbar follow-ups being fixed&lt;br /&gt;
* FullZoom in progress {{bug|691614}}&lt;br /&gt;
* Mark looking into browser chrome tests and e10s crashes&lt;br /&gt;
&lt;br /&gt;
=== UX Updates ===&lt;br /&gt;
* By the way, if you&#039;re wondering who the UX people are, they&#039;re these guys: https://etherpad.mozilla.org/ux-team-intro-bios&lt;br /&gt;
* Some of us are working on prototype projects called &amp;quot;cupcakes,&amp;quot; which can be seen here: http://cupcake-dashboard.paas.allizom.org/projects &lt;br /&gt;
** If any engineers are interested in any of these, please contact any of the UX people in the etherpad above&lt;br /&gt;
* Most of UX will be in Belgium for Summit.  Our sessions are here: https://etherpad.mozilla.org/ux-summit-sessions&lt;br /&gt;
&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
&lt;br /&gt;
===gavin===&lt;br /&gt;
(gavin&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gavin%40gavinsharp.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===paolo===&lt;br /&gt;
(paolo&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/pamadini%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mak===&lt;br /&gt;
(marco&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
(Neil&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/enndeakin%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===felipe===&lt;br /&gt;
(felipe&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipc%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mano===&lt;br /&gt;
(Mano&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mano%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
(Tim&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
(Drew&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/adw%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
(Mark&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mhammond%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===smacleod===&lt;br /&gt;
(Steven&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/smacleod%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
(dolske&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/dolske%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mconley===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mconley%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dao===&lt;br /&gt;
&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mdeboer%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
(gijs&#039; [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
(Blair&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/bmcbride%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===MattN===&lt;br /&gt;
(MattN&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mozilla%40noorenberghe.ca Status Board])&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
(jaws&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
(mixedpuppy&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/scaraveo%40mozilla.com Status Board])&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=714607</id>
		<title>Features/Desktop/Downloads API</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=714607"/>
		<updated>2013-09-24T14:20:14Z</updated>

		<summary type="html">&lt;p&gt;P.A.: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FeatureStatus&lt;br /&gt;
|Feature name=Downloads API&lt;br /&gt;
|Feature stage=Landed&lt;br /&gt;
|Feature status=In progress&lt;br /&gt;
|Feature version=Firefox 26&lt;br /&gt;
|Feature health=OK&lt;br /&gt;
|Feature status note=https://wiki.mozilla.org/Performance#Downloads_API_Rewrite&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeam&lt;br /&gt;
|Feature feature manager=Paolo Amadini&lt;br /&gt;
|Feature lead engineer=Paolo Amadini&lt;br /&gt;
|Feature additional members=Neil Deakin, Felipe Gomes, Raymond Lee&lt;br /&gt;
}}&lt;br /&gt;
{{FeaturePageBody&lt;br /&gt;
|Feature overview=The current storage back-end for downloads, based on the synchronous &amp;lt;code&amp;gt;nsIDownloadManager&amp;lt;/code&amp;gt; interface and an associated SQLite database, causes noticeable performance issues when starting and finishing downloads.&lt;br /&gt;
&lt;br /&gt;
The new Downloads API will improve the responsiveness of Firefox for Desktop, by removing the main-thread I/O caused by access to &amp;lt;code&amp;gt;downloads.sqlite&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Feature users and use cases=The Downloads Panel is the main user of the Downloads API in Firefox for Desktop. Since the new API is part of Toolkit, other Mozilla products will be able to adopt it for improved performance.&lt;br /&gt;
|Feature requirements=The concrete goal is to ensure that SQL statements involving &amp;lt;code&amp;gt;moz_downloads&amp;lt;/code&amp;gt; no longer appear in the &amp;quot;slow SQL&amp;quot; Telemetry dashboard.&lt;br /&gt;
|Feature non-goals=This feature does not involve changes to the user interface and interaction model. Minor changes in behavior are expected, because the API is a complete reimplementation of the back-end.&lt;br /&gt;
|Feature functional spec=The overall design is documented in the &#039;&#039;&#039;[[User:P.A./Download_architecture_improvements|download architecture improvements]]&#039;&#039;&#039; page.&lt;br /&gt;
|Feature implementation notes===== Bugs list and patch queue ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feature tracking bug:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{bug|825588}} (covers work across all Mozilla products)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Key implementation bugs:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{bug|847863}}: Use the JavaScript API instead of nsIDownloadManager as the back-end for the panel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Additional steps needed to test the feature:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In Firefox 25, the feature can be enabled by toggling the &amp;lt;code&amp;gt;browser.download.useJSTransfer&amp;lt;/code&amp;gt; preference and restarting.&lt;br /&gt;
** &#039;&#039;This is only useful for early testing by add-on developers, as the feature is not ready in Firefox 25.&#039;&#039;&lt;br /&gt;
* In Firefox 26, the feature is enabled by default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Work required to release and enable the feature for everyone:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Work is completed and the feature is now enabled.&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureInfo&lt;br /&gt;
|Feature priority=Unprioritized&lt;br /&gt;
|Feature list=Desktop&lt;br /&gt;
|Feature project=Responsiveness&lt;br /&gt;
|Feature engineering team=Desktop front-end&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeamStatus}}&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/17-Sep-2013&amp;diff=710482</id>
		<title>Firefox/Meeting/17-Sep-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/17-Sep-2013&amp;diff=710482"/>
		<updated>2013-09-17T17:08:43Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Downloads API */ Add status update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
* [http://arewemeetingyet.com/Los%20Angeles/2013-08-20/10:00/w/Firefox%20development%20meeting Handy local meeting time link]&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Luís Miguel (aka Quicksaver) for reviewing, testing and providing feedback on all the findbar bugs that we&#039;ve been working on the past couple of months!&lt;br /&gt;
&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
===Australis===&lt;br /&gt;
* We&#039;ve backfilled the TART performance data for Windows XP going back to about mid-April, and dumped it into Datazilla (thanks jmaher!). &lt;br /&gt;
** [https://datazilla.mozilla.org/?start=1374858213&amp;amp;stop=1379431813&amp;amp;product=Firefox&amp;amp;repository=Firefox&amp;amp;os=win&amp;amp;os_version=5.1.2600&amp;amp;test=tart&amp;amp;compare_product=Firefox&amp;amp;compare_repository=UX&amp;amp;project=talos The graphs paint a pretty interesting tale.] Green is m-c, purple is UX. Each graph that you&#039;re looking at is one of the subtests for TART. These graphs just came in, so we&#039;re still verifying their accuracy.&lt;br /&gt;
* We&#039;ve identified a m-c merge changeset that caused a regression across the board for UX, but didn&#039;t seem to affect m-c. See {{bug|916859}}. Now the challenge is to determine *which* changeset in that merge caused the problem. Mike is going to chat with graphics and layout to see if they can point out any obvious culprits to try backing out. Failing that, manual bisection - which is going to be a real trick, since we&#039;ll need to merge from UX every time.&lt;br /&gt;
&lt;br /&gt;
===Downloads API===&lt;br /&gt;
Current:&lt;br /&gt;
* Development finished&lt;br /&gt;
* Landing features for the first Aurora build&lt;br /&gt;
Next:&lt;br /&gt;
* Fix intermittent failures&lt;br /&gt;
* Downloads Panel and Library front-end update&lt;br /&gt;
* Decommission &amp;lt;tt&amp;gt;nsIDownloadManager&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Thumbnailing===&lt;br /&gt;
&#039;&#039;&#039;Foreground thumbnailing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* fixed in {{bug|906615}} (below): {{Bug|809051}} - Limit how often we thumbnail the page using the foreground service&lt;br /&gt;
* WIP patch: {{Bug|809056}} - reduce thumbnailing impact when there are no thumbnail service consumers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background thumbnailing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* landed: {{Bug|912763}} - Disable background thumbnails on Beta&lt;br /&gt;
* landed: {{Bug|906615}} - Background thumbnail service shouldn&#039;t overwrite existing thumbnails, or at least foreground thumbnails should be preferred&lt;br /&gt;
* landed: {{Bug|910563}} - gracefully handle remote process crashing&lt;br /&gt;
* landed: {{Bug|898156}} - crash in Background thumbnail generation @ mozilla::net::FTPChannelParent::OnStartRequest&lt;br /&gt;
* landed: {{Bug|913171}} - Intermittent browser_thumbnails_background.js | Captured URL should be currently expected URL&lt;br /&gt;
* resolved invalid: {{Bug|903840}} - Requests from BackgroundPageThumbs service show up in devtools panels&lt;br /&gt;
* resolved WFM due to {{bug|875986}}: {{Bug|908962}} - Investigate using bypass-history and -cache load flags in background thumbnail browser&lt;br /&gt;
* making progress: {{Bug|896912}} - Investigate test failures muted by bug 892875&lt;br /&gt;
* new: {{Bug|916497}} - Intermittent  TEST-UNEXPECTED-FAIL | browser_thumbnails_redirect.js | Test timed out&lt;br /&gt;
* new: {{Bug|915384}} - Intermittent ASAN browser_thumbnails_background.js,browser_thumbnails_update.js&lt;br /&gt;
&lt;br /&gt;
===SessionStore===&lt;br /&gt;
===Places API asyncification===&lt;br /&gt;
* Little progress across the board: Some undo-manger work is in review stage. Raymond updates his patch for Bug 887043 to support GUIDs - that&#039;s also waiting for review. Marco is planning to all of these reviews done in the next couple of days.&lt;br /&gt;
&lt;br /&gt;
===Social API===&lt;br /&gt;
* some important bug fixes backed out (914435, 904104, 914927, 914926), need to re-land, one has strings&lt;br /&gt;
* in SF this week for socialapi and talkilla meetings&lt;br /&gt;
&lt;br /&gt;
===e10s===&lt;br /&gt;
&lt;br /&gt;
* {{bug|666816}} - Find bar&lt;br /&gt;
* {{bug|913155}} - Submit crash reports&lt;br /&gt;
* {{bug|910436}} - Helper App Service&lt;br /&gt;
* {{bug|910523}} - Intermittent prob in about:home fixed&lt;br /&gt;
* Markh is investigating running browser-chrome tests with e10s&lt;br /&gt;
* Tom Schuster internship presentation on Thursday 1pm PDT&lt;br /&gt;
&lt;br /&gt;
=== UX Updates ===&lt;br /&gt;
&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
&lt;br /&gt;
===gavin===&lt;br /&gt;
(gavin&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gavin%40gavinsharp.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===paolo===&lt;br /&gt;
(paolo&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/pamadini%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mak===&lt;br /&gt;
(marco&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
(Neil&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/enndeakin%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===felipe===&lt;br /&gt;
(felipe&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipc%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mano===&lt;br /&gt;
(Mano&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mano%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
(Tim&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
(Drew&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/adw%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
(Mark&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mhammond%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===smacleod===&lt;br /&gt;
(Steven&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/smacleod%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
(dolske&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/dolske%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mconley===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mconley%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dao===&lt;br /&gt;
&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mdeboer%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
(gijs&#039; [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
(Blair&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/bmcbride%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===MattN===&lt;br /&gt;
(MattN&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mozilla%40noorenberghe.ca Status Board])&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
(jaws&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
(mixedpuppy&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/scaraveo%40mozilla.com Status Board])&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/10-Sep-2013&amp;diff=705784</id>
		<title>Firefox/Meeting/10-Sep-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/10-Sep-2013&amp;diff=705784"/>
		<updated>2013-09-10T17:01:50Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Downloads API */ Add status update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
* [http://arewemeetingyet.com/Los%20Angeles/2013-08-20/10:00/w/Firefox%20development%20meeting Handy local meeting time link]&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
===Australis===&lt;br /&gt;
* TART performance&lt;br /&gt;
** We&#039;re bisecting UX like crazy. It&#039;s a little tricky because there seems to be some noise in the measurements as we go, and we&#039;re a little wary that the total regression is the sum of many small ones...but there is at least one changeset range where there&#039;s been a pretty substantial regression, and we&#039;re peeling into that.&lt;br /&gt;
** MattN has noted that, at least locally, SVG clip-paths are pretty expensive on his XP machine, and removing them saw a [http://compare-talos.mattn.ca/breakdown.html?oldTestIds=130&amp;amp;newTestIds=132&amp;amp;testName=tart&amp;amp;osName=MattN-WinXP&amp;amp;server=graphs.mattn.ca 12% performance improvement] compared to having the clip-paths. We&#039;re going to pursue Graphics on the possibility of caching clip-paths in {{bug|914617}}.&lt;br /&gt;
** Vladan has found a solution to our XP pseudostack problem - one simply needs to copy a more recent version of dbghelp.dll (he tested with DLL version 6.12.2.633) into the firefox directory. Once we&#039;ve confirmed on a few other machines, we&#039;ll update MDN (and possibly pursue getting that DLL put on all of the talos slaves)&lt;br /&gt;
&lt;br /&gt;
===Downloads API===&lt;br /&gt;
* Significant reduction in the Slow SQL queries since landed in Nightly&lt;br /&gt;
* Plan to remove the preference that disables the new code in Firefox for Desktop&lt;br /&gt;
* Active outreach to extension developers this week before the Aurora migration&lt;br /&gt;
* Planned API changes, and final review before the Aurora migration&lt;br /&gt;
* Feedback on known temporary regressions and also on positive additions&lt;br /&gt;
* Tremendous progress this week on 10 of 12 bugs tracking release&lt;br /&gt;
*: The 2 remaining bugs are the DownloadTaskbar front-end and one minor regression to investigate&lt;br /&gt;
* Conversation with Sam Foster of the Metro Firefox team to evaluate switching to the new API&lt;br /&gt;
* Upcoming firefox-dev post&lt;br /&gt;
&lt;br /&gt;
===Thumbnailing===&lt;br /&gt;
&#039;&#039;&#039;Foreground thumbnailing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* addressed by patch in {{bug|906615}} (below): {{Bug|809051}} - Limit how often we thumbnail the page using the foreground service&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background thumbnailing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* landed: {{Bug|875986}} - BackgroundPageThumbs should be able to capture private thumbnails while private browsing is active&lt;br /&gt;
* landed: {{Bug|909218}} - Allow a docShell to have default load flags that will be applied to every request made from it.&lt;br /&gt;
* landed: {{Bug|912763}} - Disable background thumbnails on Beta&lt;br /&gt;
* landed: {{Bug|910563}} - gracefully handle remote process crashing&lt;br /&gt;
* landed: {{Bug|906713}} - Intermittent browser_thumbnails_background.js | Thumb browser should exist immediately after capture.&lt;br /&gt;
* landed: {{Bug|903299}} - Modal dialog / prompt failures when running browser_thumbnails_background.js&lt;br /&gt;
* should be fixed by {{bug|875986}}&#039;s landing: {{Bug|899064}} - Profiler won&#039;t turn on because it thinks I&#039;m in private browsing mode [due to background thumbnails]&lt;br /&gt;
* new patch for review: {{Bug|906615}} - Background thumbnail service shouldn&#039;t overwrite existing thumbnails, or at least foreground thumbnails should be preferred&lt;br /&gt;
* waiting on review: {{Bug|910036}} - about:newtab shouldn&#039;t load thumbnails in background when hidden by preloader&lt;br /&gt;
* patch for review: {{Bug|913171}} - Intermittent browser_thumbnails_background.js | Captured URL should be currently expected URL&lt;br /&gt;
&lt;br /&gt;
===SessionStore===&lt;br /&gt;
&lt;br /&gt;
(Steven and I are unfortunately unable to attend the meeting today. Feel free to read this out loud or just read it on your own :)&lt;br /&gt;
&lt;br /&gt;
* SessionStore is affected by a possible data loss due to ChromeWorkers being aborted on shutdown, patches under way to fix this ({{bug|913899}}).&lt;br /&gt;
* The recent session cookie refactorings introduced a regression for huge sessions with lots of (nested) history entries, patches waiting for review ({{bug|912717}}).&lt;br /&gt;
* Telemetry for TabStateCache landed ({{bug|896545}}) and shows that our [http://bit.ly/188LAUs cache hit rates] are great.&lt;br /&gt;
* We&#039;re working on tests for the TabStateCache ({{bug|911115}}).&lt;br /&gt;
* Global Value API has been backed out to fix regressions before landing again ({{bug|899213}}).&lt;br /&gt;
* With nsIAppStartup.willRestart and .wasRestarted in the making ({{bug|911146}}) we will be able to get rid of some more ugly code ({{bug|914062}}).&lt;br /&gt;
* Missing tests are the last thing blocking us from landing the first async data collection patches ({{bug|894595}}).&lt;br /&gt;
&lt;br /&gt;
===Places API asyncification===&lt;br /&gt;
* Raymond has posted most of the patches needed for the bookmarks backups improvements. Mak going to review them by the end of the week, then will go through the goal target and file any missing bugs to complete the project.&lt;br /&gt;
* Mano is working towards a solution to a problem with guids and the new async transactions, as well as on a regression fix due to recent related changes. Patches are in the bugs and Mak going to review them.&lt;br /&gt;
* Mak currently working on regression fixes for issues introduced by automatic batches in Places views.&lt;br /&gt;
&lt;br /&gt;
===Social API===&lt;br /&gt;
===e10s===&lt;br /&gt;
&lt;br /&gt;
* {{bug|899348}} Tab crashed page&lt;br /&gt;
* {{bug|913155}} Submit crash report from tab crashed&lt;br /&gt;
* Many bug fixes work&lt;br /&gt;
&lt;br /&gt;
=== UX Updates ===&lt;br /&gt;
&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
&lt;br /&gt;
===gavin===&lt;br /&gt;
(gavin&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gavin%40gavinsharp.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===paolo===&lt;br /&gt;
(paolo&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/pamadini%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mak===&lt;br /&gt;
(marco&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
(Neil&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/enndeakin%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===felipe===&lt;br /&gt;
(felipe&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipc%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mano===&lt;br /&gt;
(Mano&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mano%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
(Tim&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
(Drew&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/adw%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
(Mark&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mhammond%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===smacleod===&lt;br /&gt;
(Steven&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/smacleod%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
(dolske&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/dolske%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mconley===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mconley%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dao===&lt;br /&gt;
&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mdeboer%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
(gijs&#039; [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
(Blair&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/bmcbride%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===MattN===&lt;br /&gt;
(MattN&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mozilla%40noorenberghe.ca Status Board])&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
(jaws&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
(mixedpuppy&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/scaraveo%40mozilla.com Status Board])&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Toolkit/Submodules&amp;diff=698660</id>
		<title>Toolkit/Submodules</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Toolkit/Submodules&amp;diff=698660"/>
		<updated>2013-08-23T17:01:02Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Add Neil Deakin as preferred reviewer for the Download Manager module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ToolkitModule&lt;br /&gt;
|name=Bootstrapping, startup and chrome registry&lt;br /&gt;
|description=&lt;br /&gt;
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]&lt;br /&gt;
|peers=[mailto:rstrong@mozilla.com Robert Strong], [mailto:dtownsend@mozilla.com Dave Townsend], [mailto:neil@parkwaycc.co.uk Neil Rashbrook]&lt;br /&gt;
|source_dirs=toolkit/xre, toolkit/library, toolkit/profile, toolkit/components/startup, toolkit/components/commandlines, toolkit/components/remote, toolkit/components/build, chrome&lt;br /&gt;
|components=Toolkit::Startup and Profile System&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=Breakpad (crash reporter) &lt;br /&gt;
|description=&lt;br /&gt;
|owner=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]&lt;br /&gt;
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:mark@moxienet.com Mark Mentovai]&lt;br /&gt;
|source_dirs=toolkit/crashreporter &lt;br /&gt;
|components=Toolkit::Breakpad Integration&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=XUL Language&lt;br /&gt;
|description=&lt;br /&gt;
|owner=[mailto:enndeakin@gmail.com Neil Deakin]&lt;br /&gt;
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:aromano@mozilla.com Asaf Romano]&lt;br /&gt;
|source_dirs=toolkit/content,&lt;br /&gt;
toolkit/components/autocomplete &lt;br /&gt;
|components=Toolkit::XUL Widgets, Toolkit::Toolbars and Toolbar Customization, Toolkit::Autocomplete&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=Add-ons &lt;br /&gt;
|description=&lt;br /&gt;
|owner=[mailto:bmcbride@mozilla.com Blair McBride]&lt;br /&gt;
|peers=[mailto:dtownsend@mozilla.com Dave Townsend], [mailto:rstrong@mozilla.com Robert Strong]&lt;br /&gt;
|source_dirs=toolkit/mozapps/extensions, toolkit/mozapps/plugins &lt;br /&gt;
|components=Toolkit::Add-ons Manager, Toolkit::Plugin Finder Service&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=Installer&lt;br /&gt;
|description=&lt;br /&gt;
|owner=[mailto:rstrong@mozilla.com Robert Strong]&lt;br /&gt;
|peers=[mailto:jmathies@mozilla.com Jim Mathies], [mailto:netzen@gmail.com Brian Bondy]&lt;br /&gt;
|source_dirs=toolkit/mozapps/installer &lt;br /&gt;
|components=Toolkit::NSIS Installer&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=Application Update &lt;br /&gt;
|description=&lt;br /&gt;
|owner=[mailto:rstrong@mozilla.com Robert Strong]&lt;br /&gt;
|peers=[mailto:netzen@gmail.com Brian Bondy], [mailto:dtownsend@mozilla.com Dave Townsend]&lt;br /&gt;
|source_dirs=toolkit/mozapps/update&lt;br /&gt;
|components=Toolkit::Application Update&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=Download Manager &lt;br /&gt;
|description=&lt;br /&gt;
|owner=[mailto:paolo.mozmail@amadzone.org Paolo Amadini]&lt;br /&gt;
|peers=[mailto:enndeakin@gmail.com Neil Deakin], [mailto:mak77@bonardo.net Marco Bonardo]&lt;br /&gt;
|source_dirs=toolkit/components/downloads, toolkit/mozapps/downloads, toolkit/components/jsdownloads&lt;br /&gt;
|components=Toolkit::Download Manager&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=Password Manager/Satchel&lt;br /&gt;
|description=&lt;br /&gt;
|owner=[mailto:dolske@mozilla.com Justin Dolske]&lt;br /&gt;
|peers=[mailto:mnoorenberghe+bmo@mozilla.com Matthew Noorenberghe]&lt;br /&gt;
|source_dirs=toolkit/components/passwordmgr, toolkit/components/satchel&lt;br /&gt;
|components=Toolkit::Password Manager, Toolkit::Form Manager&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=XULRunner &lt;br /&gt;
|description=&lt;br /&gt;
|owner=[mailto:mark.finkle@gmail.com Mark Finkle]&lt;br /&gt;
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:ted.mielczarek@gmail.com Ted Mielczarek]&lt;br /&gt;
|source_dirs=xulrunner &lt;br /&gt;
|components=Toolkit::XULRunner&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=Themes&lt;br /&gt;
|description=&lt;br /&gt;
|owner=[mailto:dao@mozilla.com Dão Gottwald]&lt;br /&gt;
|peers=[mailto:rflint@ryanflint.com Ryan Flint], [mailto:gavin@gavinsharp.com Gavin Sharp]&lt;br /&gt;
|source_dirs=toolkit/themes &lt;br /&gt;
|components=Toolkit::Themes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=Locales (build/packaging only)&lt;br /&gt;
|description=&lt;br /&gt;
|owner=[mailto:axel@pike.org Axel Hecht]&lt;br /&gt;
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]&lt;br /&gt;
|source_dirs=toolkit/locales&lt;br /&gt;
|components=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=Video/Audio Controls&lt;br /&gt;
|description=&lt;br /&gt;
|owner=[mailto:dolske@mozilla.com Justin Dolske]&lt;br /&gt;
|peers=[mailto:jaws@mozilla.com Jared Wein]&lt;br /&gt;
|source_dirs=toolkit/content/widgets&lt;br /&gt;
|components=Toolkit::Video/Audio Controls&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=OS Integration&lt;br /&gt;
|description=&lt;br /&gt;
|owner=&lt;br /&gt;
|peers=&lt;br /&gt;
|source_dirs=toolkit/system&lt;br /&gt;
|components=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=OS.File&lt;br /&gt;
|description=The JS file access API&lt;br /&gt;
|owner=[mailto:dteller@mozilla.com David Rajchenbach-Teller]&lt;br /&gt;
|peers=[mailto:froydnj@mozilla.com Nathan Froyd]&lt;br /&gt;
|source_dirs=toolkit/components/osfile&lt;br /&gt;
|components=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ToolkitModule&lt;br /&gt;
|name=Content Preferences &lt;br /&gt;
|description=&lt;br /&gt;
|owner=[mailto:adw@mozilla.com Drew Willcoxon]&lt;br /&gt;
|peers=[mailto:mak77@bonardo.net Marco Bonardo]&lt;br /&gt;
|source_dirs=toolkit/components/contentprefs&lt;br /&gt;
|components=Toolkit::General&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Snappy/AsyncShutdown&amp;diff=698557</id>
		<title>Snappy/AsyncShutdown</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Snappy/AsyncShutdown&amp;diff=698557"/>
		<updated>2013-08-23T13:09:41Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Use cases */ Add Downloads API&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Our objective =&lt;br /&gt;
&lt;br /&gt;
At the moment, Firefox shuts down mostly sequentially. Waiting until an asynchronous task is complete before proceeding with shutdown is complicated and requires spinning the event loop, which is generally Not a Good Idea.&lt;br /&gt;
&lt;br /&gt;
We need to start thinking about a way to shutdown asynchronous services.&lt;br /&gt;
&lt;br /&gt;
= Use cases =&lt;br /&gt;
== Asynchronous databases need to be AsyncClosed() ==&lt;br /&gt;
(TBD)&lt;br /&gt;
&lt;br /&gt;
== Telemetry data must be saved asynchronously ==&lt;br /&gt;
(TBD)&lt;br /&gt;
&lt;br /&gt;
== Downloads API may have a pending &amp;quot;downloads.json&amp;quot; write ==&lt;br /&gt;
Before saving the list of in-progress downloads, the Downloads API waits 1.5 seconds after every change in state of downloads.&lt;br /&gt;
&lt;br /&gt;
Being able to force an asynchronous write of the JSON file in case the browser is closed during the 1.5 seconds window might be useful.&lt;br /&gt;
&lt;br /&gt;
= Related bugs =&lt;br /&gt;
- https://bugzilla.mozilla.org/show_bug.cgi?id=722648 - Asynchronous observers.&lt;br /&gt;
- https://bugzilla.mozilla.org/show_bug.cgi?id=881667 - Expose startup/shutdown stage to components.&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/20-Aug-2013&amp;diff=697230</id>
		<title>Firefox/Meeting/20-Aug-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/20-Aug-2013&amp;diff=697230"/>
		<updated>2013-08-20T17:01:12Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Downloads API */ Add status update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
* [[Firefox/Get_Involved]]&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Andrew Wang (:velocirabbit) and Jesse Fox (:jfox) for helping to fix their first bugs in SessionStore. [ttaubert]&lt;br /&gt;
&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
===Australis===&lt;br /&gt;
* Character encoding widget has landed ({{bug|865916}})! Great work from mikedeboer, dao and Gijs.&lt;br /&gt;
* The tpaint regression ({{bug|889758}})&lt;br /&gt;
** For non-PGO Windows XP is in the ~0.5% range! \o/&lt;br /&gt;
** For PGO Windows XP is in the ~3.3% range. o_O&lt;br /&gt;
* We&#039;ve been working with avih and vladan from perf on dealing with our TART regressions&lt;br /&gt;
* mconley&#039;s been working with BenWa to get [http://benoitgirard.wordpress.com/2012/09/21/video-synced-profiling/ Video Sync&#039;d Profiling] working properly on Windows to make it easier to identify what is causing dropped frames.&lt;br /&gt;
* Markus Stange has the beginnings of [https://bugzilla.mozilla.org/show_bug.cgi?id=902857#c11 a reflow profiler] that we could use to find out why UX&#039;s reflows are more expensive than m-c&#039;s. [http://tests.themasta.com/cleopatra/?report=e67ac706f10f1c717933f2cd35e7682d77ba6d5c Here&#039;s an example profile].&lt;br /&gt;
&lt;br /&gt;
===Downloads API===&lt;br /&gt;
* Almost enabled in Nightly!&lt;br /&gt;
* Regressions to be filed as blocking {{bug|825588}}.&lt;br /&gt;
* [https://mail.mozilla.org/pipermail/firefox-dev/2013-August/000804.html More details in the firefox-dev post.]&lt;br /&gt;
&lt;br /&gt;
===Thumbnailing===&lt;br /&gt;
&#039;&#039;&#039;Foreground thumbnailing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{Bug|809051}} - Limit how often we thumbnail the page using the foreground service&lt;br /&gt;
** patch posted for feedback&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background thumbnailing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{Bug|897880}} - Background thumbnail service must not overwrite existing thumbnails if it gets an error response&lt;br /&gt;
** landed&lt;br /&gt;
* {{Bug|901294}} - Unexpected downloading will be started by after every restart of the browser due to background thumbnailing&lt;br /&gt;
** patch r+&#039;ed, but depends on {{bug|906276}}, in review&lt;br /&gt;
* {{Bug|896912}} - Investigate test failures muted by bug 892875&lt;br /&gt;
** discussion about how the about:newtab preloader affects background thumbnail generation&lt;br /&gt;
* {{Bug|903949}} - about:memory and the background thumbnails process are combining to cause hangs and unexpected behaviour&lt;br /&gt;
** fixed&lt;br /&gt;
* Mark [https://groups.google.com/forum/#!topic/mozilla.dev.tech.network/X8t4Sob3l9U posted to dev.tech.network] about using the LOAD_ANONYMOUS flag to better sandbox background thumbnail page loads&lt;br /&gt;
* {{Bug|904341}} - Content-blocking addons not working with background thumbnails&lt;br /&gt;
** Bill is working on a back-end patch that may be helpful&lt;br /&gt;
&lt;br /&gt;
===SessionStore===&lt;br /&gt;
===Places API asyncification===&lt;br /&gt;
* Mak going to investigate intermittent failures and incompatibilites (Xmarks) introduced by automatic batching&lt;br /&gt;
* Mano should have patches for async transaction manager and consumers ready by the end of the week&lt;br /&gt;
* Raymond has new patch for GUIDs in json backups, Mano reviewing it soon&lt;br /&gt;
&lt;br /&gt;
===Social API===&lt;br /&gt;
===e10s===&lt;br /&gt;
&lt;br /&gt;
* {{bug|899222}} About:home relanded&lt;br /&gt;
* {{bug|897060}} Select Dropdown on review&lt;br /&gt;
* {{bug|906237}} Mac input bug landed today on central&lt;br /&gt;
* {{bug|896748}} Notification API support&lt;br /&gt;
* {{bug|899348}} Tab crashed page&lt;br /&gt;
* {{bug|905436}} Add-ons tracking bug for work needed to make some add-ons work&lt;br /&gt;
&lt;br /&gt;
=== UX Updates ===&lt;br /&gt;
&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
&lt;br /&gt;
===gavin===&lt;br /&gt;
(gavin&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gavin%40gavinsharp.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===paolo===&lt;br /&gt;
(paolo&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/pamadini%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mak===&lt;br /&gt;
(marco&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
(Neil&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/enndeakin%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===felipe===&lt;br /&gt;
(felipe&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipc%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mano===&lt;br /&gt;
(Mano&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mano%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
(Tim&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
(Drew&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/adw%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
(Mark&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mhammond%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===smacleod===&lt;br /&gt;
(Steven&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/smacleod%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
(dolske&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/dolske%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mconley===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mconley%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dao===&lt;br /&gt;
&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mdeboer%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
(gijs&#039; [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
(Blair&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/bmcbride%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===MattN===&lt;br /&gt;
(MattN&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mozilla%40noorenberghe.ca Status Board])&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
(jaws&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
(mixedpuppy&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/scaraveo%40mozilla.com Status Board])&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=697209</id>
		<title>Features/Desktop/Downloads API</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=697209"/>
		<updated>2013-08-20T16:48:39Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Clarify feature state on Firefox 25&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FeatureStatus&lt;br /&gt;
|Feature name=Downloads API&lt;br /&gt;
|Feature stage=Development&lt;br /&gt;
|Feature status=In progress&lt;br /&gt;
|Feature version=Firefox 26&lt;br /&gt;
|Feature health=OK&lt;br /&gt;
|Feature status note=https://wiki.mozilla.org/Performance#Downloads_API_Rewrite&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeam&lt;br /&gt;
|Feature feature manager=Paolo Amadini&lt;br /&gt;
|Feature lead engineer=Paolo Amadini&lt;br /&gt;
|Feature additional members=Neil Deakin, Felipe Gomes, Raymond Lee&lt;br /&gt;
}}&lt;br /&gt;
{{FeaturePageBody&lt;br /&gt;
|Feature overview=The current storage back-end for downloads, based on the synchronous &amp;lt;code&amp;gt;nsIDownloadManager&amp;lt;/code&amp;gt; interface and an associated SQLite database, causes noticeable performance issues when starting and finishing downloads.&lt;br /&gt;
&lt;br /&gt;
The new Downloads API will improve the responsiveness of Firefox for Desktop, by removing the main-thread I/O caused by access to &amp;lt;code&amp;gt;downloads.sqlite&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Feature users and use cases=The Downloads Panel is the main user of the Downloads API in Firefox for Desktop. Since the new API is part of Toolkit, other Mozilla products will be able to adopt it for improved performance.&lt;br /&gt;
|Feature requirements=The concrete goal is to ensure that SQL statements involving &amp;lt;code&amp;gt;moz_downloads&amp;lt;/code&amp;gt; no longer appear in the &amp;quot;slow SQL&amp;quot; Telemetry dashboard.&lt;br /&gt;
|Feature non-goals=This feature does not involve changes to the user interface and interaction model. Minor changes in behavior are expected, because the API is a complete reimplementation of the back-end.&lt;br /&gt;
|Feature functional spec=The overall design is documented in the &#039;&#039;&#039;[[User:P.A./Download_architecture_improvements|download architecture improvements]]&#039;&#039;&#039; page.&lt;br /&gt;
|Feature implementation notes===== Bugs list and patch queue ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feature tracking bug:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{bug|825588}} (covers work across all Mozilla products)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Key implementation bugs:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{bug|847863}}: Use the JavaScript API instead of nsIDownloadManager as the back-end for the panel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Additional steps needed to test the feature:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In Firefox 25, the feature can be enabled by toggling the &amp;lt;code&amp;gt;browser.download.useJSTransfer&amp;lt;/code&amp;gt; preference and restarting.&lt;br /&gt;
** &#039;&#039;This is only useful for early testing by add-on developers, as the feature is not ready in Firefox 25.&#039;&#039;&lt;br /&gt;
* In Firefox 26, the feature is enabled by default and cannot be disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Work required to release and enable the feature for everyone:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugs listed as blocking {{bug|907082}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bugzilla&amp;gt;{ &amp;quot;blocks&amp;quot;: 907082, &amp;quot;status&amp;quot;: [&amp;quot;NEW&amp;quot;, &amp;quot;ASSIGNED&amp;quot;] }&amp;lt;/bugzilla&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureInfo&lt;br /&gt;
|Feature priority=Unprioritized&lt;br /&gt;
|Feature list=Desktop&lt;br /&gt;
|Feature project=Responsiveness&lt;br /&gt;
|Feature engineering team=Desktop front-end&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeamStatus}}&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696939</id>
		<title>Features/Desktop/Downloads API</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696939"/>
		<updated>2013-08-20T08:50:42Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Set feature list and project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FeatureStatus&lt;br /&gt;
|Feature name=Downloads API&lt;br /&gt;
|Feature stage=Development&lt;br /&gt;
|Feature status=In progress&lt;br /&gt;
|Feature version=Firefox 26&lt;br /&gt;
|Feature health=OK&lt;br /&gt;
|Feature status note=https://wiki.mozilla.org/Performance#Downloads_API_Rewrite&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeam&lt;br /&gt;
|Feature feature manager=Paolo Amadini&lt;br /&gt;
|Feature lead engineer=Paolo Amadini&lt;br /&gt;
|Feature additional members=Neil Deakin, Felipe Gomes, Raymond Lee&lt;br /&gt;
}}&lt;br /&gt;
{{FeaturePageBody&lt;br /&gt;
|Feature overview=The current storage back-end for downloads, based on the synchronous &amp;lt;code&amp;gt;nsIDownloadManager&amp;lt;/code&amp;gt; interface and an associated SQLite database, causes noticeable performance issues when starting and finishing downloads.&lt;br /&gt;
&lt;br /&gt;
The new Downloads API will improve the responsiveness of Firefox for Desktop, by removing the main-thread I/O caused by access to &amp;lt;code&amp;gt;downloads.sqlite&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Feature users and use cases=The Downloads Panel is the main user of the Downloads API in Firefox for Desktop. Since the new API is part of Toolkit, other Mozilla products will be able to adopt it for improved performance.&lt;br /&gt;
|Feature requirements=The concrete goal is to ensure that SQL statements involving &amp;lt;code&amp;gt;moz_downloads&amp;lt;/code&amp;gt; no longer appear in the &amp;quot;slow SQL&amp;quot; Telemetry dashboard.&lt;br /&gt;
|Feature non-goals=This feature does not involve changes to the user interface and interaction model. Minor changes in behavior are expected, because the API is a complete reimplementation of the back-end.&lt;br /&gt;
|Feature functional spec=The overall design is documented in the &#039;&#039;&#039;[[User:P.A./Download_architecture_improvements|download architecture improvements]]&#039;&#039;&#039; page.&lt;br /&gt;
|Feature implementation notes===== Bugs list and patch queue ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feature tracking bug:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{bug|825588}} (covers work across all Mozilla products)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Key implementation bugs:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{bug|847863}}: Use the JavaScript API instead of nsIDownloadManager as the back-end for the panel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Additional steps needed to test the feature:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In Firefox 25, the feature can be enabled by toggling the &amp;lt;code&amp;gt;browser.download.useJSTransfer&amp;lt;/code&amp;gt; preference and restarting.&lt;br /&gt;
* In Firefox 26, the feature is enabled by default and cannot be disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Work required to release and enable the feature for everyone:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugs listed as blocking {{bug|907082}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bugzilla&amp;gt;{ &amp;quot;blocks&amp;quot;: 907082, &amp;quot;status&amp;quot;: [&amp;quot;NEW&amp;quot;, &amp;quot;ASSIGNED&amp;quot;] }&amp;lt;/bugzilla&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureInfo&lt;br /&gt;
|Feature priority=Unprioritized&lt;br /&gt;
|Feature list=Desktop&lt;br /&gt;
|Feature project=Responsiveness&lt;br /&gt;
|Feature engineering team=Desktop front-end&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeamStatus}}&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696936</id>
		<title>Features/Desktop/Downloads API</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696936"/>
		<updated>2013-08-20T08:45:38Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Edit bug query&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FeatureStatus&lt;br /&gt;
|Feature name=Downloads API&lt;br /&gt;
|Feature stage=Development&lt;br /&gt;
|Feature status=In progress&lt;br /&gt;
|Feature version=Firefox 26&lt;br /&gt;
|Feature health=OK&lt;br /&gt;
|Feature status note=https://wiki.mozilla.org/Performance#Downloads_API_Rewrite&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeam&lt;br /&gt;
|Feature feature manager=Paolo Amadini&lt;br /&gt;
|Feature lead engineer=Paolo Amadini&lt;br /&gt;
|Feature additional members=Neil Deakin, Felipe Gomes, Raymond Lee&lt;br /&gt;
}}&lt;br /&gt;
{{FeaturePageBody&lt;br /&gt;
|Feature overview=The current storage back-end for downloads, based on the synchronous &amp;lt;code&amp;gt;nsIDownloadManager&amp;lt;/code&amp;gt; interface and an associated SQLite database, causes noticeable performance issues when starting and finishing downloads.&lt;br /&gt;
&lt;br /&gt;
The new Downloads API will improve the responsiveness of Firefox for Desktop, by removing the main-thread I/O caused by access to &amp;lt;code&amp;gt;downloads.sqlite&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Feature users and use cases=The Downloads Panel is the main user of the Downloads API in Firefox for Desktop. Since the new API is part of Toolkit, other Mozilla products will be able to adopt it for improved performance.&lt;br /&gt;
|Feature requirements=The concrete goal is to ensure that SQL statements involving &amp;lt;code&amp;gt;moz_downloads&amp;lt;/code&amp;gt; no longer appear in the &amp;quot;slow SQL&amp;quot; Telemetry dashboard.&lt;br /&gt;
|Feature non-goals=This feature does not involve changes to the user interface and interaction model. Minor changes in behavior are expected, because the API is a complete reimplementation of the back-end.&lt;br /&gt;
|Feature functional spec=The overall design is documented in the &#039;&#039;&#039;[[User:P.A./Download_architecture_improvements|download architecture improvements]]&#039;&#039;&#039; page.&lt;br /&gt;
|Feature implementation notes===== Bugs list and patch queue ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feature tracking bug:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{bug|825588}} (covers work across all Mozilla products)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Key implementation bugs:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{bug|847863}}: Use the JavaScript API instead of nsIDownloadManager as the back-end for the panel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Additional steps needed to test the feature:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In Firefox 25, the feature can be enabled by toggling the &amp;lt;code&amp;gt;browser.download.useJSTransfer&amp;lt;/code&amp;gt; preference and restarting.&lt;br /&gt;
* In Firefox 26, the feature is enabled by default and cannot be disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Work required to release and enable the feature for everyone:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugs listed as blocking {{bug|907082}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bugzilla&amp;gt;{ &amp;quot;blocks&amp;quot;: 907082, &amp;quot;status&amp;quot;: [&amp;quot;NEW&amp;quot;, &amp;quot;ASSIGNED&amp;quot;] }&amp;lt;/bugzilla&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureInfo&lt;br /&gt;
|Feature priority=Unprioritized&lt;br /&gt;
|Feature engineering team=Desktop front-end&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeamStatus}}&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696935</id>
		<title>Features/Desktop/Downloads API</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696935"/>
		<updated>2013-08-20T08:39:05Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FeatureStatus&lt;br /&gt;
|Feature name=Downloads API&lt;br /&gt;
|Feature stage=Development&lt;br /&gt;
|Feature status=In progress&lt;br /&gt;
|Feature version=Firefox 26&lt;br /&gt;
|Feature health=OK&lt;br /&gt;
|Feature status note=https://wiki.mozilla.org/Performance#Downloads_API_Rewrite&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeam&lt;br /&gt;
|Feature feature manager=Paolo Amadini&lt;br /&gt;
|Feature lead engineer=Paolo Amadini&lt;br /&gt;
|Feature additional members=Neil Deakin, Felipe Gomes, Raymond Lee&lt;br /&gt;
}}&lt;br /&gt;
{{FeaturePageBody&lt;br /&gt;
|Feature overview=The current storage back-end for downloads, based on the synchronous &amp;lt;code&amp;gt;nsIDownloadManager&amp;lt;/code&amp;gt; interface and an associated SQLite database, causes noticeable performance issues when starting and finishing downloads.&lt;br /&gt;
&lt;br /&gt;
The new Downloads API will improve the responsiveness of Firefox for Desktop, by removing the main-thread I/O caused by access to &amp;lt;code&amp;gt;downloads.sqlite&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Feature users and use cases=The Downloads Panel is the main user of the Downloads API in Firefox for Desktop. Since the new API is part of Toolkit, other Mozilla products will be able to adopt it for improved performance.&lt;br /&gt;
|Feature requirements=The concrete goal is to ensure that SQL statements involving &amp;lt;code&amp;gt;moz_downloads&amp;lt;/code&amp;gt; no longer appear in the &amp;quot;slow SQL&amp;quot; Telemetry dashboard.&lt;br /&gt;
|Feature non-goals=This feature does not involve changes to the user interface and interaction model. Minor changes in behavior are expected, because the API is a complete reimplementation of the back-end.&lt;br /&gt;
|Feature functional spec=The overall design is documented in the &#039;&#039;&#039;[[User:P.A./Download_architecture_improvements|download architecture improvements]]&#039;&#039;&#039; page.&lt;br /&gt;
|Feature implementation notes===== Bugs list and patch queue ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feature tracking bug:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{bug|825588}} (covers work across all Mozilla products)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Key implementation bugs:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{bug|847863}}: Use the JavaScript API instead of nsIDownloadManager as the back-end for the panel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Additional steps needed to test the feature:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In Firefox 25, the feature can be enabled by toggling the &amp;lt;code&amp;gt;browser.download.useJSTransfer&amp;lt;/code&amp;gt; preference and restarting.&lt;br /&gt;
* In Firefox 26, the feature is enabled by default and cannot be disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Work required to release and enable the feature for everyone:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugs listed as blocking {{bug|907082}}:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;bugzilla&amp;gt;{ &amp;quot;blocks&amp;quot;: 907082, &amp;quot;status&amp;quot;: &amp;quot;ASSIGNED&amp;quot; }&amp;lt;/bugzilla&amp;gt;&lt;br /&gt;
&amp;lt;bugzilla&amp;gt;{ &amp;quot;blocks&amp;quot;: 907082, &amp;quot;status&amp;quot;: &amp;quot;NEW&amp;quot; }&amp;lt;/bugzilla&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureInfo&lt;br /&gt;
|Feature priority=Unprioritized&lt;br /&gt;
|Feature engineering team=Desktop front-end&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeamStatus}}&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696934</id>
		<title>Features/Desktop/Downloads API</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696934"/>
		<updated>2013-08-20T08:37:24Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Add bug references&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FeatureStatus&lt;br /&gt;
|Feature name=Downloads API&lt;br /&gt;
|Feature stage=Development&lt;br /&gt;
|Feature status=In progress&lt;br /&gt;
|Feature version=Firefox 26&lt;br /&gt;
|Feature health=OK&lt;br /&gt;
|Feature status note=https://wiki.mozilla.org/Performance#Downloads_API_Rewrite&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeam&lt;br /&gt;
|Feature feature manager=Paolo Amadini&lt;br /&gt;
|Feature lead engineer=Paolo Amadini&lt;br /&gt;
|Feature additional members=Neil Deakin, Felipe Gomes, Raymond Lee&lt;br /&gt;
}}&lt;br /&gt;
{{FeaturePageBody&lt;br /&gt;
|Feature overview=The current storage back-end for downloads, based on the synchronous &amp;lt;code&amp;gt;nsIDownloadManager&amp;lt;/code&amp;gt; interface and an associated SQLite database, causes noticeable performance issues when starting and finishing downloads.&lt;br /&gt;
&lt;br /&gt;
The new Downloads API will improve the responsiveness of Firefox for Desktop, by removing the main-thread I/O caused by access to &amp;lt;code&amp;gt;downloads.sqlite&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Feature users and use cases=The Downloads Panel is the main user of the Downloads API in Firefox for Desktop. Since the new API is part of Toolkit, other Mozilla products will be able to adopt it for improved performance.&lt;br /&gt;
|Feature requirements=The concrete goal is to ensure that SQL statements involving &amp;lt;code&amp;gt;moz_downloads&amp;lt;/code&amp;gt; no longer appear in the &amp;quot;slow SQL&amp;quot; Telemetry dashboard.&lt;br /&gt;
|Feature non-goals=This feature does not involve changes to the user interface and interaction model. Minor changes in behavior are expected, because the API is a complete reimplementation of the back-end.&lt;br /&gt;
|Feature functional spec=The overall design is documented in the &#039;&#039;&#039;[[User:P.A./Download_architecture_improvements|download architecture improvements]]&#039;&#039;&#039; page.&lt;br /&gt;
|Feature implementation notes===== Bugs list and patch queue ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feature tracking bug:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{bug|825588}} (covers work across all Mozilla products)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Key implementation bugs:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{bug|847863}}: Use the JavaScript API instead of nsIDownloadManager as the back-end for the panel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Additional steps needed to test the feature:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In Firefox 25, the feature can be enabled by toggling the &amp;lt;code&amp;gt;browser.downloads.useJSTransfer&amp;lt;/code&amp;gt; preference and restarting.&lt;br /&gt;
* In Firefox 26, the feature is enabled by default and cannot be disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Work required to release and enable the feature for everyone:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bugs listed as blocking {{bug|907082}}:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;bugzilla&amp;gt;{ &amp;quot;blocks&amp;quot;: 907082, &amp;quot;status&amp;quot;: &amp;quot;ASSIGNED&amp;quot; }&amp;lt;/bugzilla&amp;gt;&lt;br /&gt;
&amp;lt;bugzilla&amp;gt;{ &amp;quot;blocks&amp;quot;: 907082, &amp;quot;status&amp;quot;: &amp;quot;NEW&amp;quot; }&amp;lt;/bugzilla&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureInfo&lt;br /&gt;
|Feature priority=Unprioritized&lt;br /&gt;
|Feature engineering team=Desktop front-end&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeamStatus}}&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696929</id>
		<title>Features/Desktop/Downloads API</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696929"/>
		<updated>2013-08-20T08:18:50Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Add release target&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FeatureStatus&lt;br /&gt;
|Feature name=Downloads API&lt;br /&gt;
|Feature stage=Development&lt;br /&gt;
|Feature status=In progress&lt;br /&gt;
|Feature version=Firefox 26&lt;br /&gt;
|Feature health=OK&lt;br /&gt;
|Feature status note=https://wiki.mozilla.org/Performance#Downloads_API_Rewrite&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeam&lt;br /&gt;
|Feature feature manager=Paolo Amadini&lt;br /&gt;
|Feature lead engineer=Paolo Amadini&lt;br /&gt;
|Feature additional members=Neil Deakin, Felipe Gomes, Raymond Lee&lt;br /&gt;
}}&lt;br /&gt;
{{FeaturePageBody&lt;br /&gt;
|Feature overview=The current storage back-end for downloads, based on the synchronous &amp;lt;code&amp;gt;nsIDownloadManager&amp;lt;/code&amp;gt; interface and an associated SQLite database, causes noticeable performance issues when starting and finishing downloads.&lt;br /&gt;
&lt;br /&gt;
The new Downloads API will improve the responsiveness of Firefox for Desktop, by removing the main-thread I/O caused by access to &amp;lt;code&amp;gt;downloads.sqlite&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Feature users and use cases=The Downloads Panel is the main user of the Downloads API in Firefox for Desktop. Since the new API is part of Toolkit, other Mozilla products will be able to adopt it for improved performance.&lt;br /&gt;
|Feature requirements=The concrete goal is to ensure that SQL statements involving &amp;lt;code&amp;gt;moz_downloads&amp;lt;/code&amp;gt; no longer appear in the &amp;quot;slow SQL&amp;quot; Telemetry dashboard.&lt;br /&gt;
|Feature non-goals=This feature does not involve changes to the user interface and interaction model. Minor changes in behavior are expected, because the API is a complete reimplementation of the back-end.&lt;br /&gt;
|Feature functional spec=The overall design is documented in the &#039;&#039;&#039;[[User:P.A./Download_architecture_improvements|download architecture improvements]]&#039;&#039;&#039; page.&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureInfo&lt;br /&gt;
|Feature priority=Unprioritized&lt;br /&gt;
|Feature engineering team=Desktop front-end&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeamStatus}}&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Performance&amp;diff=696928</id>
		<title>Performance</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Performance&amp;diff=696928"/>
		<updated>2013-08-20T08:16:52Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Downloads API Rewrite */ Update target and add link to feature page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Performance=&lt;br /&gt;
Mozilla&#039;s performance program focuses on improvements to the Gecko platform and the Firefox Desktop, Firefox for Android, and Firefox OS products.&lt;br /&gt;
&lt;br /&gt;
==Projects==&lt;br /&gt;
===&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Active&amp;lt;/span&amp;gt;===&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Incremental Cycle Collection (ICC)&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}} {{mobile}} {{b2g}}&lt;br /&gt;
|team=Andrew McCreight (lead)&lt;br /&gt;
|duration=TBD&lt;br /&gt;
|goal=Implement incremental cycle collection to reduce&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; cycle collector pauses in the Firefox UI.&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Reduction in cycle collector pauses will be measured with the [http://mzl.la/XLsAoB CYCLE_COLLECTOR_FULL Telemetry probe]. The degree of reduction that can be achieved is currently unclear.&amp;lt;/span&amp;gt;&lt;br /&gt;
|reports=TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/mccr8 Andrew McCreight]&lt;br /&gt;
|work={{bug|850065}}&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Keep JS-accessible APIs from blocking the main thread&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}} {{mobile}} {{b2g}}&lt;br /&gt;
|team=David Rajchenbach-Teller (lead), Paolo Amadini&lt;br /&gt;
|duration=TBD&lt;br /&gt;
|goal=Refactor existing and provide new JS APIs to either migrate services, components, and add-ons off the main thread or at least prevent them from blocking the main thread.&lt;br /&gt;
|reports=TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/Yoric David Rajchenbach-Teller]&lt;br /&gt;
|work=[http://mzl.la/ZJaowA Bugzilla query]&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=This project focuses on JS-accessible APIs in the context of Web Workers.&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Profiler Backend for Mobile&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{mobile}} {{b2g}}&lt;br /&gt;
|team=Julian Seward (lead), Benoit Girard, Mike Hommey &lt;br /&gt;
|duration=TBD&lt;br /&gt;
|goal=Accurate&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;, crash-free, deadlock-free, low overhead&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; stack unwinding for the SPS profiler for Firefox for Android and Firefox OS.&lt;br /&gt;
&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;The correct sequence of code return addresses on the stack, ideally without the unwind terminating before it gets back to main().&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[2]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Average unwind cost of 500 microseconds for a 30-frame backtrace on one core of a 1 GHz Cortex A9&amp;lt;/span&amp;gt;&lt;br /&gt;
|reports=[https://blog.mozilla.org/jseward Julian Seward&#039;s blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/sewardj Julian Seward], [http://teamstat.us/#show/irc.mozilla.org/perf/BenWa Benoit Girard], [http://teamstat.us/#show/irc.mozilla.org/perf/glandium Mike Hommey]&lt;br /&gt;
|work={{bug|863453}}&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=May impact desktop Linux as well.&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Reducing time to first paint - Phase 1&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Vladan Djeric (lead)&lt;br /&gt;
|duration=TBD&lt;br /&gt;
|goal=A 10% reduction&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; in time between XRE_Main and first paint&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; during cold starts&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; on Windows 7 with no extensions installed&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;, on reference slow hardware&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;, 30 seconds after an OS reboot. &lt;br /&gt;
&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Currently, after an OS restart, XRE_Main to firstPaint takes about 4.2 seconds on the reference hardware. A 10% reduction will be ~400ms.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[2]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;XRE_Main as the starting point to exclude the impact of loading Firefox binaries as they grow bigger with every release. First paint to exclude the impact of Yoric&#039;s session store refactor work.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[3]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Cold start because a lot of the work will be focused on reducing the amount of I/O done during startup.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[4]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;No extensions to exclude the impact of Irving&#039;s Add-on Manager work.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[5]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;The reference hardware is a recent, slow Win7 laptop with an AMD C-50 dual-core @ 1 GHz, magnetic HDD, and 2GB shared RAM. A slow Windows laptop is used because it is consistently slow and can be easily debugged.&amp;lt;/span&amp;gt;&lt;br /&gt;
|reports=[https://blog.mozilla.org/vdjeric/category/start-faster/ Vladan Djeric&#039;s blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/vladan Vladan Djeric]&lt;br /&gt;
|work= {{bug|810156}}&lt;br /&gt;
|dependencies= [[Performance#Replace_Add-on_Manager_SQLITE_with_JSON_file|Replace Add-on Manager SQLITE with JSON file project]] &lt;br /&gt;
|notes=Will measure with about:telemetry on reference hardware as aggregate Telemetry includes both warm and cold starts and a variety of hardware confirgurations.&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Replace Add-on Manager SQLITE with JSON file&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}} {{mobile}}&lt;br /&gt;
|team=Irving Reid (lead), Felipe Gomes&lt;br /&gt;
|duration=6 weeks (approx week of May 27, 2013)&lt;br /&gt;
|goal=Goal: Reduce Add-on Manager impact on start-up time&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; and runtime pauses&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; by removing SQLITE database from XPI Provider and Add-on Repository and replacing with JSON&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Start-up time reduction by reducing the amount of I/O required before first paint.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Runtime pause reduction by reducing I/O required during add-on up-to-date checks and updates, and making sure as much as possible is off main thread.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;New implementation will do no blocking I/O except minimal loading of required data during start-up.&amp;lt;/sup&amp;gt;&lt;br /&gt;
|reports=[http://www.controlledflight.ca/category/mozilla Irving Reid&#039;s blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/irving Irving Reid], [http://teamstat.us/#show/irc.mozilla.org/perf/felipe Felipe Gomes]&lt;br /&gt;
|work= {{bug|853388}}, {{bug|853389}}&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Smooth Tab Animation&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Avi Halachmi (lead), Tim Taubert&lt;br /&gt;
|duration=TBD&lt;br /&gt;
|goal=Reasonably&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; smooth tabstrip animation on modern low-end AMD/Intel CPUs. The specific focus will be on use cases 1-8 defined below.&lt;br /&gt;
# New tab open of about:blank where other tabs are unaffected. (not common, this is our raw baseline) &lt;br /&gt;
# Tab close where other tabs are unaffected, and where the newly focused tab is empty. (also raw baseline)&lt;br /&gt;
# New tab open - with thumbnails preview - where other tabs are unaffected.&lt;br /&gt;
# Tab close where other tabs are unaffected, where the newly focused tab is heavy (e.g. GMail).&lt;br /&gt;
* 5-8. Same as the above, when other tabs are affected (shrunk/expanded) - up to 10 changing tabs.&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;The last 70% of the animation is not lower than 50fps.&amp;lt;/span&amp;gt;&lt;br /&gt;
|reports=[http://avih.github.io/blog/categories/tabstrip/ Avi Halachmi&#039;s blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/avih Avi Halachmi]&lt;br /&gt;
|work={{bug|815354}}&lt;br /&gt;
|dependencies=OMTC&lt;br /&gt;
|notes=&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Network Cache Rewrite&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}} {{mobile}} {{b2g}}&lt;br /&gt;
|team=Honza Bambas (lead), Michal Novotny, Jason Duell (manager)&lt;br /&gt;
|duration=Goal is to have new code in production by end of Q4 2013&lt;br /&gt;
|goal=A cache that causes no main thread I/O jank (directly or indirectly via locks)&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;, and that avoids losing the entire cache during crashes or unclean shutdown.&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Currently the cache causes jank (sometimes in excess of 1 second) via main thread waiting while cache thread holds lock and does I/O.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[2]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Cache is currently thrown away unless clean shutdown.  Cache loss rates per startup are 9% on windows desktop, 11% OSX, 22% Linux desktop, 25% metro.  New design will keep all cache entries and detect corruption on a per-entry basis.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|reports=&lt;br /&gt;
|work={{bug|877301}}&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes= [https://wiki.mozilla.org/Necko/Cache/Plans Cache rewrite project wiki page] &lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Downloads API Rewrite&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Paolo Amadini (lead), Raymond Lee, Felipe Gomes, Neil Deakin&lt;br /&gt;
|duration=Mid August for reaching the initial goal in Nightly.&lt;br /&gt;
Probably another month or two (with lower bandwidth) for follow-ups.&lt;br /&gt;
|goal=To improve responsiveness when downloads are started, by removing the main-thread I/O caused by access to &amp;quot;downloads.sqlite&amp;quot;. The concrete goal is to ensure that SQL statements involving moz_downloads no longer appear in the &amp;quot;slow SQL&amp;quot; Telemetry dashboard.&lt;br /&gt;
|reports=firefox-dev mailing list, [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/pamadini%40mozilla.com weekly updates tool].&lt;br /&gt;
|work={{bug|825588}}, [[Features/Desktop/Downloads_API|Feature Page]]&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=The project should include a follow-up time frame to accommodate any changes identified after Firefox for Desktop has migrated to the new API, as well as handle requests to facilitate other Mozilla products and add-ons to migrate to the new API.&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Remove localStorage From Browser Pages&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Marco Bonardo&lt;br /&gt;
|duration= &lt;br /&gt;
|goal=Replace about: pages use of DOM Storage with more performant storage, like indexedDB, to remove UI hangs due to main-thread IO.&lt;br /&gt;
|reports=[http://blog.bonardo.net/tag/performance Marco&#039;s blog], [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com weekly updates tool].&lt;br /&gt;
|work={{Bug|729777}} and dependencies&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Complete Asynchronous History API&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Marco Bonardo, Asaf Romano, Raymond Lee&lt;br /&gt;
|duration= &lt;br /&gt;
|goal=Replace all remaining synchronous history APIs with asynchronous alternatives. This will reduce possibilities of contention between the synchronous and the asynchronous APIs, that can cause long hangs of the UI.&lt;br /&gt;
|reports=[http://blog.bonardo.net/tag/performance Marco&#039;s blog], [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com weekly updates tool].&lt;br /&gt;
|work={{Bug|699850}} and dependencies&lt;br /&gt;
|dependencies=Ensure to properly communicating add-ons compatibility issues before APIs removal, through blog post, Mozilla.dev.extensions, AMO team.&lt;br /&gt;
|notes=We should replace synchronous API that reports history status (bug 834541), this may be tricky since it’s required to be synchronous by some UI features and could slip off to the future, luckily it’s currently served through a cache that reduces its negative impact.&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Reduce Impact Of Bookmarks Backups On Shutdown&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Raymond Lee, Marco Bonardo&lt;br /&gt;
|duration= &lt;br /&gt;
|goal=Replace synchronous main-thread bookmarks backups with asynchronous background backups. &lt;br /&gt;
&lt;br /&gt;
Bookmarks backups currently only run on idle, but some instances never hit idle causing the backups to occur on shutdown, which negatively impacts the shutdown time of the browser.&lt;br /&gt;
|reports=[http://blog.bonardo.net/tag/performance Marco&#039;s blog], [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com weekly updates tool].&lt;br /&gt;
|work={{Bug|843357}} and dependencies, https://etherpad.mozilla.org/places-backups-changes&lt;br /&gt;
|dependencies=Ensure to properly communicating add-ons compatibility issues before APIs removal, through blog post, Mozilla.dev.extensions, AMO team.&lt;br /&gt;
|notes=This project will be completed in 3 parts:&lt;br /&gt;
#Convert APIs from synchronous to asynchronous - done&lt;br /&gt;
#Various improvements to ensure we store backups only when really needed, by skipping duplicates and giving better information to the users&lt;br /&gt;
#Async conversion, although some minor parts of the code should already be async converted as we go&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Reduce Storage Connections Main-Thread Operations&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}} {{mobile}}&lt;br /&gt;
|team=David Teller, Marco Bonardo&lt;br /&gt;
|duration= &lt;br /&gt;
|goal=Setting up and closing a Storage database connection happens on main-thread, even if then the connection is only used through the asynchronous API. This may cause visible jank, especially when there’s other IO ongoing. Introduce a new purely asynchronous connection that never hits the main-thread and update consumers to use it. This will also ensure consumers of this connection can’t wrongly abuse of the synchronous APIs and create thread contention. &lt;br /&gt;
|reports=[http://blog.bonardo.net/tag/performance Marco&#039;s blog], [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com weekly updates tool].&lt;br /&gt;
|work={{Bug|702559}}, {{Bug|874814}}, {{Bug|885732}} and dependencies&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=Need to blog about this change and update the documentation.&lt;br /&gt;
The asynchronous connection landed, though it still closes the database handle on main-thread though, so fixing that is the next goal for July. Consumers conversion may take some time, Sqlite.jsm has already been converted, autocomplete is ongoing, but each consumer has very specific requirements. Goal is to complete the connection and convert most common consumers by the end of September.&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Asynchronous Places Annotations&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Asaf Romano, Marco Bonardo&lt;br /&gt;
|duration= &lt;br /&gt;
|goal=Annotations allow to set specific flags on bookmarks and pages in history, to identify them or attach additional information, but they are synchronous, so bookmarks conversion to an asynchronous API is blocked on them and they are currently causing unpredictable main-thread IO. Introduce a new asynchronous API that allows to annotate pages and bookmarks asynchronously, convert internal consumers to it. &lt;br /&gt;
|reports=[http://blog.bonardo.net/tag/performance Marco&#039;s blog], [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com weekly updates tool].&lt;br /&gt;
|work={{Bug|699844}} and dependencies &lt;br /&gt;
|dependencies=Ensure to properly communicating add-ons compatibility issues before APIs removal, through blog post, Mozilla.dev.extensions, AMO team.&lt;br /&gt;
|notes=The old service will keep living in parallel for a while, for compatibility reasons.&lt;br /&gt;
&lt;br /&gt;
A first draft of the new API has been created. Asaf is going to create a first mock of the service and verify consumers requirements with it. Marco will work on the database schema and performances. Consumers conversion may take the most time and will likely be an iterative process once the API and the service are complete, by the end of the third quarter.&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Improve Text Performance&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}} {{mobile}} {{b2g}}&lt;br /&gt;
|team=John Dagget, Jonathan Kew, Simon Montagu&lt;br /&gt;
|duration= &lt;br /&gt;
|goal=??&lt;br /&gt;
|reports=&lt;br /&gt;
|work={{Bug|863248}}, {{Bug|834609}}, {{Bug|885689}} &lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=Need to sync with Jet on this project definition.&lt;br /&gt;
&lt;br /&gt;
A first draft of the new API has been created. Asaf is going to create a first mock of the service and verify consumers requirements with it. Marco will work on the database schema and performances. Consumers conversion may take the most time and will likely be an iterative process once the API and the service are complete, by the end of the third quarter.&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Reduce impact of thumbnailing&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Drew Willicox, Mark Hammond&lt;br /&gt;
|duration=6 months&lt;br /&gt;
|goal=Toolkit has two services that capture thumbnails of pages: a &amp;quot;foreground&amp;quot; service and a new &amp;quot;background&amp;quot; service.  The foreground service draws the content windows of pages that the user has opened to canvases on the main thread.  The background service exposes an API that uses a remote xul:brower to load pages on demand in the hidden window and then in the content process draws the resulting content windows to canvases.  Both services write thumbnails to disk on a background thread from the main process.  The goal here is to minimize the impact in the broadest sense of both services: the user&#039;s perception of jank, resource use, time taken to draw to canvas, capturing only when necessary, etc.&lt;br /&gt;
|reports=[https://wiki.mozilla.org/Firefox/Meeting Desktop weekly meeting notes], [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/adw%40mozilla.com/posts Drew&#039;s] and [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mhammond%40mozilla.com/posts Mark&#039;s] weekly updates&lt;br /&gt;
|work={{Bug|899401}}&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=&lt;br /&gt;
&lt;br /&gt;
Ultimately we want to move all thumbnail capturing off the main thread, probably using the background service that landed in Fx 25.  This service currently uses the Private Browsing feature to sandbox page loads, but declines to capture when a private browsing window is open, but can still have side-effects related to this (eg, if a capture is in-progress when PB mode is entered, it might cause cookies for a site to exist when they otherwise would not).  We plan to avoid using PB mode once we have identified a technique to make these requests totally isolated.&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;On Hold&amp;lt;/span&amp;gt;===&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;Shutdown&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Benoit Girard (lead)&lt;br /&gt;
|duration=TBD&lt;br /&gt;
|goal=Ensure 95% of Firefox desktop instances shutdown in 3 seconds or less. &lt;br /&gt;
|reports=[http://benoitgirard.wordpress.com Benoit Girard&#039;s blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/BenWa Benoit Girard]&lt;br /&gt;
|work={{bug|819063}}&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=&lt;br /&gt;
}}&lt;br /&gt;
{{PerfProjectHold|Resource availability}}&lt;br /&gt;
----&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;Improve Places Hosts Storage&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Marco Bonardo&lt;br /&gt;
|duration= &lt;br /&gt;
|goal=Change the way we store hosts in Places to reduce work needed for inserting and querying pages. Currently we split www. and non www. hosts but we always use them as a single thing in all of the UI pieces, so we have to double the querying work to gather both. &lt;br /&gt;
|reports=[http://blog.bonardo.net/tag/performance Marco&#039;s blog], [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com weekly updates tool].&lt;br /&gt;
|work={{Bug|843357}} and dependencies &lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=It&#039;s a one bug project, most of the time is needed to verify if the change may cause any issues and designing the new queries. It may take about a week.&lt;br /&gt;
}}&lt;br /&gt;
{{PerfProjectHold|Resource availability, lower priority in comparison with other perf projects}}&lt;br /&gt;
----&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;Improve Space Efficiency Of Places URL Index&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Marco Bonardo, Taras Glek&lt;br /&gt;
|duration= &lt;br /&gt;
|goal=The current URL index in places.sqlite database takes up to 30% of the database size. The features it provides can be obtained through a smarter hashing method that should improve the space efficiency by an order of magnitude. A smaller database has positive effects on IO and fragmentation.&lt;br /&gt;
|reports=[http://blog.bonardo.net/tag/performance Marco&#039;s blog], [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com weekly updates tool].&lt;br /&gt;
|work={{Bug|889561}}&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=&lt;br /&gt;
}}&lt;br /&gt;
{{PerfProjectHold|Resource availability, lower priority in comparison with other perf projects}}&lt;br /&gt;
----&lt;br /&gt;
===Proposals===&lt;br /&gt;
Project proposals should be listed on the [https://etherpad.mozilla.org/perf perf etherpad].&lt;br /&gt;
&lt;br /&gt;
===Archive===&lt;br /&gt;
Completed/terminated projects are listed in the [[Performance/ProjectArchive|project archive]].&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
*[[Telemetry|Telemetry]]&lt;br /&gt;
* [https://github.com/mozilla/jydoop jydoop: Efficient and Testable hadoop map-reduce in Python] ([http://benjamin.smedbergs.us/blog/2013-04-09/introducing-jydoop-fast-and-sane-map-reduce/ Introduction from Benjamin Smedberg])&lt;br /&gt;
* [https://developer.mozilla.org/en-US/docs/Performance/Profiling_with_the_Built-in_Profiler SPS Profiler]&lt;br /&gt;
* [[Buildbot/Talos]]&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
{| class=&amp;quot;wikitable fullwidth-table&amp;quot;&lt;br /&gt;
 ! Communication Type !! Mechanism !! Audience&lt;br /&gt;
 |-&lt;br /&gt;
 | Announcements || [https://lists.mozilla.org/listinfo/dev-platform dev-platform] list || all&lt;br /&gt;
 |-&lt;br /&gt;
 | Meetings || First Thursday of each month, 11am PT&lt;br /&gt;
{{conf|99355}}&lt;br /&gt;
* Vidyo: Performance&lt;br /&gt;
* IRC: [irc://irc.mozilla.org/perf #perf]&lt;br /&gt;
* Agenda: [https://etherpad.mozilla.org/perf https://etherpad.mozilla.org/perf]&lt;br /&gt;
|| all&lt;br /&gt;
 |-&lt;br /&gt;
 | Meeting summaries || [[Performance | this wiki]] || all &lt;br /&gt;
 |-&lt;br /&gt;
 | Micro status || [http://teamstat.us/#browse/irc.mozilla.org/perf TeamStatus] || devs&lt;br /&gt;
 |-&lt;br /&gt;
 | Weekly status || [http://benjamin.smedbergs.us/weekly-updates.fcgi/ Mozilla Status Board] || devs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Press &amp;amp; Blog Posts===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Progress Reports ===&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot; style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color: rgb(221, 221, 221);&amp;quot; colspan=&amp;quot;2&amp;quot; | 2013 &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* August 2013 [[Performance/2013-08-01|Meeting Minutes]], [[Performance/Report-2013-08|Report]]&lt;br /&gt;
* [[Performance/2013-07-11|July 2013 Meeting Minutes]]&lt;br /&gt;
* [[Performance/2013-06-06|June 2013 Meeting Minutes]]&lt;br /&gt;
* [[Performance/2013-05-02|May 2013 Meeting Minutes]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==People==&lt;br /&gt;
list required competencies for people and, once defined, the people working on project. note that not all of these competencies will be required for every project&lt;br /&gt;
{| class=&amp;quot;wikitable fullwidth-table&amp;quot;&lt;br /&gt;
 | Project Champion || &lt;br /&gt;
 |- &lt;br /&gt;
 | Program Management || Lawrence Mandel&lt;br /&gt;
 |- &lt;br /&gt;
 | Product || &lt;br /&gt;
 |- &lt;br /&gt;
 | Engineering || Taras Glek, Vladan Djeric&lt;br /&gt;
 |- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
===Related Projects===&lt;br /&gt;
* [[Performance/MemShrink|MemShrink]]&lt;br /&gt;
&lt;br /&gt;
==Archive==&lt;br /&gt;
===Old Projects===&lt;br /&gt;
* [[Firefox/Projects/Mobile_Startup_Shrink|Mobile Startup Shrink]]&lt;br /&gt;
* [[Firefox/Projects/Startup_Time_Improvements|Startup Performance]]&lt;br /&gt;
* [[Firefox:FrontEndPerformance|Front-end Performance]] (i.e., responsiveness)&lt;br /&gt;
* [[Performance/Addons|Add-on Performance]]&lt;br /&gt;
* [[Performance/Snappy|Snappy]]&lt;br /&gt;
* [[Mobile/Performance|Mobile Performance Info]]&lt;br /&gt;
&lt;br /&gt;
===Tools===&lt;br /&gt;
* [[Codesighs]] - a tool which analyzes code and data size.&lt;br /&gt;
* [[Performance:Tools]]. For measuring performance. Tip o&#039; the propeller-cap to [mailto:zuperdee@penguinpowered.com Daniel Roberts] (zuperdee@penguinpowered.com) for the pointers.&lt;br /&gt;
* [[Performance:Probes]]. Project to integrate a system of performance probes into Gecko.&lt;br /&gt;
&lt;br /&gt;
===Documentation and Presentations===&lt;br /&gt;
* Code Footprint [[Performance:Footprint_Reduction_Techniques]] explains common bad patterns and how to correct them.&lt;br /&gt;
* [[Performance:Profiling_JuJu]]. Things you should know about doing profiling. Tips and tricks for some of the tools, and lots of other Good Things To Know.&lt;br /&gt;
* [http://www.mozilla.org/performance/mac-performance.html Profiling and leak analysis] on the Mac.&lt;br /&gt;
* [[Performance:Footprint_Tools]]. Presentation on footprint tools&lt;br /&gt;
* [[Performance:Startup]] [http://www.mozilla.org/performance/perf-intro/slide1.xml slides] Presentation on general performance tools&lt;br /&gt;
* [[Performance:Leak_Tools]]. Presentation on memory leaks detection tools&lt;br /&gt;
* [http://www.mozilla.org/performance/mac-performance.html Mac Performance Tools] Presentation on performance tools that work on Mac&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696926</id>
		<title>Features/Desktop/Downloads API</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696926"/>
		<updated>2013-08-20T08:13:08Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FeatureStatus&lt;br /&gt;
|Feature name=Downloads API&lt;br /&gt;
|Feature stage=Development&lt;br /&gt;
|Feature status=In progress&lt;br /&gt;
|Feature health=OK&lt;br /&gt;
|Feature status note=https://wiki.mozilla.org/Performance#Downloads_API_Rewrite&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeam&lt;br /&gt;
|Feature feature manager=Paolo Amadini&lt;br /&gt;
|Feature lead engineer=Paolo Amadini&lt;br /&gt;
|Feature additional members=Neil Deakin, Felipe Gomes, Raymond Lee&lt;br /&gt;
}}&lt;br /&gt;
{{FeaturePageBody&lt;br /&gt;
|Feature overview=The current storage back-end for downloads, based on the synchronous &amp;lt;code&amp;gt;nsIDownloadManager&amp;lt;/code&amp;gt; interface and an associated SQLite database, causes noticeable performance issues when starting and finishing downloads.&lt;br /&gt;
&lt;br /&gt;
The new Downloads API will improve the responsiveness of Firefox for Desktop, by removing the main-thread I/O caused by access to &amp;lt;code&amp;gt;downloads.sqlite&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Feature users and use cases=The Downloads Panel is the main user of the Downloads API in Firefox for Desktop. Since the new API is part of Toolkit, other Mozilla products will be able to adopt it for improved performance.&lt;br /&gt;
|Feature requirements=The concrete goal is to ensure that SQL statements involving &amp;lt;code&amp;gt;moz_downloads&amp;lt;/code&amp;gt; no longer appear in the &amp;quot;slow SQL&amp;quot; Telemetry dashboard.&lt;br /&gt;
|Feature non-goals=This feature does not involve changes to the user interface and interaction model. Minor changes in behavior are expected, because the API is a complete reimplementation of the back-end.&lt;br /&gt;
|Feature functional spec=The overall design is documented in the &#039;&#039;&#039;[[User:P.A./Download_architecture_improvements|download architecture improvements]]&#039;&#039;&#039; page.&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureInfo&lt;br /&gt;
|Feature priority=Unprioritized&lt;br /&gt;
|Feature engineering team=Desktop front-end&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeamStatus}}&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696925</id>
		<title>Features/Desktop/Downloads API</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Features/Desktop/Downloads_API&amp;diff=696925"/>
		<updated>2013-08-20T08:10:00Z</updated>

		<summary type="html">&lt;p&gt;P.A.: Create feature page for the Downloads API&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FeatureStatus&lt;br /&gt;
|Feature name=Downloads API&lt;br /&gt;
|Feature stage=Development&lt;br /&gt;
|Feature status=In progress&lt;br /&gt;
|Feature health=OK&lt;br /&gt;
|Feature status note=https://wiki.mozilla.org/Performance#Downloads_API_Rewrite&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeam&lt;br /&gt;
|Feature feature manager=Paolo Amadini&lt;br /&gt;
|Feature lead engineer=Paolo Amadini&lt;br /&gt;
|Feature additional members=Neil Deakin, Felipe Gomes, Raymond Lee&lt;br /&gt;
}}&lt;br /&gt;
{{FeaturePageBody&lt;br /&gt;
|Feature overview=The current storage back-end for downloads, based on the synchronous &amp;lt;code&amp;gt;nsIDownloadManager&amp;lt;/code&amp;gt; interface and an associated SQLite database, causes noticeable performance issues when starting and finishing downloads.&lt;br /&gt;
&lt;br /&gt;
The new Downloads API will improve the responsiveness of Firefox for Desktop, by removing the main-thread I/O caused by access to &amp;lt;code&amp;gt;downloads.sqlite&amp;lt;/code&amp;gt;. The concrete goal is to ensure that SQL statements involving &amp;lt;code&amp;gt;moz_downloads&amp;lt;/code&amp;gt; no longer appear in the &amp;quot;slow SQL&amp;quot; Telemetry dashboard.&lt;br /&gt;
|Feature users and use cases=The Downloads Panel is the main user of the Downloads API in Firefox for Desktop. Since the new API is part of Toolkit, other Mozilla products will be able to adopt it for improved performance.&lt;br /&gt;
|Feature non-goals=This feature does not involve changes to the user interface and interaction model. Minor changes in behavior are expected, because the API is a complete reimplementation of the back-end.&lt;br /&gt;
|Feature functional spec=The overall design is documented in the &#039;&#039;&#039;[[download architecture improvements|User:P.A./Download_architecture_improvements]]&#039;&#039;&#039; page.&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureInfo&lt;br /&gt;
|Feature priority=Unprioritized&lt;br /&gt;
|Feature engineering team=Desktop front-end&lt;br /&gt;
}}&lt;br /&gt;
{{FeatureTeamStatus}}&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/13-Aug-2013&amp;diff=694013</id>
		<title>Firefox/Meeting/13-Aug-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/13-Aug-2013&amp;diff=694013"/>
		<updated>2013-08-13T17:02:15Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Downloads API */ Add status update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
*Removal of &amp;quot;Enable JavaScript&amp;quot; and &amp;quot;Load images automatically&amp;quot; in Firefox 23&lt;br /&gt;
**For me, this has rendered this version of Firefox unusable, and my only alternative was to uninstall it and reinstall 22. I hope that these option checkboxes will be restored in Firefox 24.&lt;br /&gt;
&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* brinks7 who (although ~2.5 years ago) provided a great STR that helped _a lot_ with finally fixing {{bug|637020}}. [ttaubert]&lt;br /&gt;
* onemen.one for providing lots of helpful comments on recent SessionStore improvements and regressions. [ttaubert]&lt;br /&gt;
&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
===Australis===&lt;br /&gt;
===Downloads API===&lt;br /&gt;
* It is a matter of days before switching the &amp;lt;code&amp;gt;browser.download.useJSTransfer&amp;lt;/code&amp;gt; preference&lt;br /&gt;
* Will wait before posting the bi-weekly update to firefox-dev&lt;br /&gt;
&lt;br /&gt;
===Thumbnailing===&lt;br /&gt;
===SessionStore===&lt;br /&gt;
* Lots of smaller code cleanups that help us understand more details and maintain SessionStore.&lt;br /&gt;
* Work on reducing SessionStore impact when creating tabs to restore a session ({{bug|900803}} and {{bug|901137}}) in progress.&lt;br /&gt;
* We are working on introducing an API to store data per session {{bug|899213}}, just like Scratchpad does.&lt;br /&gt;
* Fixed a very long-standing data loss issue {{bug|637020}} that could make us lose whole windows when crashing at or shortly after startup.&lt;br /&gt;
* Getting closer to move first parts of the data collection to content scripts, {{bug|894595}}, {{bug|903388}}, and {{bug|904003}}.&lt;br /&gt;
&lt;br /&gt;
===Places API asyncification===&lt;br /&gt;
===Social API===&lt;br /&gt;
===e10s===&lt;br /&gt;
&lt;br /&gt;
* Landed:&lt;br /&gt;
** {{bug|516753}} context area menu (using CPOWs)&lt;br /&gt;
** {{bug|897062}} middle click support (for links/scroll)&lt;br /&gt;
** {{bug|902695}} openURIInFrame (support for opening in new window)&lt;br /&gt;
** {{bug|870625}} Make add-on installation work&lt;br /&gt;
* {{bug|899222}} About:home backed out&lt;br /&gt;
* Three bugs of interest&lt;br /&gt;
** {{bug|897060}} - Dropdown menus (&amp;lt;select&amp;gt;)&lt;br /&gt;
** {{bug|899648}} - alert()/prompt()&lt;br /&gt;
** {{bug|896787}} - URL bar gets cleared after opening a tab&lt;br /&gt;
&lt;br /&gt;
=== UX Updates ===&lt;br /&gt;
&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
&lt;br /&gt;
===gavin===&lt;br /&gt;
(gavin&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gavin%40gavinsharp.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===paolo===&lt;br /&gt;
(paolo&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/pamadini%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mak===&lt;br /&gt;
(marco&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
(Neil&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/enndeakin%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===felipe===&lt;br /&gt;
(felipe&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipc%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mano===&lt;br /&gt;
(Mano&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mano%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
(Tim&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
(Drew&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/adw%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
(Mark&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mhammond%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===smacleod===&lt;br /&gt;
(Steven&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/smacleod%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
(dolske&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/dolske%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mconley===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mconley%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dao===&lt;br /&gt;
&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mdeboer%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
(gijs&#039; [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
(Blair&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/bmcbride%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===MattN===&lt;br /&gt;
(MattN&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mozilla%40noorenberghe.ca Status Board])&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
(jaws&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
(mixedpuppy&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/scaraveo%40mozilla.com Status Board])&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/6-Aug-2013&amp;diff=690570</id>
		<title>Firefox/Meeting/6-Aug-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/6-Aug-2013&amp;diff=690570"/>
		<updated>2013-08-06T16:50:31Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Downloads API */ Add status update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* billm for fixing error reporting in {{bug|899812}}. &amp;lt;3 (ttaubert).&lt;br /&gt;
&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
===Australis===&lt;br /&gt;
* Matt, Jared, Gijs and Mike Conley continue to hammer on performance. We&#039;re *so close*. ~3.2% tpaint and 1.5-3% ts_paint regressions for XP&lt;br /&gt;
* Mike de Boer&#039;s been dropping an elbow on P1 and P2 bugs&lt;br /&gt;
* Marco finished the initial styling work on the Bookmarks widget&lt;br /&gt;
&lt;br /&gt;
===Downloads API===&lt;br /&gt;
* Can be activated in Nightly and Aurora using the &amp;lt;code&amp;gt;browser.download.useJSTransfer&amp;lt;/code&amp;gt; preference&lt;br /&gt;
* More details in the [https://groups.google.com/forum/#!topic/mozilla.dev.extensions/ltOB3MzVwcI mozilla.dev.extensions and mozilla.dev.platform post]&lt;br /&gt;
* Working on remaining blocking features before switching the preference&lt;br /&gt;
&lt;br /&gt;
===Thumbnailing===&lt;br /&gt;
===SessionStore===&lt;br /&gt;
* Steven restored important telemetry measurements that got lost when moving the I/O code to a worker.&lt;br /&gt;
* David is working on improving sessionstore communication, removing private tabs from the state.&lt;br /&gt;
* Work on e10s in continuing, blocked by rewriting the current cookie collection methods.&lt;br /&gt;
* We landed a patch that fixes blank new windows and prevents about:home from loading when we restore a session ({{bug|893061}}).&lt;br /&gt;
* Landed two patches that remove a whole chunk of sessionstore code \o/ ({{bug|898755}} and {{bug|898775}}).&lt;br /&gt;
&lt;br /&gt;
===Places API asyncification===&lt;br /&gt;
===Social API===&lt;br /&gt;
===e10s===&lt;br /&gt;
&lt;br /&gt;
* {{bug|617804}} SetStatus landed (link hover support)&lt;br /&gt;
* {{bug|897066}} switch browser remote/non-remote landed&lt;br /&gt;
* {{bug|899222}} about:home in child process getting close&lt;br /&gt;
* {{bug|516753}} nsContextMenu patch using CPOWs&lt;br /&gt;
&lt;br /&gt;
=== UX Updates ===&lt;br /&gt;
&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
&lt;br /&gt;
===gavin===&lt;br /&gt;
(gavin&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gavin%40gavinsharp.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===paolo===&lt;br /&gt;
(paolo&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/pamadini%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mak===&lt;br /&gt;
(marco&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
(Neil&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/enndeakin%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===felipe===&lt;br /&gt;
(felipe&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipc%40gmail.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mano===&lt;br /&gt;
(Mano&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mano%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
(Tim&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
(Drew&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/adw%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
(Mark&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mhammond%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===smacleod===&lt;br /&gt;
(Steven&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/smacleod%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
(dolske&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/dolske%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mconley===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mconley%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===dao===&lt;br /&gt;
&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mdeboer%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
(gijs&#039; [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
(Blair&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/bmcbride%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===MattN===&lt;br /&gt;
(MattN&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mozilla%40noorenberghe.ca Status Board])&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
(jaws&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws%40mozilla.com Status Board])&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
(mixedpuppy&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/scaraveo%40mozilla.com Status Board])&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/30-Jul-2013&amp;diff=687360</id>
		<title>Firefox/Meeting/30-Jul-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/30-Jul-2013&amp;diff=687360"/>
		<updated>2013-07-30T16:58:27Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Downloads API */ Add status update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
===Australis===&lt;br /&gt;
* The Australis team is still battling performance bugs.&lt;br /&gt;
* Gijs and mstange landed a patch that should give us a bit of a win on Windows - but we&#039;re still regressing tpaint by about ~10ms. ({{bug|898126}}&lt;br /&gt;
* We&#039;ve gotten a hold on some XP machines to do testing on, so we&#039;re hoping for faster turnaround on ideas and bisection.&lt;br /&gt;
&lt;br /&gt;
===Downloads API===&lt;br /&gt;
[https://mail.mozilla.org/pipermail/firefox-dev/2013-July/000661.html See bi-weekly update on firefox-dev.]&lt;br /&gt;
&lt;br /&gt;
===Thumbnailing===&lt;br /&gt;
===SessionStore===&lt;br /&gt;
===Places API asyncification===&lt;br /&gt;
===Social API===&lt;br /&gt;
===e10s===&lt;br /&gt;
&lt;br /&gt;
* More progress made towards the dogfooding bugs&lt;br /&gt;
* Goal is to have m-c in a state that can be tried by Nightly users by mid-August&lt;br /&gt;
* Tracking bugs: https://etherpad.mozilla.org/e10s&lt;br /&gt;
&lt;br /&gt;
=== UX Updates ===&lt;br /&gt;
&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
===gavin===&lt;br /&gt;
(gavin&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gavin Status Board])&lt;br /&gt;
&lt;br /&gt;
===paolo===&lt;br /&gt;
(paolo&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/paolo Status Board])&lt;br /&gt;
===mak===&lt;br /&gt;
(marco&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak Status Board])&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
(Neil&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/Enn Status Board])&lt;br /&gt;
&lt;br /&gt;
===felipe===&lt;br /&gt;
(felipe&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipe Status Board])&lt;br /&gt;
===mano===&lt;br /&gt;
(Mano&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mano Status Board])&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
(Tim&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert Status Board])&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
(Drew&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/drew Status Board])&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
(Mark&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/markh Status Board])&lt;br /&gt;
&lt;br /&gt;
===smacleod===&lt;br /&gt;
(Steven&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/smacleod Status Board])&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
(dolske&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/dolske Status Board])&lt;br /&gt;
&lt;br /&gt;
===mconley===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mconley Status Board])&lt;br /&gt;
&lt;br /&gt;
===dao===&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mikedeboer Status Board])&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
(gijs&#039; [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs Status Board])&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
(Blair&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/Unfocused Status Board])&lt;br /&gt;
&lt;br /&gt;
===MattN===&lt;br /&gt;
([http://benjamin.smedbergs.us/weekly-updates.fcgi/user/MattN MattN&#039;s Status Board])&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
(jaws&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws Status Board])&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
(mixedpuppy&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mixedpuppy Status Board])&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/23-Jul-2013&amp;diff=683631</id>
		<title>Firefox/Meeting/23-Jul-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/23-Jul-2013&amp;diff=683631"/>
		<updated>2013-07-23T17:01:37Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Downloads API */ Add status update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
* Using fx-team&lt;br /&gt;
&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
===Australis===&lt;br /&gt;
===Downloads API===&lt;br /&gt;
&lt;br /&gt;
Work on the assigned bugs is continuing.&lt;br /&gt;
* Felipe posted first patch iteration on {{bug|852482}} - Add methods to execute actions on completed downloads.&lt;br /&gt;
* Paolo posted test updates and first patch on {{bug|836437}} - Add the ability to resume a download from where it stopped.&lt;br /&gt;
** Landing dependency {{bug|896179}} - Crash in BackgroundFileSaver when append is enabled and hashing is disabled.&lt;br /&gt;
&lt;br /&gt;
===Thumbnailing===&lt;br /&gt;
===SessionStore===&lt;br /&gt;
&lt;br /&gt;
* Close to landing Promise.jsm patches.&lt;br /&gt;
* Working on a prototype and discussing e10s approaches.&lt;br /&gt;
* Session Data Cache for tabs should lange soon.&lt;br /&gt;
* Working on moving more I/O logic to the worker.&lt;br /&gt;
&lt;br /&gt;
===Places API asyncification===&lt;br /&gt;
===Social API===&lt;br /&gt;
===e10s===&lt;br /&gt;
&lt;br /&gt;
* e10s team in Toronto this week for a hackfest&lt;br /&gt;
* Identifying dogfooding bugs and working on them&lt;br /&gt;
* http://etherpad.mozilla.org/e10s&lt;br /&gt;
* Work in progress in various fronts (focus, find bar, favicons, etc)&lt;br /&gt;
* more details next week&lt;br /&gt;
&lt;br /&gt;
=== UX Updates ===&lt;br /&gt;
&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
===gavin===&lt;br /&gt;
(gavin&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gavin Status Board])&lt;br /&gt;
&lt;br /&gt;
===paolo===&lt;br /&gt;
(paolo&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/paolo Status Board])&lt;br /&gt;
===mak===&lt;br /&gt;
(marco&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak Status Board])&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
(Neil&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/Enn Status Board])&lt;br /&gt;
&lt;br /&gt;
===felipe===&lt;br /&gt;
(felipe&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipe Status Board])&lt;br /&gt;
===mano===&lt;br /&gt;
(Mano&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mano Status Board])&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
(Tim&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert Status Board])&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
(Drew&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/drew Status Board])&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
(Mark&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/markh Status Board])&lt;br /&gt;
&lt;br /&gt;
===smacleod===&lt;br /&gt;
(Steven&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/smacleod Status Board])&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
(dolske&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/dolske Status Board])&lt;br /&gt;
&lt;br /&gt;
===mconley===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mconley Status Board])&lt;br /&gt;
&lt;br /&gt;
===dao===&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mikedeboer Status Board])&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
(gijs&#039; [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs Status Board])&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
(Blair&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/Unfocused Status Board])&lt;br /&gt;
&lt;br /&gt;
===MattN===&lt;br /&gt;
([http://benjamin.smedbergs.us/weekly-updates.fcgi/user/MattN MattN&#039;s Status Board])&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
(jaws&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws Status Board])&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
(mixedpuppy&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mixedpuppy Status Board])&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/16-Jul-2013&amp;diff=677743</id>
		<title>Firefox/Meeting/16-Jul-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/16-Jul-2013&amp;diff=677743"/>
		<updated>2013-07-18T12:51:47Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Project Updates */ Add Downloads API update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
* MattN nominates Adam [:hobophobe] for his work on find in page improvements (meta bug: {{bug|565552}})&lt;br /&gt;
* mak nominates Roberta for her work on removing an old feature from Storage, that could have been abused by add-ons ({{bug|865188}})&lt;br /&gt;
&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
===Australis===&lt;br /&gt;
* Still making progress on [https://people.mozilla.com/~mnoorenberghe/australis/?list=tab-perf&amp;amp;resolved=0&amp;amp;whiteboard=m8&amp;amp;meta=1 perf bugs]&lt;br /&gt;
* MattN and jaws are primarily focused on investigating and fixing the perf bugs, while Gijs, mconley, Unfocused, and mikedeboer are primarily focused on fixing P1 and P2 Australis bugs.&lt;br /&gt;
&lt;br /&gt;
===Downloads API===&lt;br /&gt;
* Posted [https://mail.mozilla.org/pipermail/firefox-dev/2013-July/000567.html bi-weekly update] to firefox-dev&lt;br /&gt;
* Replacing use of nsIFile and nsIURL in JavaScript with strings, changing property names and types&lt;br /&gt;
* All the bugs that are required to complete the API are now assigned&lt;br /&gt;
&lt;br /&gt;
===Thumbnailing===&lt;br /&gt;
* Remaining blocker: {{Bug|870100}}, actually using the background service in about:newtab. The patches there are r+&#039;ed but cause lots of orange, so Mark filed {{Bug|892875}} to disable the service during non-thumbnail tests, but Dão and Gavin have raised questions about doing that. Discussion in progress.&lt;br /&gt;
* Other remaining blockers are ready to land: telemetry ({{bug|870104}}) and fixing a private browsing bug that caused an intermittent orange ({{bug|891169}} and {{bug|893404}} together).&lt;br /&gt;
&lt;br /&gt;
===SessionStore===&lt;br /&gt;
&lt;br /&gt;
* f+ for cutting saveState() into chunks&lt;br /&gt;
* fixed sessionstore regression (Fx 25)&lt;br /&gt;
* introduced dedicated sessionstore I/O worker&lt;br /&gt;
* work on converting sessionstore to Promise.jsm is continuing&lt;br /&gt;
&lt;br /&gt;
===Places API asyncification===&lt;br /&gt;
* Mak fixed regression due to getPlacesInfo API code&lt;br /&gt;
* lots of brainstorming ongoing&lt;br /&gt;
* Mano working on design of a new async transactions manager&lt;br /&gt;
* Mak will investigate smart batches in Places views, needed for async transactions manager&lt;br /&gt;
&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
===gavin===&lt;br /&gt;
(gavin&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gavin Status Board])&lt;br /&gt;
&lt;br /&gt;
===paolo===&lt;br /&gt;
(paolo&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/paolo Status Board])&lt;br /&gt;
===mak===&lt;br /&gt;
(marco&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak Status Board])&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
(Neil&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/Enn Status Board])&lt;br /&gt;
&lt;br /&gt;
===felipe===&lt;br /&gt;
(felipe&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipe Status Board])&lt;br /&gt;
===mano===&lt;br /&gt;
(Mano&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mano Status Board])&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
(Tim&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert Status Board])&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
(Drew&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/drew Status Board])&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
(Mark&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/markh Status Board])&lt;br /&gt;
&lt;br /&gt;
===smacleod===&lt;br /&gt;
(Steven&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/smacleod Status Board])&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
(dolske&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/dolske Status Board])&lt;br /&gt;
&lt;br /&gt;
===mconley===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mconley Status Board])&lt;br /&gt;
&lt;br /&gt;
===dao===&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mikedeboer Status Board])&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
(gijs&#039; [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs Status Board])&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
(Blair&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/Unfocused Status Board])&lt;br /&gt;
&lt;br /&gt;
===MattN===&lt;br /&gt;
([http://benjamin.smedbergs.us/weekly-updates.fcgi/user/MattN MattN&#039;s Status Board])&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
(jaws&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws Status Board])&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
(mixedpuppy&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mixedpuppy Status Board])&lt;br /&gt;
&lt;br /&gt;
== UX Updates ==&lt;br /&gt;
===lco===&lt;br /&gt;
* Traveling for conference and meeting next week, 7/22 to 8/1. Will not be very responsive.&lt;br /&gt;
* Security and Privacy principles postcard&lt;br /&gt;
** http://people.mozilla.com/~lco/ProjectSPF/Principles/130711-2%20postcard.pdf&lt;br /&gt;
** I have some hard copies if you want one, but there will be a website coming soon&lt;br /&gt;
* A broader range, more consistent set of permissions doorhanger + icon combos?&lt;br /&gt;
** very early draft: http://people.mozilla.com/~lco/Permissions%20UI/130715%20concepts-permissions%20UI.pdf&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/Template&amp;diff=677736</id>
		<title>Firefox/Meeting/Template</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/Template&amp;diff=677736"/>
		<updated>2013-07-18T12:45:10Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Project Updates */ &amp;quot;Downloads API&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
== Project Updates ==&lt;br /&gt;
===Australis===&lt;br /&gt;
===Downloads API===&lt;br /&gt;
===Thumbnailing===&lt;br /&gt;
===SessionStore===&lt;br /&gt;
===Places API asyncification===&lt;br /&gt;
===Social API===&lt;br /&gt;
===e10s===&lt;br /&gt;
=== UX Updates ===&lt;br /&gt;
&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
===gavin===&lt;br /&gt;
(gavin&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gavin Status Board])&lt;br /&gt;
&lt;br /&gt;
===paolo===&lt;br /&gt;
(paolo&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/paolo Status Board])&lt;br /&gt;
===mak===&lt;br /&gt;
(marco&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mak Status Board])&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
(Neil&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/Enn Status Board])&lt;br /&gt;
&lt;br /&gt;
===felipe===&lt;br /&gt;
(felipe&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipe Status Board])&lt;br /&gt;
===mano===&lt;br /&gt;
(Mano&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mano Status Board])&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
(Tim&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert Status Board])&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
(Drew&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/drew Status Board])&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
(Mark&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/markh Status Board])&lt;br /&gt;
&lt;br /&gt;
===smacleod===&lt;br /&gt;
(Steven&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/smacleod Status Board])&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
(dolske&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/dolske Status Board])&lt;br /&gt;
&lt;br /&gt;
===mconley===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mconley Status Board])&lt;br /&gt;
&lt;br /&gt;
===dao===&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
(Mike&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mikedeboer Status Board])&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
(gijs&#039; [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs Status Board])&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
(Blair&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/Unfocused Status Board])&lt;br /&gt;
&lt;br /&gt;
===MattN===&lt;br /&gt;
([http://benjamin.smedbergs.us/weekly-updates.fcgi/user/MattN MattN&#039;s Status Board])&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
(jaws&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws Status Board])&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
(mixedpuppy&#039;s [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mixedpuppy Status Board])&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Performance&amp;diff=672044</id>
		<title>Performance</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Performance&amp;diff=672044"/>
		<updated>2013-07-02T12:01:22Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* Downloads API Rewrite */ Minor edit: typo, formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Performance=&lt;br /&gt;
Mozilla&#039;s performance program focuses on improvements to the Gecko platform and the Firefox Desktop, Firefox for Android, and Firefox OS products.&lt;br /&gt;
&lt;br /&gt;
==Projects==&lt;br /&gt;
===&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Active&amp;lt;/span&amp;gt;===&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Incremental Cycle Collection (ICC)&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}} {{mobile}} {{b2g}}&lt;br /&gt;
|team=Andrew McCreight (lead)&lt;br /&gt;
|duration=TBD&lt;br /&gt;
|goal=Implement incremental cycle collection to reduce&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; cycle collector pauses in the Firefox UI.&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Reduction in cycle collector pauses will be measured with the [http://mzl.la/XLsAoB CYCLE_COLLECTOR_FULL Telemetry probe]. The degree of reduction that can be achieved is currently unclear.&amp;lt;/span&amp;gt;&lt;br /&gt;
|reports=TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/mccr8 Andrew McCreight]&lt;br /&gt;
|work={{bug|850065}}&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Keep JS-accessible APIs from blocking the main thread&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}} {{mobile}} {{b2g}}&lt;br /&gt;
|team=David Rajchenbach-Teller (lead), Paolo Amadini&lt;br /&gt;
|duration=TBD&lt;br /&gt;
|goal=Refactor existing and provide new JS APIs to either migrate services, components, and add-ons off the main thread or at least prevent them from blocking the main thread.&lt;br /&gt;
|reports=TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/Yoric David Rajchenbach-Teller]&lt;br /&gt;
|work=[http://mzl.la/ZJaowA Bugzilla query]&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=This project focuses on JS-accessible APIs in the context of Web Workers.&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Profiler Backend for Mobile&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{mobile}} {{b2g}}&lt;br /&gt;
|team=Julian Seward (lead), Benoit Girard, Mike Hommey &lt;br /&gt;
|duration=TBD&lt;br /&gt;
|goal=Accurate&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;, crash-free, deadlock-free, low overhead&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; stack unwinding for the SPS profiler for Firefox for Android and Firefox OS.&lt;br /&gt;
&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;The correct sequence of code return addresses on the stack, ideally without the unwind terminating before it gets back to main().&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[2]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Average unwind cost of 500 microseconds for a 30-frame backtrace on one core of a 1 GHz Cortex A9&amp;lt;/span&amp;gt;&lt;br /&gt;
|reports=[https://blog.mozilla.org/jseward Julian Seward&#039;s blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/sewardj Julian Seward], [http://teamstat.us/#show/irc.mozilla.org/perf/BenWa Benoit Girard], [http://teamstat.us/#show/irc.mozilla.org/perf/glandium Mike Hommey]&lt;br /&gt;
|work={{bug|863453}}&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=May impact desktop Linux as well.&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Reducing time to first paint - Phase 1&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Vladan Djeric (lead)&lt;br /&gt;
|duration=TBD&lt;br /&gt;
|goal=A 10% reduction&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; in time between XRE_Main and first paint&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; during cold starts&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; on Windows 7 with no extensions installed&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;, on reference slow hardware&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;, 30 seconds after an OS reboot. &lt;br /&gt;
&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Currently, after an OS restart, XRE_Main to firstPaint takes about 4.2 seconds on the reference hardware. A 10% reduction will be ~400ms.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[2]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;XRE_Main as the starting point to exclude the impact of loading Firefox binaries as they grow bigger with every release. First paint to exclude the impact of Yoric&#039;s session store refactor work.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[3]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Cold start because a lot of the work will be focused on reducing the amount of I/O done during startup.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[4]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;No extensions to exclude the impact of Irving&#039;s Add-on Manager work.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[5]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;The reference hardware is a recent, slow Win7 laptop with an AMD C-50 dual-core @ 1 GHz, magnetic HDD, and 2GB shared RAM. A slow Windows laptop is used because it is consistently slow and can be easily debugged.&amp;lt;/span&amp;gt;&lt;br /&gt;
|reports=[https://blog.mozilla.org/vdjeric/category/start-faster/ Vladan Djeric&#039;s blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/vladan Vladan Djeric]&lt;br /&gt;
|work= {{bug|810156}}&lt;br /&gt;
|dependencies= [[Performance#Replace_Add-on_Manager_SQLITE_with_JSON_file|Replace Add-on Manager SQLITE with JSON file project]] &lt;br /&gt;
|notes=Will measure with about:telemetry on reference hardware as aggregate Telemetry includes both warm and cold starts and a variety of hardware confirgurations.&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Replace Add-on Manager SQLITE with JSON file&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}} {{mobile}}&lt;br /&gt;
|team=Irving Reid (lead), Felipe Gomes&lt;br /&gt;
|duration=6 weeks (approx week of May 27, 2013)&lt;br /&gt;
|goal=Goal: Reduce Add-on Manager impact on start-up time&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; and runtime pauses&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; by removing SQLITE database from XPI Provider and Add-on Repository and replacing with JSON&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Start-up time reduction by reducing the amount of I/O required before first paint.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Runtime pause reduction by reducing I/O required during add-on up-to-date checks and updates, and making sure as much as possible is off main thread.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;New implementation will do no blocking I/O except minimal loading of required data during start-up.&amp;lt;/sup&amp;gt;&lt;br /&gt;
|reports=[http://www.controlledflight.ca/category/mozilla Irving Reid&#039;s blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/irving Irving Reid], [http://teamstat.us/#show/irc.mozilla.org/perf/felipe Felipe Gomes]&lt;br /&gt;
|work= {{bug|853388}}, {{bug|853389}}&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Smooth Tab Animation&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Avi Halachmi (lead), Tim Taubert&lt;br /&gt;
|duration=TBD&lt;br /&gt;
|goal=Reasonably&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; smooth tabstrip animation on modern low-end AMD/Intel CPUs. The specific focus will be on use cases 1-8 defined below.&lt;br /&gt;
# New tab open of about:blank where other tabs are unaffected. (not common, this is our raw baseline) &lt;br /&gt;
# Tab close where other tabs are unaffected, and where the newly focused tab is empty. (also raw baseline)&lt;br /&gt;
# New tab open - with thumbnails preview - where other tabs are unaffected.&lt;br /&gt;
# Tab close where other tabs are unaffected, where the newly focused tab is heavy (e.g. GMail).&lt;br /&gt;
* 5-8. Same as the above, when other tabs are affected (shrunk/expanded) - up to 10 changing tabs.&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;The last 70% of the animation is not lower than 50fps.&amp;lt;/span&amp;gt;&lt;br /&gt;
|reports=[http://avih.github.io/blog/categories/tabstrip/ Avi Halachmi&#039;s blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/avih Avi Halachmi]&lt;br /&gt;
|work={{bug|815354}}&lt;br /&gt;
|dependencies=OMTC&lt;br /&gt;
|notes=&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Network Cache Rewrite&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}} {{mobile}} {{b2g}}&lt;br /&gt;
|team=Honza Bambas (lead), Michal Novotny, Jason Duell (manager)&lt;br /&gt;
|duration=Goal is to have new code in production by end of Q4 2013&lt;br /&gt;
|goal=A cache that causes no main thread I/O jank (directly or indirectly via locks)&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;, and that avoids losing the entire cache during crashes or unclean shutdown.&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Currently the cache causes jank (sometimes in excess of 1 second) via main thread waiting while cache thread holds lock and does I/O.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;[2]&amp;lt;/sup&amp;gt;&amp;lt;span style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;Cache is currently thrown away unless clean shutdown.  Cache loss rates per startup are 9% on windows desktop, 11% OSX, 22% Linux desktop, 25% metro.  New design will keep all cache entries and detect corruption on a per-entry basis.&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|reports=&lt;br /&gt;
|work={{bug|877301}}&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes= [https://wiki.mozilla.org/Necko/Cache/Plans Cache rewrite project wiki page] &lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: green&amp;quot;&amp;gt;Downloads API Rewrite&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Paolo Amadini (lead), Raymond Lee, Felipe Gomes&lt;br /&gt;
|duration= Late July / early August for reaching the initial goal in Nightly.&lt;br /&gt;
Probably another month or two (with lower bandwidth) for follow-ups.&lt;br /&gt;
|goal=To improve responsiveness when downloads are started, by removing the main-thread I/O caused by access to &amp;quot;downloads.sqlite&amp;quot;. The concrete goal is to ensure that SQL statements involving moz_downloads no longer appear in the &amp;quot;slow SQL&amp;quot; Telemetry dashboard.&lt;br /&gt;
|reports=firefox-dev mailing list, [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/paolo weekly updates tool].&lt;br /&gt;
|work={{bug|825588}}&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=The project should include a follow-up time frame to accommodate any changes identified after Firefox for Desktop has migrated to the new API, as well as handle requests to facilitate other Mozilla products and add-ons to migrate to the new API.&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;On Hold&amp;lt;/span&amp;gt;===&lt;br /&gt;
====&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;Shutdown&amp;lt;/span&amp;gt;====&lt;br /&gt;
{{PerfProject&lt;br /&gt;
|impact={{desktop}}&lt;br /&gt;
|team=Benoit Girard (lead)&lt;br /&gt;
|duration=TBD&lt;br /&gt;
|goal=Ensure 95% of Firefox desktop instances shutdown in 3 seconds or less. &lt;br /&gt;
|reports=[http://benoitgirard.wordpress.com Benoit Girard&#039;s blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/BenWa Benoit Girard]&lt;br /&gt;
|work={{bug|819063}}&lt;br /&gt;
|dependencies=&lt;br /&gt;
|notes=&lt;br /&gt;
}}&lt;br /&gt;
{{PerfProjectHold|Resource availability}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Proposals===&lt;br /&gt;
Project proposals should be listed on the [https://etherpad.mozilla.org/perf perf etherpad].&lt;br /&gt;
&lt;br /&gt;
===Archive===&lt;br /&gt;
Completed/terminated projects are listed in the [[Performance/ProjectArchive|project archive]].&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
*[[Telemetry|Telemetry]]&lt;br /&gt;
* [https://github.com/mozilla/jydoop jydoop: Efficient and Testable hadoop map-reduce in Python] ([http://benjamin.smedbergs.us/blog/2013-04-09/introducing-jydoop-fast-and-sane-map-reduce/ Introduction from Benjamin Smedberg])&lt;br /&gt;
* [https://developer.mozilla.org/en-US/docs/Performance/Profiling_with_the_Built-in_Profiler SPS Profiler]&lt;br /&gt;
* [[Buildbot/Talos]]&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
{| class=&amp;quot;wikitable fullwidth-table&amp;quot;&lt;br /&gt;
 ! Communication Type !! Mechanism !! Audience&lt;br /&gt;
 |-&lt;br /&gt;
 | Announcements || [https://lists.mozilla.org/listinfo/dev-platform dev-platform] list || all&lt;br /&gt;
 |-&lt;br /&gt;
 | Meetings || First Thursday of each month, 1pm PT&lt;br /&gt;
{{conf|99355}}&lt;br /&gt;
* Vidyo: Performance&lt;br /&gt;
* IRC: [irc://irc.mozilla.org/perf #perf]&lt;br /&gt;
* Agenda: [https://etherpad.mozilla.org/perf https://etherpad.mozilla.org/perf]&lt;br /&gt;
|| all&lt;br /&gt;
 |-&lt;br /&gt;
 | Meeting summaries || [[Performance | this wiki]] || all &lt;br /&gt;
 |-&lt;br /&gt;
 | Micro status || [http://teamstat.us/#browse/irc.mozilla.org/perf TeamStatus] || devs&lt;br /&gt;
 |-&lt;br /&gt;
 | Weekly status || [http://benjamin.smedbergs.us/weekly-updates.fcgi/ Mozilla Status Board] || devs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Press &amp;amp; Blog Posts===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Progress Reports ===&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot; style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color: rgb(221, 221, 221);&amp;quot; colspan=&amp;quot;2&amp;quot; | 2013 &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Performance/2013-06-06|June 2013]]&lt;br /&gt;
* [[Performance/2013-05-02|May 2013]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==People==&lt;br /&gt;
list required competencies for people and, once defined, the people working on project. note that not all of these competencies will be required for every project&lt;br /&gt;
{| class=&amp;quot;wikitable fullwidth-table&amp;quot;&lt;br /&gt;
 | Project Champion || &lt;br /&gt;
 |- &lt;br /&gt;
 | Program Management || Lawrence Mandel&lt;br /&gt;
 |- &lt;br /&gt;
 | Product || &lt;br /&gt;
 |- &lt;br /&gt;
 | Engineering || Taras Glek, Vladan Djeric&lt;br /&gt;
 |- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
===Related Projects===&lt;br /&gt;
* [[Performance/MemShrink|MemShrink]]&lt;br /&gt;
&lt;br /&gt;
==Archive==&lt;br /&gt;
===Old Projects===&lt;br /&gt;
* [[Firefox/Projects/Mobile_Startup_Shrink|Mobile Startup Shrink]]&lt;br /&gt;
* [[Firefox/Projects/Startup_Time_Improvements|Startup Performance]]&lt;br /&gt;
* [[Firefox:FrontEndPerformance|Front-end Performance]] (i.e., responsiveness)&lt;br /&gt;
* [[Performance/Addons|Add-on Performance]]&lt;br /&gt;
* [[Performance/Snappy|Snappy]]&lt;br /&gt;
* [[Mobile/Performance|Mobile Performance Info]]&lt;br /&gt;
&lt;br /&gt;
===Tools===&lt;br /&gt;
* [[Codesighs]] - a tool which analyzes code and data size.&lt;br /&gt;
* [[Performance:Tools]]. For measuring performance. Tip o&#039; the propeller-cap to [mailto:zuperdee@penguinpowered.com Daniel Roberts] (zuperdee@penguinpowered.com) for the pointers.&lt;br /&gt;
* [[Performance:Probes]]. Project to integrate a system of performance probes into Gecko.&lt;br /&gt;
&lt;br /&gt;
===Documentation and Presentations===&lt;br /&gt;
* Code Footprint [[Performance:Footprint_Reduction_Techniques]] explains common bad patterns and how to correct them.&lt;br /&gt;
* [[Performance:Profiling_JuJu]]. Things you should know about doing profiling. Tips and tricks for some of the tools, and lots of other Good Things To Know.&lt;br /&gt;
* [http://www.mozilla.org/performance/mac-performance.html Profiling and leak analysis] on the Mac.&lt;br /&gt;
* [[Performance:Footprint_Tools]]. Presentation on footprint tools&lt;br /&gt;
* [[Performance:Startup]] [http://www.mozilla.org/performance/perf-intro/slide1.xml slides] Presentation on general performance tools&lt;br /&gt;
* [[Performance:Leak_Tools]]. Presentation on memory leaks detection tools&lt;br /&gt;
* [http://www.mozilla.org/performance/mac-performance.html Mac Performance Tools] Presentation on performance tools that work on Mac&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/4-Jun-2013&amp;diff=663210</id>
		<title>Firefox/Meeting/4-Jun-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/4-Jun-2013&amp;diff=663210"/>
		<updated>2013-06-04T17:26:43Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* paolo */ Add status update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
; Work week bug triage&lt;br /&gt;
; [[Performance#Projects|Performance projects]]&lt;br /&gt;
* Goals&lt;br /&gt;
** Timely completion of larger performance work&lt;br /&gt;
** Increased visibility for your performance work&lt;br /&gt;
* Project definition&lt;br /&gt;
** Product impact - what products will this work impact?&lt;br /&gt;
** Goal - what will your project achieve and how will you know that you&#039;re done?&lt;br /&gt;
** Duration - what is the rough estimate for your project&#039;s completion? (ex, June, 2-3 months, Q3)&lt;br /&gt;
** Team - who is the project lead and who else is working on the project?&lt;br /&gt;
** Progress reports - how can others get updates without bugging you? Benjamin&#039;s weekly status tool, TeamStatus, and bi-weekly blog posts&lt;br /&gt;
** Work - how can others track your work? link to bugs, etherpad, wiki&lt;br /&gt;
&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
* Florian Bender, who&#039;s been helpful in filing bugreports, triage, and also in helping out users complaining on the Techcrunch article about Australis ( http://techcrunch.com/2013/06/01/mozilla-readies-major-firefox-redesign-as-it-ponders-what-the-browser-of-the-future-should-look-like/ )&lt;br /&gt;
* Christian Ascheberg contributed 2 patches for the download manager in {{bug|863063}} and {{bug|872330}}&lt;br /&gt;
* Xidorn Quan contributed a patch for the Downloads Panel in {{bug|861613}}&lt;br /&gt;
* Optimizer&#039;s Downloads Panel patch for {{bug|844606}} landed in Nightly and Aurora&lt;br /&gt;
* Lizzard for triaging good first bugs and figuring some of those are WFM&lt;br /&gt;
&lt;br /&gt;
== Decisions needed/Action items ==&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
===gavin===&lt;br /&gt;
===paolo===&lt;br /&gt;
(from http://benjamin.smedbergs.us/weekly-updates.fcgi/user/paolo)&lt;br /&gt;
&lt;br /&gt;
Done:&lt;br /&gt;
&lt;br /&gt;
* Landed: {{bug|810490}} - Constant stack space promise&lt;br /&gt;
* Reviewed: {{bug|858234}} - merge ExecuteDesiredAction paths into nsDownloadManager&lt;br /&gt;
* Various reviews on the Downloads API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next:&lt;br /&gt;
&lt;br /&gt;
* Prioritize remaining work on the Downloads API&lt;br /&gt;
* Continue reviews and coding on the Downloads API&lt;br /&gt;
* Work on converting promise consumers to the new module&lt;br /&gt;
&lt;br /&gt;
===mak===&lt;br /&gt;
* Done:&lt;br /&gt;
** Bug 769348 - URLs auto-completed in address bar might unexpectedly use ftp:// instead of http://&lt;br /&gt;
** Bug 858377 - Intermittent test_393498.js | false == true&lt;br /&gt;
** Bug 874407 - new history displays incorrectly in Library window/sidebar&lt;br /&gt;
** Feedback Bug 702559 - Create a pure-async mozIStorageAsyncConnection&lt;br /&gt;
** Review Bug 794323 - Remove the legacy JSON parsing mode&lt;br /&gt;
** Review Bug 860119 - Live-update about:home when defaultEngine changes&lt;br /&gt;
** Review Bug 863063 - quitting private browsing mode does not delete partially downloaded files&lt;br /&gt;
** Review Bug 872317 - Download indicator toolbar button depends on an odd XBL quirk&lt;br /&gt;
** Review Bug 874171 - (SQLite3.7.17) Upgrade to SQLite 3.7.17&lt;br /&gt;
** Feedback Bug 878411 - crash in mozilla::storage::Connection::internalClose @ sqlite3WalClose&lt;br /&gt;
** Review Bug 878690 - SafariProfileMigrator.js should use FormHistory.jsm&lt;br /&gt;
** Other minor reviews&lt;br /&gt;
* Next:&lt;br /&gt;
** Complete tests for Bug 769348 - URLs auto-completed in address bar might unexpectedly use ftp:// instead of http://&lt;br /&gt;
** Help Yoric with Bug 702559 - Create a pure-async mozIStorageAsyncConnection&lt;br /&gt;
** Review UP Places approach (bug 864918, bug 864925)&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
===felipe===&lt;br /&gt;
&lt;br /&gt;
(copied from http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipe)&lt;br /&gt;
&lt;br /&gt;
* {{bug|853389}} - AddonRepository - 3 patches are r+, just one left now!&lt;br /&gt;
* {{bug|862519}} - Backspace key for e10s - started drafting a patch&lt;br /&gt;
&lt;br /&gt;
* Reviews&lt;br /&gt;
** {{bug|860421}}&lt;br /&gt;
** {{bug|875949}}&lt;br /&gt;
** {{bug|666809}}&lt;br /&gt;
** {{bug|820601}}&lt;br /&gt;
** {{bug|805684}}&lt;br /&gt;
** {{bug|821073}}&lt;br /&gt;
&lt;br /&gt;
* Getting my GSOC student started&lt;br /&gt;
** https://github.com/abhishekchoudhary/fx-statistics&lt;br /&gt;
** http://trystswithcode.quora.com/&lt;br /&gt;
&lt;br /&gt;
===mano===&lt;br /&gt;
I probably won&#039;t get home on time, so here are the notes for today.&lt;br /&gt;
&lt;br /&gt;
Async login manager: XPCOM and js-module APIs, plus a fake-async implementation are posted on the bug for review and feedback. Once the APIs are finalized and approved, we&#039;re going to land this and start fixing all in tree callers (mostly tests). The callers will be fixed incrementally.&lt;br /&gt;
In parallel, the fake-async implementation will be replaced by Neil&#039;s work (It&#039;s still unclear if we can do that gradually. I&#039;ll comment on that later).&lt;br /&gt;
&lt;br /&gt;
===ttaubert===&lt;br /&gt;
&lt;br /&gt;
* Continued the fight against reflows.&lt;br /&gt;
* Added nsIDOMWindowUtils.getBoundsWithoutFlushing() ({{bug|878801}}).&lt;br /&gt;
* Landed support for reflow observers ({{bug|453650}}).&lt;br /&gt;
* Almost ready to enable newtab page preloading by default ({{bug|791670}}).&lt;br /&gt;
* Worked on getting rid of browser.stop() call in addTab() ({{bug|878747}}).&lt;br /&gt;
* Reviews.&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
===markh===&lt;br /&gt;
===dolske===&lt;br /&gt;
===mconley===&lt;br /&gt;
===dao===&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
See http://benjamin.smedbergs.us/weekly-updates.fcgi/user/gijs&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
===MattN===&lt;br /&gt;
&lt;br /&gt;
(couldn&#039;t stay in meeting. Will update later)&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
See http://benjamin.smedbergs.us/weekly-updates.fcgi/user/jaws&lt;br /&gt;
&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
http://benjamin.smedbergs.us/weekly-updates.fcgi/user/mixedpuppy&lt;br /&gt;
&lt;br /&gt;
== UX Updates ==&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/28-May-2013&amp;diff=661036</id>
		<title>Firefox/Meeting/28-May-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/28-May-2013&amp;diff=661036"/>
		<updated>2013-05-28T17:42:58Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* paolo */ Add status update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
== Decisions needed/Action items ==&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
===gavin===&lt;br /&gt;
===paolo===&lt;br /&gt;
(details: http://benjamin.smedbergs.us/weekly-updates.fcgi/user/paolo)&lt;br /&gt;
&lt;br /&gt;
Last week:&lt;br /&gt;
* Reviews on features added to the JavaScript API for downloads&lt;br /&gt;
* Documentation:&lt;br /&gt;
** [https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm Downloads.jsm]&lt;br /&gt;
** [https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm Promise.jsm]&lt;br /&gt;
** [https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Task.jsm Task.jsm]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next week:&lt;br /&gt;
* Continue with reviews on features added to the JavaScript API for downloads&lt;br /&gt;
&lt;br /&gt;
===mak===&lt;br /&gt;
Last Week:&lt;br /&gt;
* Mostly reviews&lt;br /&gt;
This Week:&lt;br /&gt;
* Bring reviews queue to a manageable size&lt;br /&gt;
* Tracked regression {{bug|874407}} - new history displays incorrectly in Library window/sidebar&lt;br /&gt;
* Re-prioritized {{bug|769348}} - URLs auto-completed in address bar might use unexpected url prefix&lt;br /&gt;
* other pending patches if time allows&lt;br /&gt;
&lt;br /&gt;
===enn===&lt;br /&gt;
===felipe===&lt;br /&gt;
&lt;br /&gt;
* (copied from http://benjamin.smedbergs.us/weekly-updates.fcgi/user/felipe)&lt;br /&gt;
* {{bug|853389}} - AddonRepository - implementing Blair&#039;s feedback&lt;br /&gt;
* {{bug|875463}} - Implemented --run-until-failure option for mochitests&lt;br /&gt;
* {{bug|666809}} - started reviewing SecurityUI for e10s&lt;br /&gt;
* {{bug|812573}} - with the hotfix deployed it looks like we&#039;re seeing -20% people stuck on versions 10-16&lt;br /&gt;
&lt;br /&gt;
===mano===&lt;br /&gt;
===ttaubert===&lt;br /&gt;
&lt;br /&gt;
(details: http://benjamin.smedbergs.us/weekly-updates.fcgi/user/ttaubert)&lt;br /&gt;
&lt;br /&gt;
* Backed out sessionstore changes because of add-on compatibility.&lt;br /&gt;
* Prototype for using speculative connect when restoring a session ({{bug|874533}}).&lt;br /&gt;
* Worked on reflow observers for docShells ({{bug|453650}}).&lt;br /&gt;
* Working on getting rid of an uninterruptible reflow in adjustTabstrip() when opening tabs ({{bug|876374}}).&lt;br /&gt;
* Improved tabopen animation by delaying pre-rendering of next newtab page ({{bug|875509}}).&lt;br /&gt;
* Eliminated reflow after swapping in preloaded newtab page ({{bug|875257}}).&lt;br /&gt;
* Still trying to enable about:newtab preloading by default ({{bug|794041}}).&lt;br /&gt;
* Reviews.&lt;br /&gt;
&lt;br /&gt;
===adw===&lt;br /&gt;
===markh===&lt;br /&gt;
&lt;br /&gt;
A little more on e10s form/autocomplete.&lt;br /&gt;
&lt;br /&gt;
Started looking into background thumbnail service stuff.  Learnt lots, solved nothing :)&lt;br /&gt;
&lt;br /&gt;
Put together a relatively complex patch so console and standard handles work as expected in child processes.&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
===mconley===&lt;br /&gt;
===dao===&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
Australis&lt;br /&gt;
&lt;br /&gt;
Fixed:&lt;br /&gt;
* {{bug|874051}} - Fixing a11y test failures on UX&lt;br /&gt;
* {{bug|874601}} - Social API test failures (test finnickiness also fixed on m-c!)&lt;br /&gt;
* {{bug|874448}} - OS X dropmarkers&lt;br /&gt;
* {{bug|875163}} - new icons hugeness on OS X hidpi&lt;br /&gt;
* {{bug|873518}} - removing throbber (activity indicator) and individual cut/copy/paste buttons, plus a sneaky off-by-one error in customize mode&lt;br /&gt;
&lt;br /&gt;
Reviewed:&lt;br /&gt;
* {{bug|823237}} - new tab button paths fixing tab close overflow cases&lt;br /&gt;
* {{bug|857886}} - tab image updates for OS X hidpi&lt;br /&gt;
&lt;br /&gt;
WFM:&lt;br /&gt;
* {{bug|874819}} seems to have gone away after a merge; this means we now have green UX trees apart from the jetpack tests. Thanks to mconley and everyone else who helped fix this. If anyone breaks tests and introduces more orange, I will personally come and find you. :-)&lt;br /&gt;
&lt;br /&gt;
(the jetpack tests depend on some SDK work as well as decisions regarding the addon bar, probably followed by more SDK work. I may help out with that if I have cycles within M6 still)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other:&lt;br /&gt;
&lt;br /&gt;
* {{bug|872455}} - Fixed some Social button weirdness, backported to Aurora&lt;br /&gt;
* {{bug|865806}} - Backed out, relanded with my crashfix to avert Aurora nightly crashiness&lt;br /&gt;
&lt;br /&gt;
Next:&lt;br /&gt;
&lt;br /&gt;
* {{bug|870849}} - (windows-only gap between titlebar and tabstrip; need to address Dao&#039;s review comments)&lt;br /&gt;
* {{bug|873501}} - make the customization code spacer/spring-proof&lt;br /&gt;
* {{bug|870014}} - address the issues mconley identified&lt;br /&gt;
&lt;br /&gt;
I also need to organize one of my mentored bugs now that Matt has cleared one up so they can work on that one.&lt;br /&gt;
&lt;br /&gt;
===Unfocused===&lt;br /&gt;
===MattN===&lt;br /&gt;
===jaws===&lt;br /&gt;
===cers===&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
&lt;br /&gt;
* various intermittent test failure work&lt;br /&gt;
* investigation on improvements for webrtc apps/talkilla&lt;br /&gt;
&lt;br /&gt;
== UX Updates ==&lt;br /&gt;
=== lco ===&lt;br /&gt;
* UX discussion on next steps for Boriss&#039; New Tab page design&lt;br /&gt;
** New Tab tracking page: https://wiki.mozilla.org/Firefox/Features/New_Tab_Page_v2&lt;br /&gt;
** our intern, Jack is going to be building an addon prototype of the basic framework for us to play with internally (and for whoever wants to try it)&lt;br /&gt;
** at the same time, we&#039;re also in the process of coming up with concepts to show to users&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Task Continuity&amp;quot;&lt;br /&gt;
** Brief summary + help us find a codename! - https://firefox-ux.etherpad.mozilla.org/TC-codename&lt;br /&gt;
** will be scheduling presentations soon...&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Meeting/21-May-2013&amp;diff=658728</id>
		<title>Firefox/Meeting/21-May-2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Meeting/21-May-2013&amp;diff=658728"/>
		<updated>2013-05-21T16:52:52Z</updated>

		<summary type="html">&lt;p&gt;P.A.: /* paolo */ Add status update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Tuesdays - 10:00am Pacific, 1:00pm Eastern, 17:00 UTC&lt;br /&gt;
{{conf|91337}}&lt;br /&gt;
* irc.mozilla.org #fx-team for backchannel&lt;br /&gt;
* &amp;quot;Firefox&amp;quot; Vidyo Room&lt;br /&gt;
&lt;br /&gt;
== General Topics ==&lt;br /&gt;
== Friends of the Firefox team ==&lt;br /&gt;
&#039;&#039;Give a shoutout/thanks to people for helping fix and test bugs.&#039;&#039;&lt;br /&gt;
== Decisions needed/Action items ==&lt;br /&gt;
==Stand ups==&lt;br /&gt;
Suggested format:&lt;br /&gt;
* What did you do last week?&lt;br /&gt;
* What are working on this week?&lt;br /&gt;
* Anything blocking you?&lt;br /&gt;
Please keep your update to under 1 minute!&lt;br /&gt;
===gavin===&lt;br /&gt;
===paolo===&lt;br /&gt;
&lt;br /&gt;
* Reviews on features added to the JavaScript API for downloads&lt;br /&gt;
* Prepared the promises patch that included code documentation&lt;br /&gt;
* Continuing towards landing the [https://bugzilla.mozilla.org/show_bug.cgi?id=810490 updated implementation of promises]&lt;br /&gt;
&lt;br /&gt;
===mak===&lt;br /&gt;
===enn===&lt;br /&gt;
===felipe===&lt;br /&gt;
&lt;br /&gt;
* {{bug|853389}} AddonRepository - Patches posted for review \o/ -- following up with tests and seeing where I can help Irving in his part&lt;br /&gt;
* GSoC - in-depth review of the proposals submitted to the project i&#039;ll be mentoring (About:memory enhancements), student chosen.&lt;br /&gt;
* {{bug|812573}} Hotfix pushed to prod today!&lt;br /&gt;
* Some prep work for the Summit Assembly&lt;br /&gt;
&lt;br /&gt;
===mano===&lt;br /&gt;
===ttaubert===&lt;br /&gt;
===adw===&lt;br /&gt;
* {{Bug|518606}} Troubleshooting Information page should have better support for copy-and-paste to plaintext.&lt;br /&gt;
** landed after more discussion on SUMO forum&lt;br /&gt;
* {{Bug|868793}} Loading about:support can trip &amp;quot;ASSERTION: FormatStringFromName() without format parameters&amp;quot;&lt;br /&gt;
** landed&lt;br /&gt;
* {{Bug|856270}} Update nsEditorSpellCheck to use nsIContentPrefService2&lt;br /&gt;
** first review pass with Ehsan, trying to figure out why test_bug366682.html is intermittent&lt;br /&gt;
* {{Bug|599804}} Highlight all doesn&#039;t work with non HTML documents (e.g. CSS styled XML files)&lt;br /&gt;
** reviewed&lt;br /&gt;
* {{Bug|856595}} Intermittent test_wheel_default_action.html&lt;br /&gt;
** may know what&#039;s wrong, trying patch on tryserver&lt;br /&gt;
* {{Bug|555120}} Intermittent failure in browser_bug441778.js&lt;br /&gt;
** not sure what&#039;s wrong, but patch to {{bug|856595}} may fix this too&lt;br /&gt;
* {{Bug|873046}} Intermittent browser_thumbnails_background.js&lt;br /&gt;
** need to investigate&lt;br /&gt;
* follow-ups to {{Bug|841495}} background thumbnail service&lt;br /&gt;
** need to work on these&lt;br /&gt;
* triage&lt;br /&gt;
&lt;br /&gt;
===markh===&lt;br /&gt;
&lt;br /&gt;
Mainly experimenting with e10s - got things (mainly) working on Windows, got html5 form validation &amp;quot;ported&amp;quot; to the new world order and currently working on form autocomplete.&lt;br /&gt;
&lt;br /&gt;
===dolske===&lt;br /&gt;
===mconley===&lt;br /&gt;
===dao===&lt;br /&gt;
Reviews... Let me know if a patch needs priority.&lt;br /&gt;
Monday was a holiday in Germany, catching up on bugmail. I may miss today&#039;s meeting.&lt;br /&gt;
&lt;br /&gt;
===mikedeboer===&lt;br /&gt;
&lt;br /&gt;
===gijs===&lt;br /&gt;
===Unfocused===&lt;br /&gt;
===MattN===&lt;br /&gt;
(travelling during meeting)&lt;br /&gt;
&lt;br /&gt;
===jaws===&lt;br /&gt;
===cers===&lt;br /&gt;
===mixedpuppy===&lt;br /&gt;
&lt;br /&gt;
== UX Updates ==&lt;/div&gt;</summary>
		<author><name>P.A.</name></author>
	</entry>
</feed>