<?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=Timdream</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=Timdream"/>
	<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/Special:Contributions/Timdream"/>
	<updated>2026-11-05T06:29:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mortar_Project&amp;diff=1192825</id>
		<title>Mortar Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mortar_Project&amp;diff=1192825"/>
		<updated>2018-04-25T17:01:33Z</updated>

		<summary type="html">&lt;p&gt;Timdream: Clean up and put a status update (that I know of)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border: 1px solid red; color: red; font-weight: bold&amp;quot;&amp;gt;The Mortar experiment has concluded. Mozilla does not consider the PDF use case justifies the burden of implementing and maintaining PDFium and a Pepper API implementation in Gecko.&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Photon_Preference_Dashboard&amp;diff=1171864</id>
		<title>Photon Preference Dashboard</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Photon_Preference_Dashboard&amp;diff=1171864"/>
		<updated>2017-05-24T02:16:13Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Preference bug list */ Add a link to Bugzilla&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Main Members ==&lt;br /&gt;
UX designer: Tina Hsieh, Ryan Feeley&lt;br /&gt;
&lt;br /&gt;
Visual designer: Helen Huang&lt;br /&gt;
&lt;br /&gt;
FE Engineers: Fischer Liu, Evan Tseng, Ricky Chien&lt;br /&gt;
&lt;br /&gt;
PM: Cindy Hsiang&lt;br /&gt;
&lt;br /&gt;
EPM: Francis Lee (main contact)&lt;br /&gt;
&lt;br /&gt;
SV contact: Hani Yacoub (hani.yacoub@softvision.ro)&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
*UX spec draft&lt;br /&gt;
**[https://mozilla.invisionapp.com/share/P4ACQT1E3#/217167559_1-0_Cover Preferences Reorg] &lt;br /&gt;
**[https://mozilla.invisionapp.com/share/ZDAGPK3AF#/218928219_1-0_Cover Preferences Search] &lt;br /&gt;
**[https://mozilla.invisionapp.com/share/4ZB63CHD9#/227453028_1-0_Cover_-_Home_-|Preferences Permissions]&lt;br /&gt;
**[https://mozilla.invisionapp.com/share/C2B97CAYH#/228017152_1-0_Cover_-_Home_- (WIP) Preferences Performance]&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
&lt;br /&gt;
* Photon desktop WW in Toronto: 5/8-5/11&lt;br /&gt;
* Next check point: 4/24&lt;br /&gt;
&lt;br /&gt;
== Risk &amp;amp; Mitigation plan ==&lt;br /&gt;
*NA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project Dashboard ==&lt;br /&gt;
&lt;br /&gt;
=== Preference bug list ===&lt;br /&gt;
&lt;br /&gt;
[https://mzl.la/2qeOq65 Live search result on Bugzilla]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bugzilla&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;assigned_to&amp;quot;: [],&lt;br /&gt;
        &amp;quot;whiteboard&amp;quot;:[&amp;quot;[photon-preference]&amp;quot;],&lt;br /&gt;
        &amp;quot;include_fields&amp;quot;: &amp;quot;id, summary, status, target_milestone, priority, resolution, assigned_to, qa_contact&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/bugzilla&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Meeting Minutes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
*[https://docs.google.com/presentation/d/1EA-qGEjhkebW9IbUZ_fv_XYflu5dlutc60Nw57nT5sQ/edit?usp=sharing Inconsistency spec]&lt;br /&gt;
*[https://docs.google.com/a/mozilla.com/presentation/d/1529XCrC4UJNxdmyDtLoqovb6merRzN9Mk0XB63AcgO8/edit?usp=sharing Research findings] &lt;br /&gt;
*[https://docs.google.com/presentation/d/1umjy6qkMaZapHDwVVUSZKUjqIfQKhLKp3-m5kUOJa48/edit?usp=sharing Category guideline]&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=MOSS/Foundational_Technology/Projects_We_Use&amp;diff=1162534</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=1162534"/>
		<updated>2017-02-10T06:38:47Z</updated>

		<summary type="html">&lt;p&gt;Timdream: Add project used in emojione-colr&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;
| [http://angleproject.org/ ANGLE]              || A conformant OpenGL ES implementation for Windows, Mac and Linux || Platform Graphics Team&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 , Webops, 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://github.com/argonjs Argon]  || Used as the foundation for mobile AR web browser research by Emerging Tech || Blair MacIntyre&lt;br /&gt;
|-&lt;br /&gt;
| [https://atom.io/ Atom]                       || Used (either vanilla or e.g. as [https://github.com/Microsoft/vscode] ) by various developers ||&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://www.isc.org/downloads/bind/ BIND] || DNS Server || Brian Hourigan&lt;br /&gt;
|-&lt;br /&gt;
| [https://pypi.python.org/pypi/bleach/ Bleach] || HTML sanitizing library that escapes or strips markup and attributes used by MDN and a bunch of Mozilla sites || Will Kahn-Greene&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://cffi.readthedocs.io/en/latest/ cffi] || C Foreign Function Interface for Python. || Cloud Services Team&lt;br /&gt;
|-&lt;br /&gt;
| [http://ckeditor.com/ CKEditor] || WYSIWYG editor on MDN || &lt;br /&gt;
|-&lt;br /&gt;
| [https://cmake.org/ CMake] || cross-platform family of tools designed to build, test and package software, lua_sandbox, lua_sandbox_extensions, hindsight, hindsight_admin || Mike Trinkala&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;
| [https://pypi.python.org/pypi/ConfigArgParse ConfigArgParse] || A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables || Cloud Services Team&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, nucleus, 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;
| [http://www.stack.nl/~dimitri/doxygen/ Doxygen] || tool for generating documentation from annotated sources, lua_sandbox || Mike Trinkala  &lt;br /&gt;
|-&lt;br /&gt;
| [https://drupal.org/ Drupal] || Open Source CMS. Used by Dev Rel team. || Potch&lt;br /&gt;
|- &lt;br /&gt;
| [https://pypi.python.org/pypi/ecdsa ecdsa] || ECDSA cryptographic signature library (pure python) || Cloud Services 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 (dxr), Kyle Lahnakoski (ActiveData), Jason Thomas&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;
| [https://emojione.com/ EmojiOne] || Upstream Emoji artwork used in the Firefox built-in Emoji font || Tim Chien ([https://github.com/mozilla/emojione-colr See emojione-colr])&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://ffmpeg.org/ ffmpeg] || Used for media decoding. || Jean-Yves Avenard&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://flowtype.org/ Flow] ||  A static type checker for JavaScript || Greg Tatum, Jason Laster&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://fontforge.github.io/en-US/ FontForge] || Built-in Emoji font compilation || Tim Chien ([https://github.com/mozilla/emojione-colr See emojione-colr])&lt;br /&gt;
|-&lt;br /&gt;
| [https://pypi.python.org/pypi/FontTools FontTools] || Built-in Emoji font compilation || Tim Chien ([https://github.com/mozilla/emojione-colr See emojione-colr])&lt;br /&gt;
|-&lt;br /&gt;
| [http://foundation.zurb.com/ Foundation Framework] || Responsive front-end framework, used by some Mozilla sites and add-ons || Luke Crouch&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.freetype.org/ FreeType] || Small, efficient, highly customizable, and portable library for producing high-quality output (glyph images) of most vector and bitmap font formats. || Platform team&lt;br /&gt;
|-&lt;br /&gt;
| [http://gcc.gnu.org GCC]                      || C/C++ compiler and infrastructure || Nathan Froyd&lt;br /&gt;
|-&lt;br /&gt;
| [http://https://www.sourceware.org/gdb/ GDB]  || The GNU Debugger, the sole debugger for Linux || Jim Blandy&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://graphite.sil.org/ Graphite]                    || Graphite is a &amp;quot;smart font&amp;quot; system developed specifically to handle the complexities of lesser-known languages of the world. || Platform team&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://python-hyper.org/en/latest/ hyper] || Hyper is a set of related projects that provide HTTP/2 functionality to Python projects. || Cloud Services Team&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.inspircd.org/ inspircd]                 || Irc server used by mozilla || :ashish&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;
&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;
| [https://kafka.apache.org/ Kafka] || Distributed transaction log, used for hg.mozilla.org replication. || gps&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;
| libbz2                                        || Compression library for .bz2 format || Julian Seward&lt;br /&gt;
|-&lt;br /&gt;
| [http://libevent.org/ libevent] || Provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. || Platform team&lt;br /&gt;
|-&lt;br /&gt;
| [https://sourceware.org/libffi/ libffi] || A Portable Foreign Function Interface Library. || Platform team&lt;br /&gt;
|-&lt;br /&gt;
| [http://libjpeg-turbo.virtualgl.org/ 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;
| LLVM || Compiler foundation for ASAN, static analysis tools, Rust || 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.lua.org/ Lua] ||  Lua is a powerful, efficient, lightweight, embeddable scripting language, lua_sandbox_extensions || Mike Trinkala&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/macvim-dev/macvim MacVim] || Mac wrapper around Vim || -&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://pypi.python.org/pypi/marshmallow marshmallow] || A lightweight library for converting complex datatypes to and from native Python datatypes. || Cloud Services Team&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.mediawiki.org/wiki/MediaWiki MediaWiki]     || You are reading this on a wiki || Shyam Mani&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;
| [https://www.meteor.com/ Meteor]    || Build Apps with Javascript - Used in MozDef&#039;s Web UI ||  MozDef Team in EIS&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 || Matt Pressman&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.nagios.org/ Nagios]              || IT management system. Used for notifications of system failures || Linda Ypulong&lt;br /&gt;
|-&lt;br /&gt;
| [http://netsniff-ng.org/ netsniff-ng]                    || Linux networking toolkit || Michal Purzynski&lt;br /&gt;
|-&lt;br /&gt;
| [https://neovim.io/ neovim] (nvim) || Next-generation vim code editor || Ralph Giles&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://www.nginx.com/resources/wiki/contributing/github/ nginx]  || Web Server. Used by almost everything CloudOps runs. || Travis Blow&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;
| [http://nsis.sourceforge.net/Main_Page NSIS]  || Windows installer framework || Matt Howell&lt;br /&gt;
|-&lt;br /&gt;
| [https://wiki.mozilla.org/NSS NSS]  || Network Security Services || jcjones? &lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/cisco/OpenH264 OpenH264] (Cisco)                              || H.264 video library || Unknown &lt;br /&gt;
|-&lt;br /&gt;
| [http://www.openLDAP.org/ OpenLDAP]                 || User management used by Infra || :jabba?&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;
| [http://openssl.org/ OpenSSL]                 || Cryptograpahy and TLS Toolkit || Nick Desaulniers&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;
| [https://openvpn.net/ Openvpn]                 || VPN used by Infra || :jabba?&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;
| [http://pandoc.org/ Pandoc] || universal document converter, lua_sandbox_extensions || Mike Trinkala  &lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/apache/parquet-cpp parquet-cpp] || C++ library to read and write the Apache Parquet columnar data format, lua_sandbox_extensions || Mike Trinkala&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://pdfium.googlesource.com/pdfium/ PDFium]            || PDF viewing and printing in Firefox || Peter Van Der Beken, Evelyn Hung&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;
| [http://python-pillow.org/ pillow] || Python Imaging library || Member of Webcompat 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, Corey Shield&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/JetBrains/intellij-community/tree/master/python PyCharm] || Python IDE || Jonathan Griffin&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. || Dave Hunt&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/cryptography python cryptography] || cryptography is a package which provides cryptographic recipes and primitives to Python developers. || Cloud Services Team&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://python-jose.readthedocs.io/en/latest/ python-jose] || a JavaScript Object Signing and Encryption (JOSE) implementation in python || Cloud Services Team&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, Jason Thomas&lt;br /&gt;
|-&lt;br /&gt;
| [http://http://rapidjson.org/ RapidJSON] ||  A fast JSON parser/generator for C++ with both SAX/DOM style API, lua_sandbox_extensions || Mike Trinkala&lt;br /&gt;
|-&lt;br /&gt;
| [https://pypi.python.org/pypi/raven Raven] || Raven is a python client for Sentry || Cloud services Team&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://redux.js.org/ Redux] || Redux is a predictable state container for JavaScript apps. || Jason Laster&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;
| [https://sass-lang.com/ Sass]         || CSS Preprocessor. Most big team web projects use Sass these days. ||&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 || David Burns, Dave Hunt&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://skia.org/ Skia] || A complete 2D graphic library for drawing Text, Geometries, and Images || Platform Graphics 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 || asuth&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;
| [https://suricata-ids.org/ suricata]                    || IDS / IPS / NSM engine || Michal Purzynski&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.squid-cache.org/ Squid]           || Caching proxy || Brian Hourigan&lt;br /&gt;
|-&lt;br /&gt;
| [https://tox.readthedocs.org/en/latest/ Tox]  || Test automation || Dave Hunt&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/twitter/twemoji twemoji] || Upstream Emoji artwork used in the Firefox built-in Emoji font (minor source) ||  Tim Chien ([https://github.com/mozilla/emojione-colr See emojione-colr])&lt;br /&gt;
|-&lt;br /&gt;
| [https://uwsgi-docs.readthedocs.io/en/latest/ UWSGI]               || Full hosting stack used in MozDef || MozDef Team in EIS &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;
| [https://github.com/microsoft/vscode/ vscode] || Code editor || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [http://vim.org/ vim] || editor used by many developers || —&lt;br /&gt;
|-&lt;br /&gt;
| [https://waffle.io/mozilla/ waffle.io] || github project management used by various teams || &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://www.webtoolkit.eu/wt Wt] || C++ library for developing web applications, hindsight_admin || Mike Trinkala&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;
| [https://github.com/Cyan4973/xxHash xxHash] ||  Extremely fast non-cryptographic hash algorithm, lua_sandbox_extensions || Mike Trinkala&lt;br /&gt;
|-&lt;br /&gt;
| [http://tukaani.org/xz/embedded.html XZ Embedded] || Decompressor for the XZ format ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://yasm.tortall.net/ yasm] || Assembler used by the build system. || unknown&lt;br /&gt;
|-&lt;br /&gt;
| [https://valloric.github.io/YouCompleteMe/ YouCompleteMe] || Code completion engine for vim editors || Ehsan Akhgari&lt;br /&gt;
|-&lt;br /&gt;
| [http://zlib.net zlib]                   || Streaming compression and decompression for HTTP, PNG, etc. ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://zookeeper.apache.org/ ZooKeeper] || Distributed synchronization, use by hg.mozilla.org replication || gps&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Firefox/Features/Web_Payments&amp;diff=1154921</id>
		<title>Firefox/Features/Web Payments</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Firefox/Features/Web_Payments&amp;diff=1154921"/>
		<updated>2016-11-16T05:37:58Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Reference Link */ Correct link to Payment App API&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Form Autofill and Web Payments saves users time and effort when making online purchases by storing their personal and payment information in a profile and automatically populating form fields and payment information when the user requires it. Simply put, Form Autofill makes the online shopping checkout processes faster.  Web Payments eliminates them entirely.&lt;br /&gt;
&lt;br /&gt;
The W3C PaymentRequest API is currently in draft stage and has momentum.  The API is extensible to any payment source without requiring the browser to be Payment Card Industry compliant.&lt;br /&gt;
&lt;br /&gt;
== Mailing list ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Auto Fill/Web Payments Mailing list: [mailto:autofill@lists.mozilla.org autofill@lists.mozilla.org]&lt;br /&gt;
&lt;br /&gt;
== Team Members ==&lt;br /&gt;
&lt;br /&gt;
Product Manager: Peter Dolanjski, Joe Cheng, Cindy Hsing&lt;br /&gt;
&lt;br /&gt;
Platform Engineers: Marcos Caceres, Ben Tian&lt;br /&gt;
&lt;br /&gt;
Frontend Engineers: Tim Chien&lt;br /&gt;
&lt;br /&gt;
UX designer: Juwei Huang&lt;br /&gt;
&lt;br /&gt;
Visual designer: Fang Shih&lt;br /&gt;
&lt;br /&gt;
Engineering Program Manager: Wesly Huang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
== Reference Link ==&lt;br /&gt;
&lt;br /&gt;
* [https://w3c.github.io/browser-payment-api/ Payment Request API Specification]&lt;br /&gt;
* [https://w3c.github.io/webpayments-payment-apps-api/ Payment App API Specification]&lt;br /&gt;
&lt;br /&gt;
[[Category:Firefox]]&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Good_first_bug&amp;diff=1140390</id>
		<title>Good first bug</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Good_first_bug&amp;diff=1140390"/>
		<updated>2016-07-20T06:18:06Z</updated>

		<summary type="html">&lt;p&gt;Timdream: MXR -&amp;gt; DXR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Would you like to fix a Firefox bug?==&lt;br /&gt;
&lt;br /&gt;
This page will explain how to set up a development environment and start looking at the code. It has a walkthrough for you to try making a change to Firefox code on your local machine, so that you can see that change reflected in a copy of the browser.&lt;br /&gt;
&lt;br /&gt;
It may take a few hours to go through this one-time setup. Not because it&#039;s particularly hard, but because the download and build can take a while.  While the build is happening, you can look at bugs in Bugzilla, or read info for developers new to Mozilla on the Mozilla Developer Network. &lt;br /&gt;
&lt;br /&gt;
Build instructions for other Mozilla stuff that isn&#039;t desktop Firefox can be found here: &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions&lt;br /&gt;
&lt;br /&gt;
==Good First Bugs==&lt;br /&gt;
You can find good first bugs in bugzilla.mozilla.org, that have been tagged &amp;quot;good first bug&amp;quot; in the whiteboard field.  &lt;br /&gt;
&lt;br /&gt;
==Mentored Bugs==&lt;br /&gt;
There are also mentored bugs, which may be a little more difficult, but still good for beginners. Currently you can find these in Bugzilla or look for them in [https://wiki.mozilla.org/BugsAhoy Bugs Ahoy].&lt;br /&gt;
&lt;br /&gt;
==But first!! Set up an environment==&lt;br /&gt;
&lt;br /&gt;
Download and compile Firefox. The instructions depend on your platform. Here they are:&lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Simple_Firefox_build&lt;br /&gt;
&lt;br /&gt;
This might take a while - perhaps a couple of hours.&lt;br /&gt;
&lt;br /&gt;
If you aren&#039;t already set up as a developer, you may need to do some other things too. &lt;br /&gt;
Here are the build prerequisites. There are instructions to install all the tools you will need on various operating systems in order to build Firefox. &lt;br /&gt;
&lt;br /&gt;
https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions#Build_prerequisites&lt;br /&gt;
&lt;br /&gt;
==Update to the latest build==&lt;br /&gt;
Before you tackle your first bug, here is a walkthrough of what you can do to set up for Firefox coding.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s download the source code for Firefox.&lt;br /&gt;
Run hg clone https://hg.mozilla.org/mozilla-central to get it. This is going to take a while.&lt;br /&gt;
&lt;br /&gt;
Time to build Firefox.&lt;br /&gt;
Go to the new mozilla-central directory, and run ./mach build. This is going to take a very long time.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s make sure it works!&lt;br /&gt;
Run ./mach run -P blank. If the profile manager dialog appears, create a new profile named blank and continue starting Firefox.&lt;br /&gt;
&lt;br /&gt;
==Code change walkthrough: Turn your tabs green==&lt;br /&gt;
&lt;br /&gt;
===Find the right files===&lt;br /&gt;
The important thing to know about this mission is that Firefox&#039;s stylesheets are stored in browser/themes/ and toolkit/themes/. The first path is for Firefox-specific theming, while the second is for theming shared by all Gecko-based applications (such as Thunderbird).&lt;br /&gt;
&lt;br /&gt;
See if you can find the right stylesheet to change under browser/themes/. There are different themes for each major platform (Windows, OS X, and Linux), so make sure you look in the correct subdirectory (ie. browser/themes/linux/ if you&#039;re using Linux).&lt;br /&gt;
&lt;br /&gt;
HINT: It might be tempting to look at searchbar.css, but that only styles the small input bar where you can quickly access major search enginges. You should look at browser.css, which contains the styling rules for the majority of the Firefox user interface.&lt;br /&gt;
&lt;br /&gt;
===Use DXR===&lt;br /&gt;
&lt;br /&gt;
It turns out that browser.css has a lot of rules in it. Let&#039;s narrow down the actual rule we want to change.&lt;br /&gt;
&lt;br /&gt;
It&#039;s time to use [https://dxr.mozilla.org/ DXR], the Mozilla Cross Reference tool. You can search for &amp;quot;browser.css&amp;quot; and take a look through the results; see if any of the files that show up look like good candidates!&lt;br /&gt;
&lt;br /&gt;
HINT: You can focus on XUL and XML files, which are used to define Firefox&#039;s user interface. Often, CSS files share filenames with the files that they are styling - in this case, browser.xul looks like a good match.&lt;br /&gt;
&lt;br /&gt;
===Search for keywords===&lt;br /&gt;
browser.xul is a pretty big file, so it&#039;s usually best to search for keywords to find relevant parts. In this case, try searching for &amp;quot;tab&amp;quot; and see if you come across anything useful (such as a class or id attribute). If you do, see whether you can find the selector in browser.css.&lt;br /&gt;
&lt;br /&gt;
HINT: In your search, you should come across a &amp;lt;tabs&amp;gt; element that represents the tabs in Firefox&#039;s interface. Everything you need can be found there, since it has a &amp;lt;tab&amp;gt; child with a class attribute that is present in browser.css.&lt;br /&gt;
&lt;br /&gt;
===Change the code and rebuild===&lt;br /&gt;
Now that you have a selector to change in browser.css, all that remains is to make your changes and rebuild Firefox. You can perform a full build (./mach build), but in this case it is much faster to just rebuild browser/, like so:&lt;br /&gt;
&lt;br /&gt;
 ./mach build browser/&lt;br /&gt;
&lt;br /&gt;
When this is finished, run the local Firefox build and see whether your changes worked!&lt;br /&gt;
&lt;br /&gt;
==Halp!==&lt;br /&gt;
If this didn&#039;t work:&lt;br /&gt;
&lt;br /&gt;
Please visit [irc://irc.mozilla.org/introduction #introduction] on irc.mozilla.org and explain the problem you&#039;re having.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;hat tip to http://www.joshmatthews.net/trainingmontage/&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Gaia/Team/Taipei&amp;diff=1089398</id>
		<title>Gaia/Team/Taipei</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Gaia/Team/Taipei&amp;diff=1089398"/>
		<updated>2015-08-11T09:11:25Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Weekly Update */ point to https://github.com/gaia-taipei/gaia-weekly&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gaia teams in Taipei, Taiwan =&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
Alphabetically ordered by ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- an HTML4 table! Would love to know what&#039;s the better way to represent this style in MediaWiki syntax semantically --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
| https://secure.gravatar.com/avatar/f376b438280ff00eb2d7c016e0703d58?s=120#.png&lt;br /&gt;
[https://github.com/begeeben Yi-Fan Liao (begeeben)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/32f42d56f6770abcbb7c8da456af5891?s=120#.png&lt;br /&gt;
[https://github.com/dwi2 Tzu-Lin Huang (dwi2)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/c41f912d929a213cba048104b3697b88?s=120#.png&lt;br /&gt;
[https://github.com/evanxd Evan Tseng (evanxd)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/0ccfea05555478e088acf331824b70c1?s=120#.png&lt;br /&gt;
[https://github.com/evelynhung Evelyn Hung (evelynhung)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/84460b786102047f6b74522ef62d7ac3?s=120#.png&lt;br /&gt;
[https://github.com/gasolin Fred Lin (gasolin)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/06d79ed4b67a4721e8e59295fb9f4ae6?s=120#.png&lt;br /&gt;
[https://github.com/huchengtw-moz John Hu (huchengtw-moz)]&lt;br /&gt;
|-&lt;br /&gt;
| https://secure.gravatar.com/avatar/91513261a498767bb7ecd2c38c994f5a?s=120#.png&lt;br /&gt;
[https://github.com/luke-chang Luke Chang (luke-chang)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/ba973db1f571a1bc3ac86cb4d674c32a?s=120#.png&lt;br /&gt;
[https://github.com/rexboy7 Rex KM Lee (rexboy7)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/abf92b0a6c66cf51277f0ab014a29446?s=120#.png&lt;br /&gt;
[https://github.com/RickyChien Ricky Chien (rickychien)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/a45359e3fe86aeca5b166ed821964b0b?s=120#.png&lt;br /&gt;
[https://github.com/snowmantw Greg Weng (snowmantw)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/0e719389c6f6e17e5693819fc9a5722a?s=120#.png&lt;br /&gt;
[https://github.com/steveck-chung Steve Chung (steveck-chung)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/2becaf1073957bdad2f06e183731131d?s=120#.png&lt;br /&gt;
[https://github.com/timdream Tim Guan-tin Chien (timdream)]&lt;br /&gt;
|-&lt;br /&gt;
| https://secure.gravatar.com/avatar/68fd0daa80b4f077a530ae6915a6ece5?s=120#.png&lt;br /&gt;
[https://github.com/weilonge Sean Lee (weilonge)]&lt;br /&gt;
|-&lt;br /&gt;
| http://lorempixel.com/120/120/cats/?_=X#.png&lt;br /&gt;
[http://mozilla.com.tw/about/careers/ We are hiring!]&lt;br /&gt;
|}&lt;br /&gt;
=== Interns ===&lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
| http://lorempixel.com/120/120/cats/#.png&lt;br /&gt;
[http://mozilla.com.tw/about/intern/ Internship opportunity @ Mozilla Taiwan]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alumni ===&lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
| http://lorempixel.com/120/120/cats/#.png&lt;br /&gt;
[https://github.com/mozshiao9 Mark Shiao (mozshiao9)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/a357616c0a9197fccbaf5aceb92d94f3?s=120#.png &lt;br /&gt;
[https://github.com/yurenju Yuren Ju (yurenju)]&lt;br /&gt;
| https://avatars3.githubusercontent.com/u/5014150?s=120#.png&lt;br /&gt;
[https://github.com/mnjul Min-Zhong &amp;quot;John&amp;quot; Lu (mnjul)]&lt;br /&gt;
| https://avatars.githubusercontent.com/u/6240413?s=120#.png&lt;br /&gt;
[https://github.com/weilonge Sung Chiu (sean2449)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/adc421ca1f85f9d54e02a7c3c779d914?s=120#.png&lt;br /&gt;
[https://github.com/shamenchens Sherman Chen (shamenchens)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/2200ce74246a04126cf04cfa39ff0c37?s=120#.png&lt;br /&gt;
[https://github.com/alivedise Alive Kuo (alivedise)]&lt;br /&gt;
|-&lt;br /&gt;
| https://secure.gravatar.com/avatar/ab20989d946f4bd31c590b5a6ef73f7a?s=120#.png&lt;br /&gt;
[https://github.com/crh0716 Arthur Chen (crh0716)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/c467be2c8057ee9a73735ee2bd269504?s=120#.png&lt;br /&gt;
[https://github.com/EragonJ EJ Chen (EragonJ)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/3559bf9e05fa7f8937efd88cde038ff3?s=120#.png&lt;br /&gt;
[https://github.com/cctuan George Tuan (cctuan)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/4c3b3f1dbe118b705bfb68cb82351896?s=120#.png&lt;br /&gt;
[https://github.com/RudyLu Rudy Lu (RudyLu)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/b729f44cee25bbef242e2d9144df5ef1?s=120#.png&lt;br /&gt;
[https://github.com/mpizza Gary Chen (mpizza)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/97614f2541c088277e57085f31cdf546?s=120#.png&lt;br /&gt;
[https://github.com/ian-liu Ian Liu (Ian-liu)]&lt;br /&gt;
|-&lt;br /&gt;
| https://secure.gravatar.com/avatar/e333342f0afd23d7212e0cbaa6e00e3c?s=120#.png&lt;br /&gt;
[https://github.com/dominickuo Dominic Kuo (dominickuo)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Update ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;&amp;quot;&amp;gt;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:small&amp;quot;&amp;gt;Nothing is committed until it lands in a release :) .&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The updates are now managed in their own [https://github.com/gaia-taipei/gaia-weekly git repo]. You may find the old updated in the history of this wiki page.&lt;br /&gt;
&lt;br /&gt;
= Bugzilla queries =&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[https://bugzilla.mozilla.org/page.cgi?id=mydashboard.html Your Bugzilla Dashboard]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&amp;amp;j26=OR&amp;amp;f35=OP&amp;amp;list_id=9789226&amp;amp;f44=CP&amp;amp;f68=CP&amp;amp;f39=CP&amp;amp;v57=iliu%40mozilla.com&amp;amp;f49=CP&amp;amp;f30=OP&amp;amp;f51=OP&amp;amp;j6=OR&amp;amp;j31=OR&amp;amp;j56=OR&amp;amp;v62=evanxd%40mozilla.com&amp;amp;f13=CP&amp;amp;o2=substring&amp;amp;f66=OP&amp;amp;f23=CP&amp;amp;f29=CP&amp;amp;f25=OP&amp;amp;v42=alive%40mozilla.com&amp;amp;f27=assigned_to&amp;amp;v47=dkuo%40mozilla.com&amp;amp;o12=substring&amp;amp;v52=gasolin%40mozilla.com&amp;amp;o17=substring&amp;amp;f58=CP&amp;amp;v2=rlu%40mozilla.com&amp;amp;f21=OP&amp;amp;o57=substring&amp;amp;f10=OP&amp;amp;f32=assigned_to&amp;amp;f19=CP&amp;amp;v37=yurenju.mozilla%40gmail.com&amp;amp;j46=OR&amp;amp;j66=OR&amp;amp;v32=gduan.moz%40gmail.com&amp;amp;j41=OR&amp;amp;f56=OP&amp;amp;f34=CP&amp;amp;f42=assigned_to&amp;amp;f64=CP&amp;amp;j21=OR&amp;amp;o47=substring&amp;amp;f15=OP&amp;amp;o52=substring&amp;amp;o67=substring&amp;amp;o32=substring&amp;amp;f46=OP&amp;amp;f50=OP&amp;amp;f4=CP&amp;amp;f67=assigned_to&amp;amp;f2=assigned_to&amp;amp;j36=OR&amp;amp;v12=ejchen%40mozilla.com&amp;amp;f54=CP&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;f62=assigned_to&amp;amp;f38=CP&amp;amp;f17=assigned_to&amp;amp;f65=OP&amp;amp;o22=substring&amp;amp;f7=assigned_to&amp;amp;v22=ricky060709%40gmail.com&amp;amp;f36=OP&amp;amp;v27=schung%40mozilla.com&amp;amp;f26=OP&amp;amp;f52=assigned_to&amp;amp;f57=assigned_to&amp;amp;f28=CP&amp;amp;j16=OR&amp;amp;j11=OR&amp;amp;j61=OR&amp;amp;f12=assigned_to&amp;amp;o37=substring&amp;amp;j51=OR&amp;amp;f14=CP&amp;amp;f60=OP&amp;amp;f43=CP&amp;amp;f24=CP&amp;amp;f47=assigned_to&amp;amp;f59=CP&amp;amp;f69=CP&amp;amp;f22=assigned_to&amp;amp;f48=CP&amp;amp;f31=OP&amp;amp;f1=OP&amp;amp;f37=assigned_to&amp;amp;o7=substring&amp;amp;f20=OP&amp;amp;f33=CP&amp;amp;f0=OP&amp;amp;f8=CP&amp;amp;f18=CP&amp;amp;v67=gweng%40mozilla.com&amp;amp;o42=substring&amp;amp;v7=timdream%40gmail.com&amp;amp;f9=CP&amp;amp;f45=OP&amp;amp;query_format=advanced&amp;amp;j1=OR&amp;amp;f3=CP&amp;amp;v17=arthur.chen%40mozilla.com&amp;amp;f53=CP&amp;amp;f55=OP&amp;amp;f61=OP&amp;amp;f11=OP&amp;amp;f41=OP&amp;amp;o62=substring&amp;amp;f5=OP&amp;amp;f6=OP&amp;amp;f63=CP&amp;amp;o27=substring&amp;amp;f40=OP&amp;amp;f16=OP Assigned to team]&lt;br /&gt;
&lt;br /&gt;
== v1.3 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=1.3%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=1.3%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=1.3T%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3T+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=1.3T%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3T?] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== v1.4 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=1.4%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.4+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=1.4%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.4?] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== v2.0 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.0%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.0+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.0&amp;amp;f7=component&amp;amp;o8=substring feature: 2.0]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.0%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.0?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.0&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.0] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== v2.1 ==&lt;br /&gt;
&lt;br /&gt;
*[https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.1%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.1+]&lt;br /&gt;
* [http://mzl.la/1x9FKJB blocking: 2.1+] (without systemsfe)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.1&amp;amp;f7=component&amp;amp;o8=substring feature: 2.1]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.1%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.1?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.1&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.1] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.1&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;f15=CP&amp;amp;f16=status_whiteboard&amp;amp;v16=systemsfe&amp;amp;o16=substring&amp;amp;n16=1&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.1] (including fixed bugs; without systemsfe)&lt;br /&gt;
&lt;br /&gt;
== v2.2 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.2%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.2+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.2%2B&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.2%3F&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2?]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.2%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.2?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.2%2B&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2+] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.2%2B&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;f15=CP&amp;amp;f16=status_whiteboard&amp;amp;v16=systemsfe&amp;amp;o16=substring&amp;amp;n16=1&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2+] (including fixed bugs; without systemsfe)&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=backlog&amp;amp;f7=component&amp;amp;o8=substring blocking-b2g: backlog]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=substring&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_tracking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=%2B&amp;amp;f7=component&amp;amp;o8=substring tracking-b2g: +]&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;o13=equals&amp;amp;list_id=11471599&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;f13=component&amp;amp;o2=substring&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;f12=component&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;o12=equals&amp;amp;j4=OR&amp;amp;v2=%5Bpriority%5D&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;o7=equals&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;o6=equals&amp;amp;f9=status_whiteboard&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f4=OP&amp;amp;o10=equals&amp;amp;query_format=advanced&amp;amp;f3=CP&amp;amp;f2=status_whiteboard&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f11=component&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring tagged with &amp;lt;nowiki&amp;gt;[priority]&amp;lt;/nowiki&amp;gt; on Whiteboard] (deprecated; should be using blocking-b2g: backlog)&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=substring&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: Everything+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=substring&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: Everything?] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== etc ==&lt;br /&gt;
&lt;br /&gt;
* Components under our watch: Gaia::Bluetooth File Transfer, Gaia::Build, Gaia::Keyboard, Gaia::Settings, Gaia::System::Lockscreen, Gaia::System::Input Mgmt, Gaia::System::Window Mgmt.&lt;br /&gt;
* Team/feature tag(s): [FT:System-Platform], [3rd-party-keyboard]&lt;br /&gt;
&lt;br /&gt;
* [http://andreasgal.github.io/dashboard/?filtercomponents=Gaia::Bluetooth%20File%20Transfer,Gaia::Build,Gaia::Keyboard,Gaia::Settings,Gaia::System::Input%20Mgmt,Gaia::System::Lockscreen,Gaia::System::Window%20Mgmt Andreas&#039;s Dashboard for the team]&lt;br /&gt;
* [http://charts.mozilla.org/ffos/ The Dashboard]&lt;br /&gt;
&lt;br /&gt;
= Story Points, Target Milestone and ETA=&lt;br /&gt;
Please put story point and target milestone to EVERY ticket that is assigned to you, starting from V2.0 4/28. &amp;lt;br /&amp;gt;&lt;br /&gt;
For blockers, please also put ETA in whiteboard, format: &#039;&#039;&#039;[ETA:4/30]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Here is how we go:&lt;br /&gt;
&lt;br /&gt;
* 1 point means approximately 2 working days.&lt;br /&gt;
* The story point goes up with Fibonacci Number, please use the following number: 1, 2, 3, 5, 8, 13 (13 is not recommended unless you really have to)&lt;br /&gt;
* Put in whiteboard, format: &#039;&#039;&#039;[p=2]&#039;&#039;&#039;. When you first got the ticket &amp;amp; after a quick estimation.&lt;br /&gt;
* The efforts shall include &amp;quot;unit test&amp;quot;, &amp;quot;getting review+&amp;quot;, &amp;quot;landed&amp;quot;.&lt;br /&gt;
* When closing a ticket, you may make correction to the p to reflect actual efforts.&lt;br /&gt;
* p means &amp;quot;the effort you spent&amp;quot;, NOT &amp;quot;how long the ticket is closed&amp;quot;. For example, you&#039;re assigned a ticket on Monday, but you wait and start working on it Thursday and Friday then done, p should put as 1, not 3.&lt;br /&gt;
&lt;br /&gt;
= etc. =&lt;br /&gt;
&lt;br /&gt;
* [[B2G]]&lt;br /&gt;
* [[B2G/Roadmap]] -- owned by Product team&lt;br /&gt;
* [[Gaia]]&lt;br /&gt;
* [[Gaia/Meeting_Notes]]&lt;br /&gt;
* [[FirefoxOS/SprintStatus#Systems-Platform Sprint Status]]&lt;br /&gt;
* [[FirefoxOS/OneDotTwoTracking#Blockers_per_Functional_Team]]&lt;br /&gt;
* [https://docs.google.com/a/mozilla.com/spreadsheet/ccc?key=0AtVT90hlMtdSdEd4TVVjWXNfU3ctMlVhWFRrWkpweVE Firefox OS User Story Backlog]&lt;br /&gt;
* [https://taiwan.etherpad.mozilla.org/SystemPlatform1-3 System Platform v1.3 etherpad] (out-dated)&lt;br /&gt;
* Sprint review and retrospect: https://etherpad.mozilla.org/systemplatform-retrospect-demo&lt;br /&gt;
&lt;br /&gt;
== Subpages of {{FULLPAGENAME}} ==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/}}&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_country_region_names&amp;diff=1084810</id>
		<title>User:Timdream/I18n policy on country region names</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_country_region_names&amp;diff=1084810"/>
		<updated>2015-07-15T09:46:06Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* 2. Use ISO 3166 with amendments to short English names */ Macedonia from current proposal, since the current discussion did not cover this case.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mozilla Internationalization Policy on Country/Region Names =&lt;br /&gt;
&lt;br /&gt;
== Status of this document ==&lt;br /&gt;
&lt;br /&gt;
This document is a proposal unless a consensus is made on the mozilla-goverance mailing list, and approved by Chief Lizard Wrangler, Ms. Mitchell Baker.&lt;br /&gt;
&lt;br /&gt;
== Policy ==&lt;br /&gt;
&lt;br /&gt;
Like our counterparts among the software industry and open source ecosystem, we occasionally need to list countries or other geographic areas in documentation, menus, mirror/FTP lists, or other contexts. In the spirit of [https://www.mozilla.org/en-US/about/governance/policies/participation/ Mozilla Community Participation Guidelines] on inclusion and diversity, we ask products and services associated with the Project to comply with the requirements as defined in the Policy.&lt;br /&gt;
&lt;br /&gt;
=== 0. Use of a country/region list ===&lt;br /&gt;
&lt;br /&gt;
Use of the list is not mandatory. With usability and practicality in mind, products and services may wish to use free form text box instead of asking users to select an entry from a supplied list. However, when a country/region list is introduced, the list used by products and services must comply with the Policy.&lt;br /&gt;
&lt;br /&gt;
Specifically, it is against the Policy to provide auto-complete hints based on existing user-supplied entries.&lt;br /&gt;
&lt;br /&gt;
=== 1. Introduce such list as &amp;quot;Countries or Regions&amp;quot; as opposed to &amp;quot;Countries&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
The Mozilla Project does not endorse or deny any sovereignty claim of any region listed. It&#039;s important to label the list as such to avoid making such acknowledgement implicitly.&lt;br /&gt;
&lt;br /&gt;
=== 2. Use ISO 3166 with amendments to short English names ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;official&amp;quot; ISO 3166 short English names for those countries and regions are in some cases controversial, and not all of them are commonly used in the software industry. We ask for the following amendments to be adopted when introducing the list on products and services:&lt;br /&gt;
&lt;br /&gt;
* Taiwan should be referred with only &amp;quot;Taiwan&amp;quot;, with no extra distinctions.&lt;br /&gt;
&lt;br /&gt;
Interpretation of the word is in the eye of the beholder. The Mozilla Project does not endorse any particular position.&lt;br /&gt;
&lt;br /&gt;
To maintain compatibility with other software/service that make use of ISO 3166, no entry should be removed and added from the list.&lt;br /&gt;
&lt;br /&gt;
=== 3. Avoid associate entries on the list with extra information ===&lt;br /&gt;
&lt;br /&gt;
The entries on the list should never be associated with a national flag, or an image/map depicting the region boundary. The Mozilla Project does not associate nation-states with entries on the list, nor defining boundaries of any given entries.&lt;br /&gt;
&lt;br /&gt;
=== 4. Localization/translations of the entries ===&lt;br /&gt;
&lt;br /&gt;
We asks localization/translations of the list to comply with the Policy whenever possible. However it may be possible localization/translations of some entries could violate national law in the jurisdiction of participating contributors. In such cases or other similar cases, the Policy may be violated, provided that the localization/translations only impact the specific part of the world where the national law in question applies.&lt;br /&gt;
&lt;br /&gt;
=== 5. Amendment to the Policy ===&lt;br /&gt;
&lt;br /&gt;
Proposal of change to policy should be made on the mozilla-goverance mailing list, with a subject starting with &amp;quot;[country/region list]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/internal/i18n.html Internationalization Policy of the FreeBSD Project]&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1084757</id>
		<title>User:Timdream/I18n policy on contry region names</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1084757"/>
		<updated>2015-07-15T02:42:36Z</updated>

		<summary type="html">&lt;p&gt;Timdream: move&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Moved to [[User:Timdream/I18n_policy_on_country_region_names]].&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_country_region_names&amp;diff=1084756</id>
		<title>User:Timdream/I18n policy on country region names</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_country_region_names&amp;diff=1084756"/>
		<updated>2015-07-15T02:41:45Z</updated>

		<summary type="html">&lt;p&gt;Timdream: Move from the wrong page name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mozilla Internationalization Policy on Country/Region Names =&lt;br /&gt;
&lt;br /&gt;
== Status of this document ==&lt;br /&gt;
&lt;br /&gt;
This document is a proposal unless a consensus is made on the mozilla-goverance mailing list, and approved by Chief Lizard Wrangler, Ms. Mitchell Baker.&lt;br /&gt;
&lt;br /&gt;
== Policy ==&lt;br /&gt;
&lt;br /&gt;
Like our counterparts among the software industry and open source ecosystem, we occasionally need to list countries or other geographic areas in documentation, menus, mirror/FTP lists, or other contexts. In the spirit of [https://www.mozilla.org/en-US/about/governance/policies/participation/ Mozilla Community Participation Guidelines] on inclusion and diversity, we ask products and services associated with the Project to comply with the requirements as defined in the Policy.&lt;br /&gt;
&lt;br /&gt;
=== 0. Use of a country/region list ===&lt;br /&gt;
&lt;br /&gt;
Use of the list is not mandatory. With usability and practicality in mind, products and services may wish to use free form text box instead of asking users to select an entry from a supplied list. However, when a country/region list is introduced, the list used by products and services must comply with the Policy.&lt;br /&gt;
&lt;br /&gt;
Specifically, it is against the Policy to provide auto-complete hints based on existing user-supplied entries.&lt;br /&gt;
&lt;br /&gt;
=== 1. Introduce such list as &amp;quot;Countries or Regions&amp;quot; as opposed to &amp;quot;Countries&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
The Mozilla Project does not endorse or deny any sovereignty claim of any region listed. It&#039;s important to label the list as such to avoid making such acknowledgement implicitly.&lt;br /&gt;
&lt;br /&gt;
=== 2. Use ISO 3166 with amendments to short English names ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;official&amp;quot; ISO 3166 short English names for those countries and regions are in some cases controversial, and not all of them are commonly used in the software industry. We ask for the following amendments to be adopted when introducing the list on products and services:&lt;br /&gt;
&lt;br /&gt;
* Macedonia should be referred with only &amp;quot;Macedonia&amp;quot;, with no extra distinctions.&lt;br /&gt;
* Taiwan should be referred with only &amp;quot;Taiwan&amp;quot;, with no extra distinctions.&lt;br /&gt;
&lt;br /&gt;
Interpretation of these words is in the eye of the beholder. The Mozilla Project does not endorse any particular position.&lt;br /&gt;
&lt;br /&gt;
To maintain compatibility with other software/service that make use of ISO 3166, no entry should be removed and added from the list.&lt;br /&gt;
&lt;br /&gt;
=== 3. Avoid associate entries on the list with extra information ===&lt;br /&gt;
&lt;br /&gt;
The entries on the list should never be associated with a national flag, or an image/map depicting the region boundary. The Mozilla Project does not associate nation-states with entries on the list, nor defining boundaries of any given entries.&lt;br /&gt;
&lt;br /&gt;
=== 4. Localization/translations of the entries ===&lt;br /&gt;
&lt;br /&gt;
We asks localization/translations of the list to comply with the Policy whenever possible. However it may be possible localization/translations of some entries could violate national law in the jurisdiction of participating contributors. In such cases or other similar cases, the Policy may be violated, provided that the localization/translations only impact the specific part of the world where the national law in question applies.&lt;br /&gt;
&lt;br /&gt;
=== 5. Amendment to the Policy ===&lt;br /&gt;
&lt;br /&gt;
Proposal of change to policy should be made on the mozilla-goverance mailing list, with a subject starting with &amp;quot;[country/region list]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/internal/i18n.html Internationalization Policy of the FreeBSD Project]&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1084753</id>
		<title>User:Timdream/I18n policy on contry region names</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1084753"/>
		<updated>2015-07-15T02:10:32Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* 2. Use ISO 3166 with amendments */ compatibility&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mozilla Internationalization Policy on Country/Region Names =&lt;br /&gt;
&lt;br /&gt;
== Status of this document ==&lt;br /&gt;
&lt;br /&gt;
This document is a proposal unless a consensus is made on the mozilla-goverance mailing list, and approved by Chief Lizard Wrangler, Ms. Mitchell Baker.&lt;br /&gt;
&lt;br /&gt;
== Policy ==&lt;br /&gt;
&lt;br /&gt;
Like our counterparts among the software industry and open source ecosystem, we occasionally need to list countries or other geographic areas in documentation, menus, mirror/FTP lists, or other contexts. In the spirit of [https://www.mozilla.org/en-US/about/governance/policies/participation/ Mozilla Community Participation Guidelines] on inclusion and diversity, we ask products and services associated with the Project to comply with the requirements as defined in the Policy.&lt;br /&gt;
&lt;br /&gt;
=== 0. Use of a country/region list ===&lt;br /&gt;
&lt;br /&gt;
Use of the list is not mandatory. With usability and practicality in mind, products and services may wish to use free form text box instead of asking users to select an entry from a supplied list. However, when a country/region list is introduced, the list used by products and services must comply with the Policy.&lt;br /&gt;
&lt;br /&gt;
Specifically, it is against the Policy to provide auto-complete hints based on existing user-supplied entries.&lt;br /&gt;
&lt;br /&gt;
=== 1. Introduce such list as &amp;quot;Countries or Regions&amp;quot; as opposed to &amp;quot;Countries&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
The Mozilla Project does not endorse or deny any sovereignty claim of any region listed. It&#039;s important to label the list as such to avoid making such acknowledgement implicitly.&lt;br /&gt;
&lt;br /&gt;
=== 2. Use ISO 3166 with amendments to short English names ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;official&amp;quot; ISO 3166 short English names for those countries and regions are in some cases controversial, and not all of them are commonly used in the software industry. We ask for the following amendments to be adopted when introducing the list on products and services:&lt;br /&gt;
&lt;br /&gt;
* Macedonia should be referred with only &amp;quot;Macedonia&amp;quot;, with no extra distinctions.&lt;br /&gt;
* Taiwan should be referred with only &amp;quot;Taiwan&amp;quot;, with no extra distinctions.&lt;br /&gt;
&lt;br /&gt;
Interpretation of these words is in the eye of the beholder. The Mozilla Project does not endorse any particular position.&lt;br /&gt;
&lt;br /&gt;
To maintain compatibility with other software/service that make use of ISO 3166, no entry should be removed and added from the list.&lt;br /&gt;
&lt;br /&gt;
=== 3. Avoid associate entries on the list with extra information ===&lt;br /&gt;
&lt;br /&gt;
The entries on the list should never be associated with a national flag, or an image/map depicting the region boundary. The Mozilla Project does not associate nation-states with entries on the list, nor defining boundaries of any given entries.&lt;br /&gt;
&lt;br /&gt;
=== 4. Localization/translations of the entries ===&lt;br /&gt;
&lt;br /&gt;
We asks localization/translations of the list to comply with the Policy whenever possible. However it may be possible localization/translations of some entries could violate national law in the jurisdiction of participating contributors. In such cases or other similar cases, the Policy may be violated, provided that the localization/translations only impact the specific part of the world where the national law in question applies.&lt;br /&gt;
&lt;br /&gt;
=== 5. Amendment to the Policy ===&lt;br /&gt;
&lt;br /&gt;
Proposal of change to policy should be made on the mozilla-goverance mailing list, with a subject starting with &amp;quot;[country/region list]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/internal/i18n.html Internationalization Policy of the FreeBSD Project]&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1084752</id>
		<title>User:Timdream/I18n policy on contry region names</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1084752"/>
		<updated>2015-07-15T02:05:36Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* 1. Introduce such list as &amp;quot;Countries or Regions&amp;quot; as opposed to &amp;quot;Countries&amp;quot; */ implicitly&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mozilla Internationalization Policy on Country/Region Names =&lt;br /&gt;
&lt;br /&gt;
== Status of this document ==&lt;br /&gt;
&lt;br /&gt;
This document is a proposal unless a consensus is made on the mozilla-goverance mailing list, and approved by Chief Lizard Wrangler, Ms. Mitchell Baker.&lt;br /&gt;
&lt;br /&gt;
== Policy ==&lt;br /&gt;
&lt;br /&gt;
Like our counterparts among the software industry and open source ecosystem, we occasionally need to list countries or other geographic areas in documentation, menus, mirror/FTP lists, or other contexts. In the spirit of [https://www.mozilla.org/en-US/about/governance/policies/participation/ Mozilla Community Participation Guidelines] on inclusion and diversity, we ask products and services associated with the Project to comply with the requirements as defined in the Policy.&lt;br /&gt;
&lt;br /&gt;
=== 0. Use of a country/region list ===&lt;br /&gt;
&lt;br /&gt;
Use of the list is not mandatory. With usability and practicality in mind, products and services may wish to use free form text box instead of asking users to select an entry from a supplied list. However, when a country/region list is introduced, the list used by products and services must comply with the Policy.&lt;br /&gt;
&lt;br /&gt;
Specifically, it is against the Policy to provide auto-complete hints based on existing user-supplied entries.&lt;br /&gt;
&lt;br /&gt;
=== 1. Introduce such list as &amp;quot;Countries or Regions&amp;quot; as opposed to &amp;quot;Countries&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
The Mozilla Project does not endorse or deny any sovereignty claim of any region listed. It&#039;s important to label the list as such to avoid making such acknowledgement implicitly.&lt;br /&gt;
&lt;br /&gt;
=== 2. Use ISO 3166 with amendments ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;official&amp;quot; ISO 3166 short English names for those countries and regions are in some cases controversial, and not all of them are commonly used in the software industry. We ask for the following amendments to be adopted when introducing the list on products and services:&lt;br /&gt;
&lt;br /&gt;
* Macedonia should be referred with only &amp;quot;Macedonia&amp;quot;, with no extra distinctions.&lt;br /&gt;
* Taiwan should be referred with only &amp;quot;Taiwan&amp;quot;, with no extra distinctions.&lt;br /&gt;
&lt;br /&gt;
Interpretation of these words is in the eye of the beholder. The Mozilla Project does not endorse any particular position.&lt;br /&gt;
&lt;br /&gt;
=== 3. Avoid associate entries on the list with extra information ===&lt;br /&gt;
&lt;br /&gt;
The entries on the list should never be associated with a national flag, or an image/map depicting the region boundary. The Mozilla Project does not associate nation-states with entries on the list, nor defining boundaries of any given entries.&lt;br /&gt;
&lt;br /&gt;
=== 4. Localization/translations of the entries ===&lt;br /&gt;
&lt;br /&gt;
We asks localization/translations of the list to comply with the Policy whenever possible. However it may be possible localization/translations of some entries could violate national law in the jurisdiction of participating contributors. In such cases or other similar cases, the Policy may be violated, provided that the localization/translations only impact the specific part of the world where the national law in question applies.&lt;br /&gt;
&lt;br /&gt;
=== 5. Amendment to the Policy ===&lt;br /&gt;
&lt;br /&gt;
Proposal of change to policy should be made on the mozilla-goverance mailing list, with a subject starting with &amp;quot;[country/region list]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/internal/i18n.html Internationalization Policy of the FreeBSD Project]&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1084751</id>
		<title>User:Timdream/I18n policy on contry region names</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1084751"/>
		<updated>2015-07-15T02:03:29Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* 4. Localization/translations of the entries */ + other cases&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mozilla Internationalization Policy on Country/Region Names =&lt;br /&gt;
&lt;br /&gt;
== Status of this document ==&lt;br /&gt;
&lt;br /&gt;
This document is a proposal unless a consensus is made on the mozilla-goverance mailing list, and approved by Chief Lizard Wrangler, Ms. Mitchell Baker.&lt;br /&gt;
&lt;br /&gt;
== Policy ==&lt;br /&gt;
&lt;br /&gt;
Like our counterparts among the software industry and open source ecosystem, we occasionally need to list countries or other geographic areas in documentation, menus, mirror/FTP lists, or other contexts. In the spirit of [https://www.mozilla.org/en-US/about/governance/policies/participation/ Mozilla Community Participation Guidelines] on inclusion and diversity, we ask products and services associated with the Project to comply with the requirements as defined in the Policy.&lt;br /&gt;
&lt;br /&gt;
=== 0. Use of a country/region list ===&lt;br /&gt;
&lt;br /&gt;
Use of the list is not mandatory. With usability and practicality in mind, products and services may wish to use free form text box instead of asking users to select an entry from a supplied list. However, when a country/region list is introduced, the list used by products and services must comply with the Policy.&lt;br /&gt;
&lt;br /&gt;
Specifically, it is against the Policy to provide auto-complete hints based on existing user-supplied entries.&lt;br /&gt;
&lt;br /&gt;
=== 1. Introduce such list as &amp;quot;Countries or Regions&amp;quot; as opposed to &amp;quot;Countries&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
The Mozilla Project does not endorse or deny any sovereignty claim of any region listed. It&#039;s important to label the list as such to avoid implicitly making such acknowledgement.&lt;br /&gt;
&lt;br /&gt;
=== 2. Use ISO 3166 with amendments ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;official&amp;quot; ISO 3166 short English names for those countries and regions are in some cases controversial, and not all of them are commonly used in the software industry. We ask for the following amendments to be adopted when introducing the list on products and services:&lt;br /&gt;
&lt;br /&gt;
* Macedonia should be referred with only &amp;quot;Macedonia&amp;quot;, with no extra distinctions.&lt;br /&gt;
* Taiwan should be referred with only &amp;quot;Taiwan&amp;quot;, with no extra distinctions.&lt;br /&gt;
&lt;br /&gt;
Interpretation of these words is in the eye of the beholder. The Mozilla Project does not endorse any particular position.&lt;br /&gt;
&lt;br /&gt;
=== 3. Avoid associate entries on the list with extra information ===&lt;br /&gt;
&lt;br /&gt;
The entries on the list should never be associated with a national flag, or an image/map depicting the region boundary. The Mozilla Project does not associate nation-states with entries on the list, nor defining boundaries of any given entries.&lt;br /&gt;
&lt;br /&gt;
=== 4. Localization/translations of the entries ===&lt;br /&gt;
&lt;br /&gt;
We asks localization/translations of the list to comply with the Policy whenever possible. However it may be possible localization/translations of some entries could violate national law in the jurisdiction of participating contributors. In such cases or other similar cases, the Policy may be violated, provided that the localization/translations only impact the specific part of the world where the national law in question applies.&lt;br /&gt;
&lt;br /&gt;
=== 5. Amendment to the Policy ===&lt;br /&gt;
&lt;br /&gt;
Proposal of change to policy should be made on the mozilla-goverance mailing list, with a subject starting with &amp;quot;[country/region list]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/internal/i18n.html Internationalization Policy of the FreeBSD Project]&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1083940</id>
		<title>User:Timdream/I18n policy on contry region names</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1083940"/>
		<updated>2015-07-09T11:27:08Z</updated>

		<summary type="html">&lt;p&gt;Timdream: ref to the mozilla-goverance mailing list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mozilla Internationalization Policy on Country/Region Names =&lt;br /&gt;
&lt;br /&gt;
== Status of this document ==&lt;br /&gt;
&lt;br /&gt;
This document is a proposal unless a consensus is made on the mozilla-goverance mailing list, and approved by Chief Lizard Wrangler, Ms. Mitchell Baker.&lt;br /&gt;
&lt;br /&gt;
== Policy ==&lt;br /&gt;
&lt;br /&gt;
Like our counterparts among the software industry and open source ecosystem, we occasionally need to list countries or other geographic areas in documentation, menus, mirror/FTP lists, or other contexts. In the spirit of [https://www.mozilla.org/en-US/about/governance/policies/participation/ Mozilla Community Participation Guidelines] on inclusion and diversity, we ask products and services associated with the Project to comply with the requirements as defined in the Policy.&lt;br /&gt;
&lt;br /&gt;
=== 0. Use of a country/region list ===&lt;br /&gt;
&lt;br /&gt;
Use of the list is not mandatory. With usability and practicality in mind, products and services may wish to use free form text box instead of asking users to select an entry from a supplied list. However, when a country/region list is introduced, the list used by products and services must comply with the Policy.&lt;br /&gt;
&lt;br /&gt;
Specifically, it is against the Policy to provide auto-complete hints based on existing user-supplied entries.&lt;br /&gt;
&lt;br /&gt;
=== 1. Introduce such list as &amp;quot;Countries or Regions&amp;quot; as opposed to &amp;quot;Countries&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
The Mozilla Project does not endorse or deny any sovereignty claim of any region listed. It&#039;s important to label the list as such to avoid implicitly making such acknowledgement.&lt;br /&gt;
&lt;br /&gt;
=== 2. Use ISO 3166 with amendments ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;official&amp;quot; ISO 3166 short English names for those countries and regions are in some cases controversial, and not all of them are commonly used in the software industry. We ask for the following amendments to be adopted when introducing the list on products and services:&lt;br /&gt;
&lt;br /&gt;
* Macedonia should be referred with only &amp;quot;Macedonia&amp;quot;, with no extra distinctions.&lt;br /&gt;
* Taiwan should be referred with only &amp;quot;Taiwan&amp;quot;, with no extra distinctions.&lt;br /&gt;
&lt;br /&gt;
Interpretation of these words is in the eye of the beholder. The Mozilla Project does not endorse any particular position.&lt;br /&gt;
&lt;br /&gt;
=== 3. Avoid associate entries on the list with extra information ===&lt;br /&gt;
&lt;br /&gt;
The entries on the list should never be associated with a national flag, or an image/map depicting the region boundary. The Mozilla Project does not associate nation-states with entries on the list, nor defining boundaries of any given entries.&lt;br /&gt;
&lt;br /&gt;
=== 4. Localization/translations of the entries ===&lt;br /&gt;
&lt;br /&gt;
We asks localization/translations of the list to comply with the Policy whenever possible. However it may be possible localization/translations of some entries could violate national law in the jurisdiction of participating contributors. In such cases, the Policy may be violated, provided that the localization/translations only impact the specific part of the world where the national law in question applies.&lt;br /&gt;
&lt;br /&gt;
=== 5. Amendment to the Policy ===&lt;br /&gt;
&lt;br /&gt;
Proposal of change to policy should be made on the mozilla-goverance mailing list, with a subject starting with &amp;quot;[country/region list]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/internal/i18n.html Internationalization Policy of the FreeBSD Project]&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1083939</id>
		<title>User:Timdream/I18n policy on contry region names</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1083939"/>
		<updated>2015-07-09T11:24:28Z</updated>

		<summary type="html">&lt;p&gt;Timdream: remove words on set up a module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mozilla Internationalization Policy on Country/Region Names =&lt;br /&gt;
&lt;br /&gt;
== Status of this document ==&lt;br /&gt;
&lt;br /&gt;
This document is a proposal unless a consensus is made on dev-goverance, and approved by Chief Lizard Wrangler, Ms. Mitchell Baker.&lt;br /&gt;
&lt;br /&gt;
== Policy ==&lt;br /&gt;
&lt;br /&gt;
Like our counterparts among the software industry and open source ecosystem, we occasionally need to list countries or other geographic areas in documentation, menus, mirror/FTP lists, or other contexts. In the spirit of [https://www.mozilla.org/en-US/about/governance/policies/participation/ Mozilla Community Participation Guidelines] on inclusion and diversity, we ask products and services associated with the Project to comply with the requirements as defined in the Policy.&lt;br /&gt;
&lt;br /&gt;
=== 0. Use of a country/region list ===&lt;br /&gt;
&lt;br /&gt;
Use of the list is not mandatory. With usability and practicality in mind, products and services may wish to use free form text box instead of asking users to select an entry from a supplied list. However, when a country/region list is introduced, the list used by products and services must comply with the Policy.&lt;br /&gt;
&lt;br /&gt;
Specifically, it is against the Policy to provide auto-complete hints based on existing user-supplied entries.&lt;br /&gt;
&lt;br /&gt;
=== 1. Introduce such list as &amp;quot;Countries or Regions&amp;quot; as opposed to &amp;quot;Countries&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
The Mozilla Project does not endorse or deny any sovereignty claim of any region listed. It&#039;s important to label the list as such to avoid implicitly making such acknowledgement.&lt;br /&gt;
&lt;br /&gt;
=== 2. Use ISO 3166 with amendments ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;official&amp;quot; ISO 3166 short English names for those countries and regions are in some cases controversial, and not all of them are commonly used in the software industry. We ask for the following amendments to be adopted when introducing the list on products and services:&lt;br /&gt;
&lt;br /&gt;
* Macedonia should be referred with only &amp;quot;Macedonia&amp;quot;, with no extra distinctions.&lt;br /&gt;
* Taiwan should be referred with only &amp;quot;Taiwan&amp;quot;, with no extra distinctions.&lt;br /&gt;
&lt;br /&gt;
Interpretation of these words is in the eye of the beholder. The Mozilla Project does not endorse any particular position.&lt;br /&gt;
&lt;br /&gt;
=== 3. Avoid associate entries on the list with extra information ===&lt;br /&gt;
&lt;br /&gt;
The entries on the list should never be associated with a national flag, or an image/map depicting the region boundary. The Mozilla Project does not associate nation-states with entries on the list, nor defining boundaries of any given entries.&lt;br /&gt;
&lt;br /&gt;
=== 4. Localization/translations of the entries ===&lt;br /&gt;
&lt;br /&gt;
We asks localization/translations of the list to comply with the Policy whenever possible. However it may be possible localization/translations of some entries could violate national law in the jurisdiction of participating contributors. In such cases, the Policy may be violated, provided that the localization/translations only impact the specific part of the world where the national law in question applies.&lt;br /&gt;
&lt;br /&gt;
=== 5. Amendment to the Policy ===&lt;br /&gt;
&lt;br /&gt;
Proposal of change to policy should be made on dev-goverance, with a subject starting with &amp;quot;[country/region list]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/internal/i18n.html Internationalization Policy of the FreeBSD Project]&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Gaia/Team/Taipei&amp;diff=1083366</id>
		<title>Gaia/Team/Taipei</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Gaia/Team/Taipei&amp;diff=1083366"/>
		<updated>2015-07-07T08:36:51Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Weekly Update */ update for July 7&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gaia teams in Taipei, Taiwan =&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
Alphabetically ordered by ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- an HTML4 table! Would love to know what&#039;s the better way to represent this style in MediaWiki syntax semantically --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
| https://secure.gravatar.com/avatar/f376b438280ff00eb2d7c016e0703d58?s=120#.png&lt;br /&gt;
[https://github.com/begeeben Yi-Fan Liao (begeeben)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/e333342f0afd23d7212e0cbaa6e00e3c?s=120#.png&lt;br /&gt;
[https://github.com/dominickuo Dominic Kuo (dominickuo)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/32f42d56f6770abcbb7c8da456af5891?s=120#.png&lt;br /&gt;
[https://github.com/dwi2 Tzu-Lin Huang (dwi2)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/c41f912d929a213cba048104b3697b88?s=120#.png&lt;br /&gt;
[https://github.com/evanxd Evan Tseng (evanxd)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/0ccfea05555478e088acf331824b70c1?s=120#.png&lt;br /&gt;
[https://github.com/evelynhung Evelyn Hung (evelynhung)]&lt;br /&gt;
|-&lt;br /&gt;
| https://secure.gravatar.com/avatar/84460b786102047f6b74522ef62d7ac3?s=120#.png&lt;br /&gt;
[https://github.com/gasolin Fred Lin (gasolin)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/06d79ed4b67a4721e8e59295fb9f4ae6?s=120#.png&lt;br /&gt;
[https://github.com/huchengtw-moz John Hu (huchengtw-moz)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/97614f2541c088277e57085f31cdf546?s=120#.png&lt;br /&gt;
[https://github.com/ian-liu Ian Liu (Ian-liu)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/91513261a498767bb7ecd2c38c994f5a?s=120#.png&lt;br /&gt;
[https://github.com/luke-chang Luke Chang (luke-chang)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/ba973db1f571a1bc3ac86cb4d674c32a?s=120#.png&lt;br /&gt;
[https://github.com/rexboy7 Rex KM Lee (rexboy7)]&lt;br /&gt;
|-&lt;br /&gt;
| https://secure.gravatar.com/avatar/abf92b0a6c66cf51277f0ab014a29446?s=120#.png&lt;br /&gt;
[https://github.com/RickyChien Ricky Chien (rickychien)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/a45359e3fe86aeca5b166ed821964b0b?s=120#.png&lt;br /&gt;
[https://github.com/snowmantw Greg Weng (snowmantw)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/0e719389c6f6e17e5693819fc9a5722a?s=120#.png&lt;br /&gt;
[https://github.com/steveck-chung Steve Chung (steveck-chung)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/2becaf1073957bdad2f06e183731131d?s=120#.png&lt;br /&gt;
[https://github.com/timdream Tim Guan-tin Chien (timdream)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/68fd0daa80b4f077a530ae6915a6ece5?s=120#.png&lt;br /&gt;
[https://github.com/weilonge Sean Lee (weilonge)]&lt;br /&gt;
|-&lt;br /&gt;
| http://lorempixel.com/120/120/cats/?_=X#.png&lt;br /&gt;
[http://mozilla.com.tw/about/careers/ We are hiring!]&lt;br /&gt;
|}&lt;br /&gt;
=== Interns ===&lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
| http://lorempixel.com/120/120/cats/#.png&lt;br /&gt;
[http://mozilla.com.tw/about/intern/ Internship opportunity @ Mozilla Taiwan]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alumni ===&lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
| http://lorempixel.com/120/120/cats/#.png&lt;br /&gt;
[https://github.com/mozshiao9 Mark Shiao (mozshiao9)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/a357616c0a9197fccbaf5aceb92d94f3?s=120#.png &lt;br /&gt;
[https://github.com/yurenju Yuren Ju (yurenju)]&lt;br /&gt;
| https://avatars3.githubusercontent.com/u/5014150?s=120#.png&lt;br /&gt;
[https://github.com/mnjul Min-Zhong &amp;quot;John&amp;quot; Lu (mnjul)]&lt;br /&gt;
| https://avatars.githubusercontent.com/u/6240413?s=120#.png&lt;br /&gt;
[https://github.com/weilonge Sung Chiu (sean2449)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/adc421ca1f85f9d54e02a7c3c779d914?s=120#.png&lt;br /&gt;
[https://github.com/shamenchens Sherman Chen (shamenchens)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/2200ce74246a04126cf04cfa39ff0c37?s=120#.png&lt;br /&gt;
[https://github.com/alivedise Alive Kuo (alivedise)]&lt;br /&gt;
|-&lt;br /&gt;
| https://secure.gravatar.com/avatar/ab20989d946f4bd31c590b5a6ef73f7a?s=120#.png&lt;br /&gt;
[https://github.com/crh0716 Arthur Chen (crh0716)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/c467be2c8057ee9a73735ee2bd269504?s=120#.png&lt;br /&gt;
[https://github.com/EragonJ EJ Chen (EragonJ)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/3559bf9e05fa7f8937efd88cde038ff3?s=120#.png&lt;br /&gt;
[https://github.com/cctuan George Tuan (cctuan)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/4c3b3f1dbe118b705bfb68cb82351896?s=120#.png&lt;br /&gt;
[https://github.com/RudyLu Rudy Lu (RudyLu)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/b729f44cee25bbef242e2d9144df5ef1?s=120#.png&lt;br /&gt;
[https://github.com/mpizza Gary Chen (mpizza)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Update ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;&amp;quot;&amp;gt;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:small&amp;quot;&amp;gt;Nothing is committed until it lands in a release :) .&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the features mainly driven by the Taipei teams, in cooperation with other teams in Taipei and around the world. We are not meant to take all the credit :)&lt;br /&gt;
&lt;br /&gt;
=== Tim ===&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/user_profile?login=timdream%40gmail.com Read my Bugzilla profile]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=assignee%3Atimdream%40gmail.com Open bugs assigned to me] (ASSIGNED = current working on; NEW = backlog)&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
&lt;br /&gt;
* {{bug|1137557}} InputMethod API to work with D3E -- stuck on a native async bug&lt;br /&gt;
** {{bug|1162360}} Remove form.js focus event timing -- found fixes for test crash and Gij failure, landed.&lt;br /&gt;
*** Got many regressions and fixed accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Rudy ===&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
===== Emoji layout =====&lt;br /&gt;
* {{Bug|1157558}} - Implement DynamicLayoutPage for recently used emojis.&lt;br /&gt;
** need to address the feedback comment.&lt;br /&gt;
===== New keyboard layouts =====&lt;br /&gt;
* {{Bug|1114864}} - Request to add Igbo (ig) keyboard to Firefox OS.&lt;br /&gt;
** landed to master.&lt;br /&gt;
** Prepared patches for v2.2 and v2.1.&lt;br /&gt;
* {{Bug|1114866}} - Request to add Hausa (ha) keyboard to Firefox OS - multiple branches.&lt;br /&gt;
** Need to clarify the layout question raised by the contributor.&lt;br /&gt;
* {{Bug|1153136}} - Add keyboard layout for Frisian (fy).&lt;br /&gt;
** will land soon.&lt;br /&gt;
* {{Bug|1149029}} - Create Tagalog word list for autocorrect.&lt;br /&gt;
** waiting for feedback.&lt;br /&gt;
* {{Bug|1114863}} - Add Yoruba (yo) keyboard to Firefox OS - multiple branches.&lt;br /&gt;
** still waiting for feedback.&lt;br /&gt;
===== Keyboard issues =====&lt;br /&gt;
* {{Bug|1162680}}- [Contacts] Hitting the X (back/cancel) while loading the Gmail/Outlook import contacts sign-in will cause the keyboard to become stuck on the screen.&lt;br /&gt;
** landed.&lt;br /&gt;
** Create a follow-up bug to add the mochitest.&lt;br /&gt;
===== Code Reviews =====&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
===== Keyboard integration tests =====&lt;br /&gt;
* Continue to work on {{Bug|928805}} - (vkb-integration) [meta][keyboard][integration] Improve integration test coverage for Gaia keyboard&lt;br /&gt;
===== Emoji layout =====&lt;br /&gt;
* {{Bug|1157558}} - Implement DynamicLayoutPage for recently used emojis.&lt;br /&gt;
===== New keyboard layouts =====&lt;br /&gt;
* {{Bug|1114866}} - Request to add Hausa (ha) keyboard to Firefox OS - multiple branches.&lt;br /&gt;
* {{Bug|1149029}} - Create Tagalog word list for autocorrect.&lt;br /&gt;
* {{Bug|1114863}} - (yoruba-keyboard) Add Yoruba (yo) keyboard to Firefox OS - multiple branches.&lt;br /&gt;
* {{Bug|1153136}} - Add keyboard layout for Frisian (fy).&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
* Keyboard integration test&lt;br /&gt;
** Test plan - https://gaia.hackpad.com/Automation-UI-Test-Plan-for-Keyboard-App-QPMn2HHoOjo.&lt;br /&gt;
&lt;br /&gt;
* Keyboard Roadmap&lt;br /&gt;
** https://wiki.mozilla.org/Gaia/System/Keyboard/Roadmap&lt;br /&gt;
&lt;br /&gt;
=== Ian ===&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=assignee%3Ailiu%40mozilla.com Open bugs assigned to me] (ASSIGNED = current working on; NEW = backlog)&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
* {{Bug|1166636}}: In-line paired devices appear in both &#039;Paired devices&#039; and &#039;Devices in the area&#039; sections of Settings app(2.2+, fixed)&lt;br /&gt;
* {{Bug|1168332}}: [Bluetooth] After user unlock device pairing request window will not shows up.(spec. definition, fixed via INVALID)&lt;br /&gt;
* {{Bug|1168327}}: [Bluetooth]Long device names overlap icons in the device lists.(regression, won&#039;t fixed since regression patch is reverted)&lt;br /&gt;
* {{Bug|1168325}}: [Bluetooth][API v2]When user shares pictures with bluethooth in Gallery, sometimes the Bluetooth can&#039;t be invoked(fixed)&lt;br /&gt;
* {{Bug|973451}}: [settings] refactor Media storage panel with AMD pattern(WIP)&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
* {{Bug|973451}}: [settings] refactor Media storage panel with AMD pattern(WIP)&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
* Bluetooth:&lt;br /&gt;
** WebBluetooth-v2: Plan to implement Settings::Bluetooth for new API.(https://wiki.mozilla.org/B2G/Bluetooth/WebBluetooth-v2)&lt;br /&gt;
** Tracking Meta Bug: {{Bug|1072721}}: (Gaia-BT-v2-API) (Gaia-Bluetooth-Support-v2-API)[Gaia][Bluetooth][v2 API][Meta]&lt;br /&gt;
** Gaia works done besides of {{Bug|1090799}}(third reviewing process) (https://taiwan.etherpad.mozilla.org/gaia-bluetoothv2)&lt;br /&gt;
** Schedule: &lt;br /&gt;
*** QA Testing Round 2 5/11 - 5/15 (1 week, might to 5/28)&lt;br /&gt;
** BT APIv2 Switch Plan:&lt;br /&gt;
*** https://docs.google.com/document/d/1ZS6-uNS71CkGBI3KLWuLGtl2ToAd8VbE-VhnZFecPL8/edit?pli=1&lt;br /&gt;
** Feature backlog:&lt;br /&gt;
*** {{Bug|1121913}}: [Bluetooth][Settings][User Story] A timer to control the property visible while turning it on.(WIP, re-confirm with UX/VD, need platform support)&lt;br /&gt;
*** {{Bug|1088017}}: User not able to accept multiple files sent over BT(WIP, need platform support)&lt;br /&gt;
*** {{Bug|988116}}: Bluetooth file transfer leaves too many notifications(reorganise notification of file transfer, on discussion)&lt;br /&gt;
*** {{Bug|1166229}}: [Bluetooth] When we tap &amp;quot;Pair&amp;quot; after PIN code appears, it shows &#039;Unable to pair devices&#039;, but then bluetooth pairing succeeds.(on discussion)&lt;br /&gt;
&lt;br /&gt;
* SD Card management:&lt;br /&gt;
** Spec. https://bugzilla.mozilla.org/show_bug.cgi?id=921105#c23&lt;br /&gt;
*** Follow up for enable/disable mount/unmount button since attribute &amp;quot;isRemovable&amp;quot; is landed({{Bug|1033952}}).&lt;br /&gt;
&lt;br /&gt;
* NFC share files via Bluetooth:&lt;br /&gt;
** Follow up for https://bugzilla.mozilla.org/show_bug.cgi?id=998175#c20&lt;br /&gt;
*** Provide id for NFC file sending.&lt;br /&gt;
*** Have to find out a way for race condition.&lt;br /&gt;
&lt;br /&gt;
=== Steve ===&lt;br /&gt;
&lt;br /&gt;
==== Done ====&lt;br /&gt;
* new gaia architecture&lt;br /&gt;
** Spend some time to discuss about the how to deal with service and API wrapper.&lt;br /&gt;
&lt;br /&gt;
** (f+) {{Bug|1171865}} - [Messages][NG] Layout mozMobileMessageShim structure&lt;br /&gt;
*** Create a first version of the API shim and feedback granted&lt;br /&gt;
&lt;br /&gt;
==== Ongoing ====&lt;br /&gt;
* new gaia architecture&lt;br /&gt;
** (Ongoing) {{Bug|1169541}} - [Messages] [NGA] Refine the thread query and move draft query/getThreads API into conversation service / messaging service&lt;br /&gt;
*** No progress.&lt;br /&gt;
** (Pending) {{Bug|1169573}} - [Messages][NG] Layout Messaging service structure&lt;br /&gt;
*** Got some feedback from peers and we decide to wait for message api shim first.&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
* New gaia architecture in message app:&lt;br /&gt;
** Milestone planning: https://etherpad.mozilla.org/sms-milestone-planning&lt;br /&gt;
** Sprint planning: https://etherpad.mozilla.org/sms-planning&lt;br /&gt;
*** We underestimated the efforts for client-serivce structure and it might need more discussing and redesign for the NGA. In the new milestone we divide the task into more detailed use case and will create layout shell for service first instead of migrating module into single service all at once.&lt;br /&gt;
*** In the new sprint, we will focus on conversation service and messaging service layout first and the actually methods for inbox view only.&lt;br /&gt;
&lt;br /&gt;
=== Dominic ===&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
* Music&lt;br /&gt;
** Sent out the next steps for NGA music&lt;br /&gt;
*** Three modules we should make them as services: 1) MediaDB + Metadata Parser 2) Remote Controls 3) Player Logic&lt;br /&gt;
** {{Bug|1161492}} - [Music] [Front-end] Use independent tabs for each view&lt;br /&gt;
*** r?, but looks like Jim is busy on something else and didn&#039;t response this.&lt;br /&gt;
** {{Bug|1172403}} - [Music] [Front-end] Disable the fade-in animation for album art.&lt;br /&gt;
*** A followup of {{Bug|1168549}} and fixed on both master and v2.2.&lt;br /&gt;
* Audio channel services weekly sync up.&lt;br /&gt;
** {{Bug|1159610}} - [Callscreen] Use the telephony&#039;s audio channel api to make telephony channel manageable by System app&lt;br /&gt;
*** Landed, the Callscreen app is ready for the new audio channel service.&lt;br /&gt;
* Reviews and needinfos.&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
* Music&lt;br /&gt;
** {{Bug|1161492}} - [Music] [Front-end] Use independent tabs for each view.&lt;br /&gt;
*** Wait for the review then land this.&lt;br /&gt;
** {{Bug|1161488}} - [Music] [Front-end] Use independent title for each view.&lt;br /&gt;
* Audio channel services weekly sync up.&lt;br /&gt;
** Hope we can land the rest gecko/gaia bugs for the system audio channel so that we can land the last gecko patch for the audio channel api.&lt;br /&gt;
* Reviews and needinfos.&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
* Music refactoring meta bug is filed in {{Bug|1053677}}.&lt;br /&gt;
** {{Bug|1055043}} - [Music] modularize the views. (landed)&lt;br /&gt;
** {{Bug|1055049}} - [Music] modify of the dom layout and the page transitions (landed).&lt;br /&gt;
** {{Bug|1012613}} - [Music] Proposal for splitting the Music app into UI and Player.&lt;br /&gt;
* Sound UX update:&lt;br /&gt;
** {{Bug|991026}} - (Meta) Sound and audio channel volume spec.&lt;br /&gt;
* Audio competing&lt;br /&gt;
** Meetings for REQ for Multimedia platform.&lt;br /&gt;
&lt;br /&gt;
=== Alive ===&lt;br /&gt;
==== This week ====&lt;br /&gt;
* {{Bug|1094759}} - r+, Daily rebasing, QA-approvaling&lt;br /&gt;
** Fixed passcode config timing issue.&lt;br /&gt;
* {{Bug|1154965}} - The SIM / Data icons remain in the notification bar in their &#039;searching&#039; animation after turning on Airplane Mode - regression of bug 1098168, r?=michael&lt;br /&gt;
* {{Bug|1118669}} - Follow up of Bug 1082444. User can see &amp;quot;Check Settings&amp;quot; button and it cannot work after on/off network - WIP&lt;br /&gt;
* {{Bug|1108271}} - [System] Only start the idle timer until the boot is complete&lt;br /&gt;
&lt;br /&gt;
==== Next week ====&lt;br /&gt;
* Land and watch following issue for bug 1094759&lt;br /&gt;
&lt;br /&gt;
=== Arthur ===&lt;br /&gt;
* Spark&lt;br /&gt;
** {{Bug|1172155}} - What should the user see when enabling USB Storage and no UMS devices are available&lt;br /&gt;
*** Landed&lt;br /&gt;
** {{Bug|1173522}} - Tie &amp;quot;Factory Reset and Enable Full DevTools&amp;quot; toggle into &amp;quot;full-developer-mode&amp;quot; flow&lt;br /&gt;
*** Reviewing&lt;br /&gt;
&lt;br /&gt;
* Feature&lt;br /&gt;
** {{Bug|1166909}} - [Settings][WiFi] The device MAC Address is highlighted when tapped, but it is not a selectable item.&lt;br /&gt;
*** Landed&lt;br /&gt;
&lt;br /&gt;
==== To do ====&lt;br /&gt;
* Write documents&lt;br /&gt;
&lt;br /&gt;
* Review settings app architecture&lt;br /&gt;
** Refactor the remaining un-modular code (call/carrier/media storage).&lt;br /&gt;
** Identify the required features for supporting multiple form factors and easy customization.&lt;br /&gt;
*** Clear view/logic separation&lt;br /&gt;
*** Build-time/run-time options for settings on various requirements&lt;br /&gt;
*** Module reusability across the platform&lt;br /&gt;
* Blockers if any.&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
* Settings roadmap - https://wiki.mozilla.org/Gaia/Settings&lt;br /&gt;
&lt;br /&gt;
=== Evan ===&lt;br /&gt;
==== Last week ====&lt;br /&gt;
* {{Bug|1177254}} - Move the &#039;audio-channel-changed&#039; and &#039;visible-audio-channel-changed&#039; events to Gaia::AudioChannelService&lt;br /&gt;
** Landed.&lt;br /&gt;
* {{Bug|1179190}} - Disable test_play_ogv_video, test_play_webm_video, and test_play_ogg_video tests because of Bug 1113086&lt;br /&gt;
** Landed.&lt;br /&gt;
&lt;br /&gt;
==== Next week ====&lt;br /&gt;
* {{Bug|1113086}} - Implement AudioChannel API into BrowserElement&lt;br /&gt;
** Help to fix failures of Gij and Gip tasks in [1].&lt;br /&gt;
* {{Bug|1093516}} - [System2] Migrate AppUpdate/InstallDialog to SystemDialog&lt;br /&gt;
** Update patch for comments.&lt;br /&gt;
* {{Bug|1179689}} - Re-enable test_play_ogv_video, test_play_webm_video, and test_play_ogg_video tests after Bug 1113086 is landed&lt;br /&gt;
** We can re-enable the tests after Bug 1113086 is fixed.&lt;br /&gt;
&lt;br /&gt;
[1]: https://treeherder.mozilla.org/#/jobs?repo=try&amp;amp;revision=0ab88701ebe2&lt;br /&gt;
&lt;br /&gt;
=== Fred ===&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=assignee%3Agasolin%40mozilla.com Open bugs assigned to me] (ASSIGNED = current working on; NEW = backlog)&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
&lt;br /&gt;
* [merged] make minimum boot-able system core https://github.com/jgyos/system/issues/1&lt;br /&gt;
* [merged] {{bug|1179582}} - [system] code clean up&lt;br /&gt;
* [r+ &amp;amp; landed]{{bug|1177931}} - [hackerspace][studio] has wrong developer name&lt;br /&gt;
&lt;br /&gt;
Tracing&lt;br /&gt;
* {{bug|1175955}} - passive pairing not work when fresh flash&lt;br /&gt;
&lt;br /&gt;
Review&lt;br /&gt;
&lt;br /&gt;
* {{bug|1170463}} - [Camera] fix remain jsdoc error&lt;br /&gt;
&lt;br /&gt;
Clean ni&lt;br /&gt;
&lt;br /&gt;
* {{bug|1146818}} - [Bluetooth][System] headphone status icon not shown properly when device reconnected in APIv2&lt;br /&gt;
* {{bug|1176527}} - Failure in test_bluetooth.py unit test in GaiaDataLayer.enableBluetooth&lt;br /&gt;
* {{bug|1176185}} - [Bluetooth]Bluetooth transfer request will disappear after we lock screen.&lt;br /&gt;
* {{bug|918139}} - The background of the microphone icon does not match the color of the background of the permission prompt&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
Fixing BT related issues.&lt;br /&gt;
&lt;br /&gt;
* {{bug|1175955}} - passive pairing not work when fresh flash&lt;br /&gt;
** identify the root cause and greg will solve this issue in other bug&lt;br /&gt;
&lt;br /&gt;
WIP&lt;br /&gt;
* {{bug|1179174}} - [Notifications] After restarting the device, user can&#039;t open the received file via Bluetooth at Notification.&lt;br /&gt;
* {{bug|1176185}} - [Bluetooth]Bluetooth transfer request will disappear after we lock screen.&lt;br /&gt;
&lt;br /&gt;
==== Topic status update ====&lt;br /&gt;
&lt;br /&gt;
CSS in gaia:&lt;br /&gt;
* Organize meetup in whistler for moz-components related people (gaia, gecko wc, xtag, appmaker)&lt;br /&gt;
** UX confirm the gaia component UI &#039;&#039;&#039;wont&#039;&#039;&#039; be used in 2.5&lt;br /&gt;
* create IsGaiaComponentReady page on mozilla wiki https://wiki.mozilla.org/Gaia/Shared/Components&lt;br /&gt;
** In current survey, all concerns about gaia-components can be resolved, will review and provide proposals for more components.&lt;br /&gt;
** link bugs and resources&lt;br /&gt;
** document basic treatment to improve components&lt;br /&gt;
&lt;br /&gt;
=== George ===&lt;br /&gt;
&lt;br /&gt;
==== Since last meeting ====&lt;br /&gt;
&lt;br /&gt;
* ({{Bug|1154582}}) - Build system configure - adding configure.js to generate strong dependency all.mk and execute it - landed&lt;br /&gt;
** land to https://github.com/cctuan/gaia/tree/config-build&lt;br /&gt;
* ({{Bug|1154583}}) - Configure re-run step, wip&lt;br /&gt;
** figuring out how to package necessary files to zip after removing clear-build-app step&lt;br /&gt;
* ({{Bug|1170430}}) - [NewBuild] keyboard_layout.json cannot found - wip&lt;br /&gt;
** waiting for test on config-build branch&lt;br /&gt;
* ({{Bug|1169206}}) - Error when 2nd make - landed&lt;br /&gt;
* ({{Bug|1163957}}) - [NFC]Can&#039;t share screenshot from notification preview page - landed&lt;br /&gt;
* ({{Bug|1167516}}) - Enable marionette text_selection_test.js - landed&lt;br /&gt;
** SpecialPowers has been removed from marionette, file bug 1168326 for follow-up.&lt;br /&gt;
&lt;br /&gt;
==== TODO ====&lt;br /&gt;
* Fix and investigate above bugs.&lt;br /&gt;
* configureDecider should be able to prevent reconfig in new build and rebuild in old build.&lt;br /&gt;
&lt;br /&gt;
==== Topic status update ====&lt;br /&gt;
* Copy-paste&#039;s META bug ({{Bug|1023688}})&lt;br /&gt;
* New build wiki https://wiki.mozilla.org/Gaia/Build/NewBuildSystem&lt;br /&gt;
&lt;br /&gt;
=== Greg ===&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
&lt;br /&gt;
* Wrap bluetooth v2 API to a library for IoT/WoT, which could save developers from manipulating those too verbosed functions.&lt;br /&gt;
** BlueFind: https://github.com/snowmantw/bluefind&lt;br /&gt;
** Would develop more libraries like this.&lt;br /&gt;
&lt;br /&gt;
* Help Thinker to make a JavaScript optimizer worker. A very interesting project.&lt;br /&gt;
* The related &#039;DeviceWorker(s)&#039; looks like a potential way to solve our current blocking API flow.&lt;br /&gt;
** For example: &#039;GPIOWorker&#039; which expose those experimental APIs only in the worker, and it has the isolated HAL so we can keep away from arguing how to integrate it into Gecko. If we can implement this worker as an add-on, it would be more modularized.&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
&lt;br /&gt;
* Continue whatever I list above.&lt;br /&gt;
* Pending bugs:&lt;br /&gt;
** {{bug|1150258}} [Windows Management][Camera Lockscreen]The user is able to access the homescreen AND camera passcode lockscreen share activity at the same time -- Alive vs. UX; NI rounds&lt;br /&gt;
&lt;br /&gt;
==== Topic status update ====&lt;br /&gt;
&lt;br /&gt;
=== EJ ===&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
&lt;br /&gt;
[Bugs]&lt;br /&gt;
* {{Bug|1164346}} - Add string ID check to hint developers that they are updating a string without using a new string ID&lt;br /&gt;
** r+ &amp;amp; landed&lt;br /&gt;
* {{Bug|1159177}} - [Wifi]User can join hidden network without ssid name.&lt;br /&gt;
** r+ &amp;amp; landed&lt;br /&gt;
* {{Bug|942365}} - [B2G][Settings][SIM Security] On Change PIN screen entering 4 digits in any field highlights the &amp;quot;Done&amp;quot; button&lt;br /&gt;
** r+ &amp;amp; landed&lt;br /&gt;
* {{Bug|1166589}} - Support l20n file in pre-commit hook &lt;br /&gt;
** Discussing how to make this work&lt;br /&gt;
* {{Bug|1165815}} - [Settings] If there are some errors coming up when joining AP, we should hint users with some messages&lt;br /&gt;
** With WIP, waiting for Gecko&#039;s response&lt;br /&gt;
* {{Bug|998226}} - [wifi][Gaia] To support EAP-TLS and manage user certificate in WLAN setting. &lt;br /&gt;
** With WIP, waiting for UX&#039;s spec &amp;amp; Gecko&#039;s API&lt;br /&gt;
&lt;br /&gt;
[Review/Feedback]&lt;br /&gt;
* {{Bug|1165600}} - [Settings] Migrate to tagged template strings&lt;br /&gt;
** Gave r+&lt;br /&gt;
* {{Bug|1158351}} - Add unit tests for WifiHelper.isValidInput method &lt;br /&gt;
** Gave r+&lt;br /&gt;
* {{Bug|1162276}} - Display the current timezone information when auto time zone is enabled&lt;br /&gt;
** Gave r+&lt;br /&gt;
* {{Bug|1164797}} - Only display the timezone info when auto timezone is available&lt;br /&gt;
** Gave r+&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
&lt;br /&gt;
[Bugs]&lt;br /&gt;
* {{Bug|998226}} - [wifi][Gaia] To support EAP-TLS and manage user certificate in WLAN setting.&lt;br /&gt;
** With WIP, waiting for Vincent&#039;s patch for Gecko&lt;br /&gt;
* {{Bug|1165815}} - [Settings] If there are some errors coming up when joining AP, we should hint users with some messages.&lt;br /&gt;
** With WIP, waiting for Vincent&#039;s response &lt;br /&gt;
* {{Bug|1166495}} - [Settings][Screen lock] Passcode lock screen transition animation flows in the wrong direction&lt;br /&gt;
** With WIP, waiting for Arthur&#039;s review&lt;br /&gt;
&lt;br /&gt;
[Review/Feedback]&lt;br /&gt;
* {{Bug|973459}} - [settings] refactor Cellular &amp;amp; Data panel with AMD pattern&lt;br /&gt;
** Reviewing&lt;br /&gt;
&lt;br /&gt;
==== Topic status update ====&lt;br /&gt;
&lt;br /&gt;
[Settings]&lt;br /&gt;
* None&lt;br /&gt;
&lt;br /&gt;
=== Ricky ===&lt;br /&gt;
&lt;br /&gt;
==== Last meeting ====&lt;br /&gt;
&lt;br /&gt;
[Build System]&lt;br /&gt;
&lt;br /&gt;
* Landed - {{bug|1154585}} - Refactoring webapp-shared.js for new build system&lt;br /&gt;
* Implementing configure-decider.js&lt;br /&gt;
&lt;br /&gt;
==== This meeting ====&lt;br /&gt;
&lt;br /&gt;
[Build System]&lt;br /&gt;
&lt;br /&gt;
* Clean up review &amp;amp; needinfo queue&lt;br /&gt;
&lt;br /&gt;
= Bugzilla queries =&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[https://bugzilla.mozilla.org/page.cgi?id=mydashboard.html Your Bugzilla Dashboard]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&amp;amp;j26=OR&amp;amp;f35=OP&amp;amp;list_id=9789226&amp;amp;f44=CP&amp;amp;f68=CP&amp;amp;f39=CP&amp;amp;v57=iliu%40mozilla.com&amp;amp;f49=CP&amp;amp;f30=OP&amp;amp;f51=OP&amp;amp;j6=OR&amp;amp;j31=OR&amp;amp;j56=OR&amp;amp;v62=evanxd%40mozilla.com&amp;amp;f13=CP&amp;amp;o2=substring&amp;amp;f66=OP&amp;amp;f23=CP&amp;amp;f29=CP&amp;amp;f25=OP&amp;amp;v42=alive%40mozilla.com&amp;amp;f27=assigned_to&amp;amp;v47=dkuo%40mozilla.com&amp;amp;o12=substring&amp;amp;v52=gasolin%40mozilla.com&amp;amp;o17=substring&amp;amp;f58=CP&amp;amp;v2=rlu%40mozilla.com&amp;amp;f21=OP&amp;amp;o57=substring&amp;amp;f10=OP&amp;amp;f32=assigned_to&amp;amp;f19=CP&amp;amp;v37=yurenju.mozilla%40gmail.com&amp;amp;j46=OR&amp;amp;j66=OR&amp;amp;v32=gduan.moz%40gmail.com&amp;amp;j41=OR&amp;amp;f56=OP&amp;amp;f34=CP&amp;amp;f42=assigned_to&amp;amp;f64=CP&amp;amp;j21=OR&amp;amp;o47=substring&amp;amp;f15=OP&amp;amp;o52=substring&amp;amp;o67=substring&amp;amp;o32=substring&amp;amp;f46=OP&amp;amp;f50=OP&amp;amp;f4=CP&amp;amp;f67=assigned_to&amp;amp;f2=assigned_to&amp;amp;j36=OR&amp;amp;v12=ejchen%40mozilla.com&amp;amp;f54=CP&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;f62=assigned_to&amp;amp;f38=CP&amp;amp;f17=assigned_to&amp;amp;f65=OP&amp;amp;o22=substring&amp;amp;f7=assigned_to&amp;amp;v22=ricky060709%40gmail.com&amp;amp;f36=OP&amp;amp;v27=schung%40mozilla.com&amp;amp;f26=OP&amp;amp;f52=assigned_to&amp;amp;f57=assigned_to&amp;amp;f28=CP&amp;amp;j16=OR&amp;amp;j11=OR&amp;amp;j61=OR&amp;amp;f12=assigned_to&amp;amp;o37=substring&amp;amp;j51=OR&amp;amp;f14=CP&amp;amp;f60=OP&amp;amp;f43=CP&amp;amp;f24=CP&amp;amp;f47=assigned_to&amp;amp;f59=CP&amp;amp;f69=CP&amp;amp;f22=assigned_to&amp;amp;f48=CP&amp;amp;f31=OP&amp;amp;f1=OP&amp;amp;f37=assigned_to&amp;amp;o7=substring&amp;amp;f20=OP&amp;amp;f33=CP&amp;amp;f0=OP&amp;amp;f8=CP&amp;amp;f18=CP&amp;amp;v67=gweng%40mozilla.com&amp;amp;o42=substring&amp;amp;v7=timdream%40gmail.com&amp;amp;f9=CP&amp;amp;f45=OP&amp;amp;query_format=advanced&amp;amp;j1=OR&amp;amp;f3=CP&amp;amp;v17=arthur.chen%40mozilla.com&amp;amp;f53=CP&amp;amp;f55=OP&amp;amp;f61=OP&amp;amp;f11=OP&amp;amp;f41=OP&amp;amp;o62=substring&amp;amp;f5=OP&amp;amp;f6=OP&amp;amp;f63=CP&amp;amp;o27=substring&amp;amp;f40=OP&amp;amp;f16=OP Assigned to team]&lt;br /&gt;
&lt;br /&gt;
== v1.3 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=1.3%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=1.3%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=1.3T%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3T+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=1.3T%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3T?] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== v1.4 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=1.4%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.4+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=1.4%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.4?] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== v2.0 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.0%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.0+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.0&amp;amp;f7=component&amp;amp;o8=substring feature: 2.0]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.0%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.0?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.0&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.0] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== v2.1 ==&lt;br /&gt;
&lt;br /&gt;
*[https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.1%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.1+]&lt;br /&gt;
* [http://mzl.la/1x9FKJB blocking: 2.1+] (without systemsfe)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.1&amp;amp;f7=component&amp;amp;o8=substring feature: 2.1]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.1%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.1?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.1&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.1] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.1&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;f15=CP&amp;amp;f16=status_whiteboard&amp;amp;v16=systemsfe&amp;amp;o16=substring&amp;amp;n16=1&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.1] (including fixed bugs; without systemsfe)&lt;br /&gt;
&lt;br /&gt;
== v2.2 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.2%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.2+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.2%2B&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.2%3F&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2?]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.2%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.2?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.2%2B&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2+] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.2%2B&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;f15=CP&amp;amp;f16=status_whiteboard&amp;amp;v16=systemsfe&amp;amp;o16=substring&amp;amp;n16=1&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2+] (including fixed bugs; without systemsfe)&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=backlog&amp;amp;f7=component&amp;amp;o8=substring blocking-b2g: backlog]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=substring&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_tracking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=%2B&amp;amp;f7=component&amp;amp;o8=substring tracking-b2g: +]&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;o13=equals&amp;amp;list_id=11471599&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;f13=component&amp;amp;o2=substring&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;f12=component&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;o12=equals&amp;amp;j4=OR&amp;amp;v2=%5Bpriority%5D&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;o7=equals&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;o6=equals&amp;amp;f9=status_whiteboard&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f4=OP&amp;amp;o10=equals&amp;amp;query_format=advanced&amp;amp;f3=CP&amp;amp;f2=status_whiteboard&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f11=component&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring tagged with &amp;lt;nowiki&amp;gt;[priority]&amp;lt;/nowiki&amp;gt; on Whiteboard] (deprecated; should be using blocking-b2g: backlog)&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=substring&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: Everything+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=substring&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: Everything?] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== etc ==&lt;br /&gt;
&lt;br /&gt;
* Components under our watch: Gaia::Bluetooth File Transfer, Gaia::Build, Gaia::Keyboard, Gaia::Settings, Gaia::System::Lockscreen, Gaia::System::Input Mgmt, Gaia::System::Window Mgmt.&lt;br /&gt;
* Team/feature tag(s): [FT:System-Platform], [3rd-party-keyboard]&lt;br /&gt;
&lt;br /&gt;
* [http://andreasgal.github.io/dashboard/?filtercomponents=Gaia::Bluetooth%20File%20Transfer,Gaia::Build,Gaia::Keyboard,Gaia::Settings,Gaia::System::Input%20Mgmt,Gaia::System::Lockscreen,Gaia::System::Window%20Mgmt Andreas&#039;s Dashboard for the team]&lt;br /&gt;
* [http://charts.mozilla.org/ffos/ The Dashboard]&lt;br /&gt;
&lt;br /&gt;
= Story Points, Target Milestone and ETA=&lt;br /&gt;
Please put story point and target milestone to EVERY ticket that is assigned to you, starting from V2.0 4/28. &amp;lt;br /&amp;gt;&lt;br /&gt;
For blockers, please also put ETA in whiteboard, format: &#039;&#039;&#039;[ETA:4/30]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Here is how we go:&lt;br /&gt;
&lt;br /&gt;
* 1 point means approximately 2 working days.&lt;br /&gt;
* The story point goes up with Fibonacci Number, please use the following number: 1, 2, 3, 5, 8, 13 (13 is not recommended unless you really have to)&lt;br /&gt;
* Put in whiteboard, format: &#039;&#039;&#039;[p=2]&#039;&#039;&#039;. When you first got the ticket &amp;amp; after a quick estimation.&lt;br /&gt;
* The efforts shall include &amp;quot;unit test&amp;quot;, &amp;quot;getting review+&amp;quot;, &amp;quot;landed&amp;quot;.&lt;br /&gt;
* When closing a ticket, you may make correction to the p to reflect actual efforts.&lt;br /&gt;
* p means &amp;quot;the effort you spent&amp;quot;, NOT &amp;quot;how long the ticket is closed&amp;quot;. For example, you&#039;re assigned a ticket on Monday, but you wait and start working on it Thursday and Friday then done, p should put as 1, not 3.&lt;br /&gt;
&lt;br /&gt;
= etc. =&lt;br /&gt;
&lt;br /&gt;
* [[B2G]]&lt;br /&gt;
* [[B2G/Roadmap]] -- owned by Product team&lt;br /&gt;
* [[Gaia]]&lt;br /&gt;
* [[Gaia/Meeting_Notes]]&lt;br /&gt;
* [[FirefoxOS/SprintStatus#Systems-Platform Sprint Status]]&lt;br /&gt;
* [[FirefoxOS/OneDotTwoTracking#Blockers_per_Functional_Team]]&lt;br /&gt;
* [https://docs.google.com/a/mozilla.com/spreadsheet/ccc?key=0AtVT90hlMtdSdEd4TVVjWXNfU3ctMlVhWFRrWkpweVE Firefox OS User Story Backlog]&lt;br /&gt;
* [https://taiwan.etherpad.mozilla.org/SystemPlatform1-3 System Platform v1.3 etherpad] (out-dated)&lt;br /&gt;
* Sprint review and retrospect: https://etherpad.mozilla.org/systemplatform-retrospect-demo&lt;br /&gt;
&lt;br /&gt;
== Subpages of {{FULLPAGENAME}} ==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/}}&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1083039</id>
		<title>User:Timdream/I18n policy on contry region names</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1083039"/>
		<updated>2015-07-04T00:29:18Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* 4. Localizations/translations of the entries */ wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mozilla Internationalization Policy on Country/Region Names =&lt;br /&gt;
&lt;br /&gt;
== Status of this document ==&lt;br /&gt;
&lt;br /&gt;
This document is a proposal unless a consensus is made on dev-goverance, and approved by Chief Lizard Wrangler, Ms. Mitchell Baker.&lt;br /&gt;
&lt;br /&gt;
== Policy ==&lt;br /&gt;
&lt;br /&gt;
Like our counterparts among the software industry and open source ecosystem, we occasionally need to list countries or other geographic areas in documentation, menus, mirror/FTP lists, or other contexts. In the spirit of [https://www.mozilla.org/en-US/about/governance/policies/participation/ Mozilla Community Participation Guidelines] on inclusion and diversity, we ask products and services associated with the Project to comply with the requirements as defined in the Policy.&lt;br /&gt;
&lt;br /&gt;
=== 0. Use of a country/region list ===&lt;br /&gt;
&lt;br /&gt;
Use of the list is not mandatory. With usability and practicality in mind, products and services may wish to use free form text box instead of asking users to select an entry from a supplied list. However, when a country/region list is introduced, the list used by products and services must comply with the Policy.&lt;br /&gt;
&lt;br /&gt;
Specifically, it is against the Policy to provide auto-complete hints based on existing user-supplied entries.&lt;br /&gt;
&lt;br /&gt;
=== 1. Introduce such list as &amp;quot;Countries or Regions&amp;quot; as opposed to &amp;quot;Countries&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
The Mozilla Project does not endorse or deny any sovereignty claim of any region listed. It&#039;s important to label the list as such to avoid implicitly making such acknowledgement.&lt;br /&gt;
&lt;br /&gt;
=== 2. Use ISO 3166 with amendments ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;official&amp;quot; ISO 3166 short English names for those countries and regions are in some cases controversial, and not all of them are commonly used in the software industry. We ask for the following amendments to be adopted when introducing the list on products and services:&lt;br /&gt;
&lt;br /&gt;
* Macedonia should be referred with only &amp;quot;Macedonia&amp;quot;, with no extra distinctions.&lt;br /&gt;
* Taiwan should be referred with only &amp;quot;Taiwan&amp;quot;, with no extra distinctions.&lt;br /&gt;
&lt;br /&gt;
Interpretation of these words is in the eye of the beholder. The Mozilla Project does not endorse any particular position.&lt;br /&gt;
&lt;br /&gt;
=== 3. Avoid associate entries on the list with extra information ===&lt;br /&gt;
&lt;br /&gt;
The entries on the list should never be associated with a national flag, or an image/map depicting the region boundary. The Mozilla Project does not associate nation-states with entries on the list, nor defining boundaries of any given entries.&lt;br /&gt;
&lt;br /&gt;
=== 4. Localizations/translations of the entries ===&lt;br /&gt;
&lt;br /&gt;
We asks localizations/translations of the list to comply with the Policy whenever possible. However it may be possible localizations/translations of some entries could violate national law in the jurisdiction of participating contributors. In such cases, the Policy may be violated, provided that the localizations/translations only impact the specific part of the world where the national law in question applies.&lt;br /&gt;
&lt;br /&gt;
=== 5. Amendment to the Policy ===&lt;br /&gt;
&lt;br /&gt;
This policy shall be govern by the module of the same name. Proposal of change to policy should be made on dev-goverance, with a subject starting with &amp;quot;[country/region list]&amp;quot;. The owner of the module will gather opinions on the list; once there is a consensus, the module owners will send the proposal to Chief Lizard Wrangler, Ms. Mitchell Baker, for approval.&lt;br /&gt;
&lt;br /&gt;
The current module owners of the module can be found here (TBD).&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/internal/i18n.html Internationalization Policy of the FreeBSD Project]&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1082936</id>
		<title>User:Timdream/I18n policy on contry region names</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1082936"/>
		<updated>2015-07-03T12:02:53Z</updated>

		<summary type="html">&lt;p&gt;Timdream: + link to Internationalization Policy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mozilla Internationalization Policy on Country/Region Names =&lt;br /&gt;
&lt;br /&gt;
== Status of this document ==&lt;br /&gt;
&lt;br /&gt;
This document is a proposal unless a consensus is made on dev-goverance, and approved by Chief Lizard Wrangler, Ms. Mitchell Baker.&lt;br /&gt;
&lt;br /&gt;
== Policy ==&lt;br /&gt;
&lt;br /&gt;
Like our counterparts among the software industry and open source ecosystem, we occasionally need to list countries or other geographic areas in documentation, menus, mirror/FTP lists, or other contexts. In the spirit of [https://www.mozilla.org/en-US/about/governance/policies/participation/ Mozilla Community Participation Guidelines] on inclusion and diversity, we ask products and services associated with the Project to comply with the requirements as defined in the Policy.&lt;br /&gt;
&lt;br /&gt;
=== 0. Use of a country/region list ===&lt;br /&gt;
&lt;br /&gt;
Use of the list is not mandatory. With usability and practicality in mind, products and services may wish to use free form text box instead of asking users to select an entry from a supplied list. However, when a country/region list is introduced, the list used by products and services must comply with the Policy.&lt;br /&gt;
&lt;br /&gt;
Specifically, it is against the Policy to provide auto-complete hints based on existing user-supplied entries.&lt;br /&gt;
&lt;br /&gt;
=== 1. Introduce such list as &amp;quot;Countries or Regions&amp;quot; as opposed to &amp;quot;Countries&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
The Mozilla Project does not endorse or deny any sovereignty claim of any region listed. It&#039;s important to label the list as such to avoid implicitly making such acknowledgement.&lt;br /&gt;
&lt;br /&gt;
=== 2. Use ISO 3166 with amendments ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;official&amp;quot; ISO 3166 short English names for those countries and regions are in some cases controversial, and not all of them are commonly used in the software industry. We ask for the following amendments to be adopted when introducing the list on products and services:&lt;br /&gt;
&lt;br /&gt;
* Macedonia should be referred with only &amp;quot;Macedonia&amp;quot;, with no extra distinctions.&lt;br /&gt;
* Taiwan should be referred with only &amp;quot;Taiwan&amp;quot;, with no extra distinctions.&lt;br /&gt;
&lt;br /&gt;
Interpretation of these words is in the eye of the beholder. The Mozilla Project does not endorse any particular position.&lt;br /&gt;
&lt;br /&gt;
=== 3. Avoid associate entries on the list with extra information ===&lt;br /&gt;
&lt;br /&gt;
The entries on the list should never be associated with a national flag, or an image/map depicting the region boundary. The Mozilla Project does not associate nation-states with entries on the list, nor defining boundaries of any given entries.&lt;br /&gt;
&lt;br /&gt;
=== 4. Localizations/translations of the entries ===&lt;br /&gt;
&lt;br /&gt;
We asks localizations/translations of the list to comply with the Policy whenever possible. However it may be possible localizations/translations of some entries could violate national law of participating contributors. In such cases, the Policy may be violated, provided that the localizations/translations only impact the specific part of the world where the national law in question applies.&lt;br /&gt;
&lt;br /&gt;
=== 5. Amendment to the Policy ===&lt;br /&gt;
&lt;br /&gt;
This policy shall be govern by the module of the same name. Proposal of change to policy should be made on dev-goverance, with a subject starting with &amp;quot;[country/region list]&amp;quot;. The owner of the module will gather opinions on the list; once there is a consensus, the module owners will send the proposal to Chief Lizard Wrangler, Ms. Mitchell Baker, for approval.&lt;br /&gt;
&lt;br /&gt;
The current module owners of the module can be found here (TBD).&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/internal/i18n.html Internationalization Policy of the FreeBSD Project]&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1082935</id>
		<title>User:Timdream/I18n policy on contry region names</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/I18n_policy_on_contry_region_names&amp;diff=1082935"/>
		<updated>2015-07-03T11:59:45Z</updated>

		<summary type="html">&lt;p&gt;Timdream: first proposal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mozilla Internationalization Policy on Country/Region Names =&lt;br /&gt;
&lt;br /&gt;
== Status of this document ==&lt;br /&gt;
&lt;br /&gt;
This document is a proposal unless a consensus is made on dev-goverance, and approved by Chief Lizard Wrangler, Ms. Mitchell Baker.&lt;br /&gt;
&lt;br /&gt;
== Policy ==&lt;br /&gt;
&lt;br /&gt;
Like our counterparts among the software industry and open source ecosystem, we occasionally need to list countries or other geographic areas in documentation, menus, mirror/FTP lists, or other contexts. In the spirit of [https://www.mozilla.org/en-US/about/governance/policies/participation/ Mozilla Community Participation Guidelines] on inclusion and diversity, we ask products and services associated with the Project to comply with the requirements as defined in the Policy.&lt;br /&gt;
&lt;br /&gt;
=== 0. Use of a country/region list ===&lt;br /&gt;
&lt;br /&gt;
Use of the list is not mandatory. With usability and practicality in mind, products and services may wish to use free form text box instead of asking users to select an entry from a supplied list. However, when a country/region list is introduced, the list used by products and services must comply with the Policy.&lt;br /&gt;
&lt;br /&gt;
Specifically, it is against the Policy to provide auto-complete hints based on existing user-supplied entries.&lt;br /&gt;
&lt;br /&gt;
=== 1. Introduce such list as &amp;quot;Countries or Regions&amp;quot; as opposed to &amp;quot;Countries&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
The Mozilla Project does not endorse or deny any sovereignty claim of any region listed. It&#039;s important to label the list as such to avoid implicitly making such acknowledgement.&lt;br /&gt;
&lt;br /&gt;
=== 2. Use ISO 3166 with amendments ===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;official&amp;quot; ISO 3166 short English names for those countries and regions are in some cases controversial, and not all of them are commonly used in the software industry. We ask for the following amendments to be adopted when introducing the list on products and services:&lt;br /&gt;
&lt;br /&gt;
* Macedonia should be referred with only &amp;quot;Macedonia&amp;quot;, with no extra distinctions.&lt;br /&gt;
* Taiwan should be referred with only &amp;quot;Taiwan&amp;quot;, with no extra distinctions.&lt;br /&gt;
&lt;br /&gt;
Interpretation of these words is in the eye of the beholder. The Mozilla Project does not endorse any particular position.&lt;br /&gt;
&lt;br /&gt;
=== 3. Avoid associate entries on the list with extra information ===&lt;br /&gt;
&lt;br /&gt;
The entries on the list should never be associated with a national flag, or an image/map depicting the region boundary. The Mozilla Project does not associate nation-states with entries on the list, nor defining boundaries of any given entries.&lt;br /&gt;
&lt;br /&gt;
=== 4. Localizations/translations of the entries ===&lt;br /&gt;
&lt;br /&gt;
We asks localizations/translations of the list to comply with the Policy whenever possible. However it may be possible localizations/translations of some entries could violate national law of participating contributors. In such cases, the Policy may be violated, provided that the localizations/translations only impact the specific part of the world where the national law in question applies.&lt;br /&gt;
&lt;br /&gt;
=== 5. Amendment to the Policy ===&lt;br /&gt;
&lt;br /&gt;
This policy shall be govern by the module of the same name. Proposal of change to policy should be made on dev-goverance, with a subject starting with &amp;quot;[country/region list]&amp;quot;. The owner of the module will gather opinions on the list; once there is a consensus, the module owners will send the proposal to Chief Lizard Wrangler, Ms. Mitchell Baker, for approval.&lt;br /&gt;
&lt;br /&gt;
The current module owners of the module can be found here (TBD).&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/Blocking_Features&amp;diff=1080577</id>
		<title>User:Timdream/Blocking Features</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/Blocking_Features&amp;diff=1080577"/>
		<updated>2015-06-17T10:14:53Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Visibility API update: {{bug|1034001}} */ update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gecko features blocking Gaia Blockers =&lt;br /&gt;
&lt;br /&gt;
The goal of this page is to collect wanted Gecko features that could fix blockers that cannot be fixed in Gaia apps along. We will try to use this list as a source when prioritize FxOS Gecko works (no, there are no promises, unfortunately -- but someone has to collect the list first).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; To prevent this become a platform feature wish list, please only list a bug if it, or any bug that has any depend on it, has been nominated as a blocker.&lt;br /&gt;
&lt;br /&gt;
== P1 ==&lt;br /&gt;
&lt;br /&gt;
=== Visibility API update: {{bug|1034001}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; Plan realigned in {{bug|1154231}} and fixed, need to remove workarounds&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Unless we disallow users from switching between apps, issues will be valid for v3.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve&#039;&#039;&#039;: All issues with incorrect visibility state while doing app transitioning.&lt;br /&gt;
** Bug 1124944 - [KK][Camera] Enabling Flash in Video Camera app then navigating away has flash remain on for several seconds&lt;br /&gt;
** See blockers.&lt;br /&gt;
&lt;br /&gt;
=== Orientation API update: {{bug|1043102}}, aka Skate Jumper bug ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; :wchen is working on it.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we disallow orientation change &amp;amp; switching apps&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Incorrect orientation of lock screen/system UI with an easy-to-produce STR, consistently being nominated as blockers by partners in multiple previous versions.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve&#039;&#039;&#039;: By allowing System app to take part of deciding whether or not to allow a given app to lock the orientation, we will be able to block orientation lock happens right at the time app goes to background.&lt;br /&gt;
&lt;br /&gt;
=== Audio Channel API update: {{bug|1089539}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; on going, spec - {{bug|961967}}, gecko - {{bug|1113086}}, gaia - {{bug|1100822}}.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never have multiple sound sources.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; The current gecko audio channel management introduced bugs on audio competing and leaking, these kind of bugs are being blocked and we need this new api to fix them.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; From v1.0 we introduced the audio channel management in gecko to handle the audio rules and policies, it works on 70% cases but for the other 30%(mostly are the audio competing issues) we couldn&#039;t fix them and instead we need to use workarounds. So to fix the audio channel issues entirely and make things right, the new audio channel api will have a new architecture and gaia system app will use them to control the app audio channels, base on the information from the channel&#039;s priorities and the window management.&lt;br /&gt;
&lt;br /&gt;
=== Activity OOM priority: {{bug|1144132}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; Gabriele Svelto take the platform fix and on m-c and targeting v2.2. He will provides gaia patch as well.&lt;br /&gt;
For v2.2 the plan is to workaround it by associating activity opener and openee together,&lt;br /&gt;
For v3 the plan is to let system app controls the priority.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we move away from inline activities.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; We have a old workaround in System app -- we never set an activity callee as invisible when it is covered by the activity caller, in fear that it could be OOM&#039;ed. In turn, app could not know visibilitychange when there is an activity opened.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; Any issue with incorrect document.hidden state in this situration, for example:&lt;br /&gt;
** {{bug|1102675}} - [Camera] black screen when open camera after open camera pick activity via camera&lt;br /&gt;
*** This is caused by the fact there are two camera instances in the phone and the previous one will not know it need to release the hardware.&lt;br /&gt;
** {{Bug|1072874}} - [Video]Video Share through SMS/BT doesn&#039;t pause video&lt;br /&gt;
*** Video app does not stop playing since visibilitychange doesn&#039;t fire.&lt;br /&gt;
&lt;br /&gt;
=== System message target: {{bug|931339}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we move away from inline activities.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; The current impl of system message assume there is only one instance (frame) per app, so it only deliver the message to an attached handling callback &#039;&#039;&#039;once&#039;&#039;&#039;. If there is an activity being opened twice from difference source, only the first activity will catch the system message. That is to say, the second activity and so on will become malfunction totally.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039;&lt;br /&gt;
** Cicular activities like: {{bug|1124944}} - [Messages] Messages app opens as a blank screen when opened as a share activity multiple times&lt;br /&gt;
&lt;br /&gt;
=== Unlock Console API for Gaia: {{bug|1066581}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; The original bug is fixed by DevTools team, it&#039;s unclear whether or not we can/should turn on logs by default now.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never try to pass MTBF again.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Lot&#039;s of previous MTBF bugs.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; From time to time, we are asked to debug &#039;&#039;&#039;MTBF&#039;&#039;&#039; issues with log. Currently, we have always have to work submit a patch with lines-to-print and ask QA engineers to re-run, instead of having these logging check into the tree. According to measurement in the bug, adding console.log() will slow down main thread significantly. &#039;&#039;&#039;There has been time where racing bugs simply become unreproducible when the log was added as well&#039;&#039;&#039;. The fix proposed here is to make logging faster, at least not noticeable until it&#039;s turned on from Gecko. Our logger in apps, currently, unfortunately, have to wire their own logging to a app script with it&#039;s own, special switch.&lt;br /&gt;
&lt;br /&gt;
== P2 ==&lt;br /&gt;
&lt;br /&gt;
=== Nested oop apps: {{bug|1020135}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; ?&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we don&#039;t have a centralized Settings app.&lt;br /&gt;
* &#039;&#039;&#039;What this bug solves:&#039;&#039;&#039; Gaia apps like Settings app hosts many of the settings for other apps. It would be more technically sound if the Settings app could embed the said app instead, for the sake of code clarity and security model etc (bug ?). We would also need this to stop using activity to launch &amp;amp; go back from the keyboard settings panel (bug ?). It would unlock the 3rd-party app setting embedding as well ({{bug|1020063}}).&lt;br /&gt;
&lt;br /&gt;
=== mozApps.getAll needs a filter based on &amp;quot;role&amp;quot; and &amp;quot;type&amp;quot;: {{bug|1094562}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we don&#039;t have a centralized Settings app.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Performance issues involving mozApp.getAll() calls during start-up.&lt;br /&gt;
* &#039;&#039;&#039;What this will solve:&#039;&#039;&#039; In settings app there are cases in which we have to find specific role or type of apps like homescreens, themes, or addons. Currently the only way would be getting all apps and check their properties one by one, which leads to performance issues. Providing a filter solves the performance issue during start-up.&lt;br /&gt;
&lt;br /&gt;
=== Date &amp;amp; time format API: {{bug|1118214}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039; (The mozAPI work is not going since the origin project(tako) request is canceled)&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we don&#039;t want to improve app start-up time.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Apps displaying date and time now rely on a shim from gaia. The shim introduces additional loading time, potential racing, and settings migration issues.&lt;br /&gt;
* &#039;&#039;&#039;What this bug solves:&#039;&#039;&#039; It should provide robust API for gaia apps to query the current date/time format. Moreover, it can also provide functions that generate localized date and time strings based on the current language setting. The alternative approach is improving mozSettings performance {{bug|1122570}} therefore all mozSettings call are improved.&lt;br /&gt;
&lt;br /&gt;
=== Bind permission Dialog to Browser Frame {{bug|853711}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; NOT STARTED&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never need to show permission dialog&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Permission dialog is not bind to the iframe who requests for the permission hence the dialog will show or hide at the wrong timing. One another case is fullscreen request is not dispatched from the mozBrowser iframe who enters fullscreen mode.&lt;br /&gt;
* &#039;&#039;&#039;What this bug solves:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Migrate mozSettings values in Gecko: {{bug|1112092}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never upgrade hardware.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Performance issues that could be blockers in the next release.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; The DB_VERSION of mozSettings is hidden inside Gecko, therefore to upgrade a settings in Gaia we would have to read the setting every time the phone boots or the app start ups. This contributes to boot time a lot and we are very close being asked to block a release for this (see the depending bugs of that bug). We would either have to patch Gecko to put all the migration there or we would have to expose something non-trivial to Gaia instead.&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Taipei&amp;diff=1079989</id>
		<title>Taipei</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Taipei&amp;diff=1079989"/>
		<updated>2015-06-15T06:54:37Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Other suggestions */ URL to night market location&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Taipei! This page contains information for visitors to the Mozilla office in Taipei, and Taipei/Taiwan in general.&lt;br /&gt;
&lt;br /&gt;
= Status of this document =&lt;br /&gt;
&lt;br /&gt;
This document is copied from [https://intranet.mozilla.org/index.php?title=Taipei&amp;amp;oldid=180197 the internal wiki of the same title] because it contains no confidential information. The [https://wiki.mozilla.org/index.php?title=Taipei&amp;amp;oldid=1074564 original content occupied this name space] is overwritten. You are encouraged check the original content and savage what&#039;s not mentioned here.&lt;br /&gt;
&lt;br /&gt;
Since this is a wiki, this document only reflects travel experience of contributing Mozillians and does not imply position of Mozilla. Please don&#039;t quote this wiki page in the wrong way.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Currency&#039;&#039;&#039;: Taiwan uses the [http://en.wikipedia.org/wiki/New_Taiwan_dollar New Taiwan Dollar], NT$ in English or 元 in Chinese, currency code NTD. As of this writing exchange rates are roughly NT$30 to $1 USD and NT$40 to €1; see [http://www.oanda.com/currency/table?exch=TWD&amp;amp;sel_list=USD_EUR_CAD_GBP_NZD_AUD_JPY&amp;amp;value=1&amp;amp;format=HTML&amp;amp;redirected=1 current exchange rates]. There are ATMs available at the airport and in the ground floor lobby of the Mozilla office. Currency exchange services are also available at the airport and the hotel with the usual caveats.&lt;br /&gt;
* &#039;&#039;&#039;Electricity&#039;&#039;&#039;: Taiwan uses US-style electricity, including plugs (though you might have a little more trouble with ground pins or polarized plugs than in the US, but not much), voltage (110V, slightly lower than the US&#039;s 120V), and frequency (60Hz).&lt;br /&gt;
* &#039;&#039;&#039;Weather&#039;&#039;&#039;: [http://uk.weather.com/weather/10day-TWXX0021:1:TW Forecast in °C], [http://www.weather.com/weather/tenday/Taipei+TWXX0021:1:TW Forecast in °F], [http://www.cwb.gov.tw/V7e/forecast/taiwan/Taipei_City.htm Government Forecast in °C], [http://www.cwb.gov.tw/V7e/observe/radar/ Radar], [http://www.timeanddate.com/worldclock/astronomy.html?n=241 Sunrise/Sunset], [http://www.cwb.gov.tw/V7e/earthquake/ Earthquakes]&lt;br /&gt;
* &#039;&#039;&#039;Water&#039;&#039;&#039;: Locals do not drink the tap water without boiling or filtering it. Complimentary bottled water is provided by the hotel daily and is available cheaply all over the place. The office has water coolers and cups.&lt;br /&gt;
* &#039;&#039;&#039;Health&#039;&#039;&#039;: Review the information provided by the [http://wwwnc.cdc.gov/travel/destinations/taiwan.htm CDC (US)] and/or the [http://www.fitfortravel.nhs.uk/destinations/asia-%28east%29/taiwan.aspx NHS (UK)].  You should ask your doctor if you have any questions.&lt;br /&gt;
* &#039;&#039;&#039;Food&#039;&#039;&#039;: If you have any food allergies or dietary restrictions, get them written down in Chinese before you leave home.&lt;br /&gt;
* &#039;&#039;&#039;Calendar&#039;&#039;&#039;: Taiwan uses the western calendar, but years are frequently written in the [http://en.wikipedia.org/wiki/Minguo_calendar Min-guo calendar].  So 民國104年3月17日 or 2015年3月17日 could both be used to write March 17, 2015.&lt;br /&gt;
&lt;br /&gt;
= Airport Access =&lt;br /&gt;
&lt;br /&gt;
== Taoyuan International Airport (TPE) ==&lt;br /&gt;
&lt;br /&gt;
Located in Taoyuan County, 45km (28 miles) away from the city center, Taiwan Taoyuan International Airport is linked to the island’s north area.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Taxi&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Only registered airport service taxis can pick up passengers at the two terminals. A taxi to the city center from the airport will set you back about NT$1,200. (And from Taipei city to the airport, it costs about NT$1,000). Do not expect taxi drivers to speak English, read the Latin alphabet, or understand your terrible attempts at pronouncing Chinese, so you should generally have the address of your destination in &#039;&#039;&#039;written Chinese&#039;&#039;&#039;.  (See below on the Grand Hyatt if that&#039;s your destination.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Limousine Service&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Counters for limo service are in the arrival halls of both terminals. The fixed rate for anywhere in the city is NT$1,300(single high way included). Vans cost slightly less if travelers agree to be grouped together. Service in Terminal 1 is 9am-midnight, and 24 hours in Terminal 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Bus&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
There is bus service from both terminals to the Grand Hyatt (and to many other places in Taipei). CitiAir bus 1960 runs to the Grand Hyatt in about 1 hour for NT$145 ([http://www.airbus.com.tw/busline/airportbusdetail.php?sn=1 description in Chinese], [http://www.airbus.com.tw/userfiles/images/airportbus/1960.jpg route map in Chinese and English]). The bus counter staff will understand enough English to sell you a ticket to the Grand Hyatt. Stops are not announced in English, so count the stops or pay attention to what&#039;s outside. If you miss the Grand Hyatt the end of the line is the next stop at Taipei City Hall Bus Station, which is only a 10 minute walk from the hotel. The bus is less convenient going back to the airport because it waits at each stop for several minutes.&lt;br /&gt;
&lt;br /&gt;
more information:&amp;lt;br/&amp;gt;&lt;br /&gt;
http://www.taoyuan-airport.com/english/buses&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Train&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Taiwan&#039;s High Speed Rail system links the major cities (including Taoyuan) of the west coast of the island with Taipei Main Station, but does not stop at Taoyuan airport.  There is an inexpensive (30 NT) shuttle bus from the terminals to the Taoyuan HSR station.  Once there you can take the HSR directly to Taipei Main Station.  The 175 NT service makes one stop (at Banqiao) and takes approximately 20 minutes.  Trains run with approximately 20 minute headways.  Once at Taipei Main Station you can transfer to the MRT Red Line towards Taipei 101.  Taking the HSR requires two transfers (shuttle bus to HSR, HSR to MRT or local bus/taxi) but can be faster than taking a taxi or bus if traffic on the #1 freeway is bad, especially in the reverse direction (where the 1960 bus makes and dwells at several stops).&lt;br /&gt;
&lt;br /&gt;
A direct MRT link from Taoyuan Airport to Taipei is under construction but not expected to open until at least December 2015.&lt;br /&gt;
&lt;br /&gt;
== Songshan Airport (TSA; Domestic and regional-international) ==&lt;br /&gt;
&lt;br /&gt;
If you are coming from Tokyo (Haneda, NOT Narita), Seoul (Gimpo), Shanghai (Hongqiao, not Pudong) and some other cities in China, it&#039;s possible to book a flight to the regional Songshan airport and land directly in the city to save some ground travel time.  Connecting to arrive at Songshan when originating from North America is generally not feasible, requiring airport changes (in Seoul and Shanghai), overnight layovers (at Haneda), and exorbitant prices.&lt;br /&gt;
&lt;br /&gt;
* taxi to office, 15 minutes&lt;br /&gt;
* metro to office or hotels (see instructions for either); metro station is in airport&lt;br /&gt;
&lt;br /&gt;
More info: http://www.tsa.gov.tw/&lt;br /&gt;
&lt;br /&gt;
= Hotels =&lt;br /&gt;
&lt;br /&gt;
== Regent Taipei ==&lt;br /&gt;
&lt;br /&gt;
Regent Taipei takes MRT to Taipei 101 Mall about 15 minutes. Situated in the Zhong Shan district, at the heart of the capital’s most vibrant cultural, entertainment and shopping areas, Regent Taipei is a 5 star hotel in Taipei that off ers travellers a bird’s eye view of modern Taiwanese life from a highly-convenient vantage point. Easily accessible from the Taipei Song Shan Airport and close to local hot spots such as art museums and historic buildings, Regent Taipei is the only hotel in Taiwan to house in excess of 50 of the world’s luxury designer boutiques in its Regent Galleria shopping mall. Wired and wireless connectivity is available throughout the hotel.&lt;br /&gt;
&lt;br /&gt;
More information: http://www.regenthotels.com/EN/Taipei&lt;br /&gt;
&lt;br /&gt;
About reservation:&lt;br /&gt;
Please make sure that you’ve left your Mozilla email address to the hotel for the corporate rates. Please contact with Nelson (nelson.chung@fihregent.com).&lt;br /&gt;
The hotel provides a pretty comprehensive buffet breakfast with a variety of Chinese and Western options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telephone&#039;&#039;&#039;: +886-2-2523-8000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metro&#039;&#039;&#039;: The nearest metro station is from our Taipei office MRT Exit number 3 &#039;&#039;&#039;Taipei 101 / World Trade Center&#039;&#039;&#039; on the &#039;&#039;&#039;Xiangshan (red) Line&#039;&#039;&#039; to &#039;&#039;&#039;   Zhongshan&#039;&#039;&#039; on the &#039;&#039;&#039;Tamsui (red) Line&#039;&#039;&#039; and use exit number 4. Walk to Zhong Shan North Road and turn left onto Zhong Shan North Road. Walk approximately 6 minutes and you will find the hotel on your right.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Grand Hyatt Taipei ==&lt;br /&gt;
&lt;br /&gt;
Grand Hyatt Taipei hotel anchors the city’s most vibrant commercial center in the Xinyi district.  Adjacent to Taipei 101 Mall and Financial Tower, this five-star business hotel is conveniently linked to the Taipei World Trade Center, the Taipei International Convention Center and the Exhibition Halls.  Located in the heart of Taipei’s most dynamic business, shopping and entertainment district, our hotel in Taipei affords both business and leisure travelers the utmost in convenience.&lt;br /&gt;
&lt;br /&gt;
More information: http://taipei.grand.hyatt.com/en/hotel/home.html&lt;br /&gt;
&lt;br /&gt;
About reservation:&lt;br /&gt;
Please make sure that you’ve left your Mozilla email address to the hotel for the corporate rates.&lt;br /&gt;
The hotel provides a pretty comprehensive buffet breakfast with a variety of Chinese and Western options.&lt;br /&gt;
&lt;br /&gt;
Although many taxi drivers will understand &amp;quot;Grand Hyatt&amp;quot; in spoken English, you shouldn&#039;t count on it. The address card for the hotel is available in Chinese ([https://intranet.mozilla.org/File:Grand-hyatt-taipei.png PNG image], [http://taipei.grand.hyatt.com/zh-Hant/hotel/home.html source HTML]) and you should print it out before you leave.  (In case you don&#039;t print it but do print this, the important part is: 台北君悅大飯店　台灣台北市松壽路2號.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telephone&#039;&#039;&#039;: +886 2 2720 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metro&#039;&#039;&#039;: The nearest metro station is &#039;&#039;&#039;Taipei 101 / World Trade Center&#039;&#039;&#039; on the &#039;&#039;&#039;Xinyi (red) Line&#039;&#039;&#039;.  &#039;&#039;&#039;Taipei City Hall Station&#039;&#039;&#039; on the &#039;&#039;&#039;Bannan (blue) Line&#039;&#039;&#039; is also not far.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laundry&#039;&#039;&#039;:  There is an [https://plus.google.com/105661139456057684683/about?hl=en easy-to-use 24 hour laundromat] a very short walk from the hotel.  Nearly everything has English labels in addition to Chinese.  Soap NT$10 (accepts bills or coins, gives change, be careful to pick the soap rather than the other items), washer NT$50/NT$70/NT$100 (function of washer size, takes NT$10 and NT$50 coins only), dryer NT$10/6min (takes NT$10 coins only, I think).&lt;br /&gt;
&lt;br /&gt;
== Home Hotel ==&lt;br /&gt;
&lt;br /&gt;
http://www.homehotel.com.tw/&lt;br /&gt;
&lt;br /&gt;
We have a contract with Home Hotel for a better rate than Egencia. You can book directly though Mavis Liao mavis.liao@homehotel.com.tw.&lt;br /&gt;
&lt;br /&gt;
Home Hotel is a very nice hotel, is closer to the office, includes breakfast, and the food (both breakfast and room service) is quite good. The Grand Hyatt does not include breakfast, which is 30USD.&lt;br /&gt;
&lt;br /&gt;
== Royal Biz Taipei ==&lt;br /&gt;
&lt;br /&gt;
While it&#039;s a bit further from the office (a few stops by subway), a number of us have had good experiences staying at the [http://www.royalbiz.com.tw/about_en.php Royal Biz Taipei (金來商旅)], 71 Sec 1 Jinshan S Rd, Taipei 10056, Taiwan (台北市中正區金山南路一段71號).  It is &#039;&#039;much&#039;&#039; less expensive than the Grand Hyatt.  It is also in a less Westernized (and hence to some more interesting) part of the city, not far from Da&#039;an park.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telephone&#039;&#039;&#039;: +886 2 23979399&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metro&#039;&#039;&#039;: The Royal Biz is walking distance from the [http://en.wikipedia.org/wiki/Taipei_Metro MRT] &#039;&#039;&#039;Dongmen&#039;&#039;&#039; station on the &#039;&#039;&#039;Xinyi (red) Line&#039;&#039;&#039;.  Use Exit 2 at the northwest corner of the station (or exit 1 with an escalator, but a drop further from the intersection), then walk North along JinShan S Rd until about 50 meters before Ren&#039;ai Rd (which is the next street of size comparable to JinShan Rd or Xinyi Rd).  To get to the office, take the Xinyi Line 4 or 5 stops, to either Taipei 101 / World Trade Center or to Xiangshan.&lt;br /&gt;
&lt;br /&gt;
The Royal Biz is also walking distance from the [http://en.wikipedia.org/wiki/Taipei_Metro MRT] &#039;&#039;&#039;Zhongxiao Xinsheng&#039;&#039;&#039; station on the &#039;&#039;&#039;Bannan (blue) Line&#039;&#039;&#039;.  (This is slightly further than from Dongmen station, and not useful for getting to the office, but is useful for getting to other destinations.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From the airport&#039;&#039;&#039;: From Taoyuan airport take either the 1819 bus to Taipei Main Station or take Taiwan High Speed Rail (via a bus transfer to Taoyuan station) to Taipei Main Station.  At Taipei Main Station, transfer to the &#039;&#039;&#039;Xinyi (red) Line&#039;&#039;&#039; in the &#039;&#039;&#039;Xiangshan&#039;&#039;&#039; direction.  Alight at &#039;&#039;&#039;Dongmen&#039;&#039;&#039; station.  Alternatively take a taxi from the airport.  Because this is a smaller, less well known hotel, do not expect the driver to understand the English name of the hotel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laundry&#039;&#039;&#039;: There is also a [http://www.openstreetmap.org/node/2536456936#map=18/25.03821/121.52677 24-hour laundry] walking distance from the hotel (it&#039;s on Hangzhou Rd S, which is one major street west along Ren&#039;ai Road, and also on the opposite side of Ren&#039;ai).  The hotel reception desk will hand you a flyer with a map and picture if you ask where to find a laudromat.&lt;br /&gt;
&lt;br /&gt;
= Mozilla Office =&lt;br /&gt;
&lt;br /&gt;
Grand Hyatt and other hotels in the Shifu (City Hall) area are within walking distance of the office. From much of the city the easiest way to get to the office is to take the red (Xinyi) MRT line to Taipei 101/World Trade Center station.  The red line provides direct service to Taipei Main Station and the Taiwan High Speed Rail terminal there.&lt;br /&gt;
&lt;br /&gt;
The office is located in the Xinyi Jing Mao Da Lou.&lt;br /&gt;
&lt;br /&gt;
Walking from the Grand Hyatt to the Taipei office should only take 10 to 15 minutes. Walking directions [http://goo.gl/maps/HeJYM in Chinese], or [http://goo.gl/OQvoI in English] &lt;br /&gt;
&lt;br /&gt;
[https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-prn2/976478_10151400036476205_1855335477_o.jpg View approaching the office from Taipei 101, it&#039;s the white JP Morgan building.]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mozilla&#039;s company name in Chinese&#039;&#039;&#039;:美商謀智台灣分公司&lt;br /&gt;
* &#039;&#039;&#039;Office address&#039;&#039;&#039;: 110 台北市信義區信義路五段106號&lt;br /&gt;
* &#039;&#039;&#039;Office address&#039;&#039;&#039;: 4F-A1, No. 106, Sec. 5, Xinyi Rd., Xinyi Dist.,Taipei City 11047, Taiwan&lt;br /&gt;
** 4F means fourth floor&lt;br /&gt;
** don&#039;t worry about the A1; you&#039;ll see it when you get out of the elevator&lt;br /&gt;
** No. 106 is the building&#039;s number&lt;br /&gt;
** Sec. 5 is the section of Xinyi Road.  Major roads in Taipei are divided into sections at each crossing of a major street, and each section has its own set of numbers.  Some Roads that cross halves of the city are also split into N/S or E/W.  So don&#039;t look for a number in the wrong section.&lt;br /&gt;
* &#039;&#039;&#039;Office telephone&#039;&#039;&#039;: +886-2-8786-1100&lt;br /&gt;
&lt;br /&gt;
= Public Transportation =&lt;br /&gt;
&lt;br /&gt;
Taipei Metro is quite convenient and easy. Everything in signed in English (and Chinese is consistently romanized in Hanyu Pinyin) and the staff speak at least basic English. The fare is distanced based with a minimum of NT$20. Tokens can be bought at the ticket machine before entry. Fare cards are NT$100 to purchase and provide a 20% discount. The &amp;quot;EasyCard&amp;quot; can also be used on buses and in convenience stores, much like the Octopus card in Hong Kong.&lt;br /&gt;
&lt;br /&gt;
* [http://english.trtc.com.tw/np.asp?ctNode=49778&amp;amp;mp=122032 metro guide]&lt;br /&gt;
* [http://english.trtc.com.tw/ct.asp?xItem=1056373&amp;amp;CtNode=49780&amp;amp;mp=122032 route map]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Taipei_Metro Taipei Metro (wikipedia)]&lt;br /&gt;
&lt;br /&gt;
City Buses can take you closer to the destination than metro, although it is complicated and not friendly. Minimal fare would be NT$15, pay on-board OR off board depend on the sign. One might need to pay when both on-board AND off-board if it&#039;s a long trip. NO CHANGE GIVEN, EXACT CHANGE ONLY.&lt;br /&gt;
&lt;br /&gt;
Public transportation can be planned on Google Maps.&lt;br /&gt;
&lt;br /&gt;
For intra-city transportation, there is high speed rail (HSR) and railway (TRA), and highway buses.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that outside of Taipei, Kaohsiung, and Taichung, public transportation is pretty much useless. Most locals ride scooters -- you can rent one if you dare!&lt;br /&gt;
&lt;br /&gt;
= Food =&lt;br /&gt;
&lt;br /&gt;
Taiwan offers various cuisine due to its rich culture and historical background. Chinese, Japanese, and of course Taiwanese food are pretty genuine here.&lt;br /&gt;
&lt;br /&gt;
The Taipei 101 food court has a variety of fast food options.  If you&#039;re looking for something a little more involved, Kate provided the following list:&lt;br /&gt;
&lt;br /&gt;
== Vegetarian Restaurants ==&lt;br /&gt;
&lt;br /&gt;
1. Lian-chi-ge Vegetarian Buffet 蓮池閣 (red sign).  Location: B1, No.153, Sec.4, Xinyi Rd.   Some pictures of the restaurant and the food: http://www.lck888.com/a04-a.htm&lt;br /&gt;
&lt;br /&gt;
2. Easy House Vegetarian cuisine.  Location: at Neo 19 3F (Neo 19: No.22, Song Shou Rd.)  http://www.easyhouse.tw/html/meal/meal_01.asp&lt;br /&gt;
&lt;br /&gt;
3. Ming De Vegetarian buffet.   Location: It&#039;s at the food court in Shin Kong Mitsukoshi A8 department store(B1), and at Eslite bookstore B2 as well. Not a fancy restaurant but the food is good!&lt;br /&gt;
&lt;br /&gt;
== Chinese Restaurants ==&lt;br /&gt;
&lt;br /&gt;
1. Din-Tai-Fung (Taipei 101 B1).  Dumplings.  Can&#039;t miss. http://www.dintaifung.com.tw/en/default.htm&lt;br /&gt;
&lt;br /&gt;
2. FiFi Restaurant.  It&#039;s at Eslite bookstore 6F (the bookstore is near Taipei City Hall Metro Station).  Sorry there&#039;s no English version of website but we&#039;ve been there before, and the food is pretty good!&lt;br /&gt;
&lt;br /&gt;
3. Redbeandining Restaurant.  In Shin Kong Mitsukoshi A9 department store, 7F.&lt;br /&gt;
&lt;br /&gt;
4. South Beauty.  Location: 6F, No.12, Song Shou Rd. (It&#039;s in the department store - Att 4 fun)  http://www.southbeauty.com/en/&lt;br /&gt;
&lt;br /&gt;
5. 1010 Xiang (Hunan cuisine).  If you like spicy food, it will be a nice choice.  Location: at Eslite bookstore 6F (Eslite bookstore: No.11, Song Gao Rd.)  http://www.1010restaurant.com/index.php?cid=2&amp;amp;mid=1&amp;amp;sid=1&lt;br /&gt;
&lt;br /&gt;
6. KiKi Restaurant.  Location: at Eslite bookstore 4F (Eslite bookstore: No.11, Song Gao Rd.)  http://www.kiki1991.com/&lt;br /&gt;
&lt;br /&gt;
7. Shao Shao Ke.  Location: #15, alley 41, RenAi Rd. section 2, Taipei, Taiwan 台北市仁愛路二段41巷15號.  Food from Shaanxi province in China, with more Central Asian influence than most Chinese food. http://fewdblog.com/?p=605&lt;br /&gt;
&lt;br /&gt;
8. China Pa.  Location No. 145號, Section 1, Ānhé Rd, Daan District, Taipei City, Taiwan 106, near the Xinyi Anhe MRT Station on the Red Line.  This place turns into a live music venue later in the evening with indoor smoking, so you probably want to go early.&lt;br /&gt;
&lt;br /&gt;
9. Beijing Do It True (北平都一處).  506 RenAi Rd Sec 4 / 仁愛路四段506號 (just northwest of the Grand Hyatt).  Beijing food.  http://taipei543.com/2013/01/22/beijing-do-it-true/&lt;br /&gt;
&lt;br /&gt;
== Japanese Restaurants ==&lt;br /&gt;
&lt;br /&gt;
Japanese food, like most other Japanese things, is extremely popular in Taiwan.  There are a variety of great Japanese restaurants to choose from.&lt;br /&gt;
&lt;br /&gt;
1. Sanji Ramen - Att4Fun 5F.  Menu is only in Chinese and Japanese, but it has lots of pictures, and the staff speaks English.  http://hungryintaipei.blogspot.tw/2012/02/ramen-i-recommend-ramen-sanji.html&lt;br /&gt;
&lt;br /&gt;
2. Butaichi Ramen - Hankyu Mall B2, #A4.  This is better known as the food court in Taipei City Hall MRT Station.  Menu is in English, lots of pictures, and the staff speaks English.  http://hungryintaipei.blogspot.com/2014/03/ramenjapanese-i-recommend-butaichi-ramen.html&lt;br /&gt;
&lt;br /&gt;
== Other suggestions ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of good hole-in-the-wall type places in the neighborhood south of the office (away from Xinyi Road and Taipei 101).  For best results, befriend one of the locals and ask them to take you there.  Be respectful of their time, of course.  Don&#039;t expect English menus or English speaking staff.&lt;br /&gt;
&lt;br /&gt;
* Noodle restaurant&lt;br /&gt;
* Beef noodle restaurant&lt;br /&gt;
* Taiwan chicken&lt;br /&gt;
&lt;br /&gt;
I found http://hungryintaipei.blogspot.com/ to be a great resource for discovering some places.&lt;br /&gt;
&lt;br /&gt;
For the adventurous, &#039;&#039;&#039;Night market&#039;&#039;&#039; offers small food stands for you to try out. One of the (in)famous ones being the stinky tofu (ask anyone from the B2G team).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FAQ: Where to get food after 10pm&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unfortunately except diners near the night market, fast food, and bars, most dinner places close before 10pm (Taiwanese family start their dinners around 6-7pm, much earlier than people in the U.S. and Europe). Your choices would be go to either places described above, or grab microwave food at convenient stores such as 7-Eleven. Microwave food comes with much variety, worth to check out. [http://hungryintaipei.blogspot.tw/2010/03/snacksnapshot-i-strongly-recommend-7-11.html Here] is a hilarious intro on 7-Eleven in Taiwan.&lt;br /&gt;
&lt;br /&gt;
For people stay at the City Hall area, the nearest night market to go would be Tungwha St., located [https://www.google.com/maps/place/%E8%87%A8%E6%B1%9F%E8%A1%97%E5%A4%9C%E5%B8%82/@25.029413,121.557348,17z here]. The same location feature farmers market (&amp;quot;traditional market&amp;quot;) during a.m. hours.&lt;br /&gt;
&lt;br /&gt;
The Grand Hyatt has room service for prices that aren&#039;t unreasonable for Western countries (but are rather expensive for Taiwan).&lt;br /&gt;
&lt;br /&gt;
= Fun =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A couple hours&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://www.tripadvisor.com/Attraction_Review-g293913-d2019764-Reviews-Elephant_Mountain_aka_Nangang_District_Hiking_Trail-Taipei.html Elephant Mountain (Xiangshan)] is a ~100m hill that has a spectacular view of Taipei 101, the Xinyi district, and much of Taipei.  It&#039;s a quick hike (20-25 minutes from the office, including time to walk to the foot of the trail) but the trails continue much further into the hills if you want to go farther.&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Mengjia_Longshan_Temple Longshan Temple] is an interesting place to visit, especially if you&#039;ve never been somepace like it before.  There are several other temples scattered throughout the city, and if you wander around enough you will likely see small shrines all over the place.  If you are in town on the right days you may notice people burning [http://en.wikipedia.org/wiki/Joss_paper ghost money] outside on the streets.&lt;br /&gt;
&lt;br /&gt;
Rent a bike and go for a ride on Taipei&#039;s riverside parks.  Taipei has an extensive network of riverside parks, trails, and bike paths.  Take the MRT to Gongguan station (on the green line) and follow the signs to the water park.  Keep going past the water park towards the river and you will find a bike rental shop.  You can rent a bike hourly (post-paid) for a very low price.  They will want your passport as collateral.  From the rental facility to the confluence of Taipei&#039;s two rivers and back is a 3-4 hour ride at a reasonable pace.  There are several points along the river where you can pass through the flood walls that separate the city from the river.  These are useful for exploring, or stopping at a 7-11 to pick up another bottle of water.  You can also rent bikes from the Taipei city bikeshare system, Youbike, but this requires an MRT card and a Taiwanese cell phone number to set up.  Youbikes are also not as comfortable for long distances.&lt;br /&gt;
&lt;br /&gt;
Wikivoyage has [http://en.wikivoyage.org/wiki/Taipei lots more advice] about what to see, including a [http://en.wikivoyage.org/wiki/One_day_in_Taipei suggested itinerary for a &#039;&#039;packed&#039;&#039; one-day tourist visit] which highlights some of the top attractions.  You can pick a few things off of here that sound interesting.&lt;br /&gt;
&lt;br /&gt;
Here are some places where you may find something special for souvenirs:&lt;br /&gt;
&lt;br /&gt;
*Eslite Bookstore (Xinyi store) - http://goo.gl/WBHXn&lt;br /&gt;
&lt;br /&gt;
Opened in 2006, the 8,000-square meter Xinyi District bookstore is Taiwan&#039;s largest bookstore and carries a wide selection of books.  The bookstore is divided into subjects for easy browsing.  Readers are welcome to read books in designated areas. &lt;br /&gt;
&lt;br /&gt;
It take only 10 minutes walk from Grand Hyatt to the bookstore.&lt;br /&gt;
&lt;br /&gt;
*Huashan 1914 Creative Park&lt;br /&gt;
http://www.huashan1914.com/en/index.html&lt;br /&gt;
&lt;br /&gt;
There are some exhibitions and restaurants, and I remember there&#039;s a shop with&lt;br /&gt;
special things for souvenirs, which are designed by the artists.&lt;br /&gt;
&lt;br /&gt;
How to get there: Take the Nangang/Blue Line to Zhong Xiao Xing Sheng Station (忠孝新生). Take Exit one and continue to walk straight for about a block until you see an underpass and a giant red diamond.&lt;br /&gt;
The Huashan Creative Park is just across the street.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or try night markets:)&lt;br /&gt;
&lt;br /&gt;
*Raohe Street Tourist Night Market - http://goo.gl/aSdPK&lt;br /&gt;
&lt;br /&gt;
It&#039;s better to take a taxi from the office or the hotel. &lt;br /&gt;
The pronunciation of the name should be: Rao-He-Ye-Shi.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day trips&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The [http://www.npm.gov.tw/en/ National Palace Museum] has one of the leading collections of Chinese art in the world.  You could easily spend an entire day here.  The museum is accessible by bus from Shilin MRT station on the red line and Dazhi MRT station on the brown line.  Alternatively, a taxi from the Taipei 101 area costs only a couple hundred NT.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Jiufen Jiufen] is a popular tourist town in the hills north of Taipei overlooking the Pacific Ocean.  The main tourist attraction is the old street, a vibrant commercial strip set on tiny streets with shops selling all sorts of random food and drink.  There are also a number of teahouses you can sit down and relax in.  Mount Jilong, across the main road, is a 2000ft peak with a nice trail that leads to stunning views of Jiufen and the rest of Taiwan&#039;s northern coast.  On an especially clear day you might even be able to make out Taipei 101 in the distance. There&#039;s a car service available for about NT$3300 (US$110) that will drive up to 3 people to Jiufen and other locations in between Jiufen and Taipei. The driver will pick you up at your hotel at 9AM and bring you back around 7PM. This is very convenient and affordable if not traveling alone. [mailto:wsh2526@yahoo.com.tw E-mail] or call (0913967292) Jerry&#039;s Taxi Service for more info.&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Maokong_Gondola Maokong Gondola], at the southern end of the brown MRT line, will take you from Taipei Zoo into the hills south of the city.  Maokong is best known for its tea shops.  There are a number of hiking trails in the area, and the hills provide good views of much of the city.  The [http://www.chih-nan-temple.org/language/en_about.htm Chi-Nan] (or Zhinan) temple is also accessible from the Gondola.  It is a large Taoist temple complex built into the side of a mountain.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Longer&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Be warned that anywhere outside of Taipei it will be substantially harder to get by with English, except at places that specifically cater to tourists.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Kaohsiung Kaohsiung] is the second largest city in Taiwan.  It is located in southwestern Taiwan, and is at the end of the Taiwan High Speed Rail line.  On the fastest trains it can be reached from Taipei Main Station in 96 minutes for about 50 USD.  Kaohsiung is the only other city in Taiwan with an MRT system, which is great for getting around easily without taking your life into your own hands in Taiwan&#039;s traffic.  Kaohsiung is a major port city with some of the largest ship building facilities in the world.  Attractions in town include:&lt;br /&gt;
&lt;br /&gt;
* Cijin island: A natural breakwater island in Kaohsiung harbor.  It has a lighthouse, an old fort, and a famous temple dedicated to the goddess of sailors.  There are also a number of markets with food stalls and more, much like a night market (except during the day).  The island is accessible by a quick ferry ride, and you can bring a bike on the ferry.&lt;br /&gt;
* The Dome of Light: at Formosa Boulevard MRT station, where Kaohsiung&#039;s two MRT lines intersect, a large public art display is built into the ceiling of the station&#039;s main hall.&lt;br /&gt;
* Lotus Lake: In Zuoying, not far from the High Speed Rail Station, Lotus Lake has several temples.  These include the Dragon-Tiger and Spring-Autumn pavilions, and Taiwan&#039;s largest Confucius temple.  Some of the temples are actually built in the lake and accessible via a boardwalk.&lt;br /&gt;
* Love River: The main river in Kaohsiung has a number of riverside parks and paths (smaller than Taipei&#039;s) along with cafes and other places to stop at watch.&lt;br /&gt;
* Night markets: Two night markets worth visiting in Kaohisung are [http://eng.taiwan.net.tw/m1.aspx?sNo=0002121&amp;amp;id=2245 Liuhe Night Market] and the [http://en.wikipedia.org/wiki/Ruifeng_Night_Market Ruifeng Night Market].  For Liuhe, take the MRT to Formosa Blvd Station, exit 1.  The night market is on the street immediately to your left.  Try the local delicacy: papaya milk.  Ruifeng is accessible via the Kaohsiung Arena Station on the Red line.  Exit and walk west along Yucheng road.  In contrast to Liuhe, which is set on a wide open street, Ruifeng has endless rows of stalls crowded together in a rather claustrophobic setting.&lt;br /&gt;
&lt;br /&gt;
Taiwan is a small island, but much of the population is concentrated along the relatively flat Western coast.  The mountainous Eastern coast is largely undeveloped, and much of it is preserved as various parks.  The most notable of these is [http://en.wikipedia.org/wiki/Taroko_National_Park Taroko National Park], home to Taroko gorge.  Take a Taiwan Railway Administration (TRA) train from Taipei Main Station to Hualien via Yilan (this is a 2-3 hour trip).  Once at Hualien, you can either take the Tourist shuttle bus (exit the train station and turn left to find the ticket area) or hire a taxi driver for the day.  The bus runs only once an hour, and is *extremely* crowded in the late afternoon when everyone leaves at the same time.  Were I to do this again I would hire the driver.  The ones that speak English will offer their services as you leave the train station.  There are a variety of things to do and see in Tarako Gorge, including a number of hiking trails, temples, shrines, etc, but availability can change frequently (especially when trails are washed out by typhoons) so checking at the visitors center for an up to date list is a good idea.  Tarako Gorge is a popular tourist spot but western tourists are relatively rare (most are Chinese or Japanese, usually in large tour groups). Another option is [http://tarokolodge.blogspot.tw Taroko Lodge], a homestay; see http://robert.ocallahan.org/2014/03/taroko-national-park.html.&lt;br /&gt;
&lt;br /&gt;
For drinks &amp;amp; nightlife:&lt;br /&gt;
&lt;br /&gt;
* Barcode is a decent lounge https://www.facebook.com/Barcode.Taipei&lt;br /&gt;
* Le Meridian has a great patio&lt;br /&gt;
* W Woobar&lt;br /&gt;
* Brown Sugar has live band http://www.brownsugarlive.com/taipei/main.html&lt;br /&gt;
* Brassmonkey a bit more low-key but fun http://www.brassmonkeytaipei.com/directions.html#.Uug4TPY1gy4&lt;br /&gt;
&lt;br /&gt;
= Special Food =&lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Stinky_tofu Stinky tofu]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Iron_egg Iron egg]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Century_egg Century egg]&lt;br /&gt;
*[http://taiwanfoodculture.net/ct.asp?xItem=68502&amp;amp;ctNode=2682&amp;amp;mp=1502 Ginger duck]&lt;br /&gt;
&lt;br /&gt;
= Additional information =&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikivoyage.org/wiki/Taipei wikivoyage:Taipei]&lt;br /&gt;
* [https://intranet.mozilla.org/Web_Rendering_Work_Week_May_2013] has a bunch of useful stuff for visitors that should perhaps be merged here&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Taipei&amp;diff=1079983</id>
		<title>Taipei</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Taipei&amp;diff=1079983"/>
		<updated>2015-06-15T06:18:23Z</updated>

		<summary type="html">&lt;p&gt;Timdream: heading level&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Taipei! This page contains information for visitors to the Mozilla office in Taipei, and Taipei/Taiwan in general.&lt;br /&gt;
&lt;br /&gt;
= Status of this document =&lt;br /&gt;
&lt;br /&gt;
This document is copied from [https://intranet.mozilla.org/index.php?title=Taipei&amp;amp;oldid=180197 the internal wiki of the same title] because it contains no confidential information. The [https://wiki.mozilla.org/index.php?title=Taipei&amp;amp;oldid=1074564 original content occupied this name space] is overwritten. You are encouraged check the original content and savage what&#039;s not mentioned here.&lt;br /&gt;
&lt;br /&gt;
Since this is a wiki, this document only reflects travel experience of contributing Mozillians and does not imply position of Mozilla. Please don&#039;t quote this wiki page in the wrong way.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Currency&#039;&#039;&#039;: Taiwan uses the [http://en.wikipedia.org/wiki/New_Taiwan_dollar New Taiwan Dollar], NT$ in English or 元 in Chinese, currency code NTD. As of this writing exchange rates are roughly NT$30 to $1 USD and NT$40 to €1; see [http://www.oanda.com/currency/table?exch=TWD&amp;amp;sel_list=USD_EUR_CAD_GBP_NZD_AUD_JPY&amp;amp;value=1&amp;amp;format=HTML&amp;amp;redirected=1 current exchange rates]. There are ATMs available at the airport and in the ground floor lobby of the Mozilla office. Currency exchange services are also available at the airport and the hotel with the usual caveats.&lt;br /&gt;
* &#039;&#039;&#039;Electricity&#039;&#039;&#039;: Taiwan uses US-style electricity, including plugs (though you might have a little more trouble with ground pins or polarized plugs than in the US, but not much), voltage (110V, slightly lower than the US&#039;s 120V), and frequency (60Hz).&lt;br /&gt;
* &#039;&#039;&#039;Weather&#039;&#039;&#039;: [http://uk.weather.com/weather/10day-TWXX0021:1:TW Forecast in °C], [http://www.weather.com/weather/tenday/Taipei+TWXX0021:1:TW Forecast in °F], [http://www.cwb.gov.tw/V7e/forecast/taiwan/Taipei_City.htm Government Forecast in °C], [http://www.cwb.gov.tw/V7e/observe/radar/ Radar], [http://www.timeanddate.com/worldclock/astronomy.html?n=241 Sunrise/Sunset], [http://www.cwb.gov.tw/V7e/earthquake/ Earthquakes]&lt;br /&gt;
* &#039;&#039;&#039;Water&#039;&#039;&#039;: Locals do not drink the tap water without boiling or filtering it. Complimentary bottled water is provided by the hotel daily and is available cheaply all over the place. The office has water coolers and cups.&lt;br /&gt;
* &#039;&#039;&#039;Health&#039;&#039;&#039;: Review the information provided by the [http://wwwnc.cdc.gov/travel/destinations/taiwan.htm CDC (US)] and/or the [http://www.fitfortravel.nhs.uk/destinations/asia-%28east%29/taiwan.aspx NHS (UK)].  You should ask your doctor if you have any questions.&lt;br /&gt;
* &#039;&#039;&#039;Food&#039;&#039;&#039;: If you have any food allergies or dietary restrictions, get them written down in Chinese before you leave home.&lt;br /&gt;
* &#039;&#039;&#039;Calendar&#039;&#039;&#039;: Taiwan uses the western calendar, but years are frequently written in the [http://en.wikipedia.org/wiki/Minguo_calendar Min-guo calendar].  So 民國104年3月17日 or 2015年3月17日 could both be used to write March 17, 2015.&lt;br /&gt;
&lt;br /&gt;
= Airport Access =&lt;br /&gt;
&lt;br /&gt;
== Taoyuan International Airport (TPE) ==&lt;br /&gt;
&lt;br /&gt;
Located in Taoyuan County, 45km (28 miles) away from the city center, Taiwan Taoyuan International Airport is linked to the island’s north area.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Taxi&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Only registered airport service taxis can pick up passengers at the two terminals. A taxi to the city center from the airport will set you back about NT$1,200. (And from Taipei city to the airport, it costs about NT$1,000). Do not expect taxi drivers to speak English, read the Latin alphabet, or understand your terrible attempts at pronouncing Chinese, so you should generally have the address of your destination in &#039;&#039;&#039;written Chinese&#039;&#039;&#039;.  (See below on the Grand Hyatt if that&#039;s your destination.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Limousine Service&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Counters for limo service are in the arrival halls of both terminals. The fixed rate for anywhere in the city is NT$1,300(single high way included). Vans cost slightly less if travelers agree to be grouped together. Service in Terminal 1 is 9am-midnight, and 24 hours in Terminal 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Bus&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
There is bus service from both terminals to the Grand Hyatt (and to many other places in Taipei). CitiAir bus 1960 runs to the Grand Hyatt in about 1 hour for NT$145 ([http://www.airbus.com.tw/busline/airportbusdetail.php?sn=1 description in Chinese], [http://www.airbus.com.tw/userfiles/images/airportbus/1960.jpg route map in Chinese and English]). The bus counter staff will understand enough English to sell you a ticket to the Grand Hyatt. Stops are not announced in English, so count the stops or pay attention to what&#039;s outside. If you miss the Grand Hyatt the end of the line is the next stop at Taipei City Hall Bus Station, which is only a 10 minute walk from the hotel. The bus is less convenient going back to the airport because it waits at each stop for several minutes.&lt;br /&gt;
&lt;br /&gt;
more information:&amp;lt;br/&amp;gt;&lt;br /&gt;
http://www.taoyuan-airport.com/english/buses&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Train&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Taiwan&#039;s High Speed Rail system links the major cities (including Taoyuan) of the west coast of the island with Taipei Main Station, but does not stop at Taoyuan airport.  There is an inexpensive (30 NT) shuttle bus from the terminals to the Taoyuan HSR station.  Once there you can take the HSR directly to Taipei Main Station.  The 175 NT service makes one stop (at Banqiao) and takes approximately 20 minutes.  Trains run with approximately 20 minute headways.  Once at Taipei Main Station you can transfer to the MRT Red Line towards Taipei 101.  Taking the HSR requires two transfers (shuttle bus to HSR, HSR to MRT or local bus/taxi) but can be faster than taking a taxi or bus if traffic on the #1 freeway is bad, especially in the reverse direction (where the 1960 bus makes and dwells at several stops).&lt;br /&gt;
&lt;br /&gt;
A direct MRT link from Taoyuan Airport to Taipei is under construction but not expected to open until at least December 2015.&lt;br /&gt;
&lt;br /&gt;
== Songshan Airport (TSA; Domestic and regional-international) ==&lt;br /&gt;
&lt;br /&gt;
If you are coming from Tokyo (Haneda, NOT Narita), Seoul (Gimpo), Shanghai (Hongqiao, not Pudong) and some other cities in China, it&#039;s possible to book a flight to the regional Songshan airport and land directly in the city to save some ground travel time.  Connecting to arrive at Songshan when originating from North America is generally not feasible, requiring airport changes (in Seoul and Shanghai), overnight layovers (at Haneda), and exorbitant prices.&lt;br /&gt;
&lt;br /&gt;
* taxi to office, 15 minutes&lt;br /&gt;
* metro to office or hotels (see instructions for either); metro station is in airport&lt;br /&gt;
&lt;br /&gt;
More info: http://www.tsa.gov.tw/&lt;br /&gt;
&lt;br /&gt;
= Hotels =&lt;br /&gt;
&lt;br /&gt;
== Regent Taipei ==&lt;br /&gt;
&lt;br /&gt;
Regent Taipei takes MRT to Taipei 101 Mall about 15 minutes. Situated in the Zhong Shan district, at the heart of the capital’s most vibrant cultural, entertainment and shopping areas, Regent Taipei is a 5 star hotel in Taipei that off ers travellers a bird’s eye view of modern Taiwanese life from a highly-convenient vantage point. Easily accessible from the Taipei Song Shan Airport and close to local hot spots such as art museums and historic buildings, Regent Taipei is the only hotel in Taiwan to house in excess of 50 of the world’s luxury designer boutiques in its Regent Galleria shopping mall. Wired and wireless connectivity is available throughout the hotel.&lt;br /&gt;
&lt;br /&gt;
More information: http://www.regenthotels.com/EN/Taipei&lt;br /&gt;
&lt;br /&gt;
About reservation:&lt;br /&gt;
Please make sure that you’ve left your Mozilla email address to the hotel for the corporate rates. Please contact with Nelson (nelson.chung@fihregent.com).&lt;br /&gt;
The hotel provides a pretty comprehensive buffet breakfast with a variety of Chinese and Western options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telephone&#039;&#039;&#039;: +886-2-2523-8000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metro&#039;&#039;&#039;: The nearest metro station is from our Taipei office MRT Exit number 3 &#039;&#039;&#039;Taipei 101 / World Trade Center&#039;&#039;&#039; on the &#039;&#039;&#039;Xiangshan (red) Line&#039;&#039;&#039; to &#039;&#039;&#039;   Zhongshan&#039;&#039;&#039; on the &#039;&#039;&#039;Tamsui (red) Line&#039;&#039;&#039; and use exit number 4. Walk to Zhong Shan North Road and turn left onto Zhong Shan North Road. Walk approximately 6 minutes and you will find the hotel on your right.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Grand Hyatt Taipei ==&lt;br /&gt;
&lt;br /&gt;
Grand Hyatt Taipei hotel anchors the city’s most vibrant commercial center in the Xinyi district.  Adjacent to Taipei 101 Mall and Financial Tower, this five-star business hotel is conveniently linked to the Taipei World Trade Center, the Taipei International Convention Center and the Exhibition Halls.  Located in the heart of Taipei’s most dynamic business, shopping and entertainment district, our hotel in Taipei affords both business and leisure travelers the utmost in convenience.&lt;br /&gt;
&lt;br /&gt;
More information: http://taipei.grand.hyatt.com/en/hotel/home.html&lt;br /&gt;
&lt;br /&gt;
About reservation:&lt;br /&gt;
Please make sure that you’ve left your Mozilla email address to the hotel for the corporate rates.&lt;br /&gt;
The hotel provides a pretty comprehensive buffet breakfast with a variety of Chinese and Western options.&lt;br /&gt;
&lt;br /&gt;
Although many taxi drivers will understand &amp;quot;Grand Hyatt&amp;quot; in spoken English, you shouldn&#039;t count on it. The address card for the hotel is available in Chinese ([https://intranet.mozilla.org/File:Grand-hyatt-taipei.png PNG image], [http://taipei.grand.hyatt.com/zh-Hant/hotel/home.html source HTML]) and you should print it out before you leave.  (In case you don&#039;t print it but do print this, the important part is: 台北君悅大飯店　台灣台北市松壽路2號.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telephone&#039;&#039;&#039;: +886 2 2720 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metro&#039;&#039;&#039;: The nearest metro station is &#039;&#039;&#039;Taipei 101 / World Trade Center&#039;&#039;&#039; on the &#039;&#039;&#039;Xinyi (red) Line&#039;&#039;&#039;.  &#039;&#039;&#039;Taipei City Hall Station&#039;&#039;&#039; on the &#039;&#039;&#039;Bannan (blue) Line&#039;&#039;&#039; is also not far.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laundry&#039;&#039;&#039;:  There is an [https://plus.google.com/105661139456057684683/about?hl=en easy-to-use 24 hour laundromat] a very short walk from the hotel.  Nearly everything has English labels in addition to Chinese.  Soap NT$10 (accepts bills or coins, gives change, be careful to pick the soap rather than the other items), washer NT$50/NT$70/NT$100 (function of washer size, takes NT$10 and NT$50 coins only), dryer NT$10/6min (takes NT$10 coins only, I think).&lt;br /&gt;
&lt;br /&gt;
== Home Hotel ==&lt;br /&gt;
&lt;br /&gt;
http://www.homehotel.com.tw/&lt;br /&gt;
&lt;br /&gt;
We have a contract with Home Hotel for a better rate than Egencia. You can book directly though Mavis Liao mavis.liao@homehotel.com.tw.&lt;br /&gt;
&lt;br /&gt;
Home Hotel is a very nice hotel, is closer to the office, includes breakfast, and the food (both breakfast and room service) is quite good. The Grand Hyatt does not include breakfast, which is 30USD.&lt;br /&gt;
&lt;br /&gt;
== Royal Biz Taipei ==&lt;br /&gt;
&lt;br /&gt;
While it&#039;s a bit further from the office (a few stops by subway), a number of us have had good experiences staying at the [http://www.royalbiz.com.tw/about_en.php Royal Biz Taipei (金來商旅)], 71 Sec 1 Jinshan S Rd, Taipei 10056, Taiwan (台北市中正區金山南路一段71號).  It is &#039;&#039;much&#039;&#039; less expensive than the Grand Hyatt.  It is also in a less Westernized (and hence to some more interesting) part of the city, not far from Da&#039;an park.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telephone&#039;&#039;&#039;: +886 2 23979399&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metro&#039;&#039;&#039;: The Royal Biz is walking distance from the [http://en.wikipedia.org/wiki/Taipei_Metro MRT] &#039;&#039;&#039;Dongmen&#039;&#039;&#039; station on the &#039;&#039;&#039;Xinyi (red) Line&#039;&#039;&#039;.  Use Exit 2 at the northwest corner of the station (or exit 1 with an escalator, but a drop further from the intersection), then walk North along JinShan S Rd until about 50 meters before Ren&#039;ai Rd (which is the next street of size comparable to JinShan Rd or Xinyi Rd).  To get to the office, take the Xinyi Line 4 or 5 stops, to either Taipei 101 / World Trade Center or to Xiangshan.&lt;br /&gt;
&lt;br /&gt;
The Royal Biz is also walking distance from the [http://en.wikipedia.org/wiki/Taipei_Metro MRT] &#039;&#039;&#039;Zhongxiao Xinsheng&#039;&#039;&#039; station on the &#039;&#039;&#039;Bannan (blue) Line&#039;&#039;&#039;.  (This is slightly further than from Dongmen station, and not useful for getting to the office, but is useful for getting to other destinations.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From the airport&#039;&#039;&#039;: From Taoyuan airport take either the 1819 bus to Taipei Main Station or take Taiwan High Speed Rail (via a bus transfer to Taoyuan station) to Taipei Main Station.  At Taipei Main Station, transfer to the &#039;&#039;&#039;Xinyi (red) Line&#039;&#039;&#039; in the &#039;&#039;&#039;Xiangshan&#039;&#039;&#039; direction.  Alight at &#039;&#039;&#039;Dongmen&#039;&#039;&#039; station.  Alternatively take a taxi from the airport.  Because this is a smaller, less well known hotel, do not expect the driver to understand the English name of the hotel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laundry&#039;&#039;&#039;: There is also a [http://www.openstreetmap.org/node/2536456936#map=18/25.03821/121.52677 24-hour laundry] walking distance from the hotel (it&#039;s on Hangzhou Rd S, which is one major street west along Ren&#039;ai Road, and also on the opposite side of Ren&#039;ai).  The hotel reception desk will hand you a flyer with a map and picture if you ask where to find a laudromat.&lt;br /&gt;
&lt;br /&gt;
= Mozilla Office =&lt;br /&gt;
&lt;br /&gt;
Grand Hyatt and other hotels in the Shifu (City Hall) area are within walking distance of the office. From much of the city the easiest way to get to the office is to take the red (Xinyi) MRT line to Taipei 101/World Trade Center station.  The red line provides direct service to Taipei Main Station and the Taiwan High Speed Rail terminal there.&lt;br /&gt;
&lt;br /&gt;
The office is located in the Xinyi Jing Mao Da Lou.&lt;br /&gt;
&lt;br /&gt;
Walking from the Grand Hyatt to the Taipei office should only take 10 to 15 minutes. Walking directions [http://goo.gl/maps/HeJYM in Chinese], or [http://goo.gl/OQvoI in English] &lt;br /&gt;
&lt;br /&gt;
[https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-prn2/976478_10151400036476205_1855335477_o.jpg View approaching the office from Taipei 101, it&#039;s the white JP Morgan building.]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mozilla&#039;s company name in Chinese&#039;&#039;&#039;:美商謀智台灣分公司&lt;br /&gt;
* &#039;&#039;&#039;Office address&#039;&#039;&#039;: 110 台北市信義區信義路五段106號&lt;br /&gt;
* &#039;&#039;&#039;Office address&#039;&#039;&#039;: 4F-A1, No. 106, Sec. 5, Xinyi Rd., Xinyi Dist.,Taipei City 11047, Taiwan&lt;br /&gt;
** 4F means fourth floor&lt;br /&gt;
** don&#039;t worry about the A1; you&#039;ll see it when you get out of the elevator&lt;br /&gt;
** No. 106 is the building&#039;s number&lt;br /&gt;
** Sec. 5 is the section of Xinyi Road.  Major roads in Taipei are divided into sections at each crossing of a major street, and each section has its own set of numbers.  Some Roads that cross halves of the city are also split into N/S or E/W.  So don&#039;t look for a number in the wrong section.&lt;br /&gt;
* &#039;&#039;&#039;Office telephone&#039;&#039;&#039;: +886-2-8786-1100&lt;br /&gt;
&lt;br /&gt;
= Public Transportation =&lt;br /&gt;
&lt;br /&gt;
Taipei Metro is quite convenient and easy. Everything in signed in English (and Chinese is consistently romanized in Hanyu Pinyin) and the staff speak at least basic English. The fare is distanced based with a minimum of NT$20. Tokens can be bought at the ticket machine before entry. Fare cards are NT$100 to purchase and provide a 20% discount. The &amp;quot;EasyCard&amp;quot; can also be used on buses and in convenience stores, much like the Octopus card in Hong Kong.&lt;br /&gt;
&lt;br /&gt;
* [http://english.trtc.com.tw/np.asp?ctNode=49778&amp;amp;mp=122032 metro guide]&lt;br /&gt;
* [http://english.trtc.com.tw/ct.asp?xItem=1056373&amp;amp;CtNode=49780&amp;amp;mp=122032 route map]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Taipei_Metro Taipei Metro (wikipedia)]&lt;br /&gt;
&lt;br /&gt;
City Buses can take you closer to the destination than metro, although it is complicated and not friendly. Minimal fare would be NT$15, pay on-board OR off board depend on the sign. One might need to pay when both on-board AND off-board if it&#039;s a long trip. NO CHANGE GIVEN, EXACT CHANGE ONLY.&lt;br /&gt;
&lt;br /&gt;
Public transportation can be planned on Google Maps.&lt;br /&gt;
&lt;br /&gt;
For intra-city transportation, there is high speed rail (HSR) and railway (TRA), and highway buses.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that outside of Taipei, Kaohsiung, and Taichung, public transportation is pretty much useless. Most locals ride scooters -- you can rent one if you dare!&lt;br /&gt;
&lt;br /&gt;
= Food =&lt;br /&gt;
&lt;br /&gt;
Taiwan offers various cuisine due to its rich culture and historical background. Chinese, Japanese, and of course Taiwanese food are pretty genuine here.&lt;br /&gt;
&lt;br /&gt;
The Taipei 101 food court has a variety of fast food options.  If you&#039;re looking for something a little more involved, Kate provided the following list:&lt;br /&gt;
&lt;br /&gt;
== Vegetarian Restaurants ==&lt;br /&gt;
&lt;br /&gt;
1. Lian-chi-ge Vegetarian Buffet 蓮池閣 (red sign).  Location: B1, No.153, Sec.4, Xinyi Rd.   Some pictures of the restaurant and the food: http://www.lck888.com/a04-a.htm&lt;br /&gt;
&lt;br /&gt;
2. Easy House Vegetarian cuisine.  Location: at Neo 19 3F (Neo 19: No.22, Song Shou Rd.)  http://www.easyhouse.tw/html/meal/meal_01.asp&lt;br /&gt;
&lt;br /&gt;
3. Ming De Vegetarian buffet.   Location: It&#039;s at the food court in Shin Kong Mitsukoshi A8 department store(B1), and at Eslite bookstore B2 as well. Not a fancy restaurant but the food is good!&lt;br /&gt;
&lt;br /&gt;
== Chinese Restaurants ==&lt;br /&gt;
&lt;br /&gt;
1. Din-Tai-Fung (Taipei 101 B1).  Dumplings.  Can&#039;t miss. http://www.dintaifung.com.tw/en/default.htm&lt;br /&gt;
&lt;br /&gt;
2. FiFi Restaurant.  It&#039;s at Eslite bookstore 6F (the bookstore is near Taipei City Hall Metro Station).  Sorry there&#039;s no English version of website but we&#039;ve been there before, and the food is pretty good!&lt;br /&gt;
&lt;br /&gt;
3. Redbeandining Restaurant.  In Shin Kong Mitsukoshi A9 department store, 7F.&lt;br /&gt;
&lt;br /&gt;
4. South Beauty.  Location: 6F, No.12, Song Shou Rd. (It&#039;s in the department store - Att 4 fun)  http://www.southbeauty.com/en/&lt;br /&gt;
&lt;br /&gt;
5. 1010 Xiang (Hunan cuisine).  If you like spicy food, it will be a nice choice.  Location: at Eslite bookstore 6F (Eslite bookstore: No.11, Song Gao Rd.)  http://www.1010restaurant.com/index.php?cid=2&amp;amp;mid=1&amp;amp;sid=1&lt;br /&gt;
&lt;br /&gt;
6. KiKi Restaurant.  Location: at Eslite bookstore 4F (Eslite bookstore: No.11, Song Gao Rd.)  http://www.kiki1991.com/&lt;br /&gt;
&lt;br /&gt;
7. Shao Shao Ke.  Location: #15, alley 41, RenAi Rd. section 2, Taipei, Taiwan 台北市仁愛路二段41巷15號.  Food from Shaanxi province in China, with more Central Asian influence than most Chinese food. http://fewdblog.com/?p=605&lt;br /&gt;
&lt;br /&gt;
8. China Pa.  Location No. 145號, Section 1, Ānhé Rd, Daan District, Taipei City, Taiwan 106, near the Xinyi Anhe MRT Station on the Red Line.  This place turns into a live music venue later in the evening with indoor smoking, so you probably want to go early.&lt;br /&gt;
&lt;br /&gt;
9. Beijing Do It True (北平都一處).  506 RenAi Rd Sec 4 / 仁愛路四段506號 (just northwest of the Grand Hyatt).  Beijing food.  http://taipei543.com/2013/01/22/beijing-do-it-true/&lt;br /&gt;
&lt;br /&gt;
== Japanese Restaurants ==&lt;br /&gt;
&lt;br /&gt;
Japanese food, like most other Japanese things, is extremely popular in Taiwan.  There are a variety of great Japanese restaurants to choose from.&lt;br /&gt;
&lt;br /&gt;
1. Sanji Ramen - Att4Fun 5F.  Menu is only in Chinese and Japanese, but it has lots of pictures, and the staff speaks English.  http://hungryintaipei.blogspot.tw/2012/02/ramen-i-recommend-ramen-sanji.html&lt;br /&gt;
&lt;br /&gt;
2. Butaichi Ramen - Hankyu Mall B2, #A4.  This is better known as the food court in Taipei City Hall MRT Station.  Menu is in English, lots of pictures, and the staff speaks English.  http://hungryintaipei.blogspot.com/2014/03/ramenjapanese-i-recommend-butaichi-ramen.html&lt;br /&gt;
&lt;br /&gt;
== Other suggestions ==&lt;br /&gt;
&lt;br /&gt;
There are a variety of good hole-in-the-wall type places in the neighborhood south of the office (away from Xinyi Road and Taipei 101).  For best results, befriend one of the locals and ask them to take you there.  Be respectful of their time, of course.  Don&#039;t expect English menus or English speaking staff.&lt;br /&gt;
&lt;br /&gt;
* Noodle restaurant&lt;br /&gt;
* Beef noodle restaurant&lt;br /&gt;
* Taiwan chicken&lt;br /&gt;
&lt;br /&gt;
I found http://hungryintaipei.blogspot.com/ to be a great resource for discovering some places.&lt;br /&gt;
&lt;br /&gt;
For the adventurous, &#039;&#039;&#039;Night market&#039;&#039;&#039; offers small food stands for you to try out. One of the (in)famous ones being the stinky tofu (ask anyone from the B2G team).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FAQ: Where to get food after 10pm&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unfortunately except diners near the night market, fast food, and bars, most dinner places close before 10pm (Taiwanese family start their dinners around 6-7pm, much earlier than people in the U.S. and Europe). Your choices would be go to either places described above, or grab microwave food at convenient stores such as 7-Eleven. Microwave food comes with much variety, worth to check out. [http://hungryintaipei.blogspot.tw/2010/03/snacksnapshot-i-strongly-recommend-7-11.html Here] is a hilarious intro on 7-Eleven in Taiwan.&lt;br /&gt;
&lt;br /&gt;
For people stay at the City Hall area, the nearest night market to go would be Tungwha St., located [https://maps.google.com/?ll=25.029413,121.557348&amp;amp;spn=0.006649,0.011362&amp;amp;t=m&amp;amp;z=17 here]. The same location feature farmers market (&amp;quot;traditional market&amp;quot;) during a.m. hours.&lt;br /&gt;
&lt;br /&gt;
The Grand Hyatt has room service for prices that aren&#039;t unreasonable for Western countries (but are rather expensive for Taiwan).&lt;br /&gt;
&lt;br /&gt;
= Fun =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A couple hours&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://www.tripadvisor.com/Attraction_Review-g293913-d2019764-Reviews-Elephant_Mountain_aka_Nangang_District_Hiking_Trail-Taipei.html Elephant Mountain (Xiangshan)] is a ~100m hill that has a spectacular view of Taipei 101, the Xinyi district, and much of Taipei.  It&#039;s a quick hike (20-25 minutes from the office, including time to walk to the foot of the trail) but the trails continue much further into the hills if you want to go farther.&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Mengjia_Longshan_Temple Longshan Temple] is an interesting place to visit, especially if you&#039;ve never been somepace like it before.  There are several other temples scattered throughout the city, and if you wander around enough you will likely see small shrines all over the place.  If you are in town on the right days you may notice people burning [http://en.wikipedia.org/wiki/Joss_paper ghost money] outside on the streets.&lt;br /&gt;
&lt;br /&gt;
Rent a bike and go for a ride on Taipei&#039;s riverside parks.  Taipei has an extensive network of riverside parks, trails, and bike paths.  Take the MRT to Gongguan station (on the green line) and follow the signs to the water park.  Keep going past the water park towards the river and you will find a bike rental shop.  You can rent a bike hourly (post-paid) for a very low price.  They will want your passport as collateral.  From the rental facility to the confluence of Taipei&#039;s two rivers and back is a 3-4 hour ride at a reasonable pace.  There are several points along the river where you can pass through the flood walls that separate the city from the river.  These are useful for exploring, or stopping at a 7-11 to pick up another bottle of water.  You can also rent bikes from the Taipei city bikeshare system, Youbike, but this requires an MRT card and a Taiwanese cell phone number to set up.  Youbikes are also not as comfortable for long distances.&lt;br /&gt;
&lt;br /&gt;
Wikivoyage has [http://en.wikivoyage.org/wiki/Taipei lots more advice] about what to see, including a [http://en.wikivoyage.org/wiki/One_day_in_Taipei suggested itinerary for a &#039;&#039;packed&#039;&#039; one-day tourist visit] which highlights some of the top attractions.  You can pick a few things off of here that sound interesting.&lt;br /&gt;
&lt;br /&gt;
Here are some places where you may find something special for souvenirs:&lt;br /&gt;
&lt;br /&gt;
*Eslite Bookstore (Xinyi store) - http://goo.gl/WBHXn&lt;br /&gt;
&lt;br /&gt;
Opened in 2006, the 8,000-square meter Xinyi District bookstore is Taiwan&#039;s largest bookstore and carries a wide selection of books.  The bookstore is divided into subjects for easy browsing.  Readers are welcome to read books in designated areas. &lt;br /&gt;
&lt;br /&gt;
It take only 10 minutes walk from Grand Hyatt to the bookstore.&lt;br /&gt;
&lt;br /&gt;
*Huashan 1914 Creative Park&lt;br /&gt;
http://www.huashan1914.com/en/index.html&lt;br /&gt;
&lt;br /&gt;
There are some exhibitions and restaurants, and I remember there&#039;s a shop with&lt;br /&gt;
special things for souvenirs, which are designed by the artists.&lt;br /&gt;
&lt;br /&gt;
How to get there: Take the Nangang/Blue Line to Zhong Xiao Xing Sheng Station (忠孝新生). Take Exit one and continue to walk straight for about a block until you see an underpass and a giant red diamond.&lt;br /&gt;
The Huashan Creative Park is just across the street.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or try night markets:)&lt;br /&gt;
&lt;br /&gt;
*Raohe Street Tourist Night Market - http://goo.gl/aSdPK&lt;br /&gt;
&lt;br /&gt;
It&#039;s better to take a taxi from the office or the hotel. &lt;br /&gt;
The pronunciation of the name should be: Rao-He-Ye-Shi.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day trips&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The [http://www.npm.gov.tw/en/ National Palace Museum] has one of the leading collections of Chinese art in the world.  You could easily spend an entire day here.  The museum is accessible by bus from Shilin MRT station on the red line and Dazhi MRT station on the brown line.  Alternatively, a taxi from the Taipei 101 area costs only a couple hundred NT.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Jiufen Jiufen] is a popular tourist town in the hills north of Taipei overlooking the Pacific Ocean.  The main tourist attraction is the old street, a vibrant commercial strip set on tiny streets with shops selling all sorts of random food and drink.  There are also a number of teahouses you can sit down and relax in.  Mount Jilong, across the main road, is a 2000ft peak with a nice trail that leads to stunning views of Jiufen and the rest of Taiwan&#039;s northern coast.  On an especially clear day you might even be able to make out Taipei 101 in the distance. There&#039;s a car service available for about NT$3300 (US$110) that will drive up to 3 people to Jiufen and other locations in between Jiufen and Taipei. The driver will pick you up at your hotel at 9AM and bring you back around 7PM. This is very convenient and affordable if not traveling alone. [mailto:wsh2526@yahoo.com.tw E-mail] or call (0913967292) Jerry&#039;s Taxi Service for more info.&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Maokong_Gondola Maokong Gondola], at the southern end of the brown MRT line, will take you from Taipei Zoo into the hills south of the city.  Maokong is best known for its tea shops.  There are a number of hiking trails in the area, and the hills provide good views of much of the city.  The [http://www.chih-nan-temple.org/language/en_about.htm Chi-Nan] (or Zhinan) temple is also accessible from the Gondola.  It is a large Taoist temple complex built into the side of a mountain.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Longer&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Be warned that anywhere outside of Taipei it will be substantially harder to get by with English, except at places that specifically cater to tourists.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Kaohsiung Kaohsiung] is the second largest city in Taiwan.  It is located in southwestern Taiwan, and is at the end of the Taiwan High Speed Rail line.  On the fastest trains it can be reached from Taipei Main Station in 96 minutes for about 50 USD.  Kaohsiung is the only other city in Taiwan with an MRT system, which is great for getting around easily without taking your life into your own hands in Taiwan&#039;s traffic.  Kaohsiung is a major port city with some of the largest ship building facilities in the world.  Attractions in town include:&lt;br /&gt;
&lt;br /&gt;
* Cijin island: A natural breakwater island in Kaohsiung harbor.  It has a lighthouse, an old fort, and a famous temple dedicated to the goddess of sailors.  There are also a number of markets with food stalls and more, much like a night market (except during the day).  The island is accessible by a quick ferry ride, and you can bring a bike on the ferry.&lt;br /&gt;
* The Dome of Light: at Formosa Boulevard MRT station, where Kaohsiung&#039;s two MRT lines intersect, a large public art display is built into the ceiling of the station&#039;s main hall.&lt;br /&gt;
* Lotus Lake: In Zuoying, not far from the High Speed Rail Station, Lotus Lake has several temples.  These include the Dragon-Tiger and Spring-Autumn pavilions, and Taiwan&#039;s largest Confucius temple.  Some of the temples are actually built in the lake and accessible via a boardwalk.&lt;br /&gt;
* Love River: The main river in Kaohsiung has a number of riverside parks and paths (smaller than Taipei&#039;s) along with cafes and other places to stop at watch.&lt;br /&gt;
* Night markets: Two night markets worth visiting in Kaohisung are [http://eng.taiwan.net.tw/m1.aspx?sNo=0002121&amp;amp;id=2245 Liuhe Night Market] and the [http://en.wikipedia.org/wiki/Ruifeng_Night_Market Ruifeng Night Market].  For Liuhe, take the MRT to Formosa Blvd Station, exit 1.  The night market is on the street immediately to your left.  Try the local delicacy: papaya milk.  Ruifeng is accessible via the Kaohsiung Arena Station on the Red line.  Exit and walk west along Yucheng road.  In contrast to Liuhe, which is set on a wide open street, Ruifeng has endless rows of stalls crowded together in a rather claustrophobic setting.&lt;br /&gt;
&lt;br /&gt;
Taiwan is a small island, but much of the population is concentrated along the relatively flat Western coast.  The mountainous Eastern coast is largely undeveloped, and much of it is preserved as various parks.  The most notable of these is [http://en.wikipedia.org/wiki/Taroko_National_Park Taroko National Park], home to Taroko gorge.  Take a Taiwan Railway Administration (TRA) train from Taipei Main Station to Hualien via Yilan (this is a 2-3 hour trip).  Once at Hualien, you can either take the Tourist shuttle bus (exit the train station and turn left to find the ticket area) or hire a taxi driver for the day.  The bus runs only once an hour, and is *extremely* crowded in the late afternoon when everyone leaves at the same time.  Were I to do this again I would hire the driver.  The ones that speak English will offer their services as you leave the train station.  There are a variety of things to do and see in Tarako Gorge, including a number of hiking trails, temples, shrines, etc, but availability can change frequently (especially when trails are washed out by typhoons) so checking at the visitors center for an up to date list is a good idea.  Tarako Gorge is a popular tourist spot but western tourists are relatively rare (most are Chinese or Japanese, usually in large tour groups). Another option is [http://tarokolodge.blogspot.tw Taroko Lodge], a homestay; see http://robert.ocallahan.org/2014/03/taroko-national-park.html.&lt;br /&gt;
&lt;br /&gt;
For drinks &amp;amp; nightlife:&lt;br /&gt;
&lt;br /&gt;
* Barcode is a decent lounge https://www.facebook.com/Barcode.Taipei&lt;br /&gt;
* Le Meridian has a great patio&lt;br /&gt;
* W Woobar&lt;br /&gt;
* Brown Sugar has live band http://www.brownsugarlive.com/taipei/main.html&lt;br /&gt;
* Brassmonkey a bit more low-key but fun http://www.brassmonkeytaipei.com/directions.html#.Uug4TPY1gy4&lt;br /&gt;
&lt;br /&gt;
= Special Food =&lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Stinky_tofu Stinky tofu]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Iron_egg Iron egg]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Century_egg Century egg]&lt;br /&gt;
*[http://taiwanfoodculture.net/ct.asp?xItem=68502&amp;amp;ctNode=2682&amp;amp;mp=1502 Ginger duck]&lt;br /&gt;
&lt;br /&gt;
= Additional information =&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikivoyage.org/wiki/Taipei wikivoyage:Taipei]&lt;br /&gt;
* [https://intranet.mozilla.org/Web_Rendering_Work_Week_May_2013] has a bunch of useful stuff for visitors that should perhaps be merged here&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Taipei&amp;diff=1079981</id>
		<title>Taipei</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Taipei&amp;diff=1079981"/>
		<updated>2015-06-15T03:36:00Z</updated>

		<summary type="html">&lt;p&gt;Timdream: heading level and fix links to other wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Taipei =&lt;br /&gt;
&lt;br /&gt;
== Status of this document ==&lt;br /&gt;
&lt;br /&gt;
This document is copied from [https://intranet.mozilla.org/index.php?title=Taipei&amp;amp;oldid=180197 the internal wiki of the same title] because it contains no confidential information. The [https://wiki.mozilla.org/index.php?title=Taipei&amp;amp;oldid=1074564 original content occupied this name space] is overwritten. You are encouraged check the original content and savage what&#039;s not mentioned here.&lt;br /&gt;
&lt;br /&gt;
Since this is a wiki, this document only reflects travel experience of contributing Mozillians and does not imply position of Mozilla. Please don&#039;t quote this wiki page in the wrong way.&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Currency&#039;&#039;&#039;: Taiwan uses the [http://en.wikipedia.org/wiki/New_Taiwan_dollar New Taiwan Dollar], NT$ in English or 元 in Chinese, currency code NTD. As of this writing exchange rates are roughly NT$30 to $1 USD and NT$40 to €1; see [http://www.oanda.com/currency/table?exch=TWD&amp;amp;sel_list=USD_EUR_CAD_GBP_NZD_AUD_JPY&amp;amp;value=1&amp;amp;format=HTML&amp;amp;redirected=1 current exchange rates]. There are ATMs available at the airport and in the ground floor lobby of the Mozilla office. Currency exchange services are also available at the airport and the hotel with the usual caveats.&lt;br /&gt;
* &#039;&#039;&#039;Electricity&#039;&#039;&#039;: Taiwan uses US-style electricity, including plugs (though you might have a little more trouble with ground pins or polarized plugs than in the US, but not much), voltage (110V, slightly lower than the US&#039;s 120V), and frequency (60Hz).&lt;br /&gt;
* &#039;&#039;&#039;Weather&#039;&#039;&#039;: [http://uk.weather.com/weather/10day-TWXX0021:1:TW Forecast in °C], [http://www.weather.com/weather/tenday/Taipei+TWXX0021:1:TW Forecast in °F], [http://www.cwb.gov.tw/V7e/forecast/taiwan/Taipei_City.htm Government Forecast in °C], [http://www.cwb.gov.tw/V7e/observe/radar/ Radar], [http://www.timeanddate.com/worldclock/astronomy.html?n=241 Sunrise/Sunset], [http://www.cwb.gov.tw/V7e/earthquake/ Earthquakes]&lt;br /&gt;
* &#039;&#039;&#039;Water&#039;&#039;&#039;: Locals do not drink the tap water without boiling or filtering it. Complimentary bottled water is provided by the hotel daily and is available cheaply all over the place. The office has water coolers and cups.&lt;br /&gt;
* &#039;&#039;&#039;Health&#039;&#039;&#039;: Review the information provided by the [http://wwwnc.cdc.gov/travel/destinations/taiwan.htm CDC (US)] and/or the [http://www.fitfortravel.nhs.uk/destinations/asia-%28east%29/taiwan.aspx NHS (UK)].  You should ask your doctor if you have any questions.&lt;br /&gt;
* &#039;&#039;&#039;Food&#039;&#039;&#039;: If you have any food allergies or dietary restrictions, get them written down in Chinese before you leave home.&lt;br /&gt;
* &#039;&#039;&#039;Calendar&#039;&#039;&#039;: Taiwan uses the western calendar, but years are frequently written in the [http://en.wikipedia.org/wiki/Minguo_calendar Min-guo calendar].  So 民國104年3月17日 or 2015年3月17日 could both be used to write March 17, 2015.&lt;br /&gt;
&lt;br /&gt;
== Airport Access ==&lt;br /&gt;
&lt;br /&gt;
=== Taoyuan International Airport (TPE) ===&lt;br /&gt;
&lt;br /&gt;
Located in Taoyuan County, 45km (28 miles) away from the city center, Taiwan Taoyuan International Airport is linked to the island’s north area.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Taxi&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Only registered airport service taxis can pick up passengers at the two terminals. A taxi to the city center from the airport will set you back about NT$1,200. (And from Taipei city to the airport, it costs about NT$1,000). Do not expect taxi drivers to speak English, read the Latin alphabet, or understand your terrible attempts at pronouncing Chinese, so you should generally have the address of your destination in &#039;&#039;&#039;written Chinese&#039;&#039;&#039;.  (See below on the Grand Hyatt if that&#039;s your destination.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Limousine Service&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Counters for limo service are in the arrival halls of both terminals. The fixed rate for anywhere in the city is NT$1,300(single high way included). Vans cost slightly less if travelers agree to be grouped together. Service in Terminal 1 is 9am-midnight, and 24 hours in Terminal 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Bus&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
There is bus service from both terminals to the Grand Hyatt (and to many other places in Taipei). CitiAir bus 1960 runs to the Grand Hyatt in about 1 hour for NT$145 ([http://www.airbus.com.tw/busline/airportbusdetail.php?sn=1 description in Chinese], [http://www.airbus.com.tw/userfiles/images/airportbus/1960.jpg route map in Chinese and English]). The bus counter staff will understand enough English to sell you a ticket to the Grand Hyatt. Stops are not announced in English, so count the stops or pay attention to what&#039;s outside. If you miss the Grand Hyatt the end of the line is the next stop at Taipei City Hall Bus Station, which is only a 10 minute walk from the hotel. The bus is less convenient going back to the airport because it waits at each stop for several minutes.&lt;br /&gt;
&lt;br /&gt;
more information:&amp;lt;br/&amp;gt;&lt;br /&gt;
http://www.taoyuan-airport.com/english/buses&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Train&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Taiwan&#039;s High Speed Rail system links the major cities (including Taoyuan) of the west coast of the island with Taipei Main Station, but does not stop at Taoyuan airport.  There is an inexpensive (30 NT) shuttle bus from the terminals to the Taoyuan HSR station.  Once there you can take the HSR directly to Taipei Main Station.  The 175 NT service makes one stop (at Banqiao) and takes approximately 20 minutes.  Trains run with approximately 20 minute headways.  Once at Taipei Main Station you can transfer to the MRT Red Line towards Taipei 101.  Taking the HSR requires two transfers (shuttle bus to HSR, HSR to MRT or local bus/taxi) but can be faster than taking a taxi or bus if traffic on the #1 freeway is bad, especially in the reverse direction (where the 1960 bus makes and dwells at several stops).&lt;br /&gt;
&lt;br /&gt;
A direct MRT link from Taoyuan Airport to Taipei is under construction but not expected to open until at least December 2015.&lt;br /&gt;
&lt;br /&gt;
=== Songshan Airport (TSA; Domestic and regional-international) ===&lt;br /&gt;
&lt;br /&gt;
If you are coming from Tokyo (Haneda, NOT Narita), Seoul (Gimpo), Shanghai (Hongqiao, not Pudong) and some other cities in China, it&#039;s possible to book a flight to the regional Songshan airport and land directly in the city to save some ground travel time.  Connecting to arrive at Songshan when originating from North America is generally not feasible, requiring airport changes (in Seoul and Shanghai), overnight layovers (at Haneda), and exorbitant prices.&lt;br /&gt;
&lt;br /&gt;
* taxi to office, 15 minutes&lt;br /&gt;
* metro to office or hotels (see instructions for either); metro station is in airport&lt;br /&gt;
&lt;br /&gt;
More info: http://www.tsa.gov.tw/&lt;br /&gt;
&lt;br /&gt;
== Hotels ==&lt;br /&gt;
&lt;br /&gt;
=== Regent Taipei ===&lt;br /&gt;
&lt;br /&gt;
Regent Taipei takes MRT to Taipei 101 Mall about 15 minutes. Situated in the Zhong Shan district, at the heart of the capital’s most vibrant cultural, entertainment and shopping areas, Regent Taipei is a 5 star hotel in Taipei that off ers travellers a bird’s eye view of modern Taiwanese life from a highly-convenient vantage point. Easily accessible from the Taipei Song Shan Airport and close to local hot spots such as art museums and historic buildings, Regent Taipei is the only hotel in Taiwan to house in excess of 50 of the world’s luxury designer boutiques in its Regent Galleria shopping mall. Wired and wireless connectivity is available throughout the hotel.&lt;br /&gt;
&lt;br /&gt;
More information: http://www.regenthotels.com/EN/Taipei&lt;br /&gt;
&lt;br /&gt;
About reservation:&lt;br /&gt;
Please make sure that you’ve left your Mozilla email address to the hotel for the corporate rates. Please contact with Nelson (nelson.chung@fihregent.com).&lt;br /&gt;
The hotel provides a pretty comprehensive buffet breakfast with a variety of Chinese and Western options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telephone&#039;&#039;&#039;: +886-2-2523-8000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metro&#039;&#039;&#039;: The nearest metro station is from our Taipei office MRT Exit number 3 &#039;&#039;&#039;Taipei 101 / World Trade Center&#039;&#039;&#039; on the &#039;&#039;&#039;Xiangshan (red) Line&#039;&#039;&#039; to &#039;&#039;&#039; 	Zhongshan&#039;&#039;&#039; on the &#039;&#039;&#039;Tamsui (red) Line&#039;&#039;&#039; and use exit number 4. Walk to Zhong Shan North Road and turn left onto Zhong Shan North Road. Walk approximately 6 minutes and you will find the hotel on your right.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Grand Hyatt Taipei ===&lt;br /&gt;
&lt;br /&gt;
Grand Hyatt Taipei hotel anchors the city’s most vibrant commercial center in the Xinyi district.  Adjacent to Taipei 101 Mall and Financial Tower, this five-star business hotel is conveniently linked to the Taipei World Trade Center, the Taipei International Convention Center and the Exhibition Halls.  Located in the heart of Taipei’s most dynamic business, shopping and entertainment district, our hotel in Taipei affords both business and leisure travelers the utmost in convenience.&lt;br /&gt;
&lt;br /&gt;
More information: http://taipei.grand.hyatt.com/en/hotel/home.html&lt;br /&gt;
&lt;br /&gt;
About reservation:&lt;br /&gt;
Please make sure that you’ve left your Mozilla email address to the hotel for the corporate rates.&lt;br /&gt;
The hotel provides a pretty comprehensive buffet breakfast with a variety of Chinese and Western options.&lt;br /&gt;
&lt;br /&gt;
Although many taxi drivers will understand &amp;quot;Grand Hyatt&amp;quot; in spoken English, you shouldn&#039;t count on it. The address card for the hotel is available in Chinese ([https://intranet.mozilla.org/File:Grand-hyatt-taipei.png PNG image], [http://taipei.grand.hyatt.com/zh-Hant/hotel/home.html source HTML]) and you should print it out before you leave.  (In case you don&#039;t print it but do print this, the important part is: 台北君悅大飯店　台灣台北市松壽路2號.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telephone&#039;&#039;&#039;: +886 2 2720 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metro&#039;&#039;&#039;: The nearest metro station is &#039;&#039;&#039;Taipei 101 / World Trade Center&#039;&#039;&#039; on the &#039;&#039;&#039;Xinyi (red) Line&#039;&#039;&#039;.  &#039;&#039;&#039;Taipei City Hall Station&#039;&#039;&#039; on the &#039;&#039;&#039;Bannan (blue) Line&#039;&#039;&#039; is also not far.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laundry&#039;&#039;&#039;:  There is an [https://plus.google.com/105661139456057684683/about?hl=en easy-to-use 24 hour laundromat] a very short walk from the hotel.  Nearly everything has English labels in addition to Chinese.  Soap NT$10 (accepts bills or coins, gives change, be careful to pick the soap rather than the other items), washer NT$50/NT$70/NT$100 (function of washer size, takes NT$10 and NT$50 coins only), dryer NT$10/6min (takes NT$10 coins only, I think).&lt;br /&gt;
&lt;br /&gt;
=== Home Hotel ===&lt;br /&gt;
&lt;br /&gt;
http://www.homehotel.com.tw/&lt;br /&gt;
&lt;br /&gt;
We have a contract with Home Hotel for a better rate than Egencia. You can book directly though Mavis Liao mavis.liao@homehotel.com.tw.&lt;br /&gt;
&lt;br /&gt;
Home Hotel is a very nice hotel, is closer to the office, includes breakfast, and the food (both breakfast and room service) is quite good. The Grand Hyatt does not include breakfast, which is 30USD.&lt;br /&gt;
&lt;br /&gt;
=== Royal Biz Taipei ===&lt;br /&gt;
&lt;br /&gt;
While it&#039;s a bit further from the office (a few stops by subway), a number of us have had good experiences staying at the [http://www.royalbiz.com.tw/about_en.php Royal Biz Taipei (金來商旅)], 71 Sec 1 Jinshan S Rd, Taipei 10056, Taiwan (台北市中正區金山南路一段71號).  It is &#039;&#039;much&#039;&#039; less expensive than the Grand Hyatt.  It is also in a less Westernized (and hence to some more interesting) part of the city, not far from Da&#039;an park.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telephone&#039;&#039;&#039;: +886 2 23979399&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metro&#039;&#039;&#039;: The Royal Biz is walking distance from the [http://en.wikipedia.org/wiki/Taipei_Metro MRT] &#039;&#039;&#039;Dongmen&#039;&#039;&#039; station on the &#039;&#039;&#039;Xinyi (red) Line&#039;&#039;&#039;.  Use Exit 2 at the northwest corner of the station (or exit 1 with an escalator, but a drop further from the intersection), then walk North along JinShan S Rd until about 50 meters before Ren&#039;ai Rd (which is the next street of size comparable to JinShan Rd or Xinyi Rd).  To get to the office, take the Xinyi Line 4 or 5 stops, to either Taipei 101 / World Trade Center or to Xiangshan.&lt;br /&gt;
&lt;br /&gt;
The Royal Biz is also walking distance from the [http://en.wikipedia.org/wiki/Taipei_Metro MRT] &#039;&#039;&#039;Zhongxiao Xinsheng&#039;&#039;&#039; station on the &#039;&#039;&#039;Bannan (blue) Line&#039;&#039;&#039;.  (This is slightly further than from Dongmen station, and not useful for getting to the office, but is useful for getting to other destinations.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From the airport&#039;&#039;&#039;: From Taoyuan airport take either the 1819 bus to Taipei Main Station or take Taiwan High Speed Rail (via a bus transfer to Taoyuan station) to Taipei Main Station.  At Taipei Main Station, transfer to the &#039;&#039;&#039;Xinyi (red) Line&#039;&#039;&#039; in the &#039;&#039;&#039;Xiangshan&#039;&#039;&#039; direction.  Alight at &#039;&#039;&#039;Dongmen&#039;&#039;&#039; station.  Alternatively take a taxi from the airport.  Because this is a smaller, less well known hotel, do not expect the driver to understand the English name of the hotel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laundry&#039;&#039;&#039;: There is also a [http://www.openstreetmap.org/node/2536456936#map=18/25.03821/121.52677 24-hour laundry] walking distance from the hotel (it&#039;s on Hangzhou Rd S, which is one major street west along Ren&#039;ai Road, and also on the opposite side of Ren&#039;ai).  The hotel reception desk will hand you a flyer with a map and picture if you ask where to find a laudromat.&lt;br /&gt;
&lt;br /&gt;
== Mozilla Office ==&lt;br /&gt;
&lt;br /&gt;
Grand Hyatt and other hotels in the Shifu (City Hall) area are within walking distance of the office. From much of the city the easiest way to get to the office is to take the red (Xinyi) MRT line to Taipei 101/World Trade Center station.  The red line provides direct service to Taipei Main Station and the Taiwan High Speed Rail terminal there.&lt;br /&gt;
&lt;br /&gt;
The office is located in the Xinyi Jing Mao Da Lou.&lt;br /&gt;
&lt;br /&gt;
Walking from the Grand Hyatt to the Taipei office should only take 10 to 15 minutes. Walking directions [http://goo.gl/maps/HeJYM in Chinese], or [http://goo.gl/OQvoI in English] &lt;br /&gt;
&lt;br /&gt;
[https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-prn2/976478_10151400036476205_1855335477_o.jpg View approaching the office from Taipei 101, it&#039;s the white JP Morgan building.]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mozilla&#039;s company name in Chinese&#039;&#039;&#039;:美商謀智台灣分公司&lt;br /&gt;
* &#039;&#039;&#039;Office address&#039;&#039;&#039;: 110 台北市信義區信義路五段106號&lt;br /&gt;
* &#039;&#039;&#039;Office address&#039;&#039;&#039;: 4F-A1, No. 106, Sec. 5, Xinyi Rd., Xinyi Dist.,Taipei City 11047, Taiwan&lt;br /&gt;
** 4F means fourth floor&lt;br /&gt;
** don&#039;t worry about the A1; you&#039;ll see it when you get out of the elevator&lt;br /&gt;
** No. 106 is the building&#039;s number&lt;br /&gt;
** Sec. 5 is the section of Xinyi Road.  Major roads in Taipei are divided into sections at each crossing of a major street, and each section has its own set of numbers.  Some Roads that cross halves of the city are also split into N/S or E/W.  So don&#039;t look for a number in the wrong section.&lt;br /&gt;
* &#039;&#039;&#039;Office telephone&#039;&#039;&#039;: +886-2-8786-1100&lt;br /&gt;
&lt;br /&gt;
== Public Transportation ==&lt;br /&gt;
&lt;br /&gt;
Taipei Metro is quite convenient and easy. Everything in signed in English (and Chinese is consistently romanized in Hanyu Pinyin) and the staff speak at least basic English. The fare is distanced based with a minimum of NT$20. Tokens can be bought at the ticket machine before entry. Fare cards are NT$100 to purchase and provide a 20% discount. The &amp;quot;EasyCard&amp;quot; can also be used on buses and in convenience stores, much like the Octopus card in Hong Kong.&lt;br /&gt;
&lt;br /&gt;
* [http://english.trtc.com.tw/np.asp?ctNode=49778&amp;amp;mp=122032 metro guide]&lt;br /&gt;
* [http://english.trtc.com.tw/ct.asp?xItem=1056373&amp;amp;CtNode=49780&amp;amp;mp=122032 route map]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Taipei_Metro Taipei Metro (wikipedia)]&lt;br /&gt;
&lt;br /&gt;
City Buses can take you closer to the destination than metro, although it is complicated and not friendly. Minimal fare would be NT$15, pay on-board OR off board depend on the sign. One might need to pay when both on-board AND off-board if it&#039;s a long trip. NO CHANGE GIVEN, EXACT CHANGE ONLY.&lt;br /&gt;
&lt;br /&gt;
Public transportation can be planned on Google Maps.&lt;br /&gt;
&lt;br /&gt;
For intra-city transportation, there is high speed rail (HSR) and railway (TRA), and highway buses.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that outside of Taipei, Kaohsiung, and Taichung, public transportation is pretty much useless. Most locals ride scooters -- you can rent one if you dare!&lt;br /&gt;
&lt;br /&gt;
== Food ==&lt;br /&gt;
&lt;br /&gt;
Taiwan offers various cuisine due to its rich culture and historical background. Chinese, Japanese, and of course Taiwanese food are pretty genuine here.&lt;br /&gt;
&lt;br /&gt;
The Taipei 101 food court has a variety of fast food options.  If you&#039;re looking for something a little more involved, Kate provided the following list:&lt;br /&gt;
&lt;br /&gt;
=== Vegetarian Restaurants ===&lt;br /&gt;
&lt;br /&gt;
1. Lian-chi-ge Vegetarian Buffet 蓮池閣 (red sign).  Location: B1, No.153, Sec.4, Xinyi Rd.   Some pictures of the restaurant and the food: http://www.lck888.com/a04-a.htm&lt;br /&gt;
&lt;br /&gt;
2. Easy House Vegetarian cuisine.  Location: at Neo 19 3F (Neo 19: No.22, Song Shou Rd.)  http://www.easyhouse.tw/html/meal/meal_01.asp&lt;br /&gt;
&lt;br /&gt;
3. Ming De Vegetarian buffet.   Location: It&#039;s at the food court in Shin Kong Mitsukoshi A8 department store(B1), and at Eslite bookstore B2 as well. Not a fancy restaurant but the food is good!&lt;br /&gt;
&lt;br /&gt;
=== Chinese Restaurants ===&lt;br /&gt;
&lt;br /&gt;
1. Din-Tai-Fung (Taipei 101 B1).  Dumplings.  Can&#039;t miss. http://www.dintaifung.com.tw/en/default.htm&lt;br /&gt;
&lt;br /&gt;
2. FiFi Restaurant.  It&#039;s at Eslite bookstore 6F (the bookstore is near Taipei City Hall Metro Station).  Sorry there&#039;s no English version of website but we&#039;ve been there before, and the food is pretty good!&lt;br /&gt;
&lt;br /&gt;
3. Redbeandining Restaurant.  In Shin Kong Mitsukoshi A9 department store, 7F.&lt;br /&gt;
&lt;br /&gt;
4. South Beauty.  Location: 6F, No.12, Song Shou Rd. (It&#039;s in the department store - Att 4 fun)  http://www.southbeauty.com/en/&lt;br /&gt;
&lt;br /&gt;
5. 1010 Xiang (Hunan cuisine).  If you like spicy food, it will be a nice choice.  Location: at Eslite bookstore 6F (Eslite bookstore: No.11, Song Gao Rd.)  http://www.1010restaurant.com/index.php?cid=2&amp;amp;mid=1&amp;amp;sid=1&lt;br /&gt;
&lt;br /&gt;
6. KiKi Restaurant.  Location: at Eslite bookstore 4F (Eslite bookstore: No.11, Song Gao Rd.)  http://www.kiki1991.com/&lt;br /&gt;
&lt;br /&gt;
7. Shao Shao Ke.  Location: #15, alley 41, RenAi Rd. section 2, Taipei, Taiwan 台北市仁愛路二段41巷15號.  Food from Shaanxi province in China, with more Central Asian influence than most Chinese food. http://fewdblog.com/?p=605&lt;br /&gt;
&lt;br /&gt;
8. China Pa.  Location No. 145號, Section 1, Ānhé Rd, Daan District, Taipei City, Taiwan 106, near the Xinyi Anhe MRT Station on the Red Line.  This place turns into a live music venue later in the evening with indoor smoking, so you probably want to go early.&lt;br /&gt;
&lt;br /&gt;
9. Beijing Do It True (北平都一處).  506 RenAi Rd Sec 4 / 仁愛路四段506號 (just northwest of the Grand Hyatt).  Beijing food.  http://taipei543.com/2013/01/22/beijing-do-it-true/&lt;br /&gt;
&lt;br /&gt;
=== Japanese Restaurants ===&lt;br /&gt;
&lt;br /&gt;
Japanese food, like most other Japanese things, is extremely popular in Taiwan.  There are a variety of great Japanese restaurants to choose from.&lt;br /&gt;
&lt;br /&gt;
1. Sanji Ramen - Att4Fun 5F.  Menu is only in Chinese and Japanese, but it has lots of pictures, and the staff speaks English.  http://hungryintaipei.blogspot.tw/2012/02/ramen-i-recommend-ramen-sanji.html&lt;br /&gt;
&lt;br /&gt;
2. Butaichi Ramen - Hankyu Mall B2, #A4.  This is better known as the food court in Taipei City Hall MRT Station.  Menu is in English, lots of pictures, and the staff speaks English.  http://hungryintaipei.blogspot.com/2014/03/ramenjapanese-i-recommend-butaichi-ramen.html&lt;br /&gt;
&lt;br /&gt;
=== Other suggestions ===&lt;br /&gt;
&lt;br /&gt;
There are a variety of good hole-in-the-wall type places in the neighborhood south of the office (away from Xinyi Road and Taipei 101).  For best results, befriend one of the locals and ask them to take you there.  Be respectful of their time, of course.  Don&#039;t expect English menus or English speaking staff.&lt;br /&gt;
&lt;br /&gt;
* Noodle restaurant&lt;br /&gt;
* Beef noodle restaurant&lt;br /&gt;
* Taiwan chicken&lt;br /&gt;
&lt;br /&gt;
I found http://hungryintaipei.blogspot.com/ to be a great resource for discovering some places.&lt;br /&gt;
&lt;br /&gt;
For the adventurous, &#039;&#039;&#039;Night market&#039;&#039;&#039; offers small food stands for you to try out. One of the (in)famous ones being the stinky tofu (ask anyone from the B2G team).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FAQ: Where to get food after 10pm&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unfortunately except diners near the night market, fast food, and bars, most dinner places close before 10pm (Taiwanese family start their dinners around 6-7pm, much earlier than people in the U.S. and Europe). Your choices would be go to either places described above, or grab microwave food at convenient stores such as 7-Eleven. Microwave food comes with much variety, worth to check out. [http://hungryintaipei.blogspot.tw/2010/03/snacksnapshot-i-strongly-recommend-7-11.html Here] is a hilarious intro on 7-Eleven in Taiwan.&lt;br /&gt;
&lt;br /&gt;
For people stay at the City Hall area, the nearest night market to go would be Tungwha St., located [https://maps.google.com/?ll=25.029413,121.557348&amp;amp;spn=0.006649,0.011362&amp;amp;t=m&amp;amp;z=17 here]. The same location feature farmers market (&amp;quot;traditional market&amp;quot;) during a.m. hours.&lt;br /&gt;
&lt;br /&gt;
The Grand Hyatt has room service for prices that aren&#039;t unreasonable for Western countries (but are rather expensive for Taiwan).&lt;br /&gt;
&lt;br /&gt;
== Fun ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A couple hours&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://www.tripadvisor.com/Attraction_Review-g293913-d2019764-Reviews-Elephant_Mountain_aka_Nangang_District_Hiking_Trail-Taipei.html Elephant Mountain (Xiangshan)] is a ~100m hill that has a spectacular view of Taipei 101, the Xinyi district, and much of Taipei.  It&#039;s a quick hike (20-25 minutes from the office, including time to walk to the foot of the trail) but the trails continue much further into the hills if you want to go farther.&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Mengjia_Longshan_Temple Longshan Temple] is an interesting place to visit, especially if you&#039;ve never been somepace like it before.  There are several other temples scattered throughout the city, and if you wander around enough you will likely see small shrines all over the place.  If you are in town on the right days you may notice people burning [http://en.wikipedia.org/wiki/Joss_paper ghost money] outside on the streets.&lt;br /&gt;
&lt;br /&gt;
Rent a bike and go for a ride on Taipei&#039;s riverside parks.  Taipei has an extensive network of riverside parks, trails, and bike paths.  Take the MRT to Gongguan station (on the green line) and follow the signs to the water park.  Keep going past the water park towards the river and you will find a bike rental shop.  You can rent a bike hourly (post-paid) for a very low price.  They will want your passport as collateral.  From the rental facility to the confluence of Taipei&#039;s two rivers and back is a 3-4 hour ride at a reasonable pace.  There are several points along the river where you can pass through the flood walls that separate the city from the river.  These are useful for exploring, or stopping at a 7-11 to pick up another bottle of water.  You can also rent bikes from the Taipei city bikeshare system, Youbike, but this requires an MRT card and a Taiwanese cell phone number to set up.  Youbikes are also not as comfortable for long distances.&lt;br /&gt;
&lt;br /&gt;
Wikivoyage has [http://en.wikivoyage.org/wiki/Taipei lots more advice] about what to see, including a [http://en.wikivoyage.org/wiki/One_day_in_Taipei suggested itinerary for a &#039;&#039;packed&#039;&#039; one-day tourist visit] which highlights some of the top attractions.  You can pick a few things off of here that sound interesting.&lt;br /&gt;
&lt;br /&gt;
Here are some places where you may find something special for souvenirs:&lt;br /&gt;
&lt;br /&gt;
*Eslite Bookstore (Xinyi store) - http://goo.gl/WBHXn&lt;br /&gt;
&lt;br /&gt;
Opened in 2006, the 8,000-square meter Xinyi District bookstore is Taiwan&#039;s largest bookstore and carries a wide selection of books.  The bookstore is divided into subjects for easy browsing.  Readers are welcome to read books in designated areas. &lt;br /&gt;
&lt;br /&gt;
It take only 10 minutes walk from Grand Hyatt to the bookstore.&lt;br /&gt;
&lt;br /&gt;
*Huashan 1914 Creative Park&lt;br /&gt;
http://www.huashan1914.com/en/index.html&lt;br /&gt;
&lt;br /&gt;
There are some exhibitions and restaurants, and I remember there&#039;s a shop with&lt;br /&gt;
special things for souvenirs, which are designed by the artists.&lt;br /&gt;
&lt;br /&gt;
How to get there: Take the Nangang/Blue Line to Zhong Xiao Xing Sheng Station (忠孝新生). Take Exit one and continue to walk straight for about a block until you see an underpass and a giant red diamond.&lt;br /&gt;
The Huashan Creative Park is just across the street.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or try night markets:)&lt;br /&gt;
&lt;br /&gt;
*Raohe Street Tourist Night Market - http://goo.gl/aSdPK&lt;br /&gt;
&lt;br /&gt;
It&#039;s better to take a taxi from the office or the hotel. &lt;br /&gt;
The pronunciation of the name should be: Rao-He-Ye-Shi.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day trips&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The [http://www.npm.gov.tw/en/ National Palace Museum] has one of the leading collections of Chinese art in the world.  You could easily spend an entire day here.  The museum is accessible by bus from Shilin MRT station on the red line and Dazhi MRT station on the brown line.  Alternatively, a taxi from the Taipei 101 area costs only a couple hundred NT.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Jiufen Jiufen] is a popular tourist town in the hills north of Taipei overlooking the Pacific Ocean.  The main tourist attraction is the old street, a vibrant commercial strip set on tiny streets with shops selling all sorts of random food and drink.  There are also a number of teahouses you can sit down and relax in.  Mount Jilong, across the main road, is a 2000ft peak with a nice trail that leads to stunning views of Jiufen and the rest of Taiwan&#039;s northern coast.  On an especially clear day you might even be able to make out Taipei 101 in the distance. There&#039;s a car service available for about NT$3300 (US$110) that will drive up to 3 people to Jiufen and other locations in between Jiufen and Taipei. The driver will pick you up at your hotel at 9AM and bring you back around 7PM. This is very convenient and affordable if not traveling alone. [mailto:wsh2526@yahoo.com.tw E-mail] or call (0913967292) Jerry&#039;s Taxi Service for more info.&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Maokong_Gondola Maokong Gondola], at the southern end of the brown MRT line, will take you from Taipei Zoo into the hills south of the city.  Maokong is best known for its tea shops.  There are a number of hiking trails in the area, and the hills provide good views of much of the city.  The [http://www.chih-nan-temple.org/language/en_about.htm Chi-Nan] (or Zhinan) temple is also accessible from the Gondola.  It is a large Taoist temple complex built into the side of a mountain.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Longer&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Be warned that anywhere outside of Taipei it will be substantially harder to get by with English, except at places that specifically cater to tourists.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Kaohsiung Kaohsiung] is the second largest city in Taiwan.  It is located in southwestern Taiwan, and is at the end of the Taiwan High Speed Rail line.  On the fastest trains it can be reached from Taipei Main Station in 96 minutes for about 50 USD.  Kaohsiung is the only other city in Taiwan with an MRT system, which is great for getting around easily without taking your life into your own hands in Taiwan&#039;s traffic.  Kaohsiung is a major port city with some of the largest ship building facilities in the world.  Attractions in town include:&lt;br /&gt;
&lt;br /&gt;
* Cijin island: A natural breakwater island in Kaohsiung harbor.  It has a lighthouse, an old fort, and a famous temple dedicated to the goddess of sailors.  There are also a number of markets with food stalls and more, much like a night market (except during the day).  The island is accessible by a quick ferry ride, and you can bring a bike on the ferry.&lt;br /&gt;
* The Dome of Light: at Formosa Boulevard MRT station, where Kaohsiung&#039;s two MRT lines intersect, a large public art display is built into the ceiling of the station&#039;s main hall.&lt;br /&gt;
* Lotus Lake: In Zuoying, not far from the High Speed Rail Station, Lotus Lake has several temples.  These include the Dragon-Tiger and Spring-Autumn pavilions, and Taiwan&#039;s largest Confucius temple.  Some of the temples are actually built in the lake and accessible via a boardwalk.&lt;br /&gt;
* Love River: The main river in Kaohsiung has a number of riverside parks and paths (smaller than Taipei&#039;s) along with cafes and other places to stop at watch.&lt;br /&gt;
* Night markets: Two night markets worth visiting in Kaohisung are [http://eng.taiwan.net.tw/m1.aspx?sNo=0002121&amp;amp;id=2245 Liuhe Night Market] and the [http://en.wikipedia.org/wiki/Ruifeng_Night_Market Ruifeng Night Market].  For Liuhe, take the MRT to Formosa Blvd Station, exit 1.  The night market is on the street immediately to your left.  Try the local delicacy: papaya milk.  Ruifeng is accessible via the Kaohsiung Arena Station on the Red line.  Exit and walk west along Yucheng road.  In contrast to Liuhe, which is set on a wide open street, Ruifeng has endless rows of stalls crowded together in a rather claustrophobic setting.&lt;br /&gt;
&lt;br /&gt;
Taiwan is a small island, but much of the population is concentrated along the relatively flat Western coast.  The mountainous Eastern coast is largely undeveloped, and much of it is preserved as various parks.  The most notable of these is [http://en.wikipedia.org/wiki/Taroko_National_Park Taroko National Park], home to Taroko gorge.  Take a Taiwan Railway Administration (TRA) train from Taipei Main Station to Hualien via Yilan (this is a 2-3 hour trip).  Once at Hualien, you can either take the Tourist shuttle bus (exit the train station and turn left to find the ticket area) or hire a taxi driver for the day.  The bus runs only once an hour, and is *extremely* crowded in the late afternoon when everyone leaves at the same time.  Were I to do this again I would hire the driver.  The ones that speak English will offer their services as you leave the train station.  There are a variety of things to do and see in Tarako Gorge, including a number of hiking trails, temples, shrines, etc, but availability can change frequently (especially when trails are washed out by typhoons) so checking at the visitors center for an up to date list is a good idea.  Tarako Gorge is a popular tourist spot but western tourists are relatively rare (most are Chinese or Japanese, usually in large tour groups). Another option is [http://tarokolodge.blogspot.tw Taroko Lodge], a homestay; see http://robert.ocallahan.org/2014/03/taroko-national-park.html.&lt;br /&gt;
&lt;br /&gt;
For drinks &amp;amp; nightlife:&lt;br /&gt;
&lt;br /&gt;
* Barcode is a decent lounge https://www.facebook.com/Barcode.Taipei&lt;br /&gt;
* Le Meridian has a great patio&lt;br /&gt;
* W Woobar&lt;br /&gt;
* Brown Sugar has live band http://www.brownsugarlive.com/taipei/main.html&lt;br /&gt;
* Brassmonkey a bit more low-key but fun http://www.brassmonkeytaipei.com/directions.html#.Uug4TPY1gy4&lt;br /&gt;
&lt;br /&gt;
== Special Food ==&lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Stinky_tofu Stinky tofu]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Iron_egg Iron egg]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Century_egg Century egg]&lt;br /&gt;
*[http://taiwanfoodculture.net/ct.asp?xItem=68502&amp;amp;ctNode=2682&amp;amp;mp=1502 Ginger duck]&lt;br /&gt;
&lt;br /&gt;
== Additional information ==&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikivoyage.org/wiki/Taipei wikivoyage:Taipei]&lt;br /&gt;
* [https://intranet.mozilla.org/Web_Rendering_Work_Week_May_2013] has a bunch of useful stuff for visitors that should perhaps be merged here&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Taipei&amp;diff=1079980</id>
		<title>Taipei</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Taipei&amp;diff=1079980"/>
		<updated>2015-06-15T03:21:17Z</updated>

		<summary type="html">&lt;p&gt;Timdream: Copy content from https://intranet.mozilla.org/index.php?title=Taipei&amp;amp;oldid=180197 and add a status paragraph&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Status ===&lt;br /&gt;
&lt;br /&gt;
This document is copied from [https://intranet.mozilla.org/index.php?title=Taipei&amp;amp;oldid=180197 the internal wiki of the same title] because it contains no confidential information. The [https://wiki.mozilla.org/index.php?title=Taipei&amp;amp;oldid=1074564 original content occupied this name space] is overwritten. You are encouraged check the original content and savage what&#039;s not mentioned here.&lt;br /&gt;
&lt;br /&gt;
Since this is a wiki, this document only reflects travel experience of contributing Mozillians and does not imply position of Mozilla. Please don&#039;t quote this wiki page in the wrong way.&lt;br /&gt;
&lt;br /&gt;
=== Basics ===&lt;br /&gt;
* &#039;&#039;&#039;Currency&#039;&#039;&#039;: Taiwan uses the [http://en.wikipedia.org/wiki/New_Taiwan_dollar New Taiwan Dollar], NT$ in English or 元 in Chinese, currency code NTD. As of this writing exchange rates are roughly NT$30 to $1 USD and NT$40 to €1; see [http://www.oanda.com/currency/table?exch=TWD&amp;amp;sel_list=USD_EUR_CAD_GBP_NZD_AUD_JPY&amp;amp;value=1&amp;amp;format=HTML&amp;amp;redirected=1 current exchange rates]. There are ATMs available at the airport and in the ground floor lobby of the Mozilla office. Currency exchange services are also available at the airport and the hotel with the usual caveats.&lt;br /&gt;
* &#039;&#039;&#039;Electricity&#039;&#039;&#039;: Taiwan uses US-style electricity, including plugs (though you might have a little more trouble with ground pins or polarized plugs than in the US, but not much), voltage (110V, slightly lower than the US&#039;s 120V), and frequency (60Hz).&lt;br /&gt;
* &#039;&#039;&#039;Weather&#039;&#039;&#039;: [http://uk.weather.com/weather/10day-TWXX0021:1:TW Forecast in °C], [http://www.weather.com/weather/tenday/Taipei+TWXX0021:1:TW Forecast in °F], [http://www.cwb.gov.tw/V7e/forecast/taiwan/Taipei_City.htm Government Forecast in °C], [http://www.cwb.gov.tw/V7e/observe/radar/ Radar], [http://www.timeanddate.com/worldclock/astronomy.html?n=241 Sunrise/Sunset], [http://www.cwb.gov.tw/V7e/earthquake/ Earthquakes]&lt;br /&gt;
* &#039;&#039;&#039;Water&#039;&#039;&#039;: Locals do not drink the tap water without boiling or filtering it. Complimentary bottled water is provided by the hotel daily and is available cheaply all over the place. The office has water coolers and cups.&lt;br /&gt;
* &#039;&#039;&#039;Health&#039;&#039;&#039;: Review the information provided by the [http://wwwnc.cdc.gov/travel/destinations/taiwan.htm CDC (US)] and/or the [http://www.fitfortravel.nhs.uk/destinations/asia-%28east%29/taiwan.aspx NHS (UK)].  You should ask your doctor if you have any questions.&lt;br /&gt;
* &#039;&#039;&#039;Food&#039;&#039;&#039;: If you have any food allergies or dietary restrictions, get them written down in Chinese before you leave home.&lt;br /&gt;
* &#039;&#039;&#039;Calendar&#039;&#039;&#039;: Taiwan uses the western calendar, but years are frequently written in the [http://en.wikipedia.org/wiki/Minguo_calendar Min-guo calendar].  So 民國104年3月17日 or 2015年3月17日 could both be used to write March 17, 2015.&lt;br /&gt;
&lt;br /&gt;
=== Airport Access ===&lt;br /&gt;
&lt;br /&gt;
==== Taoyuan International Airport (TPE) ====&lt;br /&gt;
&lt;br /&gt;
Located in Taoyuan County, 45km (28 miles) away from the city center, Taiwan Taoyuan International Airport is linked to the island’s north area.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Taxi&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Only registered airport service taxis can pick up passengers at the two terminals. A taxi to the city center from the airport will set you back about NT$1,200. (And from Taipei city to the airport, it costs about NT$1,000). Do not expect taxi drivers to speak English, read the Latin alphabet, or understand your terrible attempts at pronouncing Chinese, so you should generally have the address of your destination in &#039;&#039;&#039;written Chinese&#039;&#039;&#039;.  (See below on the Grand Hyatt if that&#039;s your destination.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Limousine Service&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Counters for limo service are in the arrival halls of both terminals. The fixed rate for anywhere in the city is NT$1,300(single high way included). Vans cost slightly less if travelers agree to be grouped together. Service in Terminal 1 is 9am-midnight, and 24 hours in Terminal 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Bus&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
There is bus service from both terminals to the Grand Hyatt (and to many other places in Taipei). CitiAir bus 1960 runs to the Grand Hyatt in about 1 hour for NT$145 ([http://www.airbus.com.tw/busline/airportbusdetail.php?sn=1 description in Chinese], [http://www.airbus.com.tw/userfiles/images/airportbus/1960.jpg route map in Chinese and English]). The bus counter staff will understand enough English to sell you a ticket to the Grand Hyatt. Stops are not announced in English, so count the stops or pay attention to what&#039;s outside. If you miss the Grand Hyatt the end of the line is the next stop at Taipei City Hall Bus Station, which is only a 10 minute walk from the hotel. The bus is less convenient going back to the airport because it waits at each stop for several minutes.&lt;br /&gt;
&lt;br /&gt;
more information:&amp;lt;br/&amp;gt;&lt;br /&gt;
http://www.taoyuan-airport.com/english/buses&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By Train&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Taiwan&#039;s High Speed Rail system links the major cities (including Taoyuan) of the west coast of the island with Taipei Main Station, but does not stop at Taoyuan airport.  There is an inexpensive (30 NT) shuttle bus from the terminals to the Taoyuan HSR station.  Once there you can take the HSR directly to Taipei Main Station.  The 175 NT service makes one stop (at Banqiao) and takes approximately 20 minutes.  Trains run with approximately 20 minute headways.  Once at Taipei Main Station you can transfer to the MRT Red Line towards Taipei 101.  Taking the HSR requires two transfers (shuttle bus to HSR, HSR to MRT or local bus/taxi) but can be faster than taking a taxi or bus if traffic on the #1 freeway is bad, especially in the reverse direction (where the 1960 bus makes and dwells at several stops).&lt;br /&gt;
&lt;br /&gt;
A direct MRT link from Taoyuan Airport to Taipei is under construction but not expected to open until at least December 2015.&lt;br /&gt;
&lt;br /&gt;
==== Songshan Airport (TSA; Domestic and regional-international) ====&lt;br /&gt;
&lt;br /&gt;
If you are coming from Tokyo (Haneda, NOT Narita), Seoul (Gimpo), Shanghai (Hongqiao, not Pudong) and some other cities in China, it&#039;s possible to book a flight to the regional Songshan airport and land directly in the city to save some ground travel time.  Connecting to arrive at Songshan when originating from North America is generally not feasible, requiring airport changes (in Seoul and Shanghai), overnight layovers (at Haneda), and exorbitant prices.&lt;br /&gt;
&lt;br /&gt;
* taxi to office, 15 minutes&lt;br /&gt;
* metro to office or hotels (see instructions for either); metro station is in airport&lt;br /&gt;
&lt;br /&gt;
More info: http://www.tsa.gov.tw/&lt;br /&gt;
&lt;br /&gt;
=== Hotels ===&lt;br /&gt;
&lt;br /&gt;
==== Regent Taipei ====&lt;br /&gt;
&lt;br /&gt;
Regent Taipei takes MRT to Taipei 101 Mall about 15 minutes. Situated in the Zhong Shan district, at the heart of the capital’s most vibrant cultural, entertainment and shopping areas, Regent Taipei is a 5 star hotel in Taipei that off ers travellers a bird’s eye view of modern Taiwanese life from a highly-convenient vantage point. Easily accessible from the Taipei Song Shan Airport and close to local hot spots such as art museums and historic buildings, Regent Taipei is the only hotel in Taiwan to house in excess of 50 of the world’s luxury designer boutiques in its Regent Galleria shopping mall. Wired and wireless connectivity is available throughout the hotel.&lt;br /&gt;
&lt;br /&gt;
More information: http://www.regenthotels.com/EN/Taipei&lt;br /&gt;
&lt;br /&gt;
About reservation:&lt;br /&gt;
Please make sure that you’ve left your Mozilla email address to the hotel for the corporate rates. Please contact with Nelson (nelson.chung@fihregent.com).&lt;br /&gt;
The hotel provides a pretty comprehensive buffet breakfast with a variety of Chinese and Western options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telephone&#039;&#039;&#039;: +886-2-2523-8000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metro&#039;&#039;&#039;: The nearest metro station is from our Taipei office MRT Exit number 3 &#039;&#039;&#039;Taipei 101 / World Trade Center&#039;&#039;&#039; on the &#039;&#039;&#039;Xiangshan (red) Line&#039;&#039;&#039; to &#039;&#039;&#039; 	Zhongshan&#039;&#039;&#039; on the &#039;&#039;&#039;Tamsui (red) Line&#039;&#039;&#039; and use exit number 4. Walk to Zhong Shan North Road and turn left onto Zhong Shan North Road. Walk approximately 6 minutes and you will find the hotel on your right.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Grand Hyatt Taipei ====&lt;br /&gt;
&lt;br /&gt;
Grand Hyatt Taipei hotel anchors the city’s most vibrant commercial center in the Xinyi district.  Adjacent to Taipei 101 Mall and Financial Tower, this five-star business hotel is conveniently linked to the Taipei World Trade Center, the Taipei International Convention Center and the Exhibition Halls.  Located in the heart of Taipei’s most dynamic business, shopping and entertainment district, our hotel in Taipei affords both business and leisure travelers the utmost in convenience.&lt;br /&gt;
&lt;br /&gt;
More information: http://taipei.grand.hyatt.com/en/hotel/home.html&lt;br /&gt;
&lt;br /&gt;
About reservation:&lt;br /&gt;
Please make sure that you’ve left your Mozilla email address to the hotel for the corporate rates.&lt;br /&gt;
The hotel provides a pretty comprehensive buffet breakfast with a variety of Chinese and Western options.&lt;br /&gt;
&lt;br /&gt;
Although many taxi drivers will understand &amp;quot;Grand Hyatt&amp;quot; in spoken English, you shouldn&#039;t count on it. The address card for the hotel is available in Chinese ([[:File:Grand-hyatt-taipei.png|PNG image]], [http://taipei.grand.hyatt.com/zh-Hant/hotel/home.html source HTML]) and you should print it out before you leave.  (In case you don&#039;t print it but do print this, the important part is: 台北君悅大飯店　台灣台北市松壽路2號.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telephone&#039;&#039;&#039;: +886 2 2720 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metro&#039;&#039;&#039;: The nearest metro station is &#039;&#039;&#039;Taipei 101 / World Trade Center&#039;&#039;&#039; on the &#039;&#039;&#039;Xinyi (red) Line&#039;&#039;&#039;.  &#039;&#039;&#039;Taipei City Hall Station&#039;&#039;&#039; on the &#039;&#039;&#039;Bannan (blue) Line&#039;&#039;&#039; is also not far.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laundry&#039;&#039;&#039;:  There is an [https://plus.google.com/105661139456057684683/about?hl=en easy-to-use 24 hour laundromat] a very short walk from the hotel.  Nearly everything has English labels in addition to Chinese.  Soap NT$10 (accepts bills or coins, gives change, be careful to pick the soap rather than the other items), washer NT$50/NT$70/NT$100 (function of washer size, takes NT$10 and NT$50 coins only), dryer NT$10/6min (takes NT$10 coins only, I think).&lt;br /&gt;
&lt;br /&gt;
==== Home Hotel ====&lt;br /&gt;
&lt;br /&gt;
http://www.homehotel.com.tw/&lt;br /&gt;
&lt;br /&gt;
We have a contract with Home Hotel for a better rate than Egencia. You can book directly though Mavis Liao mavis.liao@homehotel.com.tw.&lt;br /&gt;
&lt;br /&gt;
Home Hotel is a very nice hotel, is closer to the office, includes breakfast, and the food (both breakfast and room service) is quite good. The Grand Hyatt does not include breakfast, which is 30USD.&lt;br /&gt;
&lt;br /&gt;
==== Royal Biz Taipei ====&lt;br /&gt;
&lt;br /&gt;
While it&#039;s a bit further from the office (a few stops by subway), a number of us have had good experiences staying at the [http://www.royalbiz.com.tw/about_en.php Royal Biz Taipei (金來商旅)], 71 Sec 1 Jinshan S Rd, Taipei 10056, Taiwan (台北市中正區金山南路一段71號).  It is &#039;&#039;much&#039;&#039; less expensive than the Grand Hyatt.  It is also in a less Westernized (and hence to some more interesting) part of the city, not far from Da&#039;an park.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Telephone&#039;&#039;&#039;: +886 2 23979399&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metro&#039;&#039;&#039;: The Royal Biz is walking distance from the [http://en.wikipedia.org/wiki/Taipei_Metro MRT] &#039;&#039;&#039;Dongmen&#039;&#039;&#039; station on the &#039;&#039;&#039;Xinyi (red) Line&#039;&#039;&#039;.  Use Exit 2 at the northwest corner of the station (or exit 1 with an escalator, but a drop further from the intersection), then walk North along JinShan S Rd until about 50 meters before Ren&#039;ai Rd (which is the next street of size comparable to JinShan Rd or Xinyi Rd).  To get to the office, take the Xinyi Line 4 or 5 stops, to either Taipei 101 / World Trade Center or to Xiangshan.&lt;br /&gt;
&lt;br /&gt;
The Royal Biz is also walking distance from the [http://en.wikipedia.org/wiki/Taipei_Metro MRT] &#039;&#039;&#039;Zhongxiao Xinsheng&#039;&#039;&#039; station on the &#039;&#039;&#039;Bannan (blue) Line&#039;&#039;&#039;.  (This is slightly further than from Dongmen station, and not useful for getting to the office, but is useful for getting to other destinations.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;From the airport&#039;&#039;&#039;: From Taoyuan airport take either the 1819 bus to Taipei Main Station or take Taiwan High Speed Rail (via a bus transfer to Taoyuan station) to Taipei Main Station.  At Taipei Main Station, transfer to the &#039;&#039;&#039;Xinyi (red) Line&#039;&#039;&#039; in the &#039;&#039;&#039;Xiangshan&#039;&#039;&#039; direction.  Alight at &#039;&#039;&#039;Dongmen&#039;&#039;&#039; station.  Alternatively take a taxi from the airport.  Because this is a smaller, less well known hotel, do not expect the driver to understand the English name of the hotel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laundry&#039;&#039;&#039;: There is also a [http://www.openstreetmap.org/node/2536456936#map=18/25.03821/121.52677 24-hour laundry] walking distance from the hotel (it&#039;s on Hangzhou Rd S, which is one major street west along Ren&#039;ai Road, and also on the opposite side of Ren&#039;ai).  The hotel reception desk will hand you a flyer with a map and picture if you ask where to find a laudromat.&lt;br /&gt;
&lt;br /&gt;
=== Mozilla Office ===&lt;br /&gt;
&lt;br /&gt;
Grand Hyatt and other hotels in the Shifu (City Hall) area are within walking distance of the office. From much of the city the easiest way to get to the office is to take the red (Xinyi) MRT line to Taipei 101/World Trade Center station.  The red line provides direct service to Taipei Main Station and the Taiwan High Speed Rail terminal there.&lt;br /&gt;
&lt;br /&gt;
The office is located in the Xinyi Jing Mao Da Lou.&lt;br /&gt;
&lt;br /&gt;
Walking from the Grand Hyatt to the Taipei office should only take 10 to 15 minutes. Walking directions [http://goo.gl/maps/HeJYM in Chinese], or [http://goo.gl/OQvoI in English] &lt;br /&gt;
&lt;br /&gt;
[https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-prn2/976478_10151400036476205_1855335477_o.jpg View approaching the office from Taipei 101, it&#039;s the white JP Morgan building.]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mozilla&#039;s company name in Chinese&#039;&#039;&#039;:美商謀智台灣分公司&lt;br /&gt;
* &#039;&#039;&#039;Office address&#039;&#039;&#039;: 110 台北市信義區信義路五段106號&lt;br /&gt;
* &#039;&#039;&#039;Office address&#039;&#039;&#039;: 4F-A1, No. 106, Sec. 5, Xinyi Rd., Xinyi Dist.,Taipei City 11047, Taiwan&lt;br /&gt;
** 4F means fourth floor&lt;br /&gt;
** don&#039;t worry about the A1; you&#039;ll see it when you get out of the elevator&lt;br /&gt;
** No. 106 is the building&#039;s number&lt;br /&gt;
** Sec. 5 is the section of Xinyi Road.  Major roads in Taipei are divided into sections at each crossing of a major street, and each section has its own set of numbers.  Some Roads that cross halves of the city are also split into N/S or E/W.  So don&#039;t look for a number in the wrong section.&lt;br /&gt;
* &#039;&#039;&#039;Office telephone&#039;&#039;&#039;: +886-2-8786-1100&lt;br /&gt;
&lt;br /&gt;
=== Public Transportation ===&lt;br /&gt;
&lt;br /&gt;
Taipei Metro is quite convenient and easy. Everything in signed in English (and Chinese is consistently romanized in Hanyu Pinyin) and the staff speak at least basic English. The fare is distanced based with a minimum of NT$20. Tokens can be bought at the ticket machine before entry. Fare cards are NT$100 to purchase and provide a 20% discount. The &amp;quot;EasyCard&amp;quot; can also be used on buses and in convenience stores, much like the Octopus card in Hong Kong.&lt;br /&gt;
&lt;br /&gt;
* [http://english.trtc.com.tw/np.asp?ctNode=49778&amp;amp;mp=122032 metro guide]&lt;br /&gt;
* [http://english.trtc.com.tw/ct.asp?xItem=1056373&amp;amp;CtNode=49780&amp;amp;mp=122032 route map]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Taipei_Metro Taipei Metro (wikipedia)]&lt;br /&gt;
&lt;br /&gt;
City Buses can take you closer to the destination than metro, although it is complicated and not friendly. Minimal fare would be NT$15, pay on-board OR off board depend on the sign. One might need to pay when both on-board AND off-board if it&#039;s a long trip. NO CHANGE GIVEN, EXACT CHANGE ONLY.&lt;br /&gt;
&lt;br /&gt;
Public transportation can be planned on Google Maps.&lt;br /&gt;
&lt;br /&gt;
For intra-city transportation, there is high speed rail (HSR) and railway (TRA), and highway buses.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that outside of Taipei, Kaohsiung, and Taichung, public transportation is pretty much useless. Most locals ride scooters -- you can rent one if you dare!&lt;br /&gt;
&lt;br /&gt;
=== Food ===&lt;br /&gt;
&lt;br /&gt;
Taiwan offers various cuisine due to its rich culture and historical background. Chinese, Japanese, and of course Taiwanese food are pretty genuine here.&lt;br /&gt;
&lt;br /&gt;
The Taipei 101 food court has a variety of fast food options.  If you&#039;re looking for something a little more involved, Kate provided the following list:&lt;br /&gt;
&lt;br /&gt;
==== Vegetarian Restaurants ====&lt;br /&gt;
&lt;br /&gt;
1. Lian-chi-ge Vegetarian Buffet 蓮池閣 (red sign).  Location: B1, No.153, Sec.4, Xinyi Rd.   Some pictures of the restaurant and the food: http://www.lck888.com/a04-a.htm&lt;br /&gt;
&lt;br /&gt;
2. Easy House Vegetarian cuisine.  Location: at Neo 19 3F (Neo 19: No.22, Song Shou Rd.)  http://www.easyhouse.tw/html/meal/meal_01.asp&lt;br /&gt;
&lt;br /&gt;
3. Ming De Vegetarian buffet.   Location: It&#039;s at the food court in Shin Kong Mitsukoshi A8 department store(B1), and at Eslite bookstore B2 as well. Not a fancy restaurant but the food is good!&lt;br /&gt;
&lt;br /&gt;
==== Chinese Restaurants ====&lt;br /&gt;
&lt;br /&gt;
1. Din-Tai-Fung (Taipei 101 B1).  Dumplings.  Can&#039;t miss. http://www.dintaifung.com.tw/en/default.htm&lt;br /&gt;
&lt;br /&gt;
2. FiFi Restaurant.  It&#039;s at Eslite bookstore 6F (the bookstore is near Taipei City Hall Metro Station).  Sorry there&#039;s no English version of website but we&#039;ve been there before, and the food is pretty good!&lt;br /&gt;
&lt;br /&gt;
3. Redbeandining Restaurant.  In Shin Kong Mitsukoshi A9 department store, 7F.&lt;br /&gt;
&lt;br /&gt;
4. South Beauty.  Location: 6F, No.12, Song Shou Rd. (It&#039;s in the department store - Att 4 fun)  http://www.southbeauty.com/en/&lt;br /&gt;
&lt;br /&gt;
5. 1010 Xiang (Hunan cuisine).  If you like spicy food, it will be a nice choice.  Location: at Eslite bookstore 6F (Eslite bookstore: No.11, Song Gao Rd.)  http://www.1010restaurant.com/index.php?cid=2&amp;amp;mid=1&amp;amp;sid=1&lt;br /&gt;
&lt;br /&gt;
6. KiKi Restaurant.  Location: at Eslite bookstore 4F (Eslite bookstore: No.11, Song Gao Rd.)  http://www.kiki1991.com/&lt;br /&gt;
&lt;br /&gt;
7. Shao Shao Ke.  Location: #15, alley 41, RenAi Rd. section 2, Taipei, Taiwan 台北市仁愛路二段41巷15號.  Food from Shaanxi province in China, with more Central Asian influence than most Chinese food. http://fewdblog.com/?p=605&lt;br /&gt;
&lt;br /&gt;
8. China Pa.  Location No. 145號, Section 1, Ānhé Rd, Daan District, Taipei City, Taiwan 106, near the Xinyi Anhe MRT Station on the Red Line.  This place turns into a live music venue later in the evening with indoor smoking, so you probably want to go early.&lt;br /&gt;
&lt;br /&gt;
9. Beijing Do It True (北平都一處).  506 RenAi Rd Sec 4 / 仁愛路四段506號 (just northwest of the Grand Hyatt).  Beijing food.  http://taipei543.com/2013/01/22/beijing-do-it-true/&lt;br /&gt;
&lt;br /&gt;
==== Japanese Restaurants ====&lt;br /&gt;
&lt;br /&gt;
Japanese food, like most other Japanese things, is extremely popular in Taiwan.  There are a variety of great Japanese restaurants to choose from.&lt;br /&gt;
&lt;br /&gt;
1. Sanji Ramen - Att4Fun 5F.  Menu is only in Chinese and Japanese, but it has lots of pictures, and the staff speaks English.  http://hungryintaipei.blogspot.tw/2012/02/ramen-i-recommend-ramen-sanji.html&lt;br /&gt;
&lt;br /&gt;
2. Butaichi Ramen - Hankyu Mall B2, #A4.  This is better known as the food court in Taipei City Hall MRT Station.  Menu is in English, lots of pictures, and the staff speaks English.  http://hungryintaipei.blogspot.com/2014/03/ramenjapanese-i-recommend-butaichi-ramen.html&lt;br /&gt;
&lt;br /&gt;
==== Other suggestions ====&lt;br /&gt;
&lt;br /&gt;
There are a variety of good hole-in-the-wall type places in the neighborhood south of the office (away from Xinyi Road and Taipei 101).  For best results, befriend one of the locals and ask them to take you there.  Be respectful of their time, of course.  Don&#039;t expect English menus or English speaking staff.&lt;br /&gt;
&lt;br /&gt;
* Noodle restaurant&lt;br /&gt;
* Beef noodle restaurant&lt;br /&gt;
* Taiwan chicken&lt;br /&gt;
&lt;br /&gt;
I found http://hungryintaipei.blogspot.com/ to be a great resource for discovering some places.&lt;br /&gt;
&lt;br /&gt;
For the adventurous, &#039;&#039;&#039;Night market&#039;&#039;&#039; offers small food stands for you to try out. One of the (in)famous ones being the stinky tofu (ask anyone from the B2G team).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FAQ: Where to get food after 10pm&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unfortunately except diners near the night market, fast food, and bars, most dinner places close before 10pm (Taiwanese family start their dinners around 6-7pm, much earlier than people in the U.S. and Europe). Your choices would be go to either places described above, or grab microwave food at convenient stores such as 7-Eleven. Microwave food comes with much variety, worth to check out. [http://hungryintaipei.blogspot.tw/2010/03/snacksnapshot-i-strongly-recommend-7-11.html Here] is a hilarious intro on 7-Eleven in Taiwan.&lt;br /&gt;
&lt;br /&gt;
For people stay at the City Hall area, the nearest night market to go would be Tungwha St., located [https://maps.google.com/?ll=25.029413,121.557348&amp;amp;spn=0.006649,0.011362&amp;amp;t=m&amp;amp;z=17 here]. The same location feature farmers market (&amp;quot;traditional market&amp;quot;) during a.m. hours.&lt;br /&gt;
&lt;br /&gt;
The Grand Hyatt has room service for prices that aren&#039;t unreasonable for Western countries (but are rather expensive for Taiwan).&lt;br /&gt;
&lt;br /&gt;
=== Fun ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A couple hours&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://www.tripadvisor.com/Attraction_Review-g293913-d2019764-Reviews-Elephant_Mountain_aka_Nangang_District_Hiking_Trail-Taipei.html Elephant Mountain (Xiangshan)] is a ~100m hill that has a spectacular view of Taipei 101, the Xinyi district, and much of Taipei.  It&#039;s a quick hike (20-25 minutes from the office, including time to walk to the foot of the trail) but the trails continue much further into the hills if you want to go farther.&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Mengjia_Longshan_Temple Longshan Temple] is an interesting place to visit, especially if you&#039;ve never been somepace like it before.  There are several other temples scattered throughout the city, and if you wander around enough you will likely see small shrines all over the place.  If you are in town on the right days you may notice people burning [http://en.wikipedia.org/wiki/Joss_paper ghost money] outside on the streets.&lt;br /&gt;
&lt;br /&gt;
Rent a bike and go for a ride on Taipei&#039;s riverside parks.  Taipei has an extensive network of riverside parks, trails, and bike paths.  Take the MRT to Gongguan station (on the green line) and follow the signs to the water park.  Keep going past the water park towards the river and you will find a bike rental shop.  You can rent a bike hourly (post-paid) for a very low price.  They will want your passport as collateral.  From the rental facility to the confluence of Taipei&#039;s two rivers and back is a 3-4 hour ride at a reasonable pace.  There are several points along the river where you can pass through the flood walls that separate the city from the river.  These are useful for exploring, or stopping at a 7-11 to pick up another bottle of water.  You can also rent bikes from the Taipei city bikeshare system, Youbike, but this requires an MRT card and a Taiwanese cell phone number to set up.  Youbikes are also not as comfortable for long distances.&lt;br /&gt;
&lt;br /&gt;
Wikivoyage has [http://en.wikivoyage.org/wiki/Taipei lots more advice] about what to see, including a [http://en.wikivoyage.org/wiki/One_day_in_Taipei suggested itinerary for a &#039;&#039;packed&#039;&#039; one-day tourist visit] which highlights some of the top attractions.  You can pick a few things off of here that sound interesting.&lt;br /&gt;
&lt;br /&gt;
Here are some places where you may find something special for souvenirs:&lt;br /&gt;
&lt;br /&gt;
*Eslite Bookstore (Xinyi store) - http://goo.gl/WBHXn&lt;br /&gt;
&lt;br /&gt;
Opened in 2006, the 8,000-square meter Xinyi District bookstore is Taiwan&#039;s largest bookstore and carries a wide selection of books.  The bookstore is divided into subjects for easy browsing.  Readers are welcome to read books in designated areas. &lt;br /&gt;
&lt;br /&gt;
It take only 10 minutes walk from Grand Hyatt to the bookstore.&lt;br /&gt;
&lt;br /&gt;
*Huashan 1914 Creative Park&lt;br /&gt;
http://www.huashan1914.com/en/index.html&lt;br /&gt;
&lt;br /&gt;
There are some exhibitions and restaurants, and I remember there&#039;s a shop with&lt;br /&gt;
special things for souvenirs, which are designed by the artists.&lt;br /&gt;
&lt;br /&gt;
How to get there: Take the Nangang/Blue Line to Zhong Xiao Xing Sheng Station (忠孝新生). Take Exit one and continue to walk straight for about a block until you see an underpass and a giant red diamond.&lt;br /&gt;
The Huashan Creative Park is just across the street.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or try night markets:)&lt;br /&gt;
&lt;br /&gt;
*Raohe Street Tourist Night Market - http://goo.gl/aSdPK&lt;br /&gt;
&lt;br /&gt;
It&#039;s better to take a taxi from the office or the hotel. &lt;br /&gt;
The pronunciation of the name should be: Rao-He-Ye-Shi.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day trips&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The [http://www.npm.gov.tw/en/ National Palace Museum] has one of the leading collections of Chinese art in the world.  You could easily spend an entire day here.  The museum is accessible by bus from Shilin MRT station on the red line and Dazhi MRT station on the brown line.  Alternatively, a taxi from the Taipei 101 area costs only a couple hundred NT.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Jiufen Jiufen] is a popular tourist town in the hills north of Taipei overlooking the Pacific Ocean.  The main tourist attraction is the old street, a vibrant commercial strip set on tiny streets with shops selling all sorts of random food and drink.  There are also a number of teahouses you can sit down and relax in.  Mount Jilong, across the main road, is a 2000ft peak with a nice trail that leads to stunning views of Jiufen and the rest of Taiwan&#039;s northern coast.  On an especially clear day you might even be able to make out Taipei 101 in the distance. There&#039;s a car service available for about NT$3300 (US$110) that will drive up to 3 people to Jiufen and other locations in between Jiufen and Taipei. The driver will pick you up at your hotel at 9AM and bring you back around 7PM. This is very convenient and affordable if not traveling alone. [mailto:wsh2526@yahoo.com.tw E-mail] or call (0913967292) Jerry&#039;s Taxi Service for more info.&lt;br /&gt;
&lt;br /&gt;
The [http://en.wikipedia.org/wiki/Maokong_Gondola Maokong Gondola], at the southern end of the brown MRT line, will take you from Taipei Zoo into the hills south of the city.  Maokong is best known for its tea shops.  There are a number of hiking trails in the area, and the hills provide good views of much of the city.  The [http://www.chih-nan-temple.org/language/en_about.htm Chi-Nan] (or Zhinan) temple is also accessible from the Gondola.  It is a large Taoist temple complex built into the side of a mountain.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Longer&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Be warned that anywhere outside of Taipei it will be substantially harder to get by with English, except at places that specifically cater to tourists.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Kaohsiung Kaohsiung] is the second largest city in Taiwan.  It is located in southwestern Taiwan, and is at the end of the Taiwan High Speed Rail line.  On the fastest trains it can be reached from Taipei Main Station in 96 minutes for about 50 USD.  Kaohsiung is the only other city in Taiwan with an MRT system, which is great for getting around easily without taking your life into your own hands in Taiwan&#039;s traffic.  Kaohsiung is a major port city with some of the largest ship building facilities in the world.  Attractions in town include:&lt;br /&gt;
&lt;br /&gt;
* Cijin island: A natural breakwater island in Kaohsiung harbor.  It has a lighthouse, an old fort, and a famous temple dedicated to the goddess of sailors.  There are also a number of markets with food stalls and more, much like a night market (except during the day).  The island is accessible by a quick ferry ride, and you can bring a bike on the ferry.&lt;br /&gt;
* The Dome of Light: at Formosa Boulevard MRT station, where Kaohsiung&#039;s two MRT lines intersect, a large public art display is built into the ceiling of the station&#039;s main hall.&lt;br /&gt;
* Lotus Lake: In Zuoying, not far from the High Speed Rail Station, Lotus Lake has several temples.  These include the Dragon-Tiger and Spring-Autumn pavilions, and Taiwan&#039;s largest Confucius temple.  Some of the temples are actually built in the lake and accessible via a boardwalk.&lt;br /&gt;
* Love River: The main river in Kaohsiung has a number of riverside parks and paths (smaller than Taipei&#039;s) along with cafes and other places to stop at watch.&lt;br /&gt;
* Night markets: Two night markets worth visiting in Kaohisung are [http://eng.taiwan.net.tw/m1.aspx?sNo=0002121&amp;amp;id=2245 Liuhe Night Market] and the [http://en.wikipedia.org/wiki/Ruifeng_Night_Market Ruifeng Night Market].  For Liuhe, take the MRT to Formosa Blvd Station, exit 1.  The night market is on the street immediately to your left.  Try the local delicacy: papaya milk.  Ruifeng is accessible via the Kaohsiung Arena Station on the Red line.  Exit and walk west along Yucheng road.  In contrast to Liuhe, which is set on a wide open street, Ruifeng has endless rows of stalls crowded together in a rather claustrophobic setting.&lt;br /&gt;
&lt;br /&gt;
Taiwan is a small island, but much of the population is concentrated along the relatively flat Western coast.  The mountainous Eastern coast is largely undeveloped, and much of it is preserved as various parks.  The most notable of these is [http://en.wikipedia.org/wiki/Taroko_National_Park Taroko National Park], home to Taroko gorge.  Take a Taiwan Railway Administration (TRA) train from Taipei Main Station to Hualien via Yilan (this is a 2-3 hour trip).  Once at Hualien, you can either take the Tourist shuttle bus (exit the train station and turn left to find the ticket area) or hire a taxi driver for the day.  The bus runs only once an hour, and is *extremely* crowded in the late afternoon when everyone leaves at the same time.  Were I to do this again I would hire the driver.  The ones that speak English will offer their services as you leave the train station.  There are a variety of things to do and see in Tarako Gorge, including a number of hiking trails, temples, shrines, etc, but availability can change frequently (especially when trails are washed out by typhoons) so checking at the visitors center for an up to date list is a good idea.  Tarako Gorge is a popular tourist spot but western tourists are relatively rare (most are Chinese or Japanese, usually in large tour groups). Another option is [http://tarokolodge.blogspot.tw Taroko Lodge], a homestay; see http://robert.ocallahan.org/2014/03/taroko-national-park.html.&lt;br /&gt;
&lt;br /&gt;
For drinks &amp;amp; nightlife:&lt;br /&gt;
 - Barcode is a decent lounge https://www.facebook.com/Barcode.Taipei&lt;br /&gt;
 - Le Meridian has a great patio&lt;br /&gt;
 - W Woobar&lt;br /&gt;
 - Brown Sugar has live band http://www.brownsugarlive.com/taipei/main.html&lt;br /&gt;
 - Brassmonkey a bit more low-key but fun http://www.brassmonkeytaipei.com/directions.html#.Uug4TPY1gy4&lt;br /&gt;
&lt;br /&gt;
=== Special Food ===&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Stinky_tofu Stinky tofu]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Iron_egg Iron egg]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Century_egg Century egg]&lt;br /&gt;
*[http://taiwanfoodculture.net/ct.asp?xItem=68502&amp;amp;ctNode=2682&amp;amp;mp=1502 Ginger duck]&lt;br /&gt;
=== Additional information ===&lt;br /&gt;
* [http://en.wikivoyage.org/wiki/Taipei wikivoyage:Taipei]&lt;br /&gt;
* [https://wiki.mozilla.org/Taipei public wiki.mozilla.org:Taipei]&lt;br /&gt;
* [[Web Rendering Work Week May 2013]] has a bunch of useful stuff for visitors that should perhaps be merged here&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Gaia/Team/Taipei&amp;diff=1075281</id>
		<title>Gaia/Team/Taipei</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Gaia/Team/Taipei&amp;diff=1075281"/>
		<updated>2015-05-19T13:52:20Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Topic status */ bug 1162383&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gaia teams in Taipei, Taiwan =&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
Alphabetically ordered by ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- an HTML4 table! Would love to know what&#039;s the better way to represent this style in MediaWiki syntax semantically --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
| https://secure.gravatar.com/avatar/2200ce74246a04126cf04cfa39ff0c37?s=120#.png&lt;br /&gt;
[https://github.com/alivedise Alive Kuo (alivedise)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/f376b438280ff00eb2d7c016e0703d58?s=120#.png&lt;br /&gt;
[https://github.com/begeeben Yi-Fan Liao (begeeben)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/3559bf9e05fa7f8937efd88cde038ff3?s=120#.png&lt;br /&gt;
[https://github.com/cctuan George Tuan (cctuan)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/ab20989d946f4bd31c590b5a6ef73f7a?s=120#.png&lt;br /&gt;
[https://github.com/crh0716 Arthur Chen (crh0716)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/e333342f0afd23d7212e0cbaa6e00e3c?s=120#.png&lt;br /&gt;
[https://github.com/dominickuo Dominic Kuo (dominickuo)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/32f42d56f6770abcbb7c8da456af5891?s=120#.png&lt;br /&gt;
[https://github.com/dwi2 Tzu-Lin Huang (dwi2)]&lt;br /&gt;
|-&lt;br /&gt;
| https://secure.gravatar.com/avatar/c467be2c8057ee9a73735ee2bd269504?s=120#.png&lt;br /&gt;
[https://github.com/EragonJ EJ Chen (EragonJ)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/c41f912d929a213cba048104b3697b88?s=120#.png&lt;br /&gt;
[https://github.com/evanxd Evan Tseng (evanxd)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/0ccfea05555478e088acf331824b70c1?s=120#.png&lt;br /&gt;
[https://github.com/evelynhung Evelyn Hung (evelynhung)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/84460b786102047f6b74522ef62d7ac3?s=120#.png&lt;br /&gt;
[https://github.com/gasolin Fred Lin (gasolin)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/06d79ed4b67a4721e8e59295fb9f4ae6?s=120#.png&lt;br /&gt;
[https://github.com/huchengtw-moz John Hu (huchengtw-moz)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/97614f2541c088277e57085f31cdf546?s=120#.png&lt;br /&gt;
[https://github.com/ian-liu Ian Liu (Ian-liu)]&lt;br /&gt;
|-&lt;br /&gt;
| https://secure.gravatar.com/avatar/91513261a498767bb7ecd2c38c994f5a?s=120#.png&lt;br /&gt;
[https://github.com/luke-chang Luke Chang (luke-chang)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/b729f44cee25bbef242e2d9144df5ef1?s=120#.png&lt;br /&gt;
[https://github.com/mpizza Gary Chen (mpizza)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/ba973db1f571a1bc3ac86cb4d674c32a?s=120#.png&lt;br /&gt;
[https://github.com/rexboy7 Rex KM Lee (rexboy7)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/abf92b0a6c66cf51277f0ab014a29446?s=120#.png&lt;br /&gt;
[https://github.com/RickyChien Ricky Chien (rickychien)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/4c3b3f1dbe118b705bfb68cb82351896?s=120#.png&lt;br /&gt;
[https://github.com/RudyLu Rudy Lu (RudyLu)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/adc421ca1f85f9d54e02a7c3c779d914?s=120#.png&lt;br /&gt;
[https://github.com/shamenchens Sherman Chen (shamenchens)]&lt;br /&gt;
|-&lt;br /&gt;
| https://secure.gravatar.com/avatar/a45359e3fe86aeca5b166ed821964b0b?s=120#.png&lt;br /&gt;
[https://github.com/snowmantw Greg Weng (snowmantw)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/0e719389c6f6e17e5693819fc9a5722a?s=120#.png&lt;br /&gt;
[https://github.com/steveck-chung Steve Chung (steveck-chung)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/2becaf1073957bdad2f06e183731131d?s=120#.png&lt;br /&gt;
[https://github.com/timdream Tim Guan-tin Chien (timdream)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/68fd0daa80b4f077a530ae6915a6ece5?s=120#.png&lt;br /&gt;
[https://github.com/weilonge Sean Lee (weilonge)]&lt;br /&gt;
| https://avatars.githubusercontent.com/u/6240413?s=120#.png&lt;br /&gt;
[https://github.com/weilonge Sung Chiu (sean2449)]&lt;br /&gt;
| http://lorempixel.com/120/120/cats/?_=X#.png&lt;br /&gt;
[http://mozilla.com.tw/about/careers/ We are hiring!]&lt;br /&gt;
|}&lt;br /&gt;
=== Interns ===&lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
| http://lorempixel.com/120/120/cats/#.png&lt;br /&gt;
[http://mozilla.com.tw/about/intern/ Internship opportunity @ Mozilla Taiwan]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alumni ===&lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
| http://lorempixel.com/120/120/cats/#.png&lt;br /&gt;
[https://github.com/mozshiao9 Mark Shiao (mozshiao9)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/a357616c0a9197fccbaf5aceb92d94f3?s=120#.png &lt;br /&gt;
[https://github.com/yurenju Yuren Ju (yurenju)]&lt;br /&gt;
| https://avatars3.githubusercontent.com/u/5014150?s=120#.png&lt;br /&gt;
[https://github.com/mnjul Min-Zhong &amp;quot;John&amp;quot; Lu (mnjul)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Update ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;&amp;quot;&amp;gt;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:small&amp;quot;&amp;gt;Nothing is committed until it lands in a release :) .&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the features mainly driven by the Taipei teams, in cooperation with other teams in Taipei and around the world. We are not meant to take all the credit :)&lt;br /&gt;
&lt;br /&gt;
=== Tim ===&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/user_profile?login=timdream%40gmail.com Read my Bugzilla profile]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=assignee%3Atimdream%40gmail.com Open bugs assigned to me] (ASSIGNED = current working on; NEW = backlog)&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
&lt;br /&gt;
* {{bug|1112092}} (settings migrator in Gecko) got picked up by Arthur... Thanks!&lt;br /&gt;
* {{bug|1152865}} drive-by patch for TryChooser&lt;br /&gt;
* {{bug|1137557}} InputMethod API to work with D3E -- stuck on a native async bug&lt;br /&gt;
** {{bug|1162360}} Remove form.js focus event timing -- found fixes for test crash and Gij failure, should land after r+.&lt;br /&gt;
** Will verify if this can fix {{bug|1162383}} too but found {{bug|1166193}} preventing me from doing so.&lt;br /&gt;
** {{bug|1162383}} which improves transitions got backed out because of smoketest regression, need more fixes.&lt;br /&gt;
&lt;br /&gt;
* {{bug|1050574}} Included all layout in nightly&lt;br /&gt;
** {{bug|1128396}} --  Include all layouts with no dictionary or downloadable dictionary in Nightly, i.e. enable downloadable dictionary -- SHIPPED!&lt;br /&gt;
** Backlogged to work on things above first. Feel free to steal -- need work on Asian IME dictionary loadings.&lt;br /&gt;
&lt;br /&gt;
=== Rudy ===&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
===== Emoji layout =====&lt;br /&gt;
* {{Bug|1157558}} - Implement DynamicLayoutPage for recently used emojis.&lt;br /&gt;
** WIP, sent for feedback first.&lt;br /&gt;
===== New keyboard layouts =====&lt;br /&gt;
* {{Bug|1114864}} - Request to add Igbo (ig) keyboard to Firefox OS.&lt;br /&gt;
* {{Bug|1114866}} - Request to add Hausa (ha) keyboard to Firefox OS - multiple branches.&lt;br /&gt;
* {{Bug|1149029}} - Create Tagalog word list for autocorrect.&lt;br /&gt;
* {{Bug|1114863}} - Add Yoruba (yo) keyboard to Firefox OS - multiple branches.&lt;br /&gt;
** All waiting for feedback.&lt;br /&gt;
===== Keyboard issues =====&lt;br /&gt;
* {{Bug|1162680}}- [Contacts] Hitting the X (back/cancel) while loading the Gmail/Outlook import contacts sign-in will cause the keyboard to become stuck on the screen.&lt;br /&gt;
** Investigating, tracing down to forms.js would send blur event but Keyboard.jsm might not be able to receive that message.&lt;br /&gt;
** Trying to build a debug gecko build with IPC debug message enabled. &lt;br /&gt;
===== Code Reviews =====&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
===== Keyboard integration tests =====&lt;br /&gt;
* Continue to work on {{Bug|928805}} - (vkb-integration) [meta][keyboard][integration] Improve integration test coverage for Gaia keyboard&lt;br /&gt;
===== Emoji layout =====&lt;br /&gt;
* {{Bug|1157558}} - Implement DynamicLayoutPage for recently used emojis.&lt;br /&gt;
===== New keyboard layouts =====&lt;br /&gt;
* {{Bug|1114864}} - Request to add Igbo (ig) keyboard to Firefox OS.&lt;br /&gt;
* {{Bug|1114866}} - Request to add Hausa (ha) keyboard to Firefox OS - multiple branches.&lt;br /&gt;
* {{Bug|1149029}} - Create Tagalog word list for autocorrect.&lt;br /&gt;
* {{Bug|1114863}} - (yoruba-keyboard) Add Yoruba (yo) keyboard to Firefox OS - multiple branches.&lt;br /&gt;
===== Others =====&lt;br /&gt;
* {{Bug|1162680}}- [Contacts] Hitting the X (back/cancel) while loading the Gmail/Outlook import contacts sign-in will cause the keyboard to become stuck on the screen.&lt;br /&gt;
* {{Bug|1157496}} - [Keyboard] Double tapping the &#039;shift&#039; key may not enable &#039;caps lock&#039;.&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
&lt;br /&gt;
* Keyboard integration test&lt;br /&gt;
** Test plan - https://gaia.hackpad.com/Automation-UI-Test-Plan-for-Keyboard-App-QPMn2HHoOjo.&lt;br /&gt;
&lt;br /&gt;
* Keyboard Roadmap&lt;br /&gt;
** https://wiki.mozilla.org/Gaia/System/Keyboard/Roadmap&lt;br /&gt;
&lt;br /&gt;
=== Ian ===&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=assignee%3Ailiu%40mozilla.com Open bugs assigned to me] (ASSIGNED = current working on; NEW = backlog)&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
* {{Bug|1121913}}: [Bluetooth][Settings][User Story] A timer to control the property visible while turning it on.(WIP, re-confirm with UX/VD, need platform support)&lt;br /&gt;
* {{Bug|1088017}}: User not able to accept multiple files sent over BT(WIP, need platform support)&lt;br /&gt;
* {{Bug|1157822}}: [Windows Management] [Notification Banner] [Lockscreen] Tapping on a notification banner will execute onclick callback behind the lockscreen, operating inconsistently with tapping on the lockscreen notification (non-banner).(system::notification::utilityTray issue)&lt;br /&gt;
* {{Bug|820003}}: Time picker: should be grabbable in space &amp;quot;beyond&amp;quot; list(wonfix per UX comment)&lt;br /&gt;
* {{Bug|1162460}}: [Cleanup] Remove trailing space in Gaia bluetooth code(reviewed Ben&#039;s patch)&lt;br /&gt;
* {{Bug|1098228}}: [Flame][Bluetooth]&amp;quot;Visible to all&amp;quot; button will keep on after you turn off /on bluetooth sometimes.(platform issue)&lt;br /&gt;
* {{Bug|1162019}}: [Bluetooth2][Daemon][PTS][HFP] Test case - TC_AG_COD_BV_02_I inconc(fixed, Gaia Bluetooth APIv2 issue)&lt;br /&gt;
* {{Bug|1163926}}: [Gaia-UI-Test] Pass Gaia UI Test before preference on Bluetooth API v2(passed on Gaia UI-Test)&lt;br /&gt;
* {{Bug|1164314}}: [BT Setting] Paired devices would appear in both &#039;Paired devices&#039; and &#039;Devices in the area&#039; sections(platform issue)&lt;br /&gt;
* {{Bug|1163784}}: Bluetooth annunciator does not highlight after connecting to remote device(reviewing)&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
* {{Bug|1163784}}: Bluetooth annunciator does not highlight after connecting to remote device(reviewing)&lt;br /&gt;
* {{Bug|973451}}: [settings] refactor Media storage panel with AMD pattern&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
* Bluetooth:&lt;br /&gt;
** WebBluetooth-v2: Plan to implement Settings::Bluetooth for new API.(https://wiki.mozilla.org/B2G/Bluetooth/WebBluetooth-v2)&lt;br /&gt;
** Tracking Meta Bug: {{Bug|1072721}}: (Gaia-BT-v2-API) (Gaia-Bluetooth-Support-v2-API)[Gaia][Bluetooth][v2 API][Meta]&lt;br /&gt;
** Gaia works done besides of {{Bug|1090799}}(third reviewing process) (https://taiwan.etherpad.mozilla.org/gaia-bluetoothv2)&lt;br /&gt;
** Schedule: &lt;br /&gt;
*** Buffer 5/04 - 5/08 (1 week)&lt;br /&gt;
*** QA Testing Round 2 5/11 - 5/15 (1 week)&lt;br /&gt;
** BT APIv2 Switch Plan:&lt;br /&gt;
*** https://docs.google.com/document/d/1ZS6-uNS71CkGBI3KLWuLGtl2ToAd8VbE-VhnZFecPL8/edit?pli=1&lt;br /&gt;
** Reorganise notification of file transfer&lt;br /&gt;
*** {{Bug|988116}}: Bluetooth file transfer leaves too many notifications(on discussion)&lt;br /&gt;
&lt;br /&gt;
* SD Card management:&lt;br /&gt;
** Spec. https://bugzilla.mozilla.org/show_bug.cgi?id=921105#c23&lt;br /&gt;
*** Follow up for enable/disable mount/unmount button since attribute &amp;quot;isRemovable&amp;quot; is landed({{Bug|1033952}}).&lt;br /&gt;
&lt;br /&gt;
* NFC share files via Bluetooth:&lt;br /&gt;
** Follow up for https://bugzilla.mozilla.org/show_bug.cgi?id=998175#c20&lt;br /&gt;
*** Provide id for NFC file sending.&lt;br /&gt;
*** Have to find out a way for race condition.&lt;br /&gt;
&lt;br /&gt;
=== Steve ===&lt;br /&gt;
&lt;br /&gt;
==== Done ====&lt;br /&gt;
* New gaia patches review.&lt;br /&gt;
** (Landed){{Bug|1161985}} - [Messages][NG] Split recipient and non-compose related styling from compose.css&lt;br /&gt;
** (WIP created){{Bug|1162031}} - [Messages][New Gaia Architecture] use the bridge with a shared worker&lt;br /&gt;
*** Created a WIP that make the bridge mechanism work for first panel with some profiling result. Currently the bridge library has some performance issue and service return will be delay while main thread is busy. &lt;br /&gt;
&lt;br /&gt;
==== Ongoing ====&lt;br /&gt;
* new gaia architecture&lt;br /&gt;
** {{Bug|1163955}} - [Messages][New Gaia Architecture] Preparation work for moving Drafts into back-end service&lt;br /&gt;
*** Discussion about the how to handle draft service in the first inbox panel&lt;br /&gt;
** {{Bug|1166198}} - [Messages][NG] Preparation work for moving Threads into back-end service&lt;br /&gt;
*** Discussion about the shape of the threads service api&lt;br /&gt;
* Start some experiment with general component like confirm to see if there is any performance penalty.&lt;br /&gt;
** No progress yet. Will find some smaller polishing bug instead.&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
* New gaia architecture in message app:&lt;br /&gt;
** Milestone planning: https://etherpad.mozilla.org/sms-milestone-planning&lt;br /&gt;
*** 1) Split panels in separate documents (Major js/css split is finished, will try to migrate to content wrapper with separated panel mark up)&lt;br /&gt;
*** 2) Branching (Not going to branching currently, will revisit it again once we start to migrate to NG core feature)&lt;br /&gt;
*** 3) Front-end/back-end separation (Experiment for draft right now)&lt;br /&gt;
** Sprint planning: https://etherpad.mozilla.org/sms-planning&lt;br /&gt;
&lt;br /&gt;
=== Dominic ===&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
* Music&lt;br /&gt;
** {{Bug|1055049}} - [Music] modify of the dom layout and the page transitions.&lt;br /&gt;
*** Finished the first four views(tiles, list, sublist and player) page transitions, and working on the last view - search. The search view is more complicated then the others so I need maybe 1-2 more days to get it work&lt;br /&gt;
* Audio channel services weekly sync up.&lt;br /&gt;
* Reviews and needinfos.&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
* Music&lt;br /&gt;
** {{Bug|1055049}} - [Music] modify of the dom layout and the page transitions.&lt;br /&gt;
** {{Bug|1161492}} - [Music] [Front-end] Use independent tabs for each view.&lt;br /&gt;
* Audio channel services weekly sync up.&lt;br /&gt;
* Reviews and needinfos.&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
* Music refactoring meta bug is filed in {{Bug|1053677}}.&lt;br /&gt;
** {{Bug|1055043}} - [Music] modularize the views. (landed)&lt;br /&gt;
** {{Bug|1055049}} - [Music] modify of the dom layout and the page transitions (working on).&lt;br /&gt;
** {{Bug|1012613}} - [Music] Proposal for splitting the Music app into UI and Player.&lt;br /&gt;
* Sound UX update:&lt;br /&gt;
** {{Bug|991026}} - (Meta) Sound and audio channel volume spec.&lt;br /&gt;
* Audio competing&lt;br /&gt;
** Meetings for REQ for Multimedia platform.&lt;br /&gt;
&lt;br /&gt;
=== Alive ===&lt;br /&gt;
==== Last week ====&lt;br /&gt;
* {{Bug|1094759}} - r+, Daily rebasing, QA-approvaling&lt;br /&gt;
* {{Bug|1149003}} - [Dialer]During a call, press home button to return to home, and the call notification will be hidden and shown twice quickly - Attention Toaster animation issue, r?=etienne&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
* Land and watch following issue for bug 1094759&lt;br /&gt;
&lt;br /&gt;
=== Arthur ===&lt;br /&gt;
==== Done ====&lt;br /&gt;
* Features&lt;br /&gt;
** {{Bug|973459}} - [settings] refactor Cellular &amp;amp; Data panel with AMD pattern&lt;br /&gt;
*** Adding unit tests.  &lt;br /&gt;
*** Got f+ from EJ.&lt;br /&gt;
** {{Bug|1161927}} - [Settings] Migrate settings app to use new system update API&lt;br /&gt;
*** Already implemented the entire system update flow using the new proposed API. All mozChromeEvents and mozContentEvents were removed. The gecko part is pending on review.&lt;br /&gt;
&lt;br /&gt;
==== To do ====&lt;br /&gt;
* {{Bug|973459}} - [settings] refactor Cellular &amp;amp; Data panel with AMD pattern&lt;br /&gt;
** Adding unit tests.  &lt;br /&gt;
** In progress&lt;br /&gt;
* {{Bug|1112092}} - Implement a migrator for mozSettings values in B2G&lt;br /&gt;
** Waiting for the feedback from Lissy.&lt;br /&gt;
&lt;br /&gt;
* Review settings app architecture&lt;br /&gt;
** Refactor the remaining un-modular code (call/carrier/media storage).&lt;br /&gt;
** Identify the required features for supporting multiple form factors and easy customization.&lt;br /&gt;
*** Clear view/logic separation&lt;br /&gt;
*** Build-time/run-time options for settings on various requirements&lt;br /&gt;
*** Module reusability across the platform&lt;br /&gt;
* Blockers if any.&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
* Settings roadmap - https://wiki.mozilla.org/Gaia/Settings&lt;br /&gt;
&lt;br /&gt;
=== Evan ===&lt;br /&gt;
==== Last week ====&lt;br /&gt;
* {{Bug|1165134}} - Add new MozChromeEvent/MozContentEvent to allow System app to control its own audio channels&lt;br /&gt;
** r+&lt;br /&gt;
* {{Bug|1157140}} - Manage System app&#039;s audio channels in the AudioChannelManager.&lt;br /&gt;
** Landed.&lt;br /&gt;
* {{Bug|1165850 - Refactor: Remove the `_destroyed` event listener in AudioChannelController}}&lt;br /&gt;
** Patch is uploaded.&lt;br /&gt;
** Waiting for CI.&lt;br /&gt;
* {{Bug|1166172}} - Send MozContentEvent to gecko after the `system-first-paint` event is received.&lt;br /&gt;
** Patch is uploaded.&lt;br /&gt;
* Review patches:&lt;br /&gt;
** {{Bug|1155610}} - Enable gaia integration tests for multiple device type&lt;br /&gt;
** {{Bug|1166148}} - Bump marionette_js_runner to version 1.0.17&lt;br /&gt;
* The game project for Maker Fair 2015&lt;br /&gt;
** The first version is done.&lt;br /&gt;
** https://github.com/evanxd/wot-pong&lt;br /&gt;
&lt;br /&gt;
==== Next week ====&lt;br /&gt;
* {{Bug|1165850 - Refactor: Remove the `_destroyed` event listener in AudioChannelController}}&lt;br /&gt;
** Send review request after CI is good.&lt;br /&gt;
* {{Bug|1165134}} - Add new MozChromeEvent/MozContentEvent to allow System app to control its own audio channels&lt;br /&gt;
** Run the patch in try server.&lt;br /&gt;
** We could land it after &amp;quot;Bug 1113086 - Implement AudioChannel API into BrowserElement “ is landed.&lt;br /&gt;
* Work on System 2 things.&lt;br /&gt;
** {{Bug|1093516}} - [System2] Migrate AppUpdate/InstallDialog to SystemDialog&lt;br /&gt;
*** Continue to update the patch and send review request again.&lt;br /&gt;
* The game project for Maker Fair 2015&lt;br /&gt;
** Build a big LED matrix with drink cans.&lt;br /&gt;
&lt;br /&gt;
=== Fred ===&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=assignee%3Agasolin%40mozilla.com Open bugs assigned to me] (ASSIGNED = current working on; NEW = backlog)&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
Work on `gaia-list` to improve animation &amp;amp; structure&lt;br /&gt;
&lt;br /&gt;
* [r+ &amp;amp; landed][gaia-component] refactor: update packages https://github.com/gaia-components/gaia-component/pull/10&lt;br /&gt;
* [r+ &amp;amp; landed] {{bug|1162213}} - [gaia-list] lint fix and add auto run lint command in travis&lt;br /&gt;
* [r+ &amp;amp; landed] {{bug|1162869}} - [gaia-switch] lint fix and add auto run lint command in travis&lt;br /&gt;
* [r+ &amp;amp; landed] [gaia-components] update dependency packages and add readme file https://github.com/gaia-components/gaia-components/pull/5&lt;br /&gt;
&lt;br /&gt;
* [r?] [accessibility] - [gaia-list] add aria-hidden for icons so Screen Reader will ignore them https://github.com/gaia-components/gaia-list/pull/14&lt;br /&gt;
* [r?] {{bug|1151765}} - use gulp to build jsdocs&lt;br /&gt;
** use standard jsdoc.json instead&lt;br /&gt;
* [f?] {{bug|1160962}} - [gaia-list] active effect length is short, can&#039;t full fill width size when tap at the edge&lt;br /&gt;
** boost ripple performance via requestAnimationFrame&lt;br /&gt;
** confirm with UX about correct animation&lt;br /&gt;
* setup &amp;amp; install lightsaber on flame&lt;br /&gt;
* [f?] {{bug|1162419}} - [gaia-list] every row should be wrap in `li`&lt;br /&gt;
* [f?] Bug 1162180 - [gaia-switch] [accessibility]Make sure gaia-switch is accessible to screen reader.&lt;br /&gt;
* [f?] {{bug|1162138}} - [accessibility][gaia-button] Make sure gaia-button is accessible to screen reader.&lt;br /&gt;
&lt;br /&gt;
* {{bug|1163921}} - [gaia-list] Avoid to qualify class rules with tag names for the element inside list&lt;br /&gt;
** propose new class syntax for gaia-list&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
Create perf test to validate each change has better performance impact.&lt;br /&gt;
&lt;br /&gt;
* [r+ &amp;amp; landed] {{bug|1160962}} - [gaia-list] active effect length is short, can&#039;t full fill width size when tap at the edge&lt;br /&gt;
* [r+] {{bug|1151765}} - use gulp to build jsdocs&lt;br /&gt;
** wait removement of taskcluster&lt;br /&gt;
* [r?] [accessibility] - [gaia-list] add aria-hidden for all icons so Screen Reader will ignore them https://github.com/gaia-components/gaia-list/pull/14&lt;br /&gt;
** run perf test&lt;br /&gt;
* create component benchmark&lt;br /&gt;
https://github.com/gaia-components/gaia-list/pull/15&lt;br /&gt;
* [f?] {{bug|1162419}} - [gaia-list] every row should be wrap in `li`&lt;br /&gt;
** new proposal&lt;br /&gt;
* [f?] Bug 1162180 - [gaia-switch] [accessibility]Make sure gaia-switch is accessible to screen reader.&lt;br /&gt;
** run perf test&lt;br /&gt;
&lt;br /&gt;
[review] {{bug|1159411}} - Preload Marketplace and hosted-online apps into B2G&#039;s Gaia build using preload-app-toolkit &lt;br /&gt;
** review dale&#039;s patch&lt;br /&gt;
&lt;br /&gt;
==== Topic status update ====&lt;br /&gt;
&lt;br /&gt;
CSS in gaia: &lt;br /&gt;
* Organize meetup in whistler for moz-components related people (gaia, gecko wc, xtag, appmaker)&lt;br /&gt;
* create IsGaiaComponentReady page on mozilla wiki https://wiki.mozilla.org/Gaia/Shared/Components&lt;br /&gt;
* In statistic the most used components in spark are header, list, button, I&#039;ll start improve these component&#039;s quality. https://trello.com/c/7WAuKiTj/31-findout-what-components-spark-is-used&lt;br /&gt;
* pump `gaia-button` to Can Use state&lt;br /&gt;
&lt;br /&gt;
=== George ===&lt;br /&gt;
&lt;br /&gt;
==== Since last meeting ====&lt;br /&gt;
&lt;br /&gt;
* ({{Bug|1154582}}) - Build system configure - adding configure.js to generate strong dependency all.mk and execute it - r?Tim&lt;br /&gt;
** should be able to launch with node and &lt;br /&gt;
* ({{Bug|1158388}}) - [NFC] Swiping up causes jerky, stuttered animation in the Shrinking UI. r?greg&lt;br /&gt;
* ({{Bug|1158917}}) - [SHB][Callscreen] close software home button when receiving attentionclosed, landed&lt;br /&gt;
* ({{Bug|1159866}}) - [SIM Prompt] Bug 1159866 - publish lockscreenwindowmanager-deactivated when lockscreen is closed - landed&lt;br /&gt;
* ({{Bug|1159991}}) - Include developer mode prefs in |DEVICE_DEBUG=1|, r=ricky&lt;br /&gt;
&lt;br /&gt;
==== TODO ====&lt;br /&gt;
* Fix above bugs and land them.&lt;br /&gt;
* ({{Bug|1162384}}) - [NFC] Cannot share image which is opened from notification&lt;br /&gt;
* Build ENV v.s. build steps manager, will file bug after bug 1154582 is merged.&lt;br /&gt;
* Build spec on wiki, will work with Ricky on it.&lt;br /&gt;
* If time allows, I will spend time on system 2 refactoring.&lt;br /&gt;
&lt;br /&gt;
==== Topic status update ====&lt;br /&gt;
* Copy-paste&#039;s META bug ({{Bug|1023688}})&lt;br /&gt;
* New build wiki https://wiki.mozilla.org/Gaia/Build/NewBuildSystem&lt;br /&gt;
&lt;br /&gt;
=== Greg ===&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
&lt;br /&gt;
* Do some experiments to make sure the current redundant building process of B2G could be greatly optimized. However, for the repo maintainers there seems no such plan to put the effort on that, at least not in public.&lt;br /&gt;
&lt;br /&gt;
* Have had some discussions about IoT with Dietrich. The build issue is one of them.&lt;br /&gt;
&lt;br /&gt;
* Continue to try to integrate Raptor with Marionette. Has one available prototype, and set the review for one critical bug&lt;br /&gt;
** {{bug|1165814}} [raptor] Add an option to let user determinate when to flush the log, and add a Marionette phase for combing them together&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
&lt;br /&gt;
* Continue whatever I list above.&lt;br /&gt;
&lt;br /&gt;
==== Topic status update ====&lt;br /&gt;
&lt;br /&gt;
=== EJ ===&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
&lt;br /&gt;
[Bugs]&lt;br /&gt;
* &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
* {{Bug|942365}} - [B2G][Settings][SIM Security] On Change PIN screen entering 4 digits in any field highlights the &amp;quot;Done&amp;quot; button&lt;br /&gt;
** r+ &amp;amp; landed&lt;br /&gt;
* {{Bug|1161785}} - [Settings][WiFi] Networks list items do not highlight when selected.&lt;br /&gt;
** r+ &amp;amp; landed&lt;br /&gt;
* {{Bug|1161364}} - [WIFI]The string &amp;quot;Select certificate file&amp;quot; is truncated.&lt;br /&gt;
** Investigating&lt;br /&gt;
* {{Bug|1164346}} - Add locale id check to hint developers that they are updating the same locale id&lt;br /&gt;
** Got backed out, finding solution&lt;br /&gt;
* {{Bug|1159177}} - [Wifi]User can join hidden network without ssid name.&lt;br /&gt;
** With WIP, waiting for Gecko&#039;s response.&lt;br /&gt;
&lt;br /&gt;
[Review/Feedback]&lt;br /&gt;
* {{Bug|1160186}} - [Settings] Don&#039;t reuse the same entity &#039;Manage certificates&#039; in different contexts&lt;br /&gt;
** Gave r+&lt;br /&gt;
* {{Bug|1162276}} - Date &amp;amp; Time settings does not show correct timezone when NITZ is used&lt;br /&gt;
** Gave r+&lt;br /&gt;
* {{Bug|1147092}} - [Add-On Manager] Visual refinements for list-view&lt;br /&gt;
** Gave r+&lt;br /&gt;
* {{Bug|1163918}} - [Add-On Manager] Rename addon-details-header to reflect new content&lt;br /&gt;
** Gave r+&lt;br /&gt;
* {{Bug|1158351}} - Add unit tests for WifiHelper.isValidInput method&lt;br /&gt;
** Taking off r? flag&lt;br /&gt;
* {{Bug|973459}} - [settings] refactor Cellular &amp;amp; Data panel with AMD pattern&lt;br /&gt;
** Reviewing&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
&lt;br /&gt;
[Bugs]&lt;br /&gt;
* {{Bug|1164346}} - Add string ID check to hint developers that they are updating a string without using a new string ID&lt;br /&gt;
** r+ &amp;amp; landed&lt;br /&gt;
* {{Bug|1159177}} - [Wifi]User can join hidden network without ssid name.&lt;br /&gt;
** r+ &amp;amp; landed&lt;br /&gt;
* {{Bug|942365}} - [B2G][Settings][SIM Security] On Change PIN screen entering 4 digits in any field highlights the &amp;quot;Done&amp;quot; button&lt;br /&gt;
** r+ &amp;amp; landed&lt;br /&gt;
&lt;br /&gt;
[Review/Feedback]&lt;br /&gt;
* {{Bug|1165600}} - [Settings] Migrate to tagged template strings&lt;br /&gt;
** Gave r+&lt;br /&gt;
* {{Bug|1158351}} - Add unit tests for WifiHelper.isValidInput method &lt;br /&gt;
** Gave r+&lt;br /&gt;
&lt;br /&gt;
==== Topic status update ====&lt;br /&gt;
&lt;br /&gt;
[Settings]&lt;br /&gt;
* None&lt;br /&gt;
&lt;br /&gt;
=== Ricky ===&lt;br /&gt;
&lt;br /&gt;
==== Last meeting ====&lt;br /&gt;
&lt;br /&gt;
[Build System]&lt;br /&gt;
&lt;br /&gt;
* Fixed {{bug|1141356}} - utils-xpc.js ls recursive skipped if pattern not matched&lt;br /&gt;
* Work on {{bug|1154585}} - Completed configure of webapp-shared to generate a webapp-shared.mk&lt;br /&gt;
** update status of performance&lt;br /&gt;
** figure out what&#039;s impact of the new architecutre&lt;br /&gt;
* Discuss with George about how to design {{bug|1154583}} - Configure re-run step - configure.js check the change files and ENV to decide whether to regenerate all.mk or not&lt;br /&gt;
==== This meeting ====&lt;br /&gt;
&lt;br /&gt;
[Build System]&lt;br /&gt;
&lt;br /&gt;
* Review {{bug|1164346}} - Add locale id check to hint developers that they are updating the same locale id&lt;br /&gt;
** EJ ran into shell script and grep issue. Thus I took some time to discuss with EJ and find out the root cause.&lt;br /&gt;
* Review {{bug|1159411}} - Preload Marketplace and hosted-online apps into B2G&#039;s Gaia build using preload-app-toolkit&lt;br /&gt;
** A spark related bug&lt;br /&gt;
* Working on {{bug|1146713}} - [emulator] mach mochitest-remote fails: expected to find ssltunnel at .../gaia/b2g_sdk/39.0a1-2015-03-05-16-02-02/b2g/ssltunnel&lt;br /&gt;
** Try to reproduce STR and verify B2G patch. There is a new issue when upgrading newer B2G desktop. The newer B2G linux build doesn&#039;t upload to ftp.&lt;br /&gt;
* Discuss with George about how to design {{bug|1154583}} - Configure re-run step - configure.js check the change files and ENV to decide whether to regenerate all.mk or not&lt;br /&gt;
** We&#039;ve come out an idea for how to detect source / ENV changes after surveying the principle of CMake&lt;br /&gt;
** Try to speed up the performance of webapp-shared configure. It took about 10s to generate webapp-shared.mk in current stage.&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
&lt;br /&gt;
* Planing [https://wiki.mozilla.org/Gaia/Build/RefactoringToNodejs Refactoring build script to NodeJs]&lt;br /&gt;
&lt;br /&gt;
=== John ===&lt;br /&gt;
&lt;br /&gt;
==== Squash xml2dict.py, use word_list_converter.js ====&lt;br /&gt;
* Meta: {{bug|1143633}} - Deprecate xml2dict.py in favor of word_list_converter.js for generation of dictionary blob&lt;br /&gt;
* Ongoing: {{bug|1146804}} - Create file front-end for word_list_converter.js | r?tim &amp;amp; f+ricky&lt;br /&gt;
&lt;br /&gt;
==== Keyboard User Dictionary ====&lt;br /&gt;
* In Mar. 6&#039;s sync-up, Bruce expressed his expectation that acceptable performance should be: reasonably responsive for a user dictionary of 100 words. I think that includes prediction &amp;amp; dict blob generation.&lt;br /&gt;
** Benchmark results at {{bug|1102835}} comment 16.&lt;br /&gt;
&lt;br /&gt;
===== Bugs overview =====&lt;br /&gt;
* Meta/UserStory: {{bug|879145}} - [Keyboard][User Story] User dictionary in word-suggestion&lt;br /&gt;
* Three major engineering bugs&lt;br /&gt;
** &amp;lt;del&amp;gt;{{bug|1102831}} - [UserDictionary] Implement user dictioanry UI to KeyboardSettingsApp&amp;lt;/del&amp;gt;&lt;br /&gt;
** &amp;lt;del&amp;gt;{{bug|1102834}} - [UserDictionary] Implement dictionary binary blob generation &amp;amp; storage to KeyboardSettingsApp&amp;lt;/del&amp;gt;&lt;br /&gt;
** &amp;lt;del&amp;gt;{{bug|1102835}} - [UserDictionary] Let Keyboard App use User-Dictionary&amp;lt;/del&amp;gt;&lt;br /&gt;
* Dependency:&lt;br /&gt;
** &amp;lt;del&amp;gt;{{bug|1138782}} - validChars() in predictions.js should consider different casing&amp;lt;/del&amp;gt;&lt;br /&gt;
* Follow-ups:&lt;br /&gt;
** Bugs (just &amp;quot;bugs&amp;quot;)&lt;br /&gt;
*** &amp;lt;del&amp;gt;{{bug|1138343}} - [UserDictionary] Instantiate and store an ArrayBuffer instead of a TypedArray during dictionary binary blob generation in KeyboardSettingsApp&amp;lt;/del&amp;gt;&lt;br /&gt;
** Performance improvements&lt;br /&gt;
*** &amp;lt;del&amp;gt;{{bug|1130317}} - [UserDictionary] Pre-determine dict blob total byte length before building the blob&amp;lt;/del&amp;gt;&lt;br /&gt;
*** {{bug|1130312}} - [UserDictionary] Investigate possibility and potential to let worker generate dictionary blob&lt;br /&gt;
** Non-compliant UX&lt;br /&gt;
*** &amp;lt;del&amp;gt;{{bug|1129844}} - UserDictionary word list should sort alphabetically&amp;lt;/del&amp;gt;&lt;br /&gt;
** Architecture improvements/refactoring/code tidy-up&lt;br /&gt;
*** &amp;lt;del&amp;gt;{{bug|1115644}} - Implement RootPanel and standardize panel interface for KeyboardSettingsApp&amp;lt;/del&amp;gt;&lt;br /&gt;
*** &amp;lt;del&amp;gt;{{bug|1115649}} - Differentiate concept of Panel and Dialog in Keyboard Settings&amp;lt;/del&amp;gt;&lt;br /&gt;
*** {{bug|1115666}} - Clean up KeyboardSettingsApp stylesheet&lt;br /&gt;
*** &amp;lt;del&amp;gt;{{bug|1143636}} - Allow word_list_converter.js to accpet variable word frequency information&amp;lt;/del&amp;gt;&lt;br /&gt;
** (Integration) Tests&lt;br /&gt;
*** {{bug|1139766}} - [keyboard][integration] Add integration tests for user dictionary and prediction&lt;br /&gt;
** Unit Tests&lt;br /&gt;
*** {{bug|1148326}} - latin_test.js: Amend tests for worker.postMessage() transferList arg for |userDict === undefined| situation&lt;br /&gt;
**** This depends on {{bug|1148316}} - latin_test.js should fake setTimeout() calls in engine deactivation&lt;br /&gt;
&lt;br /&gt;
= Bugzilla queries =&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[https://bugzilla.mozilla.org/page.cgi?id=mydashboard.html Your Bugzilla Dashboard]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&amp;amp;j26=OR&amp;amp;f35=OP&amp;amp;list_id=9789226&amp;amp;f44=CP&amp;amp;f68=CP&amp;amp;f39=CP&amp;amp;v57=iliu%40mozilla.com&amp;amp;f49=CP&amp;amp;f30=OP&amp;amp;f51=OP&amp;amp;j6=OR&amp;amp;j31=OR&amp;amp;j56=OR&amp;amp;v62=evanxd%40mozilla.com&amp;amp;f13=CP&amp;amp;o2=substring&amp;amp;f66=OP&amp;amp;f23=CP&amp;amp;f29=CP&amp;amp;f25=OP&amp;amp;v42=alive%40mozilla.com&amp;amp;f27=assigned_to&amp;amp;v47=dkuo%40mozilla.com&amp;amp;o12=substring&amp;amp;v52=gasolin%40mozilla.com&amp;amp;o17=substring&amp;amp;f58=CP&amp;amp;v2=rlu%40mozilla.com&amp;amp;f21=OP&amp;amp;o57=substring&amp;amp;f10=OP&amp;amp;f32=assigned_to&amp;amp;f19=CP&amp;amp;v37=yurenju.mozilla%40gmail.com&amp;amp;j46=OR&amp;amp;j66=OR&amp;amp;v32=gduan.moz%40gmail.com&amp;amp;j41=OR&amp;amp;f56=OP&amp;amp;f34=CP&amp;amp;f42=assigned_to&amp;amp;f64=CP&amp;amp;j21=OR&amp;amp;o47=substring&amp;amp;f15=OP&amp;amp;o52=substring&amp;amp;o67=substring&amp;amp;o32=substring&amp;amp;f46=OP&amp;amp;f50=OP&amp;amp;f4=CP&amp;amp;f67=assigned_to&amp;amp;f2=assigned_to&amp;amp;j36=OR&amp;amp;v12=ejchen%40mozilla.com&amp;amp;f54=CP&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;f62=assigned_to&amp;amp;f38=CP&amp;amp;f17=assigned_to&amp;amp;f65=OP&amp;amp;o22=substring&amp;amp;f7=assigned_to&amp;amp;v22=ricky060709%40gmail.com&amp;amp;f36=OP&amp;amp;v27=schung%40mozilla.com&amp;amp;f26=OP&amp;amp;f52=assigned_to&amp;amp;f57=assigned_to&amp;amp;f28=CP&amp;amp;j16=OR&amp;amp;j11=OR&amp;amp;j61=OR&amp;amp;f12=assigned_to&amp;amp;o37=substring&amp;amp;j51=OR&amp;amp;f14=CP&amp;amp;f60=OP&amp;amp;f43=CP&amp;amp;f24=CP&amp;amp;f47=assigned_to&amp;amp;f59=CP&amp;amp;f69=CP&amp;amp;f22=assigned_to&amp;amp;f48=CP&amp;amp;f31=OP&amp;amp;f1=OP&amp;amp;f37=assigned_to&amp;amp;o7=substring&amp;amp;f20=OP&amp;amp;f33=CP&amp;amp;f0=OP&amp;amp;f8=CP&amp;amp;f18=CP&amp;amp;v67=gweng%40mozilla.com&amp;amp;o42=substring&amp;amp;v7=timdream%40gmail.com&amp;amp;f9=CP&amp;amp;f45=OP&amp;amp;query_format=advanced&amp;amp;j1=OR&amp;amp;f3=CP&amp;amp;v17=arthur.chen%40mozilla.com&amp;amp;f53=CP&amp;amp;f55=OP&amp;amp;f61=OP&amp;amp;f11=OP&amp;amp;f41=OP&amp;amp;o62=substring&amp;amp;f5=OP&amp;amp;f6=OP&amp;amp;f63=CP&amp;amp;o27=substring&amp;amp;f40=OP&amp;amp;f16=OP Assigned to team]&lt;br /&gt;
&lt;br /&gt;
== v1.3 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=1.3%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=1.3%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=1.3T%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3T+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=1.3T%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3T?] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== v1.4 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=1.4%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.4+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=1.4%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.4?] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== v2.0 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.0%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.0+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.0&amp;amp;f7=component&amp;amp;o8=substring feature: 2.0]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.0%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.0?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.0&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.0] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== v2.1 ==&lt;br /&gt;
&lt;br /&gt;
*[https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.1%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.1+]&lt;br /&gt;
* [http://mzl.la/1x9FKJB blocking: 2.1+] (without systemsfe)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.1&amp;amp;f7=component&amp;amp;o8=substring feature: 2.1]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.1%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.1?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.1&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.1] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.1&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;f15=CP&amp;amp;f16=status_whiteboard&amp;amp;v16=systemsfe&amp;amp;o16=substring&amp;amp;n16=1&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.1] (including fixed bugs; without systemsfe)&lt;br /&gt;
&lt;br /&gt;
== v2.2 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.2%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.2+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.2%2B&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.2%3F&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2?]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.2%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.2?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.2%2B&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2+] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.2%2B&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;f15=CP&amp;amp;f16=status_whiteboard&amp;amp;v16=systemsfe&amp;amp;o16=substring&amp;amp;n16=1&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2+] (including fixed bugs; without systemsfe)&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=backlog&amp;amp;f7=component&amp;amp;o8=substring blocking-b2g: backlog]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=substring&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_tracking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=%2B&amp;amp;f7=component&amp;amp;o8=substring tracking-b2g: +]&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;o13=equals&amp;amp;list_id=11471599&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;f13=component&amp;amp;o2=substring&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;f12=component&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;o12=equals&amp;amp;j4=OR&amp;amp;v2=%5Bpriority%5D&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;o7=equals&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;o6=equals&amp;amp;f9=status_whiteboard&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f4=OP&amp;amp;o10=equals&amp;amp;query_format=advanced&amp;amp;f3=CP&amp;amp;f2=status_whiteboard&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f11=component&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring tagged with &amp;lt;nowiki&amp;gt;[priority]&amp;lt;/nowiki&amp;gt; on Whiteboard] (deprecated; should be using blocking-b2g: backlog)&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=substring&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: Everything+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=substring&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: Everything?] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== etc ==&lt;br /&gt;
&lt;br /&gt;
* Components under our watch: Gaia::Bluetooth File Transfer, Gaia::Build, Gaia::Keyboard, Gaia::Settings, Gaia::System::Lockscreen, Gaia::System::Input Mgmt, Gaia::System::Window Mgmt.&lt;br /&gt;
* Team/feature tag(s): [FT:System-Platform], [3rd-party-keyboard]&lt;br /&gt;
&lt;br /&gt;
* [http://andreasgal.github.io/dashboard/?filtercomponents=Gaia::Bluetooth%20File%20Transfer,Gaia::Build,Gaia::Keyboard,Gaia::Settings,Gaia::System::Input%20Mgmt,Gaia::System::Lockscreen,Gaia::System::Window%20Mgmt Andreas&#039;s Dashboard for the team]&lt;br /&gt;
* [http://charts.mozilla.org/ffos/ The Dashboard]&lt;br /&gt;
&lt;br /&gt;
= Story Points, Target Milestone and ETA=&lt;br /&gt;
Please put story point and target milestone to EVERY ticket that is assigned to you, starting from V2.0 4/28. &amp;lt;br /&amp;gt;&lt;br /&gt;
For blockers, please also put ETA in whiteboard, format: &#039;&#039;&#039;[ETA:4/30]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Here is how we go:&lt;br /&gt;
&lt;br /&gt;
* 1 point means approximately 2 working days.&lt;br /&gt;
* The story point goes up with Fibonacci Number, please use the following number: 1, 2, 3, 5, 8, 13 (13 is not recommended unless you really have to)&lt;br /&gt;
* Put in whiteboard, format: &#039;&#039;&#039;[p=2]&#039;&#039;&#039;. When you first got the ticket &amp;amp; after a quick estimation.&lt;br /&gt;
* The efforts shall include &amp;quot;unit test&amp;quot;, &amp;quot;getting review+&amp;quot;, &amp;quot;landed&amp;quot;.&lt;br /&gt;
* When closing a ticket, you may make correction to the p to reflect actual efforts.&lt;br /&gt;
* p means &amp;quot;the effort you spent&amp;quot;, NOT &amp;quot;how long the ticket is closed&amp;quot;. For example, you&#039;re assigned a ticket on Monday, but you wait and start working on it Thursday and Friday then done, p should put as 1, not 3.&lt;br /&gt;
&lt;br /&gt;
= etc. =&lt;br /&gt;
&lt;br /&gt;
* [[B2G]]&lt;br /&gt;
* [[B2G/Roadmap]] -- owned by Product team&lt;br /&gt;
* [[Gaia]]&lt;br /&gt;
* [[Gaia/Meeting_Notes]]&lt;br /&gt;
* [[FirefoxOS/SprintStatus#Systems-Platform Sprint Status]]&lt;br /&gt;
* [[FirefoxOS/OneDotTwoTracking#Blockers_per_Functional_Team]]&lt;br /&gt;
* [https://docs.google.com/a/mozilla.com/spreadsheet/ccc?key=0AtVT90hlMtdSdEd4TVVjWXNfU3ctMlVhWFRrWkpweVE Firefox OS User Story Backlog]&lt;br /&gt;
* [https://taiwan.etherpad.mozilla.org/SystemPlatform1-3 System Platform v1.3 etherpad] (out-dated)&lt;br /&gt;
* Sprint review and retrospect: https://etherpad.mozilla.org/systemplatform-retrospect-demo&lt;br /&gt;
&lt;br /&gt;
== Subpages of {{FULLPAGENAME}} ==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/}}&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Gaia/Team/Taipei&amp;diff=1075241</id>
		<title>Gaia/Team/Taipei</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Gaia/Team/Taipei&amp;diff=1075241"/>
		<updated>2015-05-19T08:42:26Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Tim */ update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gaia teams in Taipei, Taiwan =&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
Alphabetically ordered by ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- an HTML4 table! Would love to know what&#039;s the better way to represent this style in MediaWiki syntax semantically --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
| https://secure.gravatar.com/avatar/2200ce74246a04126cf04cfa39ff0c37?s=120#.png&lt;br /&gt;
[https://github.com/alivedise Alive Kuo (alivedise)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/f376b438280ff00eb2d7c016e0703d58?s=120#.png&lt;br /&gt;
[https://github.com/begeeben Yi-Fan Liao (begeeben)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/3559bf9e05fa7f8937efd88cde038ff3?s=120#.png&lt;br /&gt;
[https://github.com/cctuan George Tuan (cctuan)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/ab20989d946f4bd31c590b5a6ef73f7a?s=120#.png&lt;br /&gt;
[https://github.com/crh0716 Arthur Chen (crh0716)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/e333342f0afd23d7212e0cbaa6e00e3c?s=120#.png&lt;br /&gt;
[https://github.com/dominickuo Dominic Kuo (dominickuo)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/32f42d56f6770abcbb7c8da456af5891?s=120#.png&lt;br /&gt;
[https://github.com/dwi2 Tzu-Lin Huang (dwi2)]&lt;br /&gt;
|-&lt;br /&gt;
| https://secure.gravatar.com/avatar/c467be2c8057ee9a73735ee2bd269504?s=120#.png&lt;br /&gt;
[https://github.com/EragonJ EJ Chen (EragonJ)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/c41f912d929a213cba048104b3697b88?s=120#.png&lt;br /&gt;
[https://github.com/evanxd Evan Tseng (evanxd)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/0ccfea05555478e088acf331824b70c1?s=120#.png&lt;br /&gt;
[https://github.com/evelynhung Evelyn Hung (evelynhung)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/84460b786102047f6b74522ef62d7ac3?s=120#.png&lt;br /&gt;
[https://github.com/gasolin Fred Lin (gasolin)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/06d79ed4b67a4721e8e59295fb9f4ae6?s=120#.png&lt;br /&gt;
[https://github.com/huchengtw-moz John Hu (huchengtw-moz)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/97614f2541c088277e57085f31cdf546?s=120#.png&lt;br /&gt;
[https://github.com/ian-liu Ian Liu (Ian-liu)]&lt;br /&gt;
|-&lt;br /&gt;
| https://secure.gravatar.com/avatar/91513261a498767bb7ecd2c38c994f5a?s=120#.png&lt;br /&gt;
[https://github.com/luke-chang Luke Chang (luke-chang)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/b729f44cee25bbef242e2d9144df5ef1?s=120#.png&lt;br /&gt;
[https://github.com/mpizza Gary Chen (mpizza)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/ba973db1f571a1bc3ac86cb4d674c32a?s=120#.png&lt;br /&gt;
[https://github.com/rexboy7 Rex KM Lee (rexboy7)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/abf92b0a6c66cf51277f0ab014a29446?s=120#.png&lt;br /&gt;
[https://github.com/RickyChien Ricky Chien (rickychien)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/4c3b3f1dbe118b705bfb68cb82351896?s=120#.png&lt;br /&gt;
[https://github.com/RudyLu Rudy Lu (RudyLu)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/adc421ca1f85f9d54e02a7c3c779d914?s=120#.png&lt;br /&gt;
[https://github.com/shamenchens Sherman Chen (shamenchens)]&lt;br /&gt;
|-&lt;br /&gt;
| https://secure.gravatar.com/avatar/a45359e3fe86aeca5b166ed821964b0b?s=120#.png&lt;br /&gt;
[https://github.com/snowmantw Greg Weng (snowmantw)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/0e719389c6f6e17e5693819fc9a5722a?s=120#.png&lt;br /&gt;
[https://github.com/steveck-chung Steve Chung (steveck-chung)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/2becaf1073957bdad2f06e183731131d?s=120#.png&lt;br /&gt;
[https://github.com/timdream Tim Guan-tin Chien (timdream)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/68fd0daa80b4f077a530ae6915a6ece5?s=120#.png&lt;br /&gt;
[https://github.com/weilonge Sean Lee (weilonge)]&lt;br /&gt;
| https://avatars.githubusercontent.com/u/6240413?s=120#.png&lt;br /&gt;
[https://github.com/weilonge Sung Chiu (sean2449)]&lt;br /&gt;
| http://lorempixel.com/120/120/cats/?_=X#.png&lt;br /&gt;
[http://mozilla.com.tw/about/careers/ We are hiring!]&lt;br /&gt;
|}&lt;br /&gt;
=== Interns ===&lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
| http://lorempixel.com/120/120/cats/#.png&lt;br /&gt;
[http://mozilla.com.tw/about/intern/ Internship opportunity @ Mozilla Taiwan]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alumni ===&lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
| http://lorempixel.com/120/120/cats/#.png&lt;br /&gt;
[https://github.com/mozshiao9 Mark Shiao (mozshiao9)]&lt;br /&gt;
| https://secure.gravatar.com/avatar/a357616c0a9197fccbaf5aceb92d94f3?s=120#.png &lt;br /&gt;
[https://github.com/yurenju Yuren Ju (yurenju)]&lt;br /&gt;
| https://avatars3.githubusercontent.com/u/5014150?s=120#.png&lt;br /&gt;
[https://github.com/mnjul Min-Zhong &amp;quot;John&amp;quot; Lu (mnjul)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weekly Update ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;&amp;quot;&amp;gt;&#039;&#039;&#039;NOTE&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:small&amp;quot;&amp;gt;Nothing is committed until it lands in a release :) .&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the features mainly driven by the Taipei teams, in cooperation with other teams in Taipei and around the world. We are not meant to take all the credit :)&lt;br /&gt;
&lt;br /&gt;
=== Tim ===&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/user_profile?login=timdream%40gmail.com Read my Bugzilla profile]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=assignee%3Atimdream%40gmail.com Open bugs assigned to me] (ASSIGNED = current working on; NEW = backlog)&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
&lt;br /&gt;
* {{bug|1112092}} (settings migrator in Gecko) got picked up by Arthur... Thanks!&lt;br /&gt;
* {{bug|1152865}} drive-by patch for TryChooser&lt;br /&gt;
* {{bug|1137557}} InputMethod API to work with D3E -- stuck on a native async bug&lt;br /&gt;
** {{bug|1162360}} Remove form.js focus event timing -- found fixes for test crash and Gij failure, should land after r+.&lt;br /&gt;
** Will verify if this can fix {{bug|1162383}} too but found {{bug|1166193}} preventing me from doing so.&lt;br /&gt;
&lt;br /&gt;
* {{bug|1050574}} Included all layout in nightly&lt;br /&gt;
** {{bug|1128396}} --  Include all layouts with no dictionary or downloadable dictionary in Nightly, i.e. enable downloadable dictionary -- SHIPPED!&lt;br /&gt;
** Backlogged to work on things above first. Feel free to steal -- need work on Asian IME dictionary loadings.&lt;br /&gt;
&lt;br /&gt;
=== Rudy ===&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
===== Emoji layout =====&lt;br /&gt;
* {{Bug|1138815}} - Fine-tune the swipe behavior of swipeable panel in keyboard.&lt;br /&gt;
** Landed.&lt;br /&gt;
* {{Bug|1157558}} - Implement DynamicLayoutPage for recently used emojis.&lt;br /&gt;
** WIP, sent for feedback first.&lt;br /&gt;
===== New keyboard layouts =====&lt;br /&gt;
* {{Bug|1114864}} - Request to add Igbo (ig) keyboard to Firefox OS.&lt;br /&gt;
* {{Bug|1114866}} - Request to add Hausa (ha) keyboard to Firefox OS - multiple branches.&lt;br /&gt;
* {{Bug|1149029}} - Create Tagalog word list for autocorrect.&lt;br /&gt;
** All waiting for feedback.&lt;br /&gt;
===== Keyboard issues =====&lt;br /&gt;
* {{Bug|1158517}} - Fix remaining keyboard jshint issues.&lt;br /&gt;
** Landed.&lt;br /&gt;
* {{Bug|1162680}}- [Contacts] Hitting the X (back/cancel) while loading the Gmail/Outlook import contacts sign-in will cause the keyboard to become stuck on the screen.&lt;br /&gt;
** Investigating, should be forms.js issue about blur event.&lt;br /&gt;
===== Code Reviews =====&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
===== Keyboard integration tests =====&lt;br /&gt;
* Continue to work on {{Bug|928805}} - (vkb-integration) [meta][keyboard][integration] Improve integration test coverage for Gaia keyboard&lt;br /&gt;
===== Emoji layout =====&lt;br /&gt;
* {{Bug|1157558}} - Implement DynamicLayoutPage for recently used emojis.&lt;br /&gt;
===== New keyboard layouts =====&lt;br /&gt;
* {{Bug|1114864}} - Request to add Igbo (ig) keyboard to Firefox OS.&lt;br /&gt;
* {{Bug|1114866}} - Request to add Hausa (ha) keyboard to Firefox OS - multiple branches.&lt;br /&gt;
* {{Bug|1149029}} - Create Tagalog word list for autocorrect.&lt;br /&gt;
* {{Bug|1114863}} - (yoruba-keyboard) Add Yoruba (yo) keyboard to Firefox OS - multiple branches.&lt;br /&gt;
===== Others =====&lt;br /&gt;
* {{Bug|1162680}}- [Contacts] Hitting the X (back/cancel) while loading the Gmail/Outlook import contacts sign-in will cause the keyboard to become stuck on the screen.&lt;br /&gt;
* {{Bug|1157496}} - [Keyboard] Double tapping the &#039;shift&#039; key may not enable &#039;caps lock&#039;.&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
&lt;br /&gt;
* Keyboard integration test&lt;br /&gt;
** Test plan - https://gaia.hackpad.com/Automation-UI-Test-Plan-for-Keyboard-App-QPMn2HHoOjo.&lt;br /&gt;
&lt;br /&gt;
* Keyboard Roadmap&lt;br /&gt;
** https://wiki.mozilla.org/Gaia/System/Keyboard/Roadmap&lt;br /&gt;
&lt;br /&gt;
=== Ian ===&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=assignee%3Ailiu%40mozilla.com Open bugs assigned to me] (ASSIGNED = current working on; NEW = backlog)&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
* {{Bug|1121913}}: [Bluetooth][Settings][User Story] A timer to control the property visible while turning it on.(WIP, re-confirm with UX/VD, need platform support)&lt;br /&gt;
* {{Bug|1088017}}: User not able to accept multiple files sent over BT(WIP, need platform support)&lt;br /&gt;
* {{Bug|1157822}}: [Windows Management] [Notification Banner] [Lockscreen] Tapping on a notification banner will execute onclick callback behind the lockscreen, operating inconsistently with tapping on the lockscreen notification (non-banner).(system::notification::utilityTray issue)&lt;br /&gt;
* {{Bug|820003}}: Time picker: should be grabbable in space &amp;quot;beyond&amp;quot; list(wonfix per UX comment)&lt;br /&gt;
* {{Bug|1162460}}: [Cleanup] Remove trailing space in Gaia bluetooth code(reviewed Ben&#039;s patch)&lt;br /&gt;
* {{Bug|1098228}}: [Flame][Bluetooth]&amp;quot;Visible to all&amp;quot; button will keep on after you turn off /on bluetooth sometimes.(platform issue)&lt;br /&gt;
* {{Bug|1162019}}: [Bluetooth2][Daemon][PTS][HFP] Test case - TC_AG_COD_BV_02_I inconc(fixed, Gaia Bluetooth APIv2 issue)&lt;br /&gt;
* {{Bug|1163926}}: [Gaia-UI-Test] Pass Gaia UI Test before preference on Bluetooth API v2(passed on Gaia UI-Test)&lt;br /&gt;
* {{Bug|1164314}}: [BT Setting] Paired devices would appear in both &#039;Paired devices&#039; and &#039;Devices in the area&#039; sections(platform issue)&lt;br /&gt;
* {{Bug|1163784}}: Bluetooth annunciator does not highlight after connecting to remote device(reviewing)&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
* {{Bug|1163784}}: Bluetooth annunciator does not highlight after connecting to remote device(reviewing)&lt;br /&gt;
* {{Bug|973451}}: [settings] refactor Media storage panel with AMD pattern&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
* Bluetooth:&lt;br /&gt;
** WebBluetooth-v2: Plan to implement Settings::Bluetooth for new API.(https://wiki.mozilla.org/B2G/Bluetooth/WebBluetooth-v2)&lt;br /&gt;
** Tracking Meta Bug: {{Bug|1072721}}: (Gaia-BT-v2-API) (Gaia-Bluetooth-Support-v2-API)[Gaia][Bluetooth][v2 API][Meta]&lt;br /&gt;
** Gaia works done besides of {{Bug|1090799}}(third reviewing process) (https://taiwan.etherpad.mozilla.org/gaia-bluetoothv2)&lt;br /&gt;
** Schedule: &lt;br /&gt;
*** Buffer 5/04 - 5/08 (1 week)&lt;br /&gt;
*** QA Testing Round 2 5/11 - 5/15 (1 week)&lt;br /&gt;
** BT APIv2 Switch Plan:&lt;br /&gt;
*** https://docs.google.com/document/d/1ZS6-uNS71CkGBI3KLWuLGtl2ToAd8VbE-VhnZFecPL8/edit?pli=1&lt;br /&gt;
** Reorganise notification of file transfer&lt;br /&gt;
*** {{Bug|988116}}: Bluetooth file transfer leaves too many notifications(on discussion)&lt;br /&gt;
&lt;br /&gt;
* SD Card management:&lt;br /&gt;
** Spec. https://bugzilla.mozilla.org/show_bug.cgi?id=921105#c23&lt;br /&gt;
*** Follow up for enable/disable mount/unmount button since attribute &amp;quot;isRemovable&amp;quot; is landed({{Bug|1033952}}).&lt;br /&gt;
&lt;br /&gt;
* NFC share files via Bluetooth:&lt;br /&gt;
** Follow up for https://bugzilla.mozilla.org/show_bug.cgi?id=998175#c20&lt;br /&gt;
*** Provide id for NFC file sending.&lt;br /&gt;
*** Have to find out a way for race condition.&lt;br /&gt;
&lt;br /&gt;
=== Steve ===&lt;br /&gt;
&lt;br /&gt;
==== Done ====&lt;br /&gt;
* New gaia patches review.&lt;br /&gt;
** (feedback+){{Bug|1161985}} - [Messages][NG] Split recipient and non-compose related styling from compose.css&lt;br /&gt;
*** Create a WIP that split the composer/recipient css.&lt;br /&gt;
&lt;br /&gt;
* gaia component&lt;br /&gt;
** (gave feedback)[gaia-list] Bug 1162419 - [gaia-list] every row should be wrap in &amp;lt;li&amp;gt;&lt;br /&gt;
*** Feedback to Fred&#039;s patch that wrapping list component into &amp;lt;li&amp;gt; element with some styling rule proposal.&lt;br /&gt;
&lt;br /&gt;
==== Ongoing ====&lt;br /&gt;
* new gaia architecture&lt;br /&gt;
** {{Bug|1162031}} - [Messages][New Gaia Architecture] use the bridge with a shared worker&lt;br /&gt;
*** Create a WIP that make the bridge mechanism work for first panel&lt;br /&gt;
** {{Bug|1161985}} - [Messages][NG] Split recipient and non-compose related styling from compose.css&lt;br /&gt;
*** Will update patch for review.&lt;br /&gt;
** {{Bug|1163955}} - [Messages][New Gaia Architecture] Rewrite all sync methods in Drafts module to async promise based&lt;br /&gt;
*** Instead of making all draft method into promise base, maybe we could also create a simplified draft cache for panel and maintain the cache by event emitted from service.&lt;br /&gt;
&lt;br /&gt;
* Start some experiment with general component like confirm to see if there is any performance penalty.&lt;br /&gt;
** No progress yet. Will find some smaller polishing bug instead.&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
* New gaia architecture in message app:&lt;br /&gt;
** Milestone planning: https://etherpad.mozilla.org/sms-milestone-planning&lt;br /&gt;
*** 1) Split panels in separate documents (Major js/css split is finished, will try to migrate to content wrapper with separated panel mark up)&lt;br /&gt;
*** 2) Branching (Not going to branching currently, will revisit it again once we start to migrate to NG core feature)&lt;br /&gt;
*** 3) Front-end/back-end separation (Experiment for draft right now)&lt;br /&gt;
** Sprint planning: https://etherpad.mozilla.org/sms-planning&lt;br /&gt;
&lt;br /&gt;
=== Dominic ===&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
* Music&lt;br /&gt;
** {{Bug|1055049}} - [Music] modify of the dom layout and the page transitions.&lt;br /&gt;
*** Finished the first four views(tiles, list, sublist and player) page transitions, and working on the last view - search. The search view is more complicated then the others so I need maybe 1-2 more days to get it work&lt;br /&gt;
* Audio channel services weekly sync up.&lt;br /&gt;
* Reviews and needinfos.&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
* Music&lt;br /&gt;
** {{Bug|1055049}} - [Music] modify of the dom layout and the page transitions.&lt;br /&gt;
** {{Bug|1161492}} - [Music] [Front-end] Use independent tabs for each view.&lt;br /&gt;
* Audio channel services weekly sync up.&lt;br /&gt;
* Reviews and needinfos.&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
* Music refactoring meta bug is filed in {{Bug|1053677}}.&lt;br /&gt;
** {{Bug|1055043}} - [Music] modularize the views. (landed)&lt;br /&gt;
** {{Bug|1055049}} - [Music] modify of the dom layout and the page transitions (working on).&lt;br /&gt;
** {{Bug|1012613}} - [Music] Proposal for splitting the Music app into UI and Player.&lt;br /&gt;
* Sound UX update:&lt;br /&gt;
** {{Bug|991026}} - (Meta) Sound and audio channel volume spec.&lt;br /&gt;
* Audio competing&lt;br /&gt;
** Meetings for REQ for Multimedia platform.&lt;br /&gt;
&lt;br /&gt;
=== Alive ===&lt;br /&gt;
==== Last week ====&lt;br /&gt;
* {{Bug|1094759}} - r+, Daily rebasing, QA-approvaling&lt;br /&gt;
* {{Bug|1149003}} - [Dialer]During a call, press home button to return to home, and the call notification will be hidden and shown twice quickly - Attention Toaster animation issue, r?=etienne&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
* Land and watch following issue for bug 1094759&lt;br /&gt;
&lt;br /&gt;
=== Arthur ===&lt;br /&gt;
==== Done ====&lt;br /&gt;
* Features&lt;br /&gt;
** {{Bug|973459}} - [settings] refactor Cellular &amp;amp; Data panel with AMD pattern&lt;br /&gt;
*** Adding unit tests.  &lt;br /&gt;
*** Requesting feedback from EJ.&lt;br /&gt;
** {{Bug|1161927}} - [Settings] Migrate settings app to use new system update API&lt;br /&gt;
*** Already implemented the entire system update flow. Ideally all mozChromeEvent and mozContentEvent regarding system update can be removed. To remove the last mozContentEvent, &#039;update-prompt-apply-result&#039;.&lt;br /&gt;
&lt;br /&gt;
==== To do ====&lt;br /&gt;
* {{Bug|973459}} - [settings] refactor Cellular &amp;amp; Data panel with AMD pattern&lt;br /&gt;
** Adding unit tests.  &lt;br /&gt;
** In progress&lt;br /&gt;
* {{Bug|1112092}} - Implement a migrator for mozSettings values in B2G&lt;br /&gt;
** Study mozSettings related code in gecko.&lt;br /&gt;
&lt;br /&gt;
* Review settings app architecture&lt;br /&gt;
** Refactor the remaining un-modular code (call/carrier/media storage).&lt;br /&gt;
** Identify the required features for supporting multiple form factors and easy customization.&lt;br /&gt;
*** Clear view/logic separation&lt;br /&gt;
*** Build-time/run-time options for settings on various requirements&lt;br /&gt;
*** Module reusability across the platform&lt;br /&gt;
* Blockers if any.&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
* Settings roadmap - https://wiki.mozilla.org/Gaia/Settings&lt;br /&gt;
&lt;br /&gt;
=== Evan ===&lt;br /&gt;
==== Last week ====&lt;br /&gt;
* (spark+){{Bug|1161621}} - [Flame] Factory reset via Settings doesn&#039;t enter FTE automatically, instead the screen turns off&lt;br /&gt;
** Landed.&lt;br /&gt;
* (3.0+){{Bug|1164237}} - [Status bar] The status bar icons are white on a white background in the FTE&lt;br /&gt;
** After verifying, the bug was already fixed by Bug 1161621.&lt;br /&gt;
* {{Bug|1157140}} - Manage System app&#039;s audio channels in the AudioChannelManager.&lt;br /&gt;
** The patch is r+.&lt;br /&gt;
* {{Bug|1165134}} - Add new MozChromeEvent/MozContentEvent to allow System app to control its own audio channels&lt;br /&gt;
** The patch is r?.&lt;br /&gt;
* {{Bug|1164326}} - Add integration tests for app modal dialog&lt;br /&gt;
** Help device team figure out the marionette things.&lt;br /&gt;
&lt;br /&gt;
==== Next week ====&lt;br /&gt;
* {{Bug|1165134}} - Add new MozChromeEvent/MozContentEvent to allow System app to control its own audio channels&lt;br /&gt;
** Update patch for review.&lt;br /&gt;
* Work on System 2 things.&lt;br /&gt;
** {{Bug|1093516}} - [System2] Migrate AppUpdate/InstallDialog to SystemDialog&lt;br /&gt;
*** Continue to update the patch and send review request again.&lt;br /&gt;
* Work on Make Fair 2015 things&lt;br /&gt;
** Make the ping pong game with Flame and a LED matrix.&lt;br /&gt;
&lt;br /&gt;
=== Fred ===&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=assignee%3Agasolin%40mozilla.com Open bugs assigned to me] (ASSIGNED = current working on; NEW = backlog)&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
Work on `gaia-list` to improve animation &amp;amp; structure&lt;br /&gt;
&lt;br /&gt;
* [r+ &amp;amp; landed][gaia-component] refactor: update packages https://github.com/gaia-components/gaia-component/pull/10&lt;br /&gt;
* [r+ &amp;amp; landed] {{bug|1162213}} - [gaia-list] lint fix and add auto run lint command in travis&lt;br /&gt;
* [r+ &amp;amp; landed] {{bug|1162869}} - [gaia-switch] lint fix and add auto run lint command in travis&lt;br /&gt;
* [r+ &amp;amp; landed] [gaia-components] update dependency packages and add readme file https://github.com/gaia-components/gaia-components/pull/5&lt;br /&gt;
&lt;br /&gt;
* [r?] [accessibility] - [gaia-list] add aria-hidden for icons so Screen Reader will ignore them https://github.com/gaia-components/gaia-list/pull/14&lt;br /&gt;
* [r?] {{bug|1151765}} - use gulp to build jsdocs&lt;br /&gt;
** use standard jsdoc.json instead&lt;br /&gt;
* [f?] {{bug|1160962}} - [gaia-list] active effect length is short, can&#039;t full fill width size when tap at the edge&lt;br /&gt;
** boost ripple performance via requestAnimationFrame&lt;br /&gt;
** confirm with UX about correct animation&lt;br /&gt;
* setup &amp;amp; install lightsaber on flame&lt;br /&gt;
* [f?] {{bug|1162419}} - [gaia-list] every row should be wrap in `li`&lt;br /&gt;
* [f?] Bug 1162180 - [gaia-switch] [accessibility]Make sure gaia-switch is accessible to screen reader.&lt;br /&gt;
* [f?] {{bug|1162138}} - [accessibility][gaia-button] Make sure gaia-button is accessible to screen reader.&lt;br /&gt;
&lt;br /&gt;
* {{bug|1163921}} - [gaia-list] Avoid to qualify class rules with tag names for the element inside list&lt;br /&gt;
** propose new class syntax for gaia-list&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
Create perf test to validate each change has better performance impact.&lt;br /&gt;
&lt;br /&gt;
* [r+ &amp;amp; landed] {{bug|1160962}} - [gaia-list] active effect length is short, can&#039;t full fill width size when tap at the edge&lt;br /&gt;
* [r+] {{bug|1151765}} - use gulp to build jsdocs&lt;br /&gt;
** wait removement of taskcluster&lt;br /&gt;
* [r?] [accessibility] - [gaia-list] add aria-hidden for all icons so Screen Reader will ignore them https://github.com/gaia-components/gaia-list/pull/14&lt;br /&gt;
** run perf test&lt;br /&gt;
* create component benchmark&lt;br /&gt;
https://github.com/gaia-components/gaia-list/pull/15&lt;br /&gt;
* [f?] {{bug|1162419}} - [gaia-list] every row should be wrap in `li`&lt;br /&gt;
** new proposal&lt;br /&gt;
* [f?] Bug 1162180 - [gaia-switch] [accessibility]Make sure gaia-switch is accessible to screen reader.&lt;br /&gt;
** run perf test&lt;br /&gt;
&lt;br /&gt;
[review] {{bug|1159411}} - Preload Marketplace and hosted-online apps into B2G&#039;s Gaia build using preload-app-toolkit &lt;br /&gt;
** review dale&#039;s patch&lt;br /&gt;
&lt;br /&gt;
==== Topic status update ====&lt;br /&gt;
&lt;br /&gt;
CSS in gaia: &lt;br /&gt;
* Organize meetup in whistler for moz-components related people (gaia, gecko wc, xtag, appmaker)&lt;br /&gt;
* create IsGaiaComponentReady page on mozilla wiki https://wiki.mozilla.org/Gaia/Shared/Components&lt;br /&gt;
* In statistic the most used components in spark are header, list, button, I&#039;ll start improve these component&#039;s quality. https://trello.com/c/7WAuKiTj/31-findout-what-components-spark-is-used&lt;br /&gt;
* pump `gaia-button` to Can Use state&lt;br /&gt;
&lt;br /&gt;
=== George ===&lt;br /&gt;
&lt;br /&gt;
==== Since last meeting ====&lt;br /&gt;
&lt;br /&gt;
* ({{Bug|1154582}}) - Build system configure - adding configure.js to generate strong dependency all.mk and execute it - r?Tim&lt;br /&gt;
** should be able to launch with node and &lt;br /&gt;
* ({{Bug|1158388}}) - [NFC] Swiping up causes jerky, stuttered animation in the Shrinking UI. r?greg&lt;br /&gt;
* ({{Bug|1158917}}) - [SHB][Callscreen] close software home button when receiving attentionclosed, landed&lt;br /&gt;
* ({{Bug|1159866}}) - [SIM Prompt] Bug 1159866 - publish lockscreenwindowmanager-deactivated when lockscreen is closed - landed&lt;br /&gt;
* ({{Bug|1159991}}) - Include developer mode prefs in |DEVICE_DEBUG=1|, r=ricky&lt;br /&gt;
&lt;br /&gt;
==== TODO ====&lt;br /&gt;
* Fix above bugs and land them.&lt;br /&gt;
* ({{Bug|1162384}}) - [NFC] Cannot share image which is opened from notification&lt;br /&gt;
* Build ENV v.s. build steps manager, will file bug after bug 1154582 is merged.&lt;br /&gt;
* Build spec on wiki, will work with Ricky on it.&lt;br /&gt;
* If time allows, I will spend time on system 2 refactoring.&lt;br /&gt;
&lt;br /&gt;
==== Topic status update ====&lt;br /&gt;
* Copy-paste&#039;s META bug ({{Bug|1023688}})&lt;br /&gt;
* New build wiki https://wiki.mozilla.org/Gaia/Build/NewBuildSystem&lt;br /&gt;
&lt;br /&gt;
=== Greg ===&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
&lt;br /&gt;
* Do some experiments to make sure the current redundant building process of B2G could be greatly optimized. However, for the repo maintainers there seems no such plan to put the effort on that, at least not in public.&lt;br /&gt;
&lt;br /&gt;
* Have had some discussions about IoT with Dietrich. The build issue is one of them.&lt;br /&gt;
&lt;br /&gt;
* Continue to try to integrate Raptor with Marionette. Has one available prototype, and set the review for one critical bug&lt;br /&gt;
** {{bug|1165814}} [raptor] Add an option to let user determinate when to flush the log, and add a Marionette phase for combing them together&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
&lt;br /&gt;
* Continue whatever I list above.&lt;br /&gt;
&lt;br /&gt;
==== Topic status update ====&lt;br /&gt;
&lt;br /&gt;
=== EJ ===&lt;br /&gt;
&lt;br /&gt;
==== Last week ====&lt;br /&gt;
&lt;br /&gt;
[Bugs]&lt;br /&gt;
* &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
* {{Bug|973459}} - Refactor the operator settings panel&lt;br /&gt;
** working on it&lt;br /&gt;
* {{Bug|1155600}} - [Flame][Settings]Device will prompt user that email address is missing or invalid, or feedback has already been sent when user submits feedback.&lt;br /&gt;
** investigating this problem with server guys.&lt;br /&gt;
&lt;br /&gt;
[Review/Feedback]&lt;br /&gt;
* {{Bug|973459}} - [settings] refactor Cellular &amp;amp; Data panel with AMD pattern&lt;br /&gt;
** Reviewing&lt;br /&gt;
* {{Bug|1158757}} - [Settings] Refactor ObservableArray&lt;br /&gt;
** Reviewing&lt;br /&gt;
&lt;br /&gt;
==== This week ====&lt;br /&gt;
&lt;br /&gt;
[Bugs]&lt;br /&gt;
* &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
* {{Bug|942365}} - [B2G][Settings][SIM Security] On Change PIN screen entering 4 digits in any field highlights the &amp;quot;Done&amp;quot; button&lt;br /&gt;
** r+ &amp;amp; landed&lt;br /&gt;
* {{Bug|1161785}} - [Settings][WiFi] Networks list items do not highlight when selected.&lt;br /&gt;
** r+ &amp;amp; landed&lt;br /&gt;
* {{Bug|1161364}} - [WIFI]The string &amp;quot;Select certificate file&amp;quot; is truncated.&lt;br /&gt;
** Investigating&lt;br /&gt;
* {{Bug|1164346}} - Add locale id check to hint developers that they are updating the same locale id&lt;br /&gt;
** Got backed out, finding solution&lt;br /&gt;
* {{Bug|1159177}} - [Wifi]User can join hidden network without ssid name.&lt;br /&gt;
** With WIP, waiting for Gecko&#039;s response.&lt;br /&gt;
&lt;br /&gt;
[Review/Feedback]&lt;br /&gt;
* {{Bug|1160186}} - [Settings] Don&#039;t reuse the same entity &#039;Manage certificates&#039; in different contexts&lt;br /&gt;
** Gave r+&lt;br /&gt;
* {{Bug|1162276}} - Date &amp;amp; Time settings does not show correct timezone when NITZ is used&lt;br /&gt;
** Gave r+&lt;br /&gt;
* {{Bug|1147092}} - [Add-On Manager] Visual refinements for list-view&lt;br /&gt;
** Gave r+&lt;br /&gt;
* {{Bug|1163918}} - [Add-On Manager] Rename addon-details-header to reflect new content&lt;br /&gt;
** Gave r+&lt;br /&gt;
* {{Bug|1158351}} - Add unit tests for WifiHelper.isValidInput method&lt;br /&gt;
** Taking off r? flag&lt;br /&gt;
* {{Bug|973459}} - [settings] refactor Cellular &amp;amp; Data panel with AMD pattern&lt;br /&gt;
** Reviewing&lt;br /&gt;
==== Topic status update ====&lt;br /&gt;
&lt;br /&gt;
[Settings]&lt;br /&gt;
* None&lt;br /&gt;
&lt;br /&gt;
=== Ricky ===&lt;br /&gt;
&lt;br /&gt;
==== Last meeting ====&lt;br /&gt;
&lt;br /&gt;
[Build System]&lt;br /&gt;
&lt;br /&gt;
* Work on {{bug|1154585}} - Completed configure of webapp-shared to generate a webapp-shared.mk&lt;br /&gt;
** In configure step of webapp-shared, it takes about 16 sec to generate webapp-shared.mk&lt;br /&gt;
** We can see that benefit of fast incremental build looks pretty good if we modify some shared file&lt;br /&gt;
&lt;br /&gt;
==== This meeting ====&lt;br /&gt;
&lt;br /&gt;
[Build System]&lt;br /&gt;
&lt;br /&gt;
* Fixed {{bug|1141356}} - utils-xpc.js ls recursive skipped if pattern not matched&lt;br /&gt;
* Work on {{bug|1154585}} - Completed configure of webapp-shared to generate a webapp-shared.mk&lt;br /&gt;
** update status of performance&lt;br /&gt;
** figure out what&#039;s impact of the new architecutre&lt;br /&gt;
* Discuss with George about how to design {{bug|1154583}} - Configure re-run step - configure.js check the change files and ENV to decide whether to regenerate all.mk or not&lt;br /&gt;
&lt;br /&gt;
==== Topic status ====&lt;br /&gt;
&lt;br /&gt;
* Planing [https://wiki.mozilla.org/Gaia/Build/RefactoringToNodejs Refactoring build script to NodeJs]&lt;br /&gt;
&lt;br /&gt;
=== John ===&lt;br /&gt;
&lt;br /&gt;
==== Squash xml2dict.py, use word_list_converter.js ====&lt;br /&gt;
* Meta: {{bug|1143633}} - Deprecate xml2dict.py in favor of word_list_converter.js for generation of dictionary blob&lt;br /&gt;
* Ongoing: {{bug|1146804}} - Create file front-end for word_list_converter.js | r?tim &amp;amp; f+ricky&lt;br /&gt;
&lt;br /&gt;
==== Keyboard User Dictionary ====&lt;br /&gt;
* In Mar. 6&#039;s sync-up, Bruce expressed his expectation that acceptable performance should be: reasonably responsive for a user dictionary of 100 words. I think that includes prediction &amp;amp; dict blob generation.&lt;br /&gt;
** Benchmark results at {{bug|1102835}} comment 16.&lt;br /&gt;
&lt;br /&gt;
===== Bugs overview =====&lt;br /&gt;
* Meta/UserStory: {{bug|879145}} - [Keyboard][User Story] User dictionary in word-suggestion&lt;br /&gt;
* Three major engineering bugs&lt;br /&gt;
** &amp;lt;del&amp;gt;{{bug|1102831}} - [UserDictionary] Implement user dictioanry UI to KeyboardSettingsApp&amp;lt;/del&amp;gt;&lt;br /&gt;
** &amp;lt;del&amp;gt;{{bug|1102834}} - [UserDictionary] Implement dictionary binary blob generation &amp;amp; storage to KeyboardSettingsApp&amp;lt;/del&amp;gt;&lt;br /&gt;
** &amp;lt;del&amp;gt;{{bug|1102835}} - [UserDictionary] Let Keyboard App use User-Dictionary&amp;lt;/del&amp;gt;&lt;br /&gt;
* Dependency:&lt;br /&gt;
** &amp;lt;del&amp;gt;{{bug|1138782}} - validChars() in predictions.js should consider different casing&amp;lt;/del&amp;gt;&lt;br /&gt;
* Follow-ups:&lt;br /&gt;
** Bugs (just &amp;quot;bugs&amp;quot;)&lt;br /&gt;
*** &amp;lt;del&amp;gt;{{bug|1138343}} - [UserDictionary] Instantiate and store an ArrayBuffer instead of a TypedArray during dictionary binary blob generation in KeyboardSettingsApp&amp;lt;/del&amp;gt;&lt;br /&gt;
** Performance improvements&lt;br /&gt;
*** &amp;lt;del&amp;gt;{{bug|1130317}} - [UserDictionary] Pre-determine dict blob total byte length before building the blob&amp;lt;/del&amp;gt;&lt;br /&gt;
*** {{bug|1130312}} - [UserDictionary] Investigate possibility and potential to let worker generate dictionary blob&lt;br /&gt;
** Non-compliant UX&lt;br /&gt;
*** &amp;lt;del&amp;gt;{{bug|1129844}} - UserDictionary word list should sort alphabetically&amp;lt;/del&amp;gt;&lt;br /&gt;
** Architecture improvements/refactoring/code tidy-up&lt;br /&gt;
*** &amp;lt;del&amp;gt;{{bug|1115644}} - Implement RootPanel and standardize panel interface for KeyboardSettingsApp&amp;lt;/del&amp;gt;&lt;br /&gt;
*** &amp;lt;del&amp;gt;{{bug|1115649}} - Differentiate concept of Panel and Dialog in Keyboard Settings&amp;lt;/del&amp;gt;&lt;br /&gt;
*** {{bug|1115666}} - Clean up KeyboardSettingsApp stylesheet&lt;br /&gt;
*** &amp;lt;del&amp;gt;{{bug|1143636}} - Allow word_list_converter.js to accpet variable word frequency information&amp;lt;/del&amp;gt;&lt;br /&gt;
** (Integration) Tests&lt;br /&gt;
*** {{bug|1139766}} - [keyboard][integration] Add integration tests for user dictionary and prediction&lt;br /&gt;
** Unit Tests&lt;br /&gt;
*** {{bug|1148326}} - latin_test.js: Amend tests for worker.postMessage() transferList arg for |userDict === undefined| situation&lt;br /&gt;
**** This depends on {{bug|1148316}} - latin_test.js should fake setTimeout() calls in engine deactivation&lt;br /&gt;
&lt;br /&gt;
= Bugzilla queries =&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[https://bugzilla.mozilla.org/page.cgi?id=mydashboard.html Your Bugzilla Dashboard]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&amp;amp;j26=OR&amp;amp;f35=OP&amp;amp;list_id=9789226&amp;amp;f44=CP&amp;amp;f68=CP&amp;amp;f39=CP&amp;amp;v57=iliu%40mozilla.com&amp;amp;f49=CP&amp;amp;f30=OP&amp;amp;f51=OP&amp;amp;j6=OR&amp;amp;j31=OR&amp;amp;j56=OR&amp;amp;v62=evanxd%40mozilla.com&amp;amp;f13=CP&amp;amp;o2=substring&amp;amp;f66=OP&amp;amp;f23=CP&amp;amp;f29=CP&amp;amp;f25=OP&amp;amp;v42=alive%40mozilla.com&amp;amp;f27=assigned_to&amp;amp;v47=dkuo%40mozilla.com&amp;amp;o12=substring&amp;amp;v52=gasolin%40mozilla.com&amp;amp;o17=substring&amp;amp;f58=CP&amp;amp;v2=rlu%40mozilla.com&amp;amp;f21=OP&amp;amp;o57=substring&amp;amp;f10=OP&amp;amp;f32=assigned_to&amp;amp;f19=CP&amp;amp;v37=yurenju.mozilla%40gmail.com&amp;amp;j46=OR&amp;amp;j66=OR&amp;amp;v32=gduan.moz%40gmail.com&amp;amp;j41=OR&amp;amp;f56=OP&amp;amp;f34=CP&amp;amp;f42=assigned_to&amp;amp;f64=CP&amp;amp;j21=OR&amp;amp;o47=substring&amp;amp;f15=OP&amp;amp;o52=substring&amp;amp;o67=substring&amp;amp;o32=substring&amp;amp;f46=OP&amp;amp;f50=OP&amp;amp;f4=CP&amp;amp;f67=assigned_to&amp;amp;f2=assigned_to&amp;amp;j36=OR&amp;amp;v12=ejchen%40mozilla.com&amp;amp;f54=CP&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;f62=assigned_to&amp;amp;f38=CP&amp;amp;f17=assigned_to&amp;amp;f65=OP&amp;amp;o22=substring&amp;amp;f7=assigned_to&amp;amp;v22=ricky060709%40gmail.com&amp;amp;f36=OP&amp;amp;v27=schung%40mozilla.com&amp;amp;f26=OP&amp;amp;f52=assigned_to&amp;amp;f57=assigned_to&amp;amp;f28=CP&amp;amp;j16=OR&amp;amp;j11=OR&amp;amp;j61=OR&amp;amp;f12=assigned_to&amp;amp;o37=substring&amp;amp;j51=OR&amp;amp;f14=CP&amp;amp;f60=OP&amp;amp;f43=CP&amp;amp;f24=CP&amp;amp;f47=assigned_to&amp;amp;f59=CP&amp;amp;f69=CP&amp;amp;f22=assigned_to&amp;amp;f48=CP&amp;amp;f31=OP&amp;amp;f1=OP&amp;amp;f37=assigned_to&amp;amp;o7=substring&amp;amp;f20=OP&amp;amp;f33=CP&amp;amp;f0=OP&amp;amp;f8=CP&amp;amp;f18=CP&amp;amp;v67=gweng%40mozilla.com&amp;amp;o42=substring&amp;amp;v7=timdream%40gmail.com&amp;amp;f9=CP&amp;amp;f45=OP&amp;amp;query_format=advanced&amp;amp;j1=OR&amp;amp;f3=CP&amp;amp;v17=arthur.chen%40mozilla.com&amp;amp;f53=CP&amp;amp;f55=OP&amp;amp;f61=OP&amp;amp;f11=OP&amp;amp;f41=OP&amp;amp;o62=substring&amp;amp;f5=OP&amp;amp;f6=OP&amp;amp;f63=CP&amp;amp;o27=substring&amp;amp;f40=OP&amp;amp;f16=OP Assigned to team]&lt;br /&gt;
&lt;br /&gt;
== v1.3 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=1.3%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=1.3%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=1.3T%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3T+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=1.3T%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.3T?] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== v1.4 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=1.4%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.4+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=1.4%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 1.4?] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== v2.0 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.0%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.0+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.0&amp;amp;f7=component&amp;amp;o8=substring feature: 2.0]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.0%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.0?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.0&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.0] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== v2.1 ==&lt;br /&gt;
&lt;br /&gt;
*[https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.1%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.1+]&lt;br /&gt;
* [http://mzl.la/1x9FKJB blocking: 2.1+] (without systemsfe)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.1&amp;amp;f7=component&amp;amp;o8=substring feature: 2.1]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.1%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.1?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.1&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.1] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.1&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;f15=CP&amp;amp;f16=status_whiteboard&amp;amp;v16=systemsfe&amp;amp;o16=substring&amp;amp;n16=1&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.1] (including fixed bugs; without systemsfe)&lt;br /&gt;
&lt;br /&gt;
== v2.2 ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.2%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.2+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.2%2B&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=2.2%3F&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2?]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.2%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: 2.2?] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.2%2B&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2+] (including fixed bugs)&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=2.2%2B&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_feature_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;f15=CP&amp;amp;f16=status_whiteboard&amp;amp;v16=systemsfe&amp;amp;o16=substring&amp;amp;n16=1&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring feature: 2.2+] (including fixed bugs; without systemsfe)&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=equals&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=backlog&amp;amp;f7=component&amp;amp;o8=substring blocking-b2g: backlog]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=substring&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_tracking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=%2B&amp;amp;f7=component&amp;amp;o8=substring tracking-b2g: +]&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;o13=equals&amp;amp;list_id=11471599&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;f13=component&amp;amp;o2=substring&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;f12=component&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;o12=equals&amp;amp;j4=OR&amp;amp;v2=%5Bpriority%5D&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;o7=equals&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;o6=equals&amp;amp;f9=status_whiteboard&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f4=OP&amp;amp;o10=equals&amp;amp;query_format=advanced&amp;amp;f3=CP&amp;amp;f2=status_whiteboard&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f11=component&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring tagged with &amp;lt;nowiki&amp;gt;[priority]&amp;lt;/nowiki&amp;gt; on Whiteboard] (deprecated; should be using blocking-b2g: backlog)&lt;br /&gt;
&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;list_id=9003355&amp;amp;f8=status_whiteboard&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o11=equals&amp;amp;o9=substring&amp;amp;resolution=---&amp;amp;resolution=DUPLICATE&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=substring&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;j4=OR&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;v2=%2B&amp;amp;f7=component&amp;amp;o8=substring blocking: Everything+]&lt;br /&gt;
* [https://bugzilla.mozilla.org/buglist.cgi?o5=equals&amp;amp;list_id=9196775&amp;amp;v11=Gaia%3A%3ASystem%3A%3AWindow%20Mgmt&amp;amp;o9=substring&amp;amp;v10=Gaia%3A%3ASystem%3A%3AInput%20Mgmt&amp;amp;o2=substring&amp;amp;v5=Gaia%3A%3AKeyboard&amp;amp;v9=%5B3rd-party-keyboard%5D&amp;amp;j4=OR&amp;amp;v2=%3F&amp;amp;f10=component&amp;amp;f1=OP&amp;amp;v6=Gaia%3A%3ASettings&amp;amp;o7=equals&amp;amp;f8=status_whiteboard&amp;amp;o11=equals&amp;amp;resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;resolution=INCOMPLETE&amp;amp;resolution=SUPPORT&amp;amp;resolution=EXPIRED&amp;amp;resolution=MOVED&amp;amp;o6=equals&amp;amp;v7=Gaia%3A%3ASystem%3A%3ALockscreen&amp;amp;f9=status_whiteboard&amp;amp;f4=OP&amp;amp;query_format=advanced&amp;amp;o10=equals&amp;amp;f3=CP&amp;amp;f2=cf_blocking_b2g&amp;amp;f11=component&amp;amp;f12=component&amp;amp;o12=equals&amp;amp;v12=Gaia%3A%3ABluetooth%20File%20Transfer&amp;amp;f13=component&amp;amp;o13=equals&amp;amp;v13=Gaia%3A%3ABuild&amp;amp;bug_status=UNCONFIRMED&amp;amp;bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f5=component&amp;amp;v8=%5BFT%3ASystem-Platform%5D&amp;amp;f6=component&amp;amp;f7=component&amp;amp;o8=substring blocking: Everything?] (including fixed bugs)&lt;br /&gt;
&lt;br /&gt;
== etc ==&lt;br /&gt;
&lt;br /&gt;
* Components under our watch: Gaia::Bluetooth File Transfer, Gaia::Build, Gaia::Keyboard, Gaia::Settings, Gaia::System::Lockscreen, Gaia::System::Input Mgmt, Gaia::System::Window Mgmt.&lt;br /&gt;
* Team/feature tag(s): [FT:System-Platform], [3rd-party-keyboard]&lt;br /&gt;
&lt;br /&gt;
* [http://andreasgal.github.io/dashboard/?filtercomponents=Gaia::Bluetooth%20File%20Transfer,Gaia::Build,Gaia::Keyboard,Gaia::Settings,Gaia::System::Input%20Mgmt,Gaia::System::Lockscreen,Gaia::System::Window%20Mgmt Andreas&#039;s Dashboard for the team]&lt;br /&gt;
* [http://charts.mozilla.org/ffos/ The Dashboard]&lt;br /&gt;
&lt;br /&gt;
= Story Points, Target Milestone and ETA=&lt;br /&gt;
Please put story point and target milestone to EVERY ticket that is assigned to you, starting from V2.0 4/28. &amp;lt;br /&amp;gt;&lt;br /&gt;
For blockers, please also put ETA in whiteboard, format: &#039;&#039;&#039;[ETA:4/30]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Here is how we go:&lt;br /&gt;
&lt;br /&gt;
* 1 point means approximately 2 working days.&lt;br /&gt;
* The story point goes up with Fibonacci Number, please use the following number: 1, 2, 3, 5, 8, 13 (13 is not recommended unless you really have to)&lt;br /&gt;
* Put in whiteboard, format: &#039;&#039;&#039;[p=2]&#039;&#039;&#039;. When you first got the ticket &amp;amp; after a quick estimation.&lt;br /&gt;
* The efforts shall include &amp;quot;unit test&amp;quot;, &amp;quot;getting review+&amp;quot;, &amp;quot;landed&amp;quot;.&lt;br /&gt;
* When closing a ticket, you may make correction to the p to reflect actual efforts.&lt;br /&gt;
* p means &amp;quot;the effort you spent&amp;quot;, NOT &amp;quot;how long the ticket is closed&amp;quot;. For example, you&#039;re assigned a ticket on Monday, but you wait and start working on it Thursday and Friday then done, p should put as 1, not 3.&lt;br /&gt;
&lt;br /&gt;
= etc. =&lt;br /&gt;
&lt;br /&gt;
* [[B2G]]&lt;br /&gt;
* [[B2G/Roadmap]] -- owned by Product team&lt;br /&gt;
* [[Gaia]]&lt;br /&gt;
* [[Gaia/Meeting_Notes]]&lt;br /&gt;
* [[FirefoxOS/SprintStatus#Systems-Platform Sprint Status]]&lt;br /&gt;
* [[FirefoxOS/OneDotTwoTracking#Blockers_per_Functional_Team]]&lt;br /&gt;
* [https://docs.google.com/a/mozilla.com/spreadsheet/ccc?key=0AtVT90hlMtdSdEd4TVVjWXNfU3ctMlVhWFRrWkpweVE Firefox OS User Story Backlog]&lt;br /&gt;
* [https://taiwan.etherpad.mozilla.org/SystemPlatform1-3 System Platform v1.3 etherpad] (out-dated)&lt;br /&gt;
* Sprint review and retrospect: https://etherpad.mozilla.org/systemplatform-retrospect-demo&lt;br /&gt;
&lt;br /&gt;
== Subpages of {{FULLPAGENAME}} ==&lt;br /&gt;
{{Special:PrefixIndex/{{FULLPAGENAME}}/}}&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/Gaia_build_requirements&amp;diff=1074058</id>
		<title>User:Timdream/Gaia build requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/Gaia_build_requirements&amp;diff=1074058"/>
		<updated>2015-05-12T06:54:31Z</updated>

		<summary type="html">&lt;p&gt;Timdream: + cleaning up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gaia build requirements =&lt;br /&gt;
&lt;br /&gt;
Status: personal note to what&#039;s needed for Gaia build script.&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
&lt;br /&gt;
* Split steps into configure/config.status/build steps, copying what&#039;s done in GNU Build System and Gecko.&lt;br /&gt;
&lt;br /&gt;
== Staging dir ==&lt;br /&gt;
&lt;br /&gt;
* Allow developer to specify build_stage dir (similar to objdir-gecko)&lt;br /&gt;
** Allow developer to reuse different favor of builds by switching between build_stage dirs.&lt;br /&gt;
&lt;br /&gt;
== Incremental builds ==&lt;br /&gt;
&lt;br /&gt;
* Properly set Makefile rules, reuse what&#039;s cached in build_stage and don&#039;t re-run steps and commands when the source did not change.&lt;br /&gt;
** no-op build should be as fast as possible.&lt;br /&gt;
* Provide Makefile (w/ exact file name) in dirs within build_stage so that people can |make -C dir| to run a subset of build commands within that dir.&lt;br /&gt;
* Block user from invoking the above command to ensure the correctness of the build (&amp;quot;STOP! Configure has changed. Please re-run from source dir.” and |exit 1|):&lt;br /&gt;
** when build config changes (per build_stage dir)&lt;br /&gt;
** when configure source script changes&lt;br /&gt;
&lt;br /&gt;
== Interface with app build scripts ==&lt;br /&gt;
&lt;br /&gt;
* Provide a hook to sub-project in the source tree (e.g. we will call |configure| and/or |make| on the source dir of the app and pass all the arguments) and let it build&lt;br /&gt;
** Provide a hook to sub-project to specify it&#039;s own set of output files, so our follow-up commands (packing etc) can depend on them, OR,&lt;br /&gt;
** When the sub-project build command unable to produce the list of output files, properly set our commands as PHONY targets that runs every time when it&#039;s build script is run.&lt;br /&gt;
&lt;br /&gt;
== Cleaning up ==&lt;br /&gt;
&lt;br /&gt;
* No logic in $GAIA/Makefile&lt;br /&gt;
* Eventually run JavaScript with node from the command line with simple command (|node myscript.js|)&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/Gaia_build_requirements&amp;diff=1073743</id>
		<title>User:Timdream/Gaia build requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/Gaia_build_requirements&amp;diff=1073743"/>
		<updated>2015-05-11T10:28:01Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Incremental builds */ Interface with app build scripts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gaia build requirements =&lt;br /&gt;
&lt;br /&gt;
Status: personal note to what&#039;s needed for Gaia build script.&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
&lt;br /&gt;
* Split steps into configure/config.status/build steps, copying what&#039;s done in GNU Build System and Gecko.&lt;br /&gt;
&lt;br /&gt;
== Staging dir ==&lt;br /&gt;
&lt;br /&gt;
* Allow developer to specify build_stage dir (similar to objdir-gecko)&lt;br /&gt;
** Allow developer to reuse different favor of builds by switching between build_stage dirs.&lt;br /&gt;
&lt;br /&gt;
== Incremental builds ==&lt;br /&gt;
&lt;br /&gt;
* Properly set Makefile rules, reuse what&#039;s cached in build_stage and don&#039;t re-run steps and commands when the source did not change.&lt;br /&gt;
** no-op build should be as fast as possible.&lt;br /&gt;
* Provide Makefile (w/ exact file name) in dirs within build_stage so that people can |make -C dir| to run a subset of build commands within that dir.&lt;br /&gt;
* Block user from invoking the above command to ensure the correctness of the build (&amp;quot;STOP! Configure has changed. Please re-run from source dir.” and |exit 1|):&lt;br /&gt;
** when build config changes (per build_stage dir)&lt;br /&gt;
** when configure source script changes&lt;br /&gt;
&lt;br /&gt;
== Interface with app build scripts ==&lt;br /&gt;
&lt;br /&gt;
* Provide a hook to sub-project in the source tree (e.g. we will call |configure| and/or |make| on the source dir of the app and pass all the arguments) and let it build&lt;br /&gt;
** Provide a hook to sub-project to specify it&#039;s own set of output files, so our follow-up commands (packing etc) can depend on them, OR,&lt;br /&gt;
** When the sub-project build command unable to produce the list of output files, properly set our commands as PHONY targets that runs every time when it&#039;s build script is run.&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/Gaia_build_requirements&amp;diff=1073742</id>
		<title>User:Timdream/Gaia build requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/Gaia_build_requirements&amp;diff=1073742"/>
		<updated>2015-05-11T10:26:18Z</updated>

		<summary type="html">&lt;p&gt;Timdream: draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gaia build requirements =&lt;br /&gt;
&lt;br /&gt;
Status: personal note to what&#039;s needed for Gaia build script.&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
&lt;br /&gt;
* Split steps into configure/config.status/build steps, copying what&#039;s done in GNU Build System and Gecko.&lt;br /&gt;
&lt;br /&gt;
== Staging dir ==&lt;br /&gt;
&lt;br /&gt;
* Allow developer to specify build_stage dir (similar to objdir-gecko)&lt;br /&gt;
** Allow developer to reuse different favor of builds by switching between build_stage dirs.&lt;br /&gt;
&lt;br /&gt;
== Incremental builds ==&lt;br /&gt;
&lt;br /&gt;
* Properly set Makefile rules, reuse what&#039;s cached in build_stage and don&#039;t re-run steps and commands when the source did not change.&lt;br /&gt;
** no-op build should be as fast as possible.&lt;br /&gt;
* Provide Makefile (w/ exact file name) in dirs within build_stage so that people can |make -C dir| to run a subset of build commands within that dir.&lt;br /&gt;
* Block user from invoking the above command to ensure the correctness of the build (&amp;quot;STOP! Configure has changed. Please re-run from source dir.” and |exit 1|):&lt;br /&gt;
** when build config changes (per build_stage dir)&lt;br /&gt;
** when configure source script changes&lt;br /&gt;
* Provide a hook to sub-project in the source tree (e.g. we will call |configure| and/or |make| on the source dir of the app and pass all the arguments) and let it build&lt;br /&gt;
** Provide a hook to sub-project to specify it&#039;s own set of output files, so our follow-up commands (packing etc) can depend on them, OR,&lt;br /&gt;
** When the sub-project build command unable to produce that, properly set our commands as PHONY targets that runs every time when it&#039;s build script is run.&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/Blocking_Features&amp;diff=1073291</id>
		<title>User:Timdream/Blocking Features</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/Blocking_Features&amp;diff=1073291"/>
		<updated>2015-05-07T15:58:06Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Unlock Console API for Gaia: {{bug|1066581}} */ console.log&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gecko features blocking Gaia Blockers =&lt;br /&gt;
&lt;br /&gt;
The goal of this page is to collect wanted Gecko features that could fix blockers that cannot be fixed in Gaia apps along. We will try to use this list as a source when prioritize FxOS Gecko works (no, there are no promises, unfortunately -- but someone has to collect the list first).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; To prevent this become a platform feature wish list, please only list a bug if it, or any bug that has any depend on it, has been nominated as a blocker.&lt;br /&gt;
&lt;br /&gt;
== P1 ==&lt;br /&gt;
&lt;br /&gt;
=== Visibility API update: {{bug|1034001}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; Plan realigned in {{bug|1154231}} and Kanru is working on it.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Unless we disallow users from switching between apps, issues will be valid for v3.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve&#039;&#039;&#039;: All issues with incorrect visibility state while doing app transitioning.&lt;br /&gt;
** Bug 1124944 - [KK][Camera] Enabling Flash in Video Camera app then navigating away has flash remain on for several seconds&lt;br /&gt;
** See blockers.&lt;br /&gt;
&lt;br /&gt;
=== Orientation API update: {{bug|1043102}}, aka Skate Jumper bug ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; :wchen is working on it.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we disallow orientation change &amp;amp; switching apps&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Incorrect orientation of lock screen/system UI with an easy-to-produce STR, consistently being nominated as blockers by partners in multiple previous versions.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve&#039;&#039;&#039;: By allowing System app to take part of deciding whether or not to allow a given app to lock the orientation, we will be able to block orientation lock happens right at the time app goes to background.&lt;br /&gt;
&lt;br /&gt;
=== Audio Channel API update: {{bug|1089539}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; on going, spec - {{bug|961967}}, gecko - {{bug|1113086}}, gaia - {{bug|1100822}}.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never have multiple sound sources.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; The current gecko audio channel management introduced bugs on audio competing and leaking, these kind of bugs are being blocked and we need this new api to fix them.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; From v1.0 we introduced the audio channel management in gecko to handle the audio rules and policies, it works on 70% cases but for the other 30%(mostly are the audio competing issues) we couldn&#039;t fix them and instead we need to use workarounds. So to fix the audio channel issues entirely and make things right, the new audio channel api will have a new architecture and gaia system app will use them to control the app audio channels, base on the information from the channel&#039;s priorities and the window management.&lt;br /&gt;
&lt;br /&gt;
=== Activity OOM priority: {{bug|1144132}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; Gabriele Svelto take the platform fix and on m-c and targeting v2.2. He will provides gaia patch as well.&lt;br /&gt;
For v2.2 the plan is to workaround it by associating activity opener and openee together,&lt;br /&gt;
For v3 the plan is to let system app controls the priority.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we move away from inline activities.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; We have a old workaround in System app -- we never set an activity callee as invisible when it is covered by the activity caller, in fear that it could be OOM&#039;ed. In turn, app could not know visibilitychange when there is an activity opened.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; Any issue with incorrect document.hidden state in this situration, for example:&lt;br /&gt;
** {{bug|1102675}} - [Camera] black screen when open camera after open camera pick activity via camera&lt;br /&gt;
*** This is caused by the fact there are two camera instances in the phone and the previous one will not know it need to release the hardware.&lt;br /&gt;
** {{Bug|1072874}} - [Video]Video Share through SMS/BT doesn&#039;t pause video&lt;br /&gt;
*** Video app does not stop playing since visibilitychange doesn&#039;t fire.&lt;br /&gt;
&lt;br /&gt;
=== System message target: {{bug|931339}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we move away from inline activities.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; The current impl of system message assume there is only one instance (frame) per app, so it only deliver the message to an attached handling callback &#039;&#039;&#039;once&#039;&#039;&#039;. If there is an activity being opened twice from difference source, only the first activity will catch the system message. That is to say, the second activity and so on will become malfunction totally.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039;&lt;br /&gt;
** Cicular activities like: {{bug|1124944}} - [Messages] Messages app opens as a blank screen when opened as a share activity multiple times&lt;br /&gt;
&lt;br /&gt;
=== Unlock Console API for Gaia: {{bug|1066581}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; The original bug is fixed by DevTools team, it&#039;s unclear whether or not we can/should turn on logs by default now.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never try to pass MTBF again.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Lot&#039;s of previous MTBF bugs.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; From time to time, we are asked to debug &#039;&#039;&#039;MTBF&#039;&#039;&#039; issues with log. Currently, we have always have to work submit a patch with lines-to-print and ask QA engineers to re-run, instead of having these logging check into the tree. According to measurement in the bug, adding console.log() will slow down main thread significantly. &#039;&#039;&#039;There has been time where racing bugs simply become unreproducible when the log was added as well&#039;&#039;&#039;. The fix proposed here is to make logging faster, at least not noticeable until it&#039;s turned on from Gecko. Our logger in apps, currently, unfortunately, have to wire their own logging to a app script with it&#039;s own, special switch.&lt;br /&gt;
&lt;br /&gt;
== P2 ==&lt;br /&gt;
&lt;br /&gt;
=== Nested oop apps: {{bug|1020135}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; ?&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we don&#039;t have a centralized Settings app.&lt;br /&gt;
* &#039;&#039;&#039;What this bug solves:&#039;&#039;&#039; Gaia apps like Settings app hosts many of the settings for other apps. It would be more technically sound if the Settings app could embed the said app instead, for the sake of code clarity and security model etc (bug ?). We would also need this to stop using activity to launch &amp;amp; go back from the keyboard settings panel (bug ?). It would unlock the 3rd-party app setting embedding as well ({{bug|1020063}}).&lt;br /&gt;
&lt;br /&gt;
=== mozApps.getAll needs a filter based on &amp;quot;role&amp;quot; and &amp;quot;type&amp;quot;: {{bug|1094562}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we don&#039;t have a centralized Settings app.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Performance issues involving mozApp.getAll() calls during start-up.&lt;br /&gt;
* &#039;&#039;&#039;What this will solve:&#039;&#039;&#039; In settings app there are cases in which we have to find specific role or type of apps like homescreens, themes, or addons. Currently the only way would be getting all apps and check their properties one by one, which leads to performance issues. Providing a filter solves the performance issue during start-up.&lt;br /&gt;
&lt;br /&gt;
=== Date &amp;amp; time format API: {{bug|1118214}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039; (The mozAPI work is not going since the origin project(tako) request is canceled)&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we don&#039;t want to improve app start-up time.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Apps displaying date and time now rely on a shim from gaia. The shim introduces additional loading time, potential racing, and settings migration issues.&lt;br /&gt;
* &#039;&#039;&#039;What this bug solves:&#039;&#039;&#039; It should provide robust API for gaia apps to query the current date/time format. Moreover, it can also provide functions that generate localized date and time strings based on the current language setting. The alternative approach is improving mozSettings performance {{bug|1122570}} therefore all mozSettings call are improved.&lt;br /&gt;
&lt;br /&gt;
=== Bind permission Dialog to Browser Frame {{bug|853711}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; NOT STARTED&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never need to show permission dialog&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Permission dialog is not bind to the iframe who requests for the permission hence the dialog will show or hide at the wrong timing. One another case is fullscreen request is not dispatched from the mozBrowser iframe who enters fullscreen mode.&lt;br /&gt;
* &#039;&#039;&#039;What this bug solves:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Migrate mozSettings values in Gecko: {{bug|1112092}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never upgrade hardware.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Performance issues that could be blockers in the next release.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; The DB_VERSION of mozSettings is hidden inside Gecko, therefore to upgrade a settings in Gaia we would have to read the setting every time the phone boots or the app start ups. This contributes to boot time a lot and we are very close being asked to block a release for this (see the depending bugs of that bug). We would either have to patch Gecko to put all the migration there or we would have to expose something non-trivial to Gaia instead.&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1073189</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1073189"/>
		<updated>2015-05-07T03:49:04Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Requirements */ bug 1162360&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select element receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select element lost focus&lt;br /&gt;
# (To be removed in {{bug|1162360}}) When the focus move from one input to another input in the same widget, don&#039;t send two blur/focus events but reduce to one focus event only.&lt;br /&gt;
# (Unimplemented) Detect input properties change (type/inputmode/readonly/etc.)&lt;br /&gt;
# Send an async message when the page submit/pagehide/beforeunload; also trigger blur to keep the state consistent.&lt;br /&gt;
&lt;br /&gt;
(1)(2) Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
(3)(4) Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
(5) The way to reduce blur-then-focus events to one focus event is implemented by schedule the event sending function to the end of the event queue [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l685 L685] and [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l700 L700]. &#039;&#039;&#039;We should be able to safely remove this feature&#039;&#039;&#039; since System app and Keyboard app has the safeguard in place anyway, as we did not reduce two events when focus moved between processes.&lt;br /&gt;
&lt;br /&gt;
(6) Is never implemented, but we should issue a new InputContext when this happens (or dispatch *change event and keep the same InputContext?)&lt;br /&gt;
&lt;br /&gt;
(7) Has caused issue like {{bug|1122463}} (combine w/ (5)).&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
# Can we use one nsITextInputProcessor instance for the entire lifecycle of forms.js?&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
&lt;br /&gt;
# Scroll the focused element into view the size of the window/widget/frame changes.&lt;br /&gt;
# Send an message when the content of the currently focused input element changes&lt;br /&gt;
# (Unimplemented) Send an message when the content of the currently focused select element changes&lt;br /&gt;
# Send an message when the position of the carets (selections) changes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Text input ===&lt;br /&gt;
&lt;br /&gt;
# Handle the sendKey() call to InputMethod API, which inputs one character (and generate keyboard events)&lt;br /&gt;
# (New) Provide user finer control on virtual keyboard emulation by offering keydown() and keyup() methods and allow specify keyboard event properties within.&lt;br /&gt;
# Handle the setComposition() call to InputMethod API, which create visible composition on the input (and generate compositionstart/compositionupdate events), used by Asian IME.&lt;br /&gt;
# (New) Allow caller to specify the key event triggers the composition to start/update in setComposition() &lt;br /&gt;
# Handle the endComposition() call to InputMethod API, which create visible composition on the input (and generate compositionstart/compositionupdate events), used by Asian IME.&lt;br /&gt;
# (New) Allow caller to specify the key event triggers the composition to end in endComposition()&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Select ===&lt;br /&gt;
&lt;br /&gt;
# Handle the setSelectionRange() call to InputMethod API, which changes the selection range/position of the input.&lt;br /&gt;
# Handle the replaceSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
# Handle the deleteSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072595</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072595"/>
		<updated>2015-05-06T14:51:57Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Text input */ keydown() and keyup()&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select element receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select element lost focus&lt;br /&gt;
# (To be removed) When the focus move from one input to another input in the same widget, don&#039;t send two blur/focus events but reduce to one focus event only.&lt;br /&gt;
# (Unimplemented) Detect input properties change (type/inputmode/readonly/etc.)&lt;br /&gt;
# Send an async message when the page submit/pagehide/beforeunload; also trigger blur to keep the state consistent.&lt;br /&gt;
&lt;br /&gt;
(1)(2) Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
(3)(4) Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
(5) The way to reduce blur-then-focus events to one focus event is implemented by schedule the event sending function to the end of the event queue [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l685 L685] and [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l700 L700]. &#039;&#039;&#039;We should be able to safely remove this feature&#039;&#039;&#039; since System app and Keyboard app has the safeguard in place anyway, as we did not reduce two events when focus moved between processes.&lt;br /&gt;
&lt;br /&gt;
(6) Is never implemented, but we should issue a new InputContext when this happens (or dispatch *change event and keep the same InputContext?)&lt;br /&gt;
&lt;br /&gt;
(7) Has caused issue like {{bug|1122463}} (combine w/ (5)).&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
# Can we use one nsITextInputProcessor instance for the entire lifecycle of forms.js?&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
&lt;br /&gt;
# Scroll the focused element into view the size of the window/widget/frame changes.&lt;br /&gt;
# Send an message when the content of the currently focused input element changes&lt;br /&gt;
# (Unimplemented) Send an message when the content of the currently focused select element changes&lt;br /&gt;
# Send an message when the position of the carets (selections) changes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Text input ===&lt;br /&gt;
&lt;br /&gt;
# Handle the sendKey() call to InputMethod API, which inputs one character (and generate keyboard events)&lt;br /&gt;
# (New) Provide user finer control on virtual keyboard emulation by offering keydown() and keyup() methods and allow specify keyboard event properties within.&lt;br /&gt;
# Handle the setComposition() call to InputMethod API, which create visible composition on the input (and generate compositionstart/compositionupdate events), used by Asian IME.&lt;br /&gt;
# (New) Allow caller to specify the key event triggers the composition to start/update in setComposition() &lt;br /&gt;
# Handle the endComposition() call to InputMethod API, which create visible composition on the input (and generate compositionstart/compositionupdate events), used by Asian IME.&lt;br /&gt;
# (New) Allow caller to specify the key event triggers the composition to end in endComposition()&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Select ===&lt;br /&gt;
&lt;br /&gt;
# Handle the setSelectionRange() call to InputMethod API, which changes the selection range/position of the input.&lt;br /&gt;
# Handle the replaceSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
# Handle the deleteSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072588</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072588"/>
		<updated>2015-05-06T14:37:51Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Focus management */ format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select element receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select element lost focus&lt;br /&gt;
# (To be removed) When the focus move from one input to another input in the same widget, don&#039;t send two blur/focus events but reduce to one focus event only.&lt;br /&gt;
# (Unimplemented) Detect input properties change (type/inputmode/readonly/etc.)&lt;br /&gt;
# Send an async message when the page submit/pagehide/beforeunload; also trigger blur to keep the state consistent.&lt;br /&gt;
&lt;br /&gt;
(1)(2) Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
(3)(4) Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
(5) The way to reduce blur-then-focus events to one focus event is implemented by schedule the event sending function to the end of the event queue [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l685 L685] and [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l700 L700]. &#039;&#039;&#039;We should be able to safely remove this feature&#039;&#039;&#039; since System app and Keyboard app has the safeguard in place anyway, as we did not reduce two events when focus moved between processes.&lt;br /&gt;
&lt;br /&gt;
(6) Is never implemented, but we should issue a new InputContext when this happens (or dispatch *change event and keep the same InputContext?)&lt;br /&gt;
&lt;br /&gt;
(7) Has caused issue like {{bug|1122463}} (combine w/ (5)).&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
# Can we use one nsITextInputProcessor instance for the entire lifecycle of forms.js?&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
&lt;br /&gt;
# Scroll the focused element into view the size of the window/widget/frame changes.&lt;br /&gt;
# Send an message when the content of the currently focused input element changes&lt;br /&gt;
# (Unimplemented) Send an message when the content of the currently focused select element changes&lt;br /&gt;
# Send an message when the position of the carets (selections) changes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Text input ===&lt;br /&gt;
&lt;br /&gt;
# Handle the sendKey() call to InputMethod API, which inputs one character (and generate keyboard events)&lt;br /&gt;
# Handle the setComposition() call to InputMethod API, which create visible composition on the input (and generate compositionstart/compositionupdate events), used by Asian IME.&lt;br /&gt;
# (New) Allow caller to specify the key event triggers the composition to start/update in setComposition() &lt;br /&gt;
# Handle the endComposition() call to InputMethod API, which create visible composition on the input (and generate compositionstart/compositionupdate events), used by Asian IME.&lt;br /&gt;
# (New) Allow caller to specify the key event triggers the composition to end in endComposition()&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Select ===&lt;br /&gt;
&lt;br /&gt;
# Handle the setSelectionRange() call to InputMethod API, which changes the selection range/position of the input.&lt;br /&gt;
# Handle the replaceSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
# Handle the deleteSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072587</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072587"/>
		<updated>2015-05-06T14:32:10Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Focus management */ note on (6) and (7)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select element receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select element lost focus&lt;br /&gt;
# (To be removed) When the focus move from one input to another input in the same widget, don&#039;t send two blur/focus events but reduce to one focus event only.&lt;br /&gt;
# (Unimplemented) Detect input properties change (type/inputmode/readonly/etc.)&lt;br /&gt;
# Send an async message when the page submit/pagehide/beforeunload; also trigger blur to keep the state consistent.&lt;br /&gt;
&lt;br /&gt;
(1)(2) Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
(3)(4) Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
(5) The way to reduce blur-then-focus events to one focus event is implemented by schedule the event sending function to the end of the event queue [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l685 L685] and [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l700 L700]. &#039;&#039;&#039;We should be able to safely remove this feature&#039;&#039;&#039; since System app and Keyboard app has the safeguard in place anyway, as we did not reduce two events when focus moved between processes.&lt;br /&gt;
&lt;br /&gt;
(6) Is never implemented, but we should issue a new InputContext when this happens (or dispatch *change event and keep the same InputContext?)&lt;br /&gt;
&lt;br /&gt;
(7) Has caused issue like {bug|1122463} (combine w/ (5)).&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
# Can we use one nsITextInputProcessor instance for the entire lifecycle of forms.js?&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
&lt;br /&gt;
# Scroll the focused element into view the size of the window/widget/frame changes.&lt;br /&gt;
# Send an message when the content of the currently focused input element changes&lt;br /&gt;
# (Unimplemented) Send an message when the content of the currently focused select element changes&lt;br /&gt;
# Send an message when the position of the carets (selections) changes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Text input ===&lt;br /&gt;
&lt;br /&gt;
# Handle the sendKey() call to InputMethod API, which inputs one character (and generate keyboard events)&lt;br /&gt;
# Handle the setComposition() call to InputMethod API, which create visible composition on the input (and generate compositionstart/compositionupdate events), used by Asian IME.&lt;br /&gt;
# (New) Allow caller to specify the key event triggers the composition to start/update in setComposition() &lt;br /&gt;
# Handle the endComposition() call to InputMethod API, which create visible composition on the input (and generate compositionstart/compositionupdate events), used by Asian IME.&lt;br /&gt;
# (New) Allow caller to specify the key event triggers the composition to end in endComposition()&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Select ===&lt;br /&gt;
&lt;br /&gt;
# Handle the setSelectionRange() call to InputMethod API, which changes the selection range/position of the input.&lt;br /&gt;
# Handle the replaceSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
# Handle the deleteSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072586</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072586"/>
		<updated>2015-05-06T14:29:04Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Focus management */ submit/pagehide/beforeunload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select element receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select element lost focus&lt;br /&gt;
# (To be removed) When the focus move from one input to another input in the same widget, don&#039;t send two blur/focus events but reduce to one focus event only.&lt;br /&gt;
# (Unimplemented) Detect input properties change (type/inputmode/readonly/etc.)&lt;br /&gt;
# Send an async message when the page submit/pagehide/beforeunload; also trigger blur to keep the state consistent.&lt;br /&gt;
&lt;br /&gt;
(1)(2) Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
(3)(4) Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
(5) The way to reduce blur-then-focus events to one focus event is implemented by schedule the event sending function to the end of the event queue [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l685 L685] and [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l700 L700]. &#039;&#039;&#039;We should be able to safely remove this feature&#039;&#039;&#039; since System app and Keyboard app has the safeguard in place anyway, as we did not reduce two events when focus moved between processes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
# Can we use one nsITextInputProcessor instance for the entire lifecycle of forms.js?&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
&lt;br /&gt;
# Scroll the focused element into view the size of the window/widget/frame changes.&lt;br /&gt;
# Send an message when the content of the currently focused input element changes&lt;br /&gt;
# (Unimplemented) Send an message when the content of the currently focused select element changes&lt;br /&gt;
# Send an message when the position of the carets (selections) changes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Text input ===&lt;br /&gt;
&lt;br /&gt;
# Handle the sendKey() call to InputMethod API, which inputs one character (and generate keyboard events)&lt;br /&gt;
# Handle the setComposition() call to InputMethod API, which create visible composition on the input (and generate compositionstart/compositionupdate events), used by Asian IME.&lt;br /&gt;
# (New) Allow caller to specify the key event triggers the composition to start/update in setComposition() &lt;br /&gt;
# Handle the endComposition() call to InputMethod API, which create visible composition on the input (and generate compositionstart/compositionupdate events), used by Asian IME.&lt;br /&gt;
# (New) Allow caller to specify the key event triggers the composition to end in endComposition()&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Select ===&lt;br /&gt;
&lt;br /&gt;
# Handle the setSelectionRange() call to InputMethod API, which changes the selection range/position of the input.&lt;br /&gt;
# Handle the replaceSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
# Handle the deleteSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072584</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072584"/>
		<updated>2015-05-06T14:22:16Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Text input */ composition and key events&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select element receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select element lost focus&lt;br /&gt;
# (To be removed) When the focus move from one input to another input in the same widget, don&#039;t send two blur/focus events but reduce to one focus event only.&lt;br /&gt;
# (Unimplemented) Detect input properties change (type/inputmode/readonly/etc.)&lt;br /&gt;
&lt;br /&gt;
(1)(2) Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
(3)(4) Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
(5) The way to reduce blur-then-focus events to one focus event is implemented by schedule the event sending function to the end of the event queue [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l685 L685] and [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l700 L700]. &#039;&#039;&#039;We should be able to safely remove this feature&#039;&#039;&#039; since System app and Keyboard app has the safeguard in place anyway, as we did not reduce two events when focus moved between processes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
# Can we use one nsITextInputProcessor instance for the entire lifecycle of forms.js?&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
&lt;br /&gt;
# Scroll the focused element into view the size of the window/widget/frame changes.&lt;br /&gt;
# Send an message when the content of the currently focused input element changes&lt;br /&gt;
# (Unimplemented) Send an message when the content of the currently focused select element changes&lt;br /&gt;
# Send an message when the position of the carets (selections) changes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Text input ===&lt;br /&gt;
&lt;br /&gt;
# Handle the sendKey() call to InputMethod API, which inputs one character (and generate keyboard events)&lt;br /&gt;
# Handle the setComposition() call to InputMethod API, which create visible composition on the input (and generate compositionstart/compositionupdate events), used by Asian IME.&lt;br /&gt;
# (New) Allow caller to specify the key event triggers the composition to start/update in setComposition() &lt;br /&gt;
# Handle the endComposition() call to InputMethod API, which create visible composition on the input (and generate compositionstart/compositionupdate events), used by Asian IME.&lt;br /&gt;
# (New) Allow caller to specify the key event triggers the composition to end in endComposition()&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Select ===&lt;br /&gt;
&lt;br /&gt;
# Handle the setSelectionRange() call to InputMethod API, which changes the selection range/position of the input.&lt;br /&gt;
# Handle the replaceSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
# Handle the deleteSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072583</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072583"/>
		<updated>2015-05-06T14:19:04Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Input handling */ select unimpl&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select element receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select element lost focus&lt;br /&gt;
# (To be removed) When the focus move from one input to another input in the same widget, don&#039;t send two blur/focus events but reduce to one focus event only.&lt;br /&gt;
# (Unimplemented) Detect input properties change (type/inputmode/readonly/etc.)&lt;br /&gt;
&lt;br /&gt;
(1)(2) Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
(3)(4) Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
(5) The way to reduce blur-then-focus events to one focus event is implemented by schedule the event sending function to the end of the event queue [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l685 L685] and [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l700 L700]. &#039;&#039;&#039;We should be able to safely remove this feature&#039;&#039;&#039; since System app and Keyboard app has the safeguard in place anyway, as we did not reduce two events when focus moved between processes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
# Can we use one nsITextInputProcessor instance for the entire lifecycle of forms.js?&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
&lt;br /&gt;
# Scroll the focused element into view the size of the window/widget/frame changes.&lt;br /&gt;
# Send an message when the content of the currently focused input element changes&lt;br /&gt;
# (Unimplemented) Send an message when the content of the currently focused select element changes&lt;br /&gt;
# Send an message when the position of the carets (selections) changes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Text input ===&lt;br /&gt;
&lt;br /&gt;
# Handle the sendKey() call to InputMethod API, which inputs one character (and generate keyboard events)&lt;br /&gt;
# Handle the setComposition() call to InputMethod API, which create visible composition on the input (and generate events), used by Asian IME.&lt;br /&gt;
# Handle the endComposition() call to InputMethod API, which create visible composition on the input (and generate events), used by Asian IME.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Select ===&lt;br /&gt;
&lt;br /&gt;
# Handle the setSelectionRange() call to InputMethod API, which changes the selection range/position of the input.&lt;br /&gt;
# Handle the replaceSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
# Handle the deleteSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072580</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072580"/>
		<updated>2015-05-06T14:17:21Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Focus management */ element&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select element receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select element lost focus&lt;br /&gt;
# (To be removed) When the focus move from one input to another input in the same widget, don&#039;t send two blur/focus events but reduce to one focus event only.&lt;br /&gt;
# (Unimplemented) Detect input properties change (type/inputmode/readonly/etc.)&lt;br /&gt;
&lt;br /&gt;
(1)(2) Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
(3)(4) Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
(5) The way to reduce blur-then-focus events to one focus event is implemented by schedule the event sending function to the end of the event queue [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l685 L685] and [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l700 L700]. &#039;&#039;&#039;We should be able to safely remove this feature&#039;&#039;&#039; since System app and Keyboard app has the safeguard in place anyway, as we did not reduce two events when focus moved between processes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
# Can we use one nsITextInputProcessor instance for the entire lifecycle of forms.js?&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
&lt;br /&gt;
# Scroll the focused element into view the size of the window/widget/frame changes.&lt;br /&gt;
# Send an message when the value of the focused element changes&lt;br /&gt;
# Send an message when the position of the carets (selections) changes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
==== Text input ====&lt;br /&gt;
&lt;br /&gt;
# Handle the sendKey() call to InputMethod API, which inputs one character (and generate keyboard events)&lt;br /&gt;
# Handle the setComposition() call to InputMethod API, which create visible composition on the input (and generate events), used by Asian IME.&lt;br /&gt;
# Handle the endComposition() call to InputMethod API, which create visible composition on the input (and generate events), used by Asian IME.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Select ===&lt;br /&gt;
&lt;br /&gt;
# Handle the setSelectionRange() call to InputMethod API, which changes the selection range/position of the input.&lt;br /&gt;
# Handle the replaceSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
# Handle the deleteSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072578</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1072578"/>
		<updated>2015-05-06T14:16:10Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Issues */ forms.js lifecycle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select lost focus&lt;br /&gt;
# (To be removed) When the focus move from one input to another input in the same widget, don&#039;t send two blur/focus events but reduce to one focus event only.&lt;br /&gt;
# (Unimplemented) Detect input properties change (type/inputmode/readonly/etc.)&lt;br /&gt;
&lt;br /&gt;
(1)(2) Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
(3)(4) Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
(5) The way to reduce blur-then-focus events to one focus event is implemented by schedule the event sending function to the end of the event queue [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l685 L685] and [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l700 L700]. &#039;&#039;&#039;We should be able to safely remove this feature&#039;&#039;&#039; since System app and Keyboard app has the safeguard in place anyway, as we did not reduce two events when focus moved between processes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
# Can we use one nsITextInputProcessor instance for the entire lifecycle of forms.js?&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
&lt;br /&gt;
# Scroll the focused element into view the size of the window/widget/frame changes.&lt;br /&gt;
# Send an message when the value of the focused element changes&lt;br /&gt;
# Send an message when the position of the carets (selections) changes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
==== Text input ====&lt;br /&gt;
&lt;br /&gt;
# Handle the sendKey() call to InputMethod API, which inputs one character (and generate keyboard events)&lt;br /&gt;
# Handle the setComposition() call to InputMethod API, which create visible composition on the input (and generate events), used by Asian IME.&lt;br /&gt;
# Handle the endComposition() call to InputMethod API, which create visible composition on the input (and generate events), used by Asian IME.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Select ===&lt;br /&gt;
&lt;br /&gt;
# Handle the setSelectionRange() call to InputMethod API, which changes the selection range/position of the input.&lt;br /&gt;
# Handle the replaceSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
# Handle the deleteSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071607</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071607"/>
		<updated>2015-05-03T08:46:59Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Requirements */ to be removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select lost focus&lt;br /&gt;
# (To be removed) When the focus move from one input to another input in the same widget, don&#039;t send two blur/focus events but reduce to one focus event only.&lt;br /&gt;
# (Unimplemented) Detect input properties change (type/inputmode/readonly/etc.)&lt;br /&gt;
&lt;br /&gt;
(1)(2) Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
(3)(4) Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
(5) The way to reduce blur-then-focus events to one focus event is implemented by schedule the event sending function to the end of the event queue [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l685 L685] and [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l700 L700]. &#039;&#039;&#039;We should be able to safely remove this feature&#039;&#039;&#039; since System app and Keyboard app has the safeguard in place anyway, as we did not reduce two events when focus moved between processes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
&lt;br /&gt;
# Scroll the focused element into view the size of the window/widget/frame changes.&lt;br /&gt;
# Send an message when the value of the focused element changes&lt;br /&gt;
# Send an message when the position of the carets (selections) changes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
==== Text input ====&lt;br /&gt;
&lt;br /&gt;
# Handle the sendKey() call to InputMethod API, which inputs one character (and generate keyboard events)&lt;br /&gt;
# Handle the setComposition() call to InputMethod API, which create visible composition on the input (and generate events), used by Asian IME.&lt;br /&gt;
# Handle the endComposition() call to InputMethod API, which create visible composition on the input (and generate events), used by Asian IME.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Select ===&lt;br /&gt;
&lt;br /&gt;
# Handle the setSelectionRange() call to InputMethod API, which changes the selection range/position of the input.&lt;br /&gt;
# Handle the replaceSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
# Handle the deleteSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071598</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071598"/>
		<updated>2015-05-02T15:49:07Z</updated>

		<summary type="html">&lt;p&gt;Timdream: another requirement&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select lost focus&lt;br /&gt;
# When the focus move from one input to another input in the same widget, don&#039;t send two blur/focus events but reduce to one focus event only.&lt;br /&gt;
# (Unimplemented) Detect input properties change (type/inputmode/readonly/etc.)&lt;br /&gt;
&lt;br /&gt;
(1)(2) Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
(3)(4) Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
(5) The way to reduce blur-then-focus events to one focus event is implemented by schedule the event sending function to the end of the event queue [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l685 L685] and [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l700 L700]. &#039;&#039;&#039;We should be able to safely remove this feature&#039;&#039;&#039; since System app and Keyboard app has the safeguard in place anyway, as we did not reduce two events when focus moved between processes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
&lt;br /&gt;
# Scroll the focused element into view the size of the window/widget/frame changes.&lt;br /&gt;
# Send an message when the value of the focused element changes&lt;br /&gt;
# Send an message when the position of the carets (selections) changes.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
==== Text input ====&lt;br /&gt;
&lt;br /&gt;
# Handle the sendKey() call to InputMethod API, which inputs one character (and generate keyboard events)&lt;br /&gt;
# Handle the setComposition() call to InputMethod API, which create visible composition on the input (and generate events), used by Asian IME.&lt;br /&gt;
# Handle the endComposition() call to InputMethod API, which create visible composition on the input (and generate events), used by Asian IME.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;br /&gt;
&lt;br /&gt;
=== Select ===&lt;br /&gt;
&lt;br /&gt;
# Handle the setSelectionRange() call to InputMethod API, which changes the selection range/position of the input.&lt;br /&gt;
# Handle the replaceSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
# Handle the deleteSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
&lt;br /&gt;
==== Issues ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071597</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071597"/>
		<updated>2015-05-02T15:37:38Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Input handling */ requirements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select lost focus&lt;br /&gt;
# When the focus move from one input to another input in the same widget, don&#039;t send two blur/focus events but reduce to one focus event only.&lt;br /&gt;
&lt;br /&gt;
Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
The way to reduce blur-then-focus events to one focus event is implemented by schedule the event sending function to the end of the event queue [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l685 L685] and [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l700 L700]. &#039;&#039;&#039;We should be able to safely remove this feature&#039;&#039;&#039; since System app and Keyboard app has the safeguard in place anyway, as we did not reduce two events when focus moved between processes.&lt;br /&gt;
&lt;br /&gt;
=== Issues ===&lt;br /&gt;
&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
&lt;br /&gt;
# Scroll the focused element into view the size of the window/widget/frame changes.&lt;br /&gt;
# Send an message when the value of the focused element changes&lt;br /&gt;
# Send an message when the position of the carets (selections) changes.&lt;br /&gt;
&lt;br /&gt;
==== Text input ====&lt;br /&gt;
&lt;br /&gt;
# Handle the sendKey() call to InputMethod API, which inputs one character (and generate keyboard events)&lt;br /&gt;
# Handle the setComposition() call to InputMethod API, which create visible composition on the input (and generate events), used by Asian IME.&lt;br /&gt;
# Handle the endComposition() call to InputMethod API, which create visible composition on the input (and generate events), used by Asian IME.&lt;br /&gt;
&lt;br /&gt;
==== Select ====&lt;br /&gt;
&lt;br /&gt;
# Handle the setSelectionRange() call to InputMethod API, which changes the selection range/position of the input.&lt;br /&gt;
# Handle the replaceSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;br /&gt;
# Handle the deleteSurroundingText() call to InputMethod API, which changes the text around the caret(s), used by auto correction.&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071595</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071595"/>
		<updated>2015-05-02T15:24:17Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Focus management */ Note on blur-then-focus&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select lost focus&lt;br /&gt;
# When the focus move from one input to another input in the same widget, don&#039;t send two blur/focus events but reduce to one focus event only.&lt;br /&gt;
&lt;br /&gt;
Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
The way to reduce blur-then-focus events to one focus event is implemented by schedule the event sending function to the end of the event queue [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l685 L685] and [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l700 L700]. &#039;&#039;&#039;We should be able to safely remove this feature&#039;&#039;&#039; since System app and Keyboard app has the safeguard in place anyway, as we did not reduce two events when focus moved between processes.&lt;br /&gt;
&lt;br /&gt;
=== Issues ===&lt;br /&gt;
&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
==== Text input ====&lt;br /&gt;
==== Select ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071594</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071594"/>
		<updated>2015-05-02T15:16:33Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Requirements */ * #&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
# Send an async message when any of the select receives focus&lt;br /&gt;
# Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
# Send an async message when any of the select lost focus&lt;br /&gt;
&lt;br /&gt;
Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
=== Issues ===&lt;br /&gt;
&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
==== Text input ====&lt;br /&gt;
==== Select ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071593</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071593"/>
		<updated>2015-05-02T15:13:40Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Focus management */ content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
* Send an async message when any of the text inputs (input/textarea/contenteditable) receives focus&lt;br /&gt;
* Send an async message when any of the select receives focus&lt;br /&gt;
* Send an async message when any of the text inputs (input/textarea/contenteditable) lost focus&lt;br /&gt;
* Send an async message when any of the select lost focus&lt;br /&gt;
&lt;br /&gt;
Focus are currently detected by listen to DOM events [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l193 L193].&lt;br /&gt;
Valid elements are currently filter in JS logic [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l362 L362-L391].&lt;br /&gt;
&lt;br /&gt;
Blur can happen not only the real blur (detected by DOM event [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l194 L194]) but also removal from DOM tree (detected by mutation observer [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/forms.js#l298 L298].&lt;br /&gt;
&lt;br /&gt;
=== Issues ===&lt;br /&gt;
&lt;br /&gt;
# Can we use nsITextInputProcessor to detect focus instead? Select elements however should be handled separately.&lt;br /&gt;
# Would it be possible even moving this global focused element detection to the chrome process, not forms.js in every process? We had some async message ordering issue before, see [https://hg.mozilla.org/mozilla-central/file/7723b15ea695/dom/inputmethod/Keyboard.jsm#l286 Keyboard.jsm#L286].&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
==== Text input ====&lt;br /&gt;
==== Select ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071267</id>
		<title>User:Timdream/forms.js requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/forms.js_requirements&amp;diff=1071267"/>
		<updated>2015-04-30T06:32:42Z</updated>

		<summary type="html">&lt;p&gt;Timdream: heading and sections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= forms.js requirements =&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This document is a draft and an attempt to reconcile between the mash currently in forms.js and the newly implemented, D3E-aware nsITextInputProcessor. The outcome of this document is to find out the requirements of the current implementation and what are the new C-based interface it should rely on, instead of legacy nsIDOMWindowUtils.&lt;br /&gt;
&lt;br /&gt;
Ideally we should document not only the current implementation, but also the requirements to make this fully D3E compatible.&lt;br /&gt;
&lt;br /&gt;
The related work is {{bug|1137557}}.&lt;br /&gt;
&lt;br /&gt;
== What is forms.js ==&lt;br /&gt;
&lt;br /&gt;
[https://dxr.mozilla.org/mozilla-central/source/dom/inputmethod/forms.js forms.js] is the remote end of the Input Method API, responsible of handling input fields for the active API user (the keyboard app).&lt;br /&gt;
&lt;br /&gt;
It is loaded by browser-element exactly once on every content/chrome process, on the topmost widget.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Focus management ===&lt;br /&gt;
&lt;br /&gt;
=== Input handling ===&lt;br /&gt;
==== Text input ====&lt;br /&gt;
==== Select ====&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/Blocking_Features&amp;diff=1069963</id>
		<title>User:Timdream/Blocking Features</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/Blocking_Features&amp;diff=1069963"/>
		<updated>2015-04-23T12:44:16Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Orientation API update: {{bug|1043102}}, aka Skate Jumper bug */ +wchen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gecko features blocking Gaia Blockers =&lt;br /&gt;
&lt;br /&gt;
The goal of this page is to collect wanted Gecko features that could fix blockers that cannot be fixed in Gaia apps along. We will try to use this list as a source when prioritize FxOS Gecko works (no, there are no promises, unfortunately -- but someone has to collect the list first).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; To prevent this become a platform feature wish list, please only list a bug if it, or any bug that has any depend on it, has been nominated as a blocker.&lt;br /&gt;
&lt;br /&gt;
== P1 ==&lt;br /&gt;
&lt;br /&gt;
=== Visibility API update: {{bug|1034001}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; Plan realigned in {{bug|1154231}} and Kanru is working on it.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Unless we disallow users from switching between apps, issues will be valid for v3.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve&#039;&#039;&#039;: All issues with incorrect visibility state while doing app transitioning.&lt;br /&gt;
** Bug 1124944 - [KK][Camera] Enabling Flash in Video Camera app then navigating away has flash remain on for several seconds&lt;br /&gt;
** See blockers.&lt;br /&gt;
&lt;br /&gt;
=== Orientation API update: {{bug|1043102}}, aka Skate Jumper bug ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; :wchen is working on it.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we disallow orientation change &amp;amp; switching apps&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Incorrect orientation of lock screen/system UI with an easy-to-produce STR, consistently being nominated as blockers by partners in multiple previous versions.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve&#039;&#039;&#039;: By allowing System app to take part of deciding whether or not to allow a given app to lock the orientation, we will be able to block orientation lock happens right at the time app goes to background.&lt;br /&gt;
&lt;br /&gt;
=== Audio Channel API update: {{bug|1089539}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; on going, spec - {{bug|961967}}, gecko - {{bug|1113086}}, gaia - {{bug|1100822}}.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never have multiple sound sources.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; The current gecko audio channel management introduced bugs on audio competing and leaking, these kind of bugs are being blocked and we need this new api to fix them.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; From v1.0 we introduced the audio channel management in gecko to handle the audio rules and policies, it works on 70% cases but for the other 30%(mostly are the audio competing issues) we couldn&#039;t fix them and instead we need to use workarounds. So to fix the audio channel issues entirely and make things right, the new audio channel api will have a new architecture and gaia system app will use them to control the app audio channels, base on the information from the channel&#039;s priorities and the window management.&lt;br /&gt;
&lt;br /&gt;
=== Activity OOM priority: {{bug|1144132}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; Gabriele Svelto take the platform fix and on m-c and targeting v2.2. He will provides gaia patch as well.&lt;br /&gt;
For v2.2 the plan is to workaround it by associating activity opener and openee together,&lt;br /&gt;
For v3 the plan is to let system app controls the priority.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we move away from inline activities.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; We have a old workaround in System app -- we never set an activity callee as invisible when it is covered by the activity caller, in fear that it could be OOM&#039;ed. In turn, app could not know visibilitychange when there is an activity opened.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; Any issue with incorrect document.hidden state in this situration, for example:&lt;br /&gt;
** {{bug|1102675}} - [Camera] black screen when open camera after open camera pick activity via camera&lt;br /&gt;
*** This is caused by the fact there are two camera instances in the phone and the previous one will not know it need to release the hardware.&lt;br /&gt;
** {{Bug|1072874}} - [Video]Video Share through SMS/BT doesn&#039;t pause video&lt;br /&gt;
*** Video app does not stop playing since visibilitychange doesn&#039;t fire.&lt;br /&gt;
&lt;br /&gt;
=== System message target: {{bug|931339}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we move away from inline activities.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; The current impl of system message assume there is only one instance (frame) per app, so it only deliver the message to an attached handling callback &#039;&#039;&#039;once&#039;&#039;&#039;. If there is an activity being opened twice from difference source, only the first activity will catch the system message. That is to say, the second activity and so on will become malfunction totally.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039;&lt;br /&gt;
** Cicular activities like: {{bug|1124944}} - [Messages] Messages app opens as a blank screen when opened as a share activity multiple times&lt;br /&gt;
&lt;br /&gt;
=== Unlock Console API for Gaia: {{bug|1066581}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never try to pass MTBF again.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Lot&#039;s of previous MTBF bugs.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; From time to time, we are asked to debug &#039;&#039;&#039;MTBF&#039;&#039;&#039; issues with log. Currently, we have always have to work submit a patch with lines-to-print and ask QA engineers to re-run, instead of having these logging check into the tree. According to measurement in the bug, adding console.log() will slow down main thread significantly. &#039;&#039;&#039;There has been time where racing bugs simply become unreproducible when the log was added as well&#039;&#039;&#039;. The fix proposed here is to make logging faster, at least not noticeable until it&#039;s turned on from Gecko. Our logger in apps, currently, unfortunately, have to wire their own logging to a app script with it&#039;s own, special switch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== P2 ==&lt;br /&gt;
&lt;br /&gt;
=== Nested oop apps: {{bug|1020135}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; ?&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we don&#039;t have a centralized Settings app.&lt;br /&gt;
* &#039;&#039;&#039;What this bug solves:&#039;&#039;&#039; Gaia apps like Settings app hosts many of the settings for other apps. It would be more technically sound if the Settings app could embed the said app instead, for the sake of code clarity and security model etc (bug ?). We would also need this to stop using activity to launch &amp;amp; go back from the keyboard settings panel (bug ?). It would unlock the 3rd-party app setting embedding as well ({{bug|1020063}}).&lt;br /&gt;
&lt;br /&gt;
=== mozApps.getAll needs a filter based on &amp;quot;role&amp;quot; and &amp;quot;type&amp;quot;: {{bug|1094562}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we don&#039;t have a centralized Settings app.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Performance issues involving mozApp.getAll() calls during start-up.&lt;br /&gt;
* &#039;&#039;&#039;What this will solve:&#039;&#039;&#039; In settings app there are cases in which we have to find specific role or type of apps like homescreens, themes, or addons. Currently the only way would be getting all apps and check their properties one by one, which leads to performance issues. Providing a filter solves the performance issue during start-up.&lt;br /&gt;
&lt;br /&gt;
=== Date &amp;amp; time format API: {{bug|1118214}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039; (The mozAPI work is not going since the origin project(tako) request is canceled)&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we don&#039;t want to improve app start-up time.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Apps displaying date and time now rely on a shim from gaia. The shim introduces additional loading time, potential racing, and settings migration issues.&lt;br /&gt;
* &#039;&#039;&#039;What this bug solves:&#039;&#039;&#039; It should provide robust API for gaia apps to query the current date/time format. Moreover, it can also provide functions that generate localized date and time strings based on the current language setting. The alternative approach is improving mozSettings performance {{bug|1122570}} therefore all mozSettings call are improved.&lt;br /&gt;
&lt;br /&gt;
=== Bind permission Dialog to Browser Frame {{bug|853711}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; NOT STARTED&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never need to show permission dialog&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Permission dialog is not bind to the iframe who requests for the permission hence the dialog will show or hide at the wrong timing. One another case is fullscreen request is not dispatched from the mozBrowser iframe who enters fullscreen mode.&lt;br /&gt;
* &#039;&#039;&#039;What this bug solves:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Migrate mozSettings values in Gecko: {{bug|1112092}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never upgrade hardware.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Performance issues that could be blockers in the next release.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; The DB_VERSION of mozSettings is hidden inside Gecko, therefore to upgrade a settings in Gaia we would have to read the setting every time the phone boots or the app start ups. This contributes to boot time a lot and we are very close being asked to block a release for this (see the depending bugs of that bug). We would either have to patch Gecko to put all the migration there or we would have to expose something non-trivial to Gaia instead.&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/Blocking_Features&amp;diff=1069756</id>
		<title>User:Timdream/Blocking Features</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/Blocking_Features&amp;diff=1069756"/>
		<updated>2015-04-22T15:55:31Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Visibility API update: {{bug|1034001}} */ update with bug 1154231&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Gecko features blocking Gaia Blockers =&lt;br /&gt;
&lt;br /&gt;
The goal of this page is to collect wanted Gecko features that could fix blockers that cannot be fixed in Gaia apps along. We will try to use this list as a source when prioritize FxOS Gecko works (no, there are no promises, unfortunately -- but someone has to collect the list first).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; To prevent this become a platform feature wish list, please only list a bug if it, or any bug that has any depend on it, has been nominated as a blocker.&lt;br /&gt;
&lt;br /&gt;
== P1 ==&lt;br /&gt;
&lt;br /&gt;
=== Visibility API update: {{bug|1034001}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; Plan realigned in {{bug|1154231}} and Kanru is working on it.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Unless we disallow users from switching between apps, issues will be valid for v3.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve&#039;&#039;&#039;: All issues with incorrect visibility state while doing app transitioning.&lt;br /&gt;
** Bug 1124944 - [KK][Camera] Enabling Flash in Video Camera app then navigating away has flash remain on for several seconds&lt;br /&gt;
** See blockers.&lt;br /&gt;
&lt;br /&gt;
=== Orientation API update: {{bug|1043102}}, aka Skate Jumper bug ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we disallow orientation change &amp;amp; switching apps&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Incorrect orientation of lock screen/system UI with an easy-to-produce STR, consistently being nominated as blockers by partners in multiple previous versions.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve&#039;&#039;&#039;: By allowing System app to take part of deciding whether or not to allow a given app to lock the orientation, we will be able to block orientation lock happens right at the time app goes to background.&lt;br /&gt;
&lt;br /&gt;
=== Audio Channel API update: {{bug|1089539}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; on going, spec - {{bug|961967}}, gecko - {{bug|1113086}}, gaia - {{bug|1100822}}.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never have multiple sound sources.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; The current gecko audio channel management introduced bugs on audio competing and leaking, these kind of bugs are being blocked and we need this new api to fix them.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; From v1.0 we introduced the audio channel management in gecko to handle the audio rules and policies, it works on 70% cases but for the other 30%(mostly are the audio competing issues) we couldn&#039;t fix them and instead we need to use workarounds. So to fix the audio channel issues entirely and make things right, the new audio channel api will have a new architecture and gaia system app will use them to control the app audio channels, base on the information from the channel&#039;s priorities and the window management.&lt;br /&gt;
&lt;br /&gt;
=== Activity OOM priority: {{bug|1144132}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; Gabriele Svelto take the platform fix and on m-c and targeting v2.2. He will provides gaia patch as well.&lt;br /&gt;
For v2.2 the plan is to workaround it by associating activity opener and openee together,&lt;br /&gt;
For v3 the plan is to let system app controls the priority.&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we move away from inline activities.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; We have a old workaround in System app -- we never set an activity callee as invisible when it is covered by the activity caller, in fear that it could be OOM&#039;ed. In turn, app could not know visibilitychange when there is an activity opened.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; Any issue with incorrect document.hidden state in this situration, for example:&lt;br /&gt;
** {{bug|1102675}} - [Camera] black screen when open camera after open camera pick activity via camera&lt;br /&gt;
*** This is caused by the fact there are two camera instances in the phone and the previous one will not know it need to release the hardware.&lt;br /&gt;
** {{Bug|1072874}} - [Video]Video Share through SMS/BT doesn&#039;t pause video&lt;br /&gt;
*** Video app does not stop playing since visibilitychange doesn&#039;t fire.&lt;br /&gt;
&lt;br /&gt;
=== System message target: {{bug|931339}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we move away from inline activities.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; The current impl of system message assume there is only one instance (frame) per app, so it only deliver the message to an attached handling callback &#039;&#039;&#039;once&#039;&#039;&#039;. If there is an activity being opened twice from difference source, only the first activity will catch the system message. That is to say, the second activity and so on will become malfunction totally.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039;&lt;br /&gt;
** Cicular activities like: {{bug|1124944}} - [Messages] Messages app opens as a blank screen when opened as a share activity multiple times&lt;br /&gt;
&lt;br /&gt;
=== Unlock Console API for Gaia: {{bug|1066581}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never try to pass MTBF again.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Lot&#039;s of previous MTBF bugs.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; From time to time, we are asked to debug &#039;&#039;&#039;MTBF&#039;&#039;&#039; issues with log. Currently, we have always have to work submit a patch with lines-to-print and ask QA engineers to re-run, instead of having these logging check into the tree. According to measurement in the bug, adding console.log() will slow down main thread significantly. &#039;&#039;&#039;There has been time where racing bugs simply become unreproducible when the log was added as well&#039;&#039;&#039;. The fix proposed here is to make logging faster, at least not noticeable until it&#039;s turned on from Gecko. Our logger in apps, currently, unfortunately, have to wire their own logging to a app script with it&#039;s own, special switch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== P2 ==&lt;br /&gt;
&lt;br /&gt;
=== Nested oop apps: {{bug|1020135}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; ?&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we don&#039;t have a centralized Settings app.&lt;br /&gt;
* &#039;&#039;&#039;What this bug solves:&#039;&#039;&#039; Gaia apps like Settings app hosts many of the settings for other apps. It would be more technically sound if the Settings app could embed the said app instead, for the sake of code clarity and security model etc (bug ?). We would also need this to stop using activity to launch &amp;amp; go back from the keyboard settings panel (bug ?). It would unlock the 3rd-party app setting embedding as well ({{bug|1020063}}).&lt;br /&gt;
&lt;br /&gt;
=== mozApps.getAll needs a filter based on &amp;quot;role&amp;quot; and &amp;quot;type&amp;quot;: {{bug|1094562}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we don&#039;t have a centralized Settings app.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Performance issues involving mozApp.getAll() calls during start-up.&lt;br /&gt;
* &#039;&#039;&#039;What this will solve:&#039;&#039;&#039; In settings app there are cases in which we have to find specific role or type of apps like homescreens, themes, or addons. Currently the only way would be getting all apps and check their properties one by one, which leads to performance issues. Providing a filter solves the performance issue during start-up.&lt;br /&gt;
&lt;br /&gt;
=== Date &amp;amp; time format API: {{bug|1118214}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039; (The mozAPI work is not going since the origin project(tako) request is canceled)&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we don&#039;t want to improve app start-up time.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Apps displaying date and time now rely on a shim from gaia. The shim introduces additional loading time, potential racing, and settings migration issues.&lt;br /&gt;
* &#039;&#039;&#039;What this bug solves:&#039;&#039;&#039; It should provide robust API for gaia apps to query the current date/time format. Moreover, it can also provide functions that generate localized date and time strings based on the current language setting. The alternative approach is improving mozSettings performance {{bug|1122570}} therefore all mozSettings call are improved.&lt;br /&gt;
&lt;br /&gt;
=== Bind permission Dialog to Browser Frame {{bug|853711}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; NOT STARTED&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never need to show permission dialog&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Permission dialog is not bind to the iframe who requests for the permission hence the dialog will show or hide at the wrong timing. One another case is fullscreen request is not dispatched from the mozBrowser iframe who enters fullscreen mode.&lt;br /&gt;
* &#039;&#039;&#039;What this bug solves:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Migrate mozSettings values in Gecko: {{bug|1112092}} ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Status:&#039;&#039;&#039; &#039;&#039;&#039;&amp;lt;font color=red&amp;gt;NOT STARTED&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Implication to v3&#039;&#039;&#039;: Issue is valid unless we never upgrade hardware.&lt;br /&gt;
* &#039;&#039;&#039;What is being blocked:&#039;&#039;&#039; Performance issues that could be blockers in the next release.&lt;br /&gt;
* &#039;&#039;&#039;What this bug will solve:&#039;&#039;&#039; The DB_VERSION of mozSettings is hidden inside Gecko, therefore to upgrade a settings in Gaia we would have to read the setting every time the phone boots or the app start ups. This contributes to boot time a lot and we are very close being asked to block a release for this (see the depending bugs of that bug). We would either have to patch Gecko to put all the migration there or we would have to expose something non-trivial to Gaia instead.&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/New_new_security_model&amp;diff=1069515</id>
		<title>User:Timdream/New new security model</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/New_new_security_model&amp;diff=1069515"/>
		<updated>2015-04-21T15:31:10Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Signing */ add one issue on how marketplace should conduct reviews&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;This is a counter proposal of [[FirefoxOS/New security model]]. Nothing will be implemented unless decided.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
&lt;br /&gt;
=== The original goals ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged from [[FirefoxOS/New security model]].)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Enable exposing &amp;quot;sensitive APIs&amp;quot; to 3rd party developers.&lt;br /&gt;
* Use the same update and security model for gaia and for 3rd party content.&lt;br /&gt;
* Don&#039;t require content which uses &amp;quot;senstivie APIs&amp;quot; to be installed. Users should be able to simply browse to it.&lt;br /&gt;
* Don&#039;t have separate cookie jars for separate apps. At least for normal content which doesn&#039;t use &amp;quot;sensitive APIs&amp;quot;.&lt;br /&gt;
* Ensure that content which uses &amp;quot;sensitive APIs&amp;quot; always runs in a separate process. Enforce in the parent process that only these separate processes can trigger &amp;quot;sensitive APIs&amp;quot;. I.e. hacking a child process should not permit access to more sensitive APIs.&lt;br /&gt;
* Enable content which uses &amp;quot;sensitive APIs&amp;quot; to have normal http(s) URLs such that they can use OAuth providers like facebook.&lt;br /&gt;
* Enable content which uses &amp;quot;sensitive APIs&amp;quot; to use service workers.&lt;br /&gt;
&lt;br /&gt;
=== Additional goals ===&lt;br /&gt;
&lt;br /&gt;
Specific goals we would like to achieve in this counter proposal.&lt;br /&gt;
&lt;br /&gt;
* Be transparent to the current offline capability features, i.e. Service Workers or AppCache. In other word, do not make signed apps incidentally offline-capable.&lt;br /&gt;
* Allow hosting of signed content from static hosting, e.g. Amazon S3, Github Pages.&lt;br /&gt;
* Gracefully fallback to untrusted/unsigned app for browsers does not support signing.&lt;br /&gt;
&lt;br /&gt;
== Rationale ==&lt;br /&gt;
&lt;br /&gt;
The current Marketplace behaves like a Firefox OS-only walled garden, in which we let the developers mistakenly believe their content need to be packaged and reviewed to be included in Firefox OS. Packaged apps served from the Marketplace website also incidentally offline-capable (and labelled as such on Marketplace website), thus further lock the content in the Firefox OS.&lt;br /&gt;
&lt;br /&gt;
The additionally goals are set to ensure the next iteration of our security model encourages our app developers adopt state-of-the-art Open Web technologies, not Firefox OS technologies -- and only transitions to be a reviewed/signed app when it needs additional permission.&lt;br /&gt;
&lt;br /&gt;
At time of the writing, I found the proposal on [[FirefoxOS/New security model]] (a.k.a. Hosted Packaged Apps) differs from the normal Web deployment significantly, and will continue to deviate Firefox OS development from the goals set out in [[Booting to the Web]] announcement.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Signing ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged to the previous proposal)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
We will require that all content which uses &amp;quot;sensitive APIs&amp;quot; is signed. For now only the firefox marketplace will be allowed to do the signing. Possibly this will be changed in the future, but that&#039;s likely more a policy change than a code change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Updated from the previous proposal below unless marked &amp;quot;unchanged&amp;quot;)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signing is done by having developers submit a collection of static content for a specific app and for a specific version to the Mozilla marketplace. The marketplace will review the app and then issue a signature file representing the set of the content approved. The developer can then download the signature and upload the signature along with the content to the developer&#039;s website.&lt;br /&gt;
&lt;br /&gt;
The signature file should ensure the integrity of every resource in the collection. The signature of a given resource is only consider valid if it matches both the app identifier and the version identifier of the page included.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; &#039;&#039;(Unchanged)&#039;&#039; Should we allow other forms manual review of each app? Can the marketplace &amp;quot;review a developer&amp;quot; and give the developer access to automatic signing?&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Should we enable the marketplace to host signed content for developers which doesn&#039;t want to run a web server?&lt;br /&gt;
&lt;br /&gt;
There is no package/packaging involved in the signing process. We might ask developer to zip the content and to send it to Marketplace simply because we have not fix {{bug|846931}} yet, which would allow &amp;lt;code&amp;gt;&amp;amp;lt;input file&amp;amp;gt;&amp;lt;/code&amp;gt; to accept a folder.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Or maybe the Marketplace could review the live website or a staged website online?&lt;br /&gt;
&lt;br /&gt;
The format used for the signature file is still to be determined, but to serve it&#039;s purpose it should include a set of checksum representing the resources it signed against. We &#039;&#039;&#039;DO NOT&#039;&#039;&#039; include the exact URLs of the resources because we only verify the given resource content and does not care about where it is being loaded from. This enables app to load shared resource from a shared location.&lt;br /&gt;
&lt;br /&gt;
The signature file however should include the manifest URL as the identifier of the origin the signature file granted.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; &#039;&#039;(Unchanged)&#039;&#039; Decide on exact signature format.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Removing URLs from the signature file might prevent us from prefetching/caching signed resources should it become necessary.&lt;br /&gt;
&lt;br /&gt;
=== Verifying signatures ===&lt;br /&gt;
&lt;br /&gt;
To load a webpage in a signed content, the user would navigate to the page as usual. When Gecko loads the page, it would see the &amp;lt;code&amp;gt;X-Moz-App-Signature&amp;lt;/code&amp;gt; in the response header. The value of the header should be the URL of the signature file issued by Marketplace.&lt;br /&gt;
&lt;br /&gt;
Before actually loading the page, the signature file should be downloaded, and the content of the page should be verified against the signature file. The signature file define the resources the page is allowed to load. We&#039;ve ruled out referencing the signature file in HTML (e.g. in &amp;amp;lt;html&amp;amp;gt; or &amp;amp;lt;meta&amp;amp;gt;) because it might trigger necessary reloads.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Github Pages (or any static hosting other than Amazon S3) doesn&#039;t actually allow setting a custom HTTP header.&lt;br /&gt;
&lt;br /&gt;
The URL to the signature file is likely version&#039;d to ensure we indeed referencing the correct signature file (that matches the current version of the page). A version&#039;d URL (e.g. &amp;lt;code&amp;gt;https://code.jquery.com/jquery-2.1.3.min.js&amp;lt;/code&amp;gt;) will also work with CDN/Proxy level network caching, a common technique on the Web today.&lt;br /&gt;
&lt;br /&gt;
The signature file should contain the URL to the webapp manifest and the checksum of the referenced webapp manifest. It should always match the webapp manifest referenced in the &amp;amp;lt;meta&amp;amp;gt; tag of the page (which aligned with how W3C app manifest is referenced). Whenever the signature file is updated, Gecko should also (re-)fetch the webapp manifest, verify it, to assert the proper permission and origin of the app.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Can the webapp manifest itself bear the responsibility of the signature file?&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; How do we prevent getting the old version of the webapp manifest? The webapp manifest URL is currently used as the origin identifier of the app -- we can&#039;t serve it from a version&#039;d URL.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Do we want to get rid of the signature file and instead make the every resource comes with a signature header? Of course the signature header must be signed against the same version/app of the page.&lt;br /&gt;
&lt;br /&gt;
The integrity of the signature file, of course, should be verified.&lt;br /&gt;
&lt;br /&gt;
We would &#039;&#039;&#039;NOT&#039;&#039;&#039; cache any content except for normal HTTP disk/memory caching. App developer will be responsible of introducing offline-capable feature(s) of their choice, i.e. Service Worker or AppCache. AppCache offline manifest, as simply a mean of delivery and assigning offline-cached resources, does not required to be signed. It&#039;s likely for Marketplace to also generate the offline-capable script/manifest automatically (what to generate would depend on how much we hate AppCache or love Service Workers).&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Should we sign the AppCache offline manifest? Would it be a security issue if we don&#039;t?&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; AppCache offline manifest usually caches the same set of signed resources. Do we want to somehow simply the usage here of the developer choose to use AppCache?&lt;br /&gt;
&lt;br /&gt;
We &#039;&#039;&#039;DO NOT&#039;&#039;&#039; consider fail to load one resource as a fail validation of the signature. We therefore do not attempt to load and verify all the resources specified in the signature before loading the page.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Should we?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged)&#039;&#039; Another thing that needs to be done before any content is served by the network layer is to look in the webapp manifest and populate the nsIPermissionManager database with any permissions enumerated in the webapp manifest. After having checked that the webapp manifest properly matches the signature of course.&lt;br /&gt;
&lt;br /&gt;
All resources referenced by the page is likely from a version&#039;d URL as well, per reason stated above.&lt;br /&gt;
&lt;br /&gt;
=== CSP ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged, see [[FirefoxOS/New_security_model#CSP]])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Process isolation ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged, see [[FirefoxOS/New_security_model#Process_isolation]])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Installing and updating ===&lt;br /&gt;
&lt;br /&gt;
Given the fact we have removed the offline capability of signed content, app developers are responsible to implement their own installing/updating scheme, independent of the signing scheme. If they use neither Service Worker nor AppCache, their page will behave exactly as any normal websites.&lt;br /&gt;
&lt;br /&gt;
As described in the previous section, the signature should go along with the page. When a page is updated, Gecko should expect/receive/verify the new signature file with the updated page.&lt;br /&gt;
&lt;br /&gt;
With AppCache, the signature file is offline-cached or purged with it&#039;s page. When the page is being updated because of a offline manifest change, the new signature file should be downloaded and offline-cached along with the new page. As previously described, each version of the page can only load the resource allowed in it&#039;s signature file.&lt;br /&gt;
&lt;br /&gt;
Per previous paragraph, we do not expect the offline manifest to be signed.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; If we require the updated offline manifest to be signed with an updated signature file, we would need to receive the &amp;lt;code&amp;gt;X-Moz-App-Signature&amp;lt;/code&amp;gt; header from the HTTP response of the offline manifest.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Following the format of original proposal, how Service Worker-backed app update the signature will be covered in the next paragraph.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neither AppCache offine manifest nor Service Worker Cache need to explicitly cache the signature file.&lt;br /&gt;
&lt;br /&gt;
To confirm with the current UX requirement, we will need to allow user to control the update schedule of AppCache&#039;d or Service Worker-backed apps. This incidentally will unify the way how user control signed web apps AND unsigned offline-capable web apps.&lt;br /&gt;
&lt;br /&gt;
=== Service Workers ===&lt;br /&gt;
&lt;br /&gt;
We do not monkey-patch the service worker spec to update Service Workers cache as a whole. Instead, we only have to deal with how to update the signature file when the app updates. &lt;br /&gt;
&lt;br /&gt;
Additionally to explicit control over Caches, Service Worker script itself have access to sensitive APIs too. Therefore, they would have to be included in as a signed resource in the signature file for a signed page to register the worker at first place.&lt;br /&gt;
&lt;br /&gt;
Per spec, a Service Worker-backed app updates when it&#039;s Service Worker script changes. As the updated script is the first script we run for the new set of permissions and signatures, we therefore need to receive the new signature file from the &amp;lt;code&amp;gt;X-Moz-App-Signature&amp;lt;/code&amp;gt; header included in the HTTP response of the updated script, instead of the original page of entry.&lt;br /&gt;
&lt;br /&gt;
The manifest should be re-fetched/updated along with the new signature file.&lt;br /&gt;
&lt;br /&gt;
Service Worker script should not put/manage the signature file in Caches. It is always managed by Gecko and cached/purged along with the Service Worker script or the page it associate with.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; We are likely creating one-to-many (and technical complexities) relationship between the signature file and the page/script. This needs further work to prevent state/version inconsistencies.&lt;br /&gt;
&lt;br /&gt;
It&#039;s worthy noting since Service Worker script continue to be given the explicit and sole control over what to cache, the updated script can therefore choose not to re-download any unchanged resources -- we however require these unchanged resources to be verified with the new signature file to be able to run on the updated page.&lt;br /&gt;
&lt;br /&gt;
It&#039;s possible for the Service Worker employ it&#039;s own logic to synthesize a resource update (e.g. per file delta update), instead of downloading the updated resource. The signature file therefore should be used to verify against the synthesized Service Worker Response.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; &#039;&#039;(likely an issue for the original proposal as well)&#039;&#039; Does the above verification apply to all resource types, or just JS files only? To what degree does the worker script allow to modify a resource without risking breaking the protection offered by CSP?&lt;br /&gt;
&lt;br /&gt;
=== Origins and cookie jars ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged, see [[FirefoxOS/New_security_model#Origins_and_cookie_jars]])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Relationship between signing and packaging ==&lt;br /&gt;
&lt;br /&gt;
Packaging is no longer a requirement for the content to be signed. Package can still be used if the app developer wish to fulfill any use cases described [https://github.com/w3ctag/packaging-on-the-web on the spec draft repo readme.]&lt;br /&gt;
&lt;br /&gt;
When a given resource is a package, the signature file should list a package as one resource and sign the package as whole.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Would that prevent streaming from working?&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/New_new_security_model&amp;diff=1069513</id>
		<title>User:Timdream/New new security model</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/New_new_security_model&amp;diff=1069513"/>
		<updated>2015-04-21T15:28:20Z</updated>

		<summary type="html">&lt;p&gt;Timdream: change the way manifest is referenced&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;This is a counter proposal of [[FirefoxOS/New security model]]. Nothing will be implemented unless decided.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
&lt;br /&gt;
=== The original goals ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged from [[FirefoxOS/New security model]].)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Enable exposing &amp;quot;sensitive APIs&amp;quot; to 3rd party developers.&lt;br /&gt;
* Use the same update and security model for gaia and for 3rd party content.&lt;br /&gt;
* Don&#039;t require content which uses &amp;quot;senstivie APIs&amp;quot; to be installed. Users should be able to simply browse to it.&lt;br /&gt;
* Don&#039;t have separate cookie jars for separate apps. At least for normal content which doesn&#039;t use &amp;quot;sensitive APIs&amp;quot;.&lt;br /&gt;
* Ensure that content which uses &amp;quot;sensitive APIs&amp;quot; always runs in a separate process. Enforce in the parent process that only these separate processes can trigger &amp;quot;sensitive APIs&amp;quot;. I.e. hacking a child process should not permit access to more sensitive APIs.&lt;br /&gt;
* Enable content which uses &amp;quot;sensitive APIs&amp;quot; to have normal http(s) URLs such that they can use OAuth providers like facebook.&lt;br /&gt;
* Enable content which uses &amp;quot;sensitive APIs&amp;quot; to use service workers.&lt;br /&gt;
&lt;br /&gt;
=== Additional goals ===&lt;br /&gt;
&lt;br /&gt;
Specific goals we would like to achieve in this counter proposal.&lt;br /&gt;
&lt;br /&gt;
* Be transparent to the current offline capability features, i.e. Service Workers or AppCache. In other word, do not make signed apps incidentally offline-capable.&lt;br /&gt;
* Allow hosting of signed content from static hosting, e.g. Amazon S3, Github Pages.&lt;br /&gt;
* Gracefully fallback to untrusted/unsigned app for browsers does not support signing.&lt;br /&gt;
&lt;br /&gt;
== Rationale ==&lt;br /&gt;
&lt;br /&gt;
The current Marketplace behaves like a Firefox OS-only walled garden, in which we let the developers mistakenly believe their content need to be packaged and reviewed to be included in Firefox OS. Packaged apps served from the Marketplace website also incidentally offline-capable (and labelled as such on Marketplace website), thus further lock the content in the Firefox OS.&lt;br /&gt;
&lt;br /&gt;
The additionally goals are set to ensure the next iteration of our security model encourages our app developers adopt state-of-the-art Open Web technologies, not Firefox OS technologies -- and only transitions to be a reviewed/signed app when it needs additional permission.&lt;br /&gt;
&lt;br /&gt;
At time of the writing, I found the proposal on [[FirefoxOS/New security model]] (a.k.a. Hosted Packaged Apps) differs from the normal Web deployment significantly, and will continue to deviate Firefox OS development from the goals set out in [[Booting to the Web]] announcement.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Signing ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged to the previous proposal)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
We will require that all content which uses &amp;quot;sensitive APIs&amp;quot; is signed. For now only the firefox marketplace will be allowed to do the signing. Possibly this will be changed in the future, but that&#039;s likely more a policy change than a code change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Updated from the previous proposal below unless marked &amp;quot;unchanged&amp;quot;)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signing is done by having developers submit a collection of static content for a specific app and for a specific version to the Mozilla marketplace. The marketplace will review the app and then issue a signature file representing the set of the content approved. The developer can then download the signature and upload the signature along with the content to the developer&#039;s website.&lt;br /&gt;
&lt;br /&gt;
The signature file should ensure the integrity of every resource in the collection. The signature of a given resource is only consider valid if it matches both the app identifier and the version identifier of the page included.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; &#039;&#039;(Unchanged)&#039;&#039; Should we allow other forms manual review of each app? Can the marketplace &amp;quot;review a developer&amp;quot; and give the developer access to automatic signing?&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Should we enable the marketplace to host signed content for developers which doesn&#039;t want to run a web server?&lt;br /&gt;
&lt;br /&gt;
There is no package/packaging involved in the signing process. We might ask developer to zip the content and to send it to Marketplace simply because we have not fix {{bug|846931}} yet, which would allow &amp;lt;code&amp;gt;&amp;amp;lt;input file&amp;amp;gt;&amp;lt;/code&amp;gt; to accept a folder.&lt;br /&gt;
&lt;br /&gt;
The format used for the signature file is still to be determined, but to serve it&#039;s purpose it should include a set of checksum representing the resources it signed against. We &#039;&#039;&#039;DO NOT&#039;&#039;&#039; include the exact URLs of the resources because we only verify the given resource content and does not care about where it is being loaded from. This enables app to load shared resource from a shared location.&lt;br /&gt;
&lt;br /&gt;
The signature file however should include the manifest URL as the identifier of the origin the signature file granted.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; &#039;&#039;(Unchanged)&#039;&#039; Decide on exact signature format.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Removing URLs from the signature file might prevent us from prefetching/caching signed resources should it become necessary.&lt;br /&gt;
&lt;br /&gt;
=== Verifying signatures ===&lt;br /&gt;
&lt;br /&gt;
To load a webpage in a signed content, the user would navigate to the page as usual. When Gecko loads the page, it would see the &amp;lt;code&amp;gt;X-Moz-App-Signature&amp;lt;/code&amp;gt; in the response header. The value of the header should be the URL of the signature file issued by Marketplace.&lt;br /&gt;
&lt;br /&gt;
Before actually loading the page, the signature file should be downloaded, and the content of the page should be verified against the signature file. The signature file define the resources the page is allowed to load. We&#039;ve ruled out referencing the signature file in HTML (e.g. in &amp;amp;lt;html&amp;amp;gt; or &amp;amp;lt;meta&amp;amp;gt;) because it might trigger necessary reloads.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Github Pages (or any static hosting other than Amazon S3) doesn&#039;t actually allow setting a custom HTTP header.&lt;br /&gt;
&lt;br /&gt;
The URL to the signature file is likely version&#039;d to ensure we indeed referencing the correct signature file (that matches the current version of the page). A version&#039;d URL (e.g. &amp;lt;code&amp;gt;https://code.jquery.com/jquery-2.1.3.min.js&amp;lt;/code&amp;gt;) will also work with CDN/Proxy level network caching, a common technique on the Web today.&lt;br /&gt;
&lt;br /&gt;
The signature file should contain the URL to the webapp manifest and the checksum of the referenced webapp manifest. It should always match the webapp manifest referenced in the &amp;amp;lt;meta&amp;amp;gt; tag of the page (which aligned with how W3C app manifest is referenced). Whenever the signature file is updated, Gecko should also (re-)fetch the webapp manifest, verify it, to assert the proper permission and origin of the app.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Can the webapp manifest itself bear the responsibility of the signature file?&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; How do we prevent getting the old version of the webapp manifest? The webapp manifest URL is currently used as the origin identifier of the app -- we can&#039;t serve it from a version&#039;d URL.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Do we want to get rid of the signature file and instead make the every resource comes with a signature header? Of course the signature header must be signed against the same version/app of the page.&lt;br /&gt;
&lt;br /&gt;
The integrity of the signature file, of course, should be verified.&lt;br /&gt;
&lt;br /&gt;
We would &#039;&#039;&#039;NOT&#039;&#039;&#039; cache any content except for normal HTTP disk/memory caching. App developer will be responsible of introducing offline-capable feature(s) of their choice, i.e. Service Worker or AppCache. AppCache offline manifest, as simply a mean of delivery and assigning offline-cached resources, does not required to be signed. It&#039;s likely for Marketplace to also generate the offline-capable script/manifest automatically (what to generate would depend on how much we hate AppCache or love Service Workers).&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Should we sign the AppCache offline manifest? Would it be a security issue if we don&#039;t?&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; AppCache offline manifest usually caches the same set of signed resources. Do we want to somehow simply the usage here of the developer choose to use AppCache?&lt;br /&gt;
&lt;br /&gt;
We &#039;&#039;&#039;DO NOT&#039;&#039;&#039; consider fail to load one resource as a fail validation of the signature. We therefore do not attempt to load and verify all the resources specified in the signature before loading the page.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Should we?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged)&#039;&#039; Another thing that needs to be done before any content is served by the network layer is to look in the webapp manifest and populate the nsIPermissionManager database with any permissions enumerated in the webapp manifest. After having checked that the webapp manifest properly matches the signature of course.&lt;br /&gt;
&lt;br /&gt;
All resources referenced by the page is likely from a version&#039;d URL as well, per reason stated above.&lt;br /&gt;
&lt;br /&gt;
=== CSP ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged, see [[FirefoxOS/New_security_model#CSP]])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Process isolation ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged, see [[FirefoxOS/New_security_model#Process_isolation]])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Installing and updating ===&lt;br /&gt;
&lt;br /&gt;
Given the fact we have removed the offline capability of signed content, app developers are responsible to implement their own installing/updating scheme, independent of the signing scheme. If they use neither Service Worker nor AppCache, their page will behave exactly as any normal websites.&lt;br /&gt;
&lt;br /&gt;
As described in the previous section, the signature should go along with the page. When a page is updated, Gecko should expect/receive/verify the new signature file with the updated page.&lt;br /&gt;
&lt;br /&gt;
With AppCache, the signature file is offline-cached or purged with it&#039;s page. When the page is being updated because of a offline manifest change, the new signature file should be downloaded and offline-cached along with the new page. As previously described, each version of the page can only load the resource allowed in it&#039;s signature file.&lt;br /&gt;
&lt;br /&gt;
Per previous paragraph, we do not expect the offline manifest to be signed.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; If we require the updated offline manifest to be signed with an updated signature file, we would need to receive the &amp;lt;code&amp;gt;X-Moz-App-Signature&amp;lt;/code&amp;gt; header from the HTTP response of the offline manifest.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Following the format of original proposal, how Service Worker-backed app update the signature will be covered in the next paragraph.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neither AppCache offine manifest nor Service Worker Cache need to explicitly cache the signature file.&lt;br /&gt;
&lt;br /&gt;
To confirm with the current UX requirement, we will need to allow user to control the update schedule of AppCache&#039;d or Service Worker-backed apps. This incidentally will unify the way how user control signed web apps AND unsigned offline-capable web apps.&lt;br /&gt;
&lt;br /&gt;
=== Service Workers ===&lt;br /&gt;
&lt;br /&gt;
We do not monkey-patch the service worker spec to update Service Workers cache as a whole. Instead, we only have to deal with how to update the signature file when the app updates. &lt;br /&gt;
&lt;br /&gt;
Additionally to explicit control over Caches, Service Worker script itself have access to sensitive APIs too. Therefore, they would have to be included in as a signed resource in the signature file for a signed page to register the worker at first place.&lt;br /&gt;
&lt;br /&gt;
Per spec, a Service Worker-backed app updates when it&#039;s Service Worker script changes. As the updated script is the first script we run for the new set of permissions and signatures, we therefore need to receive the new signature file from the &amp;lt;code&amp;gt;X-Moz-App-Signature&amp;lt;/code&amp;gt; header included in the HTTP response of the updated script, instead of the original page of entry.&lt;br /&gt;
&lt;br /&gt;
The manifest should be re-fetched/updated along with the new signature file.&lt;br /&gt;
&lt;br /&gt;
Service Worker script should not put/manage the signature file in Caches. It is always managed by Gecko and cached/purged along with the Service Worker script or the page it associate with.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; We are likely creating one-to-many (and technical complexities) relationship between the signature file and the page/script. This needs further work to prevent state/version inconsistencies.&lt;br /&gt;
&lt;br /&gt;
It&#039;s worthy noting since Service Worker script continue to be given the explicit and sole control over what to cache, the updated script can therefore choose not to re-download any unchanged resources -- we however require these unchanged resources to be verified with the new signature file to be able to run on the updated page.&lt;br /&gt;
&lt;br /&gt;
It&#039;s possible for the Service Worker employ it&#039;s own logic to synthesize a resource update (e.g. per file delta update), instead of downloading the updated resource. The signature file therefore should be used to verify against the synthesized Service Worker Response.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; &#039;&#039;(likely an issue for the original proposal as well)&#039;&#039; Does the above verification apply to all resource types, or just JS files only? To what degree does the worker script allow to modify a resource without risking breaking the protection offered by CSP?&lt;br /&gt;
&lt;br /&gt;
=== Origins and cookie jars ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged, see [[FirefoxOS/New_security_model#Origins_and_cookie_jars]])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Relationship between signing and packaging ==&lt;br /&gt;
&lt;br /&gt;
Packaging is no longer a requirement for the content to be signed. Package can still be used if the app developer wish to fulfill any use cases described [https://github.com/w3ctag/packaging-on-the-web on the spec draft repo readme.]&lt;br /&gt;
&lt;br /&gt;
When a given resource is a package, the signature file should list a package as one resource and sign the package as whole.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Would that prevent streaming from working?&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Timdream/New_new_security_model&amp;diff=1069120</id>
		<title>User:Timdream/New new security model</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Timdream/New_new_security_model&amp;diff=1069120"/>
		<updated>2015-04-18T15:27:35Z</updated>

		<summary type="html">&lt;p&gt;Timdream: /* Service Workers */ update the association of script v.s. signature file&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;This is a counter proposal of [[FirefoxOS/New security model]]. Nothing will be implemented unless decided.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
&lt;br /&gt;
=== The original goals ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged from [[FirefoxOS/New security model]].)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Enable exposing &amp;quot;sensitive APIs&amp;quot; to 3rd party developers.&lt;br /&gt;
* Use the same update and security model for gaia and for 3rd party content.&lt;br /&gt;
* Don&#039;t require content which uses &amp;quot;senstivie APIs&amp;quot; to be installed. Users should be able to simply browse to it.&lt;br /&gt;
* Don&#039;t have separate cookie jars for separate apps. At least for normal content which doesn&#039;t use &amp;quot;sensitive APIs&amp;quot;.&lt;br /&gt;
* Ensure that content which uses &amp;quot;sensitive APIs&amp;quot; always runs in a separate process. Enforce in the parent process that only these separate processes can trigger &amp;quot;sensitive APIs&amp;quot;. I.e. hacking a child process should not permit access to more sensitive APIs.&lt;br /&gt;
* Enable content which uses &amp;quot;sensitive APIs&amp;quot; to have normal http(s) URLs such that they can use OAuth providers like facebook.&lt;br /&gt;
* Enable content which uses &amp;quot;sensitive APIs&amp;quot; to use service workers.&lt;br /&gt;
&lt;br /&gt;
=== Additional goals ===&lt;br /&gt;
&lt;br /&gt;
Specific goals we would like to achieve in this counter proposal.&lt;br /&gt;
&lt;br /&gt;
* Be transparent to the current offline capability features, i.e. Service Workers or AppCache. In other word, do not make signed apps incidentally offline-capable.&lt;br /&gt;
* Allow hosting of signed content from static hosting, e.g. Amazon S3, Github Pages.&lt;br /&gt;
* Gracefully fallback to untrusted/unsigned app for browsers does not support signing.&lt;br /&gt;
&lt;br /&gt;
== Rationale ==&lt;br /&gt;
&lt;br /&gt;
The current Marketplace behaves like a Firefox OS-only walled garden, in which we let the developers mistakenly believe their content need to be packaged and reviewed to be included in Firefox OS. Packaged apps served from the Marketplace website also incidentally offline-capable (and labelled as such on Marketplace website), thus further lock the content in the Firefox OS.&lt;br /&gt;
&lt;br /&gt;
The additionally goals are set to ensure the next iteration of our security model encourages our app developers adopt state-of-the-art Open Web technologies, not Firefox OS technologies -- and only transitions to be a reviewed/signed app when it needs additional permission.&lt;br /&gt;
&lt;br /&gt;
At time of the writing, I found the proposal on [[FirefoxOS/New security model]] (a.k.a. Hosted Packaged Apps) differs from the normal Web deployment significantly, and will continue to deviate Firefox OS development from the goals set out in [[Booting to the Web]] announcement.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Signing ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged to the previous proposal)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
We will require that all content which uses &amp;quot;sensitive APIs&amp;quot; is signed. For now only the firefox marketplace will be allowed to do the signing. Possibly this will be changed in the future, but that&#039;s likely more a policy change than a code change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Updated from the previous proposal below unless marked &amp;quot;unchanged&amp;quot;)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signing is done by having developers submit a collection of static content for a specific app and for a specific version to the Mozilla marketplace. The marketplace will review the app and then issue a signature file representing the set of the content approved. The developer can then download the signature and upload the signature along with the content to the developer&#039;s website.&lt;br /&gt;
&lt;br /&gt;
The signature file should ensure the integrity of every resource in the collection. The signature of a given resource is only consider valid if it matches both the app identifier and the version identifier of the page included.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; &#039;&#039;(Unchanged)&#039;&#039; Should we allow other forms manual review of each app? Can the marketplace &amp;quot;review a developer&amp;quot; and give the developer access to automatic signing?&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Should we enable the marketplace to host signed content for developers which doesn&#039;t want to run a web server?&lt;br /&gt;
&lt;br /&gt;
There is no package/packaging involved in the signing process. We might ask developer to zip the content and to send it to Marketplace simply because we have not fix {{bug|846931}} yet, which would allow &amp;lt;code&amp;gt;&amp;amp;lt;input file&amp;amp;gt;&amp;lt;/code&amp;gt; to accept a folder.&lt;br /&gt;
&lt;br /&gt;
The format used for the signature file is still to be determined, but to serve it&#039;s purpose it should include a set of checksum representing the resources it signed against. We &#039;&#039;&#039;DO NOT&#039;&#039;&#039; include the exact URLs of the resources because we only verify the given resource content and does not care about where it is being loaded from. This enables app to load shared resource from a shared location.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; &#039;&#039;(Unchanged)&#039;&#039; Decide on exact signature format.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Removing URLs from the signature file might prevent us from prefetching/caching signed resources should it become necessary.&lt;br /&gt;
&lt;br /&gt;
=== Verifying signatures ===&lt;br /&gt;
&lt;br /&gt;
To load a webpage in a signed content, the user would navigate to the page as usual. When Gecko loads the page, it would see the &amp;lt;code&amp;gt;X-Moz-App-Signature&amp;lt;/code&amp;gt; in the response header. The value of the header should be the URL of the signature file issued by Marketplace.&lt;br /&gt;
&lt;br /&gt;
Before actually loading the page, the signature file should be downloaded, and the content of the page should be verified against the signature file. The signature file define the resources the page is allowed to load. We&#039;ve ruled out referencing the signature file in HTML (e.g. in &amp;amp;lt;html&amp;amp;gt; or &amp;amp;lt;meta&amp;amp;gt;) because it might trigger necessary reloads.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Github Pages (or any static hosting other than Amazon S3) doesn&#039;t actually allow setting a custom HTTP header.&lt;br /&gt;
&lt;br /&gt;
The URL to the signature file is likely version&#039;d to ensure we indeed referencing the correct signature file (that matches the current version of the page). A version&#039;d URL (e.g. &amp;lt;code&amp;gt;https://code.jquery.com/jquery-2.1.3.min.js&amp;lt;/code&amp;gt;) will also work with CDN/Proxy level network caching, a common technique on the Web today.&lt;br /&gt;
&lt;br /&gt;
The signature file should contain the URL to the webapp manifest and the checksum of the referenced webapp manifest. Gecko should also fetch the webapp manifest, verify it, to assert the proper permission and origin of the app.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Can the webapp manifest itself bear the responsibility of the signature file?&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; How do we prevent getting the old version of the webapp manifest? The webapp manifest URL is currently used as the origin identifier of the app -- we can&#039;t serve it from a version&#039;d URL.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Do we want to get rid of the signature file and instead make the every resource comes with a signature header? Of course the signature header must be signed against the same version/app of the page.&lt;br /&gt;
&lt;br /&gt;
The integrity of the signature file, of course, should be verified.&lt;br /&gt;
&lt;br /&gt;
We would &#039;&#039;&#039;NOT&#039;&#039;&#039; cache any content except for normal HTTP disk/memory caching. App developer will be responsible of introducing offline-capable feature(s) of their choice, i.e. Service Worker or AppCache. AppCache offline manifest, as simply a mean of delivery and assigning offline-cached resources, does not required to be signed. It&#039;s likely for Marketplace to also generate the offline-capable script/manifest automatically (what to generate would depend on how much we hate AppCache or love Service Workers).&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Should we sign the AppCache offline manifest? Would it be a security issue if we don&#039;t?&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; AppCache offline manifest usually caches the same set of signed resources. Do we want to somehow simply the usage here of the developer choose to use AppCache?&lt;br /&gt;
&lt;br /&gt;
We &#039;&#039;&#039;DO NOT&#039;&#039;&#039; consider fail to load one resource as a fail validation of the signature. We therefore do not attempt to load and verify all the resources specified in the signature before loading the page.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Should we?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged)&#039;&#039; Another thing that needs to be done before any content is served by the network layer is to look in the webapp manifest and populate the nsIPermissionManager database with any permissions enumerated in the webapp manifest. After having checked that the webapp manifest properly matches the signature of course.&lt;br /&gt;
&lt;br /&gt;
All resources referenced by the page is likely from a version&#039;d URL as well, per reason stated above.&lt;br /&gt;
&lt;br /&gt;
=== CSP ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged, see [[FirefoxOS/New_security_model#CSP]])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Process isolation ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged, see [[FirefoxOS/New_security_model#Process_isolation]])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Installing and updating ===&lt;br /&gt;
&lt;br /&gt;
Given the fact we have removed the offline capability of signed content, app developers are responsible to implement their own installing/updating scheme, independent of the signing scheme. If they use neither Service Worker nor AppCache, their page will behave exactly as any normal websites.&lt;br /&gt;
&lt;br /&gt;
As described in the previous section, the signature should go along with the page. When a page is updated, Gecko should expect/receive/verify the new signature file with the updated page.&lt;br /&gt;
&lt;br /&gt;
With AppCache, the signature file is offline-cached or purged with it&#039;s page. When the page is being updated because of a offline manifest change, the new signature file should be downloaded and offline-cached along with the new page. As previously described, each version of the page can only load the resource allowed in it&#039;s signature file.&lt;br /&gt;
&lt;br /&gt;
Per previous paragraph, we do not expect the offline manifest to be signed.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; If we require the updated offline manifest to be signed with an updated signature file, we would need to receive the &amp;lt;code&amp;gt;X-Moz-App-Signature&amp;lt;/code&amp;gt; header from the HTTP response of the offline manifest.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Following the format of original proposal, how Service Worker-backed app update the signature will be covered in the next paragraph.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neither AppCache offine manifest nor Service Worker Cache need to explicitly cache the signature file.&lt;br /&gt;
&lt;br /&gt;
To confirm with the current UX requirement, we will need to allow user to control the update schedule of AppCache&#039;d or Service Worker-backed apps. This incidentally will unify the way how user control signed web apps AND unsigned offline-capable web apps.&lt;br /&gt;
&lt;br /&gt;
=== Service Workers ===&lt;br /&gt;
&lt;br /&gt;
We do not monkey-patch the service worker spec to update Service Workers cache as a whole. Instead, we only have to deal with how to update the signature file when the app updates. &lt;br /&gt;
&lt;br /&gt;
Additionally to explicit control over Caches, Service Worker script itself have access to sensitive APIs too. Therefore, they would have to be included in as a signed resource in the signature file for a signed page to register the worker at first place.&lt;br /&gt;
&lt;br /&gt;
Per spec, a Service Worker-backed app updates when it&#039;s Service Worker script changes. As the updated script is the first script we run for the new set of permissions and signatures, we therefore need to receive the new signature file from the &amp;lt;code&amp;gt;X-Moz-App-Signature&amp;lt;/code&amp;gt; header included in the HTTP response of the updated script, instead of the original page of entry.&lt;br /&gt;
&lt;br /&gt;
The manifest should be re-fetched/updated along with the new signature file.&lt;br /&gt;
&lt;br /&gt;
Service Worker script should not put/manage the signature file in Caches. It is always managed by Gecko and cached/purged along with the Service Worker script or the page it associate with.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; We are likely creating one-to-many (and technical complexities) relationship between the signature file and the page/script. This needs further work to prevent state/version inconsistencies.&lt;br /&gt;
&lt;br /&gt;
It&#039;s worthy noting since Service Worker script continue to be given the explicit and sole control over what to cache, the updated script can therefore choose not to re-download any unchanged resources -- we however require these unchanged resources to be verified with the new signature file to be able to run on the updated page.&lt;br /&gt;
&lt;br /&gt;
It&#039;s possible for the Service Worker employ it&#039;s own logic to synthesize a resource update (e.g. per file delta update), instead of downloading the updated resource. The signature file therefore should be used to verify against the synthesized Service Worker Response.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; &#039;&#039;(likely an issue for the original proposal as well)&#039;&#039; Does the above verification apply to all resource types, or just JS files only? To what degree does the worker script allow to modify a resource without risking breaking the protection offered by CSP?&lt;br /&gt;
&lt;br /&gt;
=== Origins and cookie jars ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Unchanged, see [[FirefoxOS/New_security_model#Origins_and_cookie_jars]])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Relationship between signing and packaging ==&lt;br /&gt;
&lt;br /&gt;
Packaging is no longer a requirement for the content to be signed. Package can still be used if the app developer wish to fulfill any use cases described [https://github.com/w3ctag/packaging-on-the-web on the spec draft repo readme.]&lt;br /&gt;
&lt;br /&gt;
When a given resource is a package, the signature file should list a package as one resource and sign the package as whole.&lt;br /&gt;
&lt;br /&gt;
♦ &#039;&#039;&#039;Issue:&#039;&#039;&#039; Would that prevent streaming from working?&lt;/div&gt;</summary>
		<author><name>Timdream</name></author>
	</entry>
</feed>